ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/PApp-SQL/SQL.pm
(Generate patch)

Comparing PApp-SQL/SQL.pm (file contents):
Revision 1.42 by root, Sat Oct 7 15:54:35 2017 UTC vs.
Revision 1.43 by root, Mon Mar 4 06:25:32 2019 UTC

45use DBI (); 45use DBI ();
46 46
47BEGIN { 47BEGIN {
48 use base qw(Exporter DynaLoader); 48 use base qw(Exporter DynaLoader);
49 49
50 $VERSION = '2.001'; 50 $VERSION = '2.002';
51 @EXPORT = qw( 51 @EXPORT = qw(
52 sql_exec sql_fetch sql_fetchall sql_exists sql_insertid $sql_exec 52 sql_exec sql_fetch sql_fetchall sql_exists sql_insertid $sql_exec
53 sql_uexec sql_ufetch sql_ufetchall sql_uexists 53 sql_uexec sql_ufetch sql_ufetchall sql_uexists
54 ); 54 );
55 @EXPORT_OK = qw( 55 @EXPORT_OK = qw(
298Returns the last automatically created key value. It must be executed 298Returns the last automatically created key value. It must be executed
299directly after executing the insert statement that created it. This is 299directly after executing the insert statement that created it. This is
300what is actually returned for various databases. If your database is 300what is actually returned for various databases. If your database is
301missing, please send me an e-mail on how to implement this ;) 301missing, please send me an e-mail on how to implement this ;)
302 302
303 mariadb: first C<AUTO_INCREMENT> column set to NULL
303 mysql: first C<AUTO_INCREMENT> column set to NULL 304 mysql: first C<AUTO_INCREMENT> column set to NULL
304 postgres: C<oid> column (is there a way to get the last SERIAL?) 305 postgres: C<oid> column (is there a way to get the last SERIAL?)
305 sybase: C<IDENTITY> column of the last insert (slow) 306 sybase: C<IDENTITY> column of the last insert (slow)
306 informix: C<SERIAL> or C<SERIAL8> column of the last insert 307 informix: C<SERIAL> or C<SERIAL8> column of the last insert
307 sqlite: C<last_insert_rowid()> 308 sqlite: C<last_insert_rowid()>
313sub sql_insertid($) { 314sub sql_insertid($) {
314 my $sth = shift or Carp::croak "sql_insertid requires a statement handle"; 315 my $sth = shift or Carp::croak "sql_insertid requires a statement handle";
315 my $dbh = $sth->{Database}; 316 my $dbh = $sth->{Database};
316 my $driver = $dbh->{Driver}{Name}; 317 my $driver = $dbh->{Driver}{Name};
317 318
319 $driver eq "MariaDB" and return $sth->{mariadb_insertid};
318 $driver eq "mysql" and return $sth->{mysql_insertid}; 320 $driver eq "mysql" and return $sth->{mysql_insertid};
319 $driver eq "Pg" and return $sth->{pg_oid_status}; 321 $driver eq "Pg" and return $sth->{pg_oid_status};
320 $driver eq "Sybase" and return sql_fetch ($dbh, 'SELECT @@IDENTITY'); 322 $driver eq "Sybase" and return sql_fetch ($dbh, 'SELECT @@IDENTITY');
321 $driver eq "Informix" and return $sth->{ix_sqlerrd}[1]; 323 $driver eq "Informix" and return $sth->{ix_sqlerrd}[1];
322 $driver eq "SQLite" and return sql_fetch ($dbh, 'SELECT last_insert_rowid ()'); 324 $driver eq "SQLite" and return sql_fetch ($dbh, 'SELECT last_insert_rowid ()');
323 325
324 Carp::croak "sql_insertid does not support the dbd driver '$driver', at"; 326 $dbh->last_insert_id (undef, undef, undef, undef)
325} 327}
326 328
327=item [old-size] = cachesize [new-size] 329=item [old-size] = cachesize [new-size]
328 330
329Returns (and possibly changes) the LRU cache size used by C<sql_exec>. The 331Returns (and possibly changes) the LRU cache size used by C<sql_exec>. The

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines