From: drh Date: Fri, 25 Nov 2005 02:43:50 +0000 (+0000) Subject: Preserve 64-bit last insert rowids across triggers. (CVS 2779) X-Git-Tag: version-3.6.10~3381 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=94c1f6f7310f50562d71a64321a20f2856cb468a;p=thirdparty%2Fsqlite.git Preserve 64-bit last insert rowids across triggers. (CVS 2779) FossilOrigin-Name: 4dd7cfaa587fd5f76a0b60db0f02d5f57f801564 --- diff --git a/manifest b/manifest index 87df26e4e4..089d1fdaac 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C The\s--enable-cross-thread-connect\sconfiguration\soption\sor\sthe\n-DSQLITE_ALLOW_XTHREAD_CONNECT\scompile-time\soption\spermits\sdatabase\nconnections\sto\sbe\smoved\sacross\sthreads.\s\sThis\swill\scause\slatch-ups\nand\sfailures\son\ssome\slinux\ssystems\ssuch\sas\sRedHat-9.\s\sDo\snot\suse\sthese\noptions\sif\syou\swant\sa\sportable\sbuild.\s(CVS\s2778) -D 2005-11-24T23:14:01 +C Preserve\s64-bit\slast\sinsert\srowids\sacross\striggers.\s(CVS\s2779) +D 2005-11-25T02:43:51 F Makefile.in 7bed51530f32af7fe1945261c388d80998b39a12 F Makefile.linux-gcc aee18d8a05546dcf1888bd4547e442008a49a092 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028 @@ -84,7 +84,7 @@ F src/util.c 48fecbbef4391d102a23096d32f0d74173428406 F src/vacuum.c baae8681282c7a03900043043dc7ce07d43b5a1e F src/vdbe.c f90a0fff5dac2ae11f880fb54e78132640199c44 F src/vdbe.h 8729a4ee16ff9aeab2af9667df3cf300ff978e13 -F src/vdbeInt.h 7824d7be3b659ad177c8f151d9612b45b1805878 +F src/vdbeInt.h 0055c37eccbf3a189fd893a90f8eb6a5fa60c871 F src/vdbeapi.c 85bbe1d0243a89655433d60711b4bd71979b59cd F src/vdbeaux.c eb5f7185a4a714b352c0b6dc804ad3180e03ec06 F src/vdbefifo.c 9efb94c8c3f4c979ebd0028219483f88e57584f5 @@ -167,7 +167,7 @@ F test/join3.test 6f0c774ff1ba0489e6c88a3e77b9d3528fb4fda0 F test/join4.test 1a352e4e267114444c29266ce79e941af5885916 F test/join5.test 2646825693a6e066ea89b498176d4a68df45ab68 F test/journal1.test 36f2d1bb9bf03f790f43fbdb439e44c0657fab19 -F test/lastinsert.test eaa89c6ee1f13062d87139fd32c1e56753d2fd89 +F test/lastinsert.test 9d7241f562d7adcf61730de83176417d7e30d76b F test/laststmtchanges.test 19a6d0c11f7a31dc45465b495f7b845a62cbec17 F test/like.test 145382e6a1f3d2edf266ca7d0236ab1b7c0ba66f F test/limit.test 39f084f4e5f11e0b984cb517b56867cbf88df156 @@ -321,7 +321,7 @@ F www/tclsqlite.tcl ddcf912ea48695603c8ed7efb29f0812ef8d1b49 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 F www/version3.tcl a99cf5f6d8bd4d5537584a2b342f0fb9fa601d8b F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513 -P ab76453553bea7c2371b35e7643a98967bb04582 -R 0b4af885de2ca817be0934b37ce5ef2d +P 84aa4d58001ed943295f21f429c58c3c99b771d8 +R 70d5788f0bbefc851ca5be71e587e730 U drh -Z c8c6cacd38c20efbd6914c121908cdb8 +Z 95428906cd2e78e3ce76462c301ac152 diff --git a/manifest.uuid b/manifest.uuid index df862bea31..4bb1240f96 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -84aa4d58001ed943295f21f429c58c3c99b771d8 \ No newline at end of file +4dd7cfaa587fd5f76a0b60db0f02d5f57f801564 \ No newline at end of file diff --git a/src/vdbeInt.h b/src/vdbeInt.h index 46584986d4..a4db1f73af 100644 --- a/src/vdbeInt.h +++ b/src/vdbeInt.h @@ -250,7 +250,7 @@ struct Fifo { */ typedef struct Context Context; struct Context { - int lastRowid; /* Last insert rowid (sqlite3.lastRowid) */ + i64 lastRowid; /* Last insert rowid (sqlite3.lastRowid) */ int nChange; /* Statement changes (Vdbe.nChanges) */ Fifo sFifo; /* Records that will participate in a DELETE or UPDATE */ }; diff --git a/test/lastinsert.test b/test/lastinsert.test index 35f1ba6602..415ee5ef4c 100644 --- a/test/lastinsert.test +++ b/test/lastinsert.test @@ -341,6 +341,21 @@ do_test lastinsert-7.6 { } } {0 1205} +do_test lastinsert-8.1 { + db close + sqlite3 db test.db + execsql { + CREATE TABLE t2(x INTEGER PRIMARY KEY, y); + CREATE TABLE t3(a, b); + CREATE TRIGGER after_t2 AFTER INSERT ON t2 BEGIN + INSERT INTO t3 VALUES(new.x, new.y); + END; + INSERT INTO t2 VALUES(5000000000, 1); + SELECT last_insert_rowid(); + } +} 5000000000 + + } ;# ifcapable (view && trigger) finish_test