From: Andy Grundman <andy@hybridized.org>
Date: Tue, 9 Aug 2005 00:37:34 +0000 (+0000)
Subject: Added sequence method to PK::Auto
X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=97cc0025be6018be97a760b3ff9b8090d91d0baa;p=dbsrgits%2FDBIx-Class-Historic.git

Added sequence method to PK::Auto
---

diff --git a/lib/DBIx/Class/PK/Auto.pm b/lib/DBIx/Class/PK/Auto.pm
index 43a1ece..75b017b 100644
--- a/lib/DBIx/Class/PK/Auto.pm
+++ b/lib/DBIx/Class/PK/Auto.pm
@@ -1,5 +1,6 @@
 package DBIx::Class::PK::Auto;
 
+use base qw/Class::Data::Inheritable/;
 use strict;
 use warnings;
 
@@ -47,6 +48,15 @@ sub insert {
   return $ret;
 }
 
+=item sequence
+
+Manually define the correct sequence for your table, to avoid the overhead
+associated with looking up the sequence automatically.
+
+=cut
+
+__PACKAGE__->mk_classdata('sequence');
+
 1;
 
 =back
diff --git a/lib/DBIx/Class/PK/Auto/Pg.pm b/lib/DBIx/Class/PK/Auto/Pg.pm
index 549da4b..eb6856c 100644
--- a/lib/DBIx/Class/PK/Auto/Pg.pm
+++ b/lib/DBIx/Class/PK/Auto/Pg.pm
@@ -16,6 +16,10 @@ sub last_insert_id {
 
 sub get_autoinc_seq {
   my $self=shift;
+  
+  # return the user-defined sequence if known
+  return $self->sequence if ($self->sequence);
+  
   my $dbh= $self->storage->dbh;
     my $sth	= $dbh->column_info( undef, undef, $self->_table_name, '%');
     while (my $foo = $sth->fetchrow_arrayref){