]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Make sure sufficient space is allocated for at least one VDBE cursor when
authordrh <drh@noemail.net>
Mon, 14 Sep 2009 23:47:24 +0000 (23:47 +0000)
committerdrh <drh@noemail.net>
Mon, 14 Sep 2009 23:47:24 +0000 (23:47 +0000)
autoincrement is used.  Ticket [a696379c1f088].

FossilOrigin-Name: 2b2a1ef74e24857b8d18f6370894588fc2aa5ebb

manifest
manifest.uuid
src/build.c
test/autoinc.test

index 5db9c79a42d7ef4261085ae9a8730db6aada5ea6..f49a5aa56e97cc2764dff59a1e996164232e406f 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,8 +1,8 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-C Set\sthe\sexecute\spermission\sbit\son\s"configure".
-D 2009-09-11T18:28:53
+C Make\ssure\ssufficient\sspace\sis\sallocated\sfor\sat\sleast\sone\sVDBE\scursor\swhen\nautoincrement\sis\sused.\s\sTicket\s[a696379c1f088].
+D 2009-09-14T23:47:25
 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
 F Makefile.in e360e1214027efbf62cf18ac80ec646d4081c272
 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -112,7 +112,7 @@ F src/btmutex.c 0f43a75bb5b8147b386e8e1c3e71ba734e3863b7
 F src/btree.c 9c425425784c5d569bc0309c22251698ba906451
 F src/btree.h 577448a890c2ab9b21e6ab74f073526184bceebe
 F src/btreeInt.h 1c86297e69380f6577e7ae67452597dd8d5c2705
-F src/build.c f7da9f9a1df77d787965d0ff07d3de53c4ccade5
+F src/build.c 713f27807db7cda05a3e38fb12ad2297413901c8
 F src/callback.c f49c305dc94b78da948953c392963929c0e70f9b
 F src/complete.c 5ad5c6cd4548211867c204c41a126d73a9fbcea0
 F src/date.c 6d936393716d21e6dc0d4222b3443137a60ebe93
@@ -240,7 +240,7 @@ F test/attachmalloc.test cf8cf17d183de357b1147a9baacbdfc85b940b61
 F test/auth.test 0f1237e10ab94108a0a4b3d463ddae3bddf31ed5
 F test/auth2.test ee3ba272e2b975e913afc9b041ee75706e190005
 F test/auth3.test a4755e6a2a2fea547ffe63c874eb569e60a28eb5
-F test/autoinc.test a5affdde12ed6c0430ac0bef02474cc21349ba9b
+F test/autoinc.test 381bba4bd610747564743f15a706a4b373c29817
 F test/autovacuum.test 25f891bc343a8bf5d9229e2e9ddab9f31a9ab5ec
 F test/autovacuum_ioerr2.test 598b0663074d3673a9c1bc9a16e80971313bafe6
 F test/avtrans.test 1e901d8102706b63534dbd2bdd4d8f16c4082650
@@ -753,14 +753,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P 5e0e941f3adf09c5f315e27cefdc968c59aa574e
-R 09f2797eec6c38dcf42883a44801dfe6
+P f8c02b2b720e26a9ca7e35cb8015888fae538351
+R 350133137c3f0af4b0c84284f6d8572f
 U drh
-Z 4d73a53e048e4c6a3fc7a989adce0f3d
+Z b500a4abe8614a669e79470cf20f906b
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.6 (GNU/Linux)
 
-iD8DBQFKqpbpoxKgR168RlERAkqNAKCBPXXsOO7lGhd7TD8BQXyH7onFBQCfYHg7
-a2Oii3CV2NMkh6XCG1VK06w=
-=+NPL
+iD8DBQFKrtYRoxKgR168RlERAgrrAKCErouAmMYoH9zkzTR/jOkT6XOJDACfZKv+
+s9+4YOgaHtWs5h7ziUH6YfM=
+=Z6jj
 -----END PGP SIGNATURE-----
index de14f304c063072aea6006ab6e6573b09e1f49c2..06125b6148c6d2f74dd02c03427551bde2d58da1 100644 (file)
@@ -1 +1 @@
-f8c02b2b720e26a9ca7e35cb8015888fae538351
\ No newline at end of file
+2b2a1ef74e24857b8d18f6370894588fc2aa5ebb
\ No newline at end of file
index f4f62ea823f28be40cdb39d9f8f473f9121a65f6..c23d92fb9bb2c97404ca6cf02bdd378e2547e98b 100644 (file)
@@ -196,6 +196,9 @@ void sqlite3FinishCoding(Parse *pParse){
     sqlite3VdbeTrace(v, trace);
 #endif
     assert( pParse->iCacheLevel==0 );  /* Disables and re-enables match */
+    /* A minimum of one cursor is required if autoincrement is used
+    *  See ticket [a696379c1f08866] */
+    if( pParse->pAinc!=0 && pParse->nTab==0 ) pParse->nTab = 1;
     sqlite3VdbeMakeReady(v, pParse->nVar, pParse->nMem,
                          pParse->nTab, pParse->nMaxArg, pParse->explain,
                          pParse->isMultiWrite && pParse->mayAbort);
index 4c8cf531eb39135a7226334665ed8eb7e6eca108..0207179b1a15df42eb755ce495f92265ec8d4a0b 100644 (file)
@@ -638,4 +638,29 @@ do_test autoinc-3928.7 {
   }
 } {t3928 21 t3928c 6}
 
+# Ticket [a696379c1f0886615541a48b35bd8181a80e88f8]
+do_test autoinc-a69637.1 {
+  db eval {
+    CREATE TABLE ta69637_1(x INTEGER PRIMARY KEY AUTOINCREMENT, y);
+    CREATE TABLE ta69637_2(z);
+    CREATE TRIGGER ra69637_1 AFTER INSERT ON ta69637_2 BEGIN
+      INSERT INTO ta69637_1(y) VALUES(new.z+1);
+    END;
+    INSERT INTO ta69637_2 VALUES(123);
+    SELECT * FROM ta69637_1;
+  }
+} {1 124}
+do_test autoinc-a69637.2 {
+  db eval {
+    CREATE VIEW va69637_2 AS SELECT * FROM ta69637_2;
+    CREATE TRIGGER ra69637_2 INSTEAD OF INSERT ON va69637_2 BEGIN
+      INSERT INTO ta69637_1(y) VALUES(new.z+10000);
+    END;
+    INSERT INTO va69637_2 VALUES(123);
+    SELECT * FROM ta69637_1;
+  }
+} {1 124 2 10123}
+
+
+
 finish_test