Patches from Andreas Hartmeier applied to PK::Auto
Jess Robinson [Wed, 14 Dec 2005 14:22:23 +0000 (14:22 +0000)]
lib/DBIx/Class/PK/Auto.pm
lib/DBIx/Class/PK/Auto/Oracle.pm
t/run/13oracle.tl

index ce745aa..d6dd3a5 100644 (file)
@@ -19,6 +19,11 @@ incremented primary keys.
 You don't want to be using this directly - instead load the appropriate
 one for your database, e.g. PK::Auto::SQLite
 
+=head1 LOGIC
+
+PK::Auto does this by letting the database assign the primary key field
+and fetching the assigned value afterwards.
+
 =head1 METHODS
 
 =head2 insert
index 1186b1a..814496e 100644 (file)
@@ -10,7 +10,7 @@ __PACKAGE__->load_components(qw/PK::Auto/);
 sub last_insert_id {
   my $self = shift;
   $self->get_autoinc_seq unless $self->{_autoinc_seq};
-  my $sql = "SELECT " . $self->{_autoinc_seq} . ".nextval FROM DUAL";
+  my $sql = "SELECT " . $self->{_autoinc_seq} . ".currval FROM DUAL";
   my ($id) = $self->storage->dbh->selectrow_array($sql);
   return $id;  
 }
index a5ab861..d524b96 100644 (file)
@@ -36,7 +36,7 @@ OraTest::Artist->load_components('PK::Auto::Oracle');
 
 # test primary key handling
 my $new = OraTest::Artist->create({ name => 'foo' });
-ok($new->artistid, "Oracle Auto-PK worked");
+is($new->artistid, 1, "Oracle Auto-PK worked");
 
 # test LIMIT support
 for (1..6) {