cvsuser 03/06/13 10:28:59
Modified: App-Repository/lib/App/Repository DBI.pm MySQL2.pm
Log:
supplied the missing _next_id() method
Revision Changes Path
1.7 +2 -21 p5ee/App-Repository/lib/App/Repository/DBI.pm
Index: DBI.pm
===================================================================
RCS file: /cvs/public/p5ee/App-Repository/lib/App/Repository/DBI.pm,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -w -r1.6 -r1.7
--- DBI.pm 12 Jun 2003 18:46:04 -0000 1.6
+++ DBI.pm 13 Jun 2003 17:28:59 -0000 1.7
@@ -1,13 +1,13 @@
######################################################################
-## File: $Id: DBI.pm,v 1.6 2003/06/12 18:46:04 spadkins Exp $
+## File: $Id: DBI.pm,v 1.7 2003/06/13 17:28:59 spadkins Exp $
######################################################################
use App;
use App::Repository;
package App::Repository::DBI;
-$VERSION = do { my @r=(q$Revision: 1.6 $=~/\d+/g); sprintf "%d."."%02d"x$#r,@r};
+$VERSION = do { my @r=(q$Revision: 1.7 $=~/\d+/g); sprintf "%d."."%02d"x$#r,@r};
@ISA = ( "App::Repository" );
@@ -2453,23 +2453,4 @@
}
1;
-
-__END__
-
-sub _next_id {
- my ($self, $table, $last_id) = @_;
- return ($last_id + 1) if ($last_id);
-
- my ($tabledef, $upper_bound, $where_upper_bound, $id, $pk_column);
- $tabledef = $self->{table}{$table};
- $pk_column = "";
- $pk_column = $tabledef->{primary_key}[0] if ($tabledef->{primary_key});
- $upper_bound = $tabledef->{column}{$pk_column}{auto_id_upper_bound};
- $where_upper_bound = $upper_bound ? " where $pk_column < $upper_bound" : "";
- $id = $self->{dbh}->selectrow_array("select max($pk_column) from
$table$where_upper_bound");
- $id = 0 if (!$id);
- $id ++;
-
- return $id;
-}
1.3 +22 -4 p5ee/App-Repository/lib/App/Repository/MySQL2.pm
Index: MySQL2.pm
===================================================================
RCS file: /cvs/public/p5ee/App-Repository/lib/App/Repository/MySQL2.pm,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -w -r1.2 -r1.3
--- MySQL2.pm 13 Jun 2003 16:20:49 -0000 1.2
+++ MySQL2.pm 13 Jun 2003 17:28:59 -0000 1.3
@@ -1,12 +1,12 @@
######################################################################
-## File: $Id: MySQL2.pm,v 1.2 2003/06/13 16:20:49 spadkins Exp $
+## File: $Id: MySQL2.pm,v 1.3 2003/06/13 17:28:59 spadkins Exp $
######################################################################
use App::Repository::MySQL;
package App::Repository::MySQL2;
-$VERSION = do { my @r=(q$Revision: 1.2 $=~/\d+/g); sprintf "%d."."%02d"x$#r,@r};
+$VERSION = do { my @r=(q$Revision: 1.3 $=~/\d+/g); sprintf "%d."."%02d"x$#r,@r};
@ISA = ( "App::Repository::MySQL" );
@@ -40,9 +40,9 @@
$pk_column = $tabledef->{primary_key};
if ($pk_column) {
if (!ref($pk_column)) {
- $pk_column = [ $pk_column ];
+ $auto_id = $tabledef->{column}{$pk_column}{auto_id};
}
- if ($#$pk_column eq 0) {
+ elsif ($#$pk_column eq 0) {
$pk_column = $pk_column->[0];
$auto_id = $tabledef->{column}{$pk_column}{auto_id};
}
@@ -462,6 +462,24 @@
$self->{numrows} = $nrows;
&App::sub_exit() if ($App::trace_subs);
return($nrows);
+}
+
+sub _next_id {
+ my ($self, $table, $last_id) = @_;
+ return ($last_id + 1) if ($last_id);
+
+ my ($tabledef, $upper_bound, $where_upper_bound, $id, $pk_column);
+ $tabledef = $self->{table}{$table};
+ $pk_column = "";
+ $pk_column = $tabledef->{primary_key};
+ $pk_column = $pk_column->[0] if ($pk_column && ref($pk_column) eq "ARRAY");
+ $upper_bound = $pk_column ?
$tabledef->{column}{$pk_column}{auto_id_upper_bound} : 0;
+ $where_upper_bound = $upper_bound ? " where $pk_column < $upper_bound" : "";
+ $id = $self->{dbh}->selectrow_array("select max($pk_column) from
$table$where_upper_bound");
+ $id = 0 if (!$id);
+ $id ++;
+
+ return $id;
}
1;