Subject: | last_insert_rowid should handle sqlite_int64, not int |
In SQLite.xs, the return type of last_insert_rowid should be a 64-bit
integer, not an plain "int".
use DBI;
my $dbh = DBI->connect("dbi:SQLite:dbname=:memory:");
$dbh->do("create table foo (a integer not null primary key, b text)");
$dbh->do("insert into foo (a, b) values (12345678901234, 'test')");
my $id = $dbh->func('last_insert_rowid');
print "id=$id ", $id != 12345678901234 ? 'NOT ' : '', "ok\n";
When perl is compiled with 64-bit int support (use64bitint=define), it's
sufficient to use "IV", rather than "int". Other variations are not
covered in the attached patch.
Subject: | patch-SQLite.xs |
--- SQLite.xs.orig 2007-08-22 17:01:07.000000000 -0700
+++ SQLite.xs 2008-01-27 20:28:52.642520098 -0800
@@ -21,7 +21,7 @@
OUTPUT:
RETVAL
-int
+IV
last_insert_rowid(dbh)
SV *dbh
CODE: