]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge all recent enhancements from trunk.
authordrh <drh@noemail.net>
Tue, 2 Feb 2016 02:22:30 +0000 (02:22 +0000)
committerdrh <drh@noemail.net>
Tue, 2 Feb 2016 02:22:30 +0000 (02:22 +0000)
FossilOrigin-Name: f3f9200115caf4b356f90ec97c351d1afbcb9bf6

14 files changed:
1  2 
Makefile.in
Makefile.msc
main.mk
manifest
manifest.uuid
src/delete.c
src/insert.c
src/sqlite.h.in
src/sqliteInt.h
src/tclsqlite.c
src/vdbe.c
src/vdbeInt.h
src/vdbeapi.c
src/vdbeaux.c

diff --cc Makefile.in
Simple merge
diff --cc Makefile.msc
index 08f75bf82a405df991e5807b39966b5b76f1b7d0,3427b8177a406c5dac61a7db44db1b35fbacc435..0a0a99f0ba5c07f2bb6b2616327ad2d5497d92a2
@@@ -1849,11 -1966,7 +1994,11 @@@ showwal.exe:  $(TOP)\tool\showwal.c $(SQ
        $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
                $(TOP)\tool\showwal.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  
- fts3view.exe: $(TOP)\ext\fts3\tool\fts3view.c $(SQLITE3C)
 +changeset.exe:        $(TOP)\ext\session\changeset.c $(SQLITE3C)
 +      $(LTLINK) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
 +              $(TOP)\ext\session\changeset.c $(SQLITE3C)
 +
+ fts3view.exe: $(TOP)\ext\fts3\tool\fts3view.c $(SQLITE3C) $(SQLITE3H)
        $(LTLINK) $(NO_WARN) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION -Fe$@ \
                $(TOP)\ext\fts3\tool\fts3view.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
  
@@@ -1894,10 -2009,9 +2041,10 @@@ clean
        del /Q testloadext.dll 2>NUL
        del /Q testfixture.exe test.db 2>NUL
        del /Q LogEst.exe fts3view.exe rollback-test.exe showdb.exe 2>NUL
 +      del /Q changeset.exe 2>NUL
        del /Q showjournal.exe showstat4.exe showwal.exe speedtest1.exe 2>NUL
-       del /Q mptester.exe wordcount.exe 2>NUL
-       del /Q sqlite3.exe sqlite3.dll sqlite3.def 2>NUL
+       del /Q mptester.exe wordcount.exe rbu.exe 2>NUL
+       del /Q $(SQLITE3EXE) $(SQLITE3DLL) sqlite3.def 2>NUL
        del /Q sqlite3.c sqlite3-*.c 2>NUL
        del /Q sqlite3rc.h 2>NUL
        del /Q shell.c sqlite3ext.h 2>NUL
diff --cc main.mk
index 90b4f89b0e9e0c983af241574f7eb1bc3e6b3ac6,1dda2d153f014c0d1ac347c43810d4cbfcb03278..51b0c48c1d65f3d34162b83331007b6d5b5ca814
+++ b/main.mk
@@@ -907,9 -890,9 +907,10 @@@ clean
        rm -f showjournal showjournal.exe
        rm -f showstat4 showstat4.exe
        rm -f showwal showwal.exe
 +      rm -f changeset changeset.exe
        rm -f speedtest1 speedtest1.exe
        rm -f wordcount wordcount.exe
+       rm -f rbu rbu.exe
        rm -f sqlite3.c sqlite3-*.c fts?amal.c tclsqlite3.c
        rm -f sqlite3rc.h
        rm -f shell.c sqlite3ext.h
diff --cc manifest
index 5649e9098855569e6b336b85faf0a13c25bb740b,3952435799a1b1f19f6ce7c9e9197d2efe02f89a..d3554573d4c012b3843a222ee6ef9a0e54992eba
+++ b/manifest
@@@ -1,8 -1,8 +1,8 @@@
- C Merge\sthe\sLIKE-operator\sbug\sfix\sfrom\strunk.
- D 2016-01-20T16:02:48.763
- F Makefile.in a47ec69daac0cdfe3413e50ceea6dc8da3dc4ecb
 -C Enhance\sthe\scomment\son\sthe\ssqlite3_index_constraint\sobject\sto\sbring\sattention\s\nto\sthe\sfact\sthan\siColumn\sfield\scan\sbe\snegative\sfor\sa\srowid.
 -D 2016-02-02T02:04:21.840
 -F Makefile.in 027c1603f255390c43a426671055a31c0a65fdb4
++C Merge\sall\srecent\senhancements\sfrom\strunk.
++D 2016-02-02T02:22:30.647
++F Makefile.in b12720a3957eb741a77a41d3412745b80ac3fa5d
  F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
- F Makefile.msc b4d0270955b3f102214b2242f2a1b802c22ee21b
 -F Makefile.msc 72b7858f02017611c3ac1ddc965251017fed0845
++F Makefile.msc c6dfe4708e38482130e3ccc374be6d5ca4aeb26e
  F README.md 8ecc12493ff9f820cdea6520a9016001cb2e59b7
  F VERSION 866588d1edf0ccb5b0d33896974338f97564f719
  F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
@@@ -10,10 -10,11 +10,11 @@@ F art/sqlite370.eps aa97a671332b432a54e
  F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90
  F art/sqlite370.jpg d512473dae7e378a67e28ff96a34da7cb331def2
  F autoconf/INSTALL 83e4a25da9fd053c7b3665eaaaf7919707915903
- F autoconf/Makefile.am 089e5ecdb5761e64ea1013ded02feb4d8b29927d
- F autoconf/README 14458f1046c118efa721aadec5f227e876d3cd38
+ F autoconf/Makefile.am 1c1657650775960804945dc392e14d9e43c5ed84
+ F autoconf/Makefile.msc 2ce3b1565a52d7083a1dbf57a1706fd14cc1ee0c
  F autoconf/README.first 6c4f34fe115ff55d4e8dbfa3cecf04a0188292f7
- F autoconf/configure.ac 7b1ea0dcaf49fafba262ce4b0ee8cb3281b555d1
 -F autoconf/README.txt e9757a381e5ce2553dbaa6247bb8ad00eb8d87aa
++F autoconf/README.txt e9757a381e5ce2553dbaa6247bb8ad00eb8d87aa w autoconf/README
+ F autoconf/configure.ac 72a5e42beb090b32bca580285dc0ab3c4670adb8
  F autoconf/tea/Makefile.in b438a7020446c8a8156e8d97c8914a04833da6fd
  F autoconf/tea/README 3e9a3c060f29a44344ab50aec506f4db903fb873
  F autoconf/tea/aclocal.m4 52c47aac44ce0ddb1f918b6993e8beb8eee88f43
@@@ -289,7 -271,7 +291,7 @@@ F ext/userauth/userauth.c 5fa3bdb492f48
  F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
  F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
  F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60
- F main.mk ad2c0fe02599cf4d58d13776ee57be1e53883909
 -F main.mk 960071a0bceb043bc5627573986154f507931f33
++F main.mk 9a8522feb55a25b14024ff749079fb470fe77acb
  F mkso.sh fd21c06b063bb16a5d25deea1752c2da6ac3ed83
  F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
  F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504
@@@ -316,17 -298,17 +318,17 @@@ F src/callback.c 29ae4faba226c7ebb9aee9
  F src/complete.c addcd8160b081131005d5bc2d34adf20c1c5c92f
  F src/ctime.c 60e135af364d777a9ab41c97e5e89cd224da6198
  F src/date.c 997651e3ee6c2818fbf7fcdb7156cef9eb3ece20
- F src/dbstat.c ffd63fc8ba7541476ced189b95e95d7f2bc63f78
- F src/delete.c 86e3940d07fe69a40270c2aaf6ca6c7adf19246c
- F src/expr.c df0d7c3230d59abd679da22ff5ce4cfd0e3a0e63
+ F src/dbstat.c b2ec6793eef97aebb4d171d490a4ffdfa9f2475c
 -F src/delete.c 33ed87dc0746b1f8ce186f62b608bf40801af9c0
++F src/delete.c b6d96db8c7e01ddf1448381c9afd26c7eb4d20d3
+ F src/expr.c d10c1cdef5810cdbf73adc9f9b383684230b360a
  F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
- F src/fkey.c e18b3dff7d47c7bcac5ac4fc178a89b9fd322b44
- F src/func.c ba6c03f9e440f5693086c08ee88e6e60212b3504
+ F src/fkey.c c66d3e5b35d4d95b5c1e2ee6c12f5df13a7f9ad6
+ F src/func.c 42b24923328f65849f52f1659efb2a0907ad78fd
  F src/global.c bd5a0af3f30b0c01be6db756c626cd3c33a3d260
  F src/hash.c 4263fbc955f26c2e8cdc0cf214bc42435aa4e4f5
  F src/hash.h c8f3c31722cf3277d03713909761e152a5b81094
  F src/hwtime.h d32741c8f4df852c7d959236615444e2b1063b08
- F src/insert.c 0be969e32a28107a4a7008ea4fe7cb15ff47b0ef
 -F src/insert.c 410f52b9ef4603dc0aebb169b7cb6b3c60eda07e
++F src/insert.c ca97b03d6eccbe9eb79c4091722660625fb55495
  F src/journal.c b4124532212b6952f42eb2c12fa3c25701d8ba8d
  F src/legacy.c ba1863ea58c4c840335a84ec276fc2b25e22bc4e
  F src/loadext.c 84996d7d70a605597d79c1f1d7b2012a5fd34f2b
@@@ -365,16 -347,16 +367,16 @@@ F src/printf.c 98a5cef7fc84577ab8a3098c
  F src/random.c ba2679f80ec82c4190062d756f22d0c358180696
  F src/resolve.c 9f7ce3a3c087afb7597b7c916c99126ff3f12f0c
  F src/rowset.c eccf6af6d620aaa4579bd3b72c1b6395d9e9fa1e
- F src/select.c 718954db86277d696c520fe671148db1e9c4ed3c
+ F src/select.c ea6f3b0c279aa37eb3701792d094673a7ad1bf88
 -F src/shell.c dcd7a83645ef2a58ee9c6d0ea4714d877d7835c4
 -F src/sqlite.h.in cf22ad1d52dca2c9862d63833e581028119aab7e
 +F src/shell.c 01e109c27300379b1c35b254cd294cde635f0179
- F src/sqlite.h.in bb645ccc4090a6e95e7b5d92818f46e41033d076
- F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad
++F src/sqlite.h.in 301c01f7c514cbb9ff5110889ea24e1a9715edac
+ F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
  F src/sqlite3ext.h dfbe62ffd95b99afe2140d8c35b180d11924072d
- F src/sqliteInt.h cf3ca8ec73daef3b744d41663e124c2275fb6f26
 -F src/sqliteInt.h 2f80b9b1506a8d602b2a99f3f0bfae22df3e7d70
++F src/sqliteInt.h c44a27bbb24b842e69812f115b74a90909b90f29
  F src/sqliteLimit.h 216557999cb45f2e3578ed53ebefe228d779cb46
  F src/status.c 70912d7be68e9e2dbc4010c93d344af61d4c59ba
  F src/table.c 51b46b2a62d1b3a959633d593b89bab5e2c9155e
- F src/tclsqlite.c b2fa693e57720dc87c18183dd5c0399bf7038ebd
 -F src/tclsqlite.c 94ef6e2794220c5b6064d4c78ec7169a8c5cc45d
++F src/tclsqlite.c 769c38453ec3e9dfc60822ed1d17f4bc76de1db6
  F src/test1.c 4f1b42699068b7806af3111786f5ad760c2c1ff7
  F src/test2.c 5586f43fcd9a1be0830793cf9d354082c261b25b
  F src/test3.c a8887dabbbee3059af338f20d290084a63ed1b0f
@@@ -424,23 -406,23 +426,23 @@@ F src/test_windirent.h b12055cab6227f7b
  F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9
  F src/threads.c bbfb74450643cb5372a43ad4f6cffd7e9dfcecb0
  F src/tokenize.c 5606871a377f390af7040ec3c12e0d183512d785
- F src/treeview.c 78842e90c1f71269e7a73a1d4221b6fe360bab66
- F src/trigger.c 056e51182a3677434423e3be0c74e61b90b4a663
+ F src/treeview.c dc39ccf04e9331237388b9cb73289c9d87ea050b
+ F src/trigger.c 72d876b2d0c66604a112362bdae07dae9b104816
 -F src/update.c 17332f9fe818cbc0444c36a811800af8498af4c3
 +F src/update.c d8d675aa299336ac086ad2039d7e812cd6237db0
- F src/utf.c 32d7f82aa921322f3e1c956f4b58f019ebd2c6b3
- F src/util.c e802e8e311a0d6c48cd1b3e89db164f6f0248d70
+ F src/utf.c 10cc2519e82e3369344d0969ad4b1a333dc86d18
+ F src/util.c 72d40df0a52d3f30b462a15f0e094fcbade6dc82
  F src/vacuum.c 2ddd5cad2a7b9cef7f9e431b8c7771634c6b1701
- F src/vdbe.c 1443ca69877410c90ba521220d4336d5ef689cdd
 -F src/vdbe.c a0a0ada4b51161d3950fe30fc696b6c8235a841f
 -F src/vdbe.h 7a733ea8aac1b77305a67698e784fa3484ee3337
 -F src/vdbeInt.h 4b69d5451bcadd473e745af53ef1e8abfdce0a79
 -F src/vdbeapi.c 9d640d5efd9a140a6bda8da53b220aa258167993
 -F src/vdbeaux.c f0e7cfa04f7ac44d69866868531dbaf20659d0a2
 -F src/vdbeblob.c 37c3d11a753e403698c69e17383d282e1ae73e75
 -F src/vdbemem.c b9181e77eca2a095929d46250daf85c8d2621fc0
++F src/vdbe.c c5244f9750e778a0c5501d6cffa3bfda508f2f2a
 +F src/vdbe.h 19162d5d75d00ee9e634ad630f2a873e1cf76359
- F src/vdbeInt.h 1bff4effc71888e3f304e2e6ac7484e39ab78c28
- F src/vdbeapi.c 75fa852c0d6e7e9c1334aaaa91b6821cba6a713b
- F src/vdbeaux.c 3781db199a8d9376c9512fb7e1304aae7af67dfa
++F src/vdbeInt.h 2a8796b099a463cf6c32514f8aa138d3b0c36b23
++F src/vdbeapi.c 648ebb95c1a60ced4f0e23ecfb12b43d6aca55ec
++F src/vdbeaux.c e41d494842aaa8b6d47d9d40bb58b1aa4bb3ddaa
 +F src/vdbeblob.c 6ccda01a78b3f9d9a0c75f79e7a1150f3fb0cb39
 +F src/vdbemem.c 6c962ee0a77de009dafb6d7f3c7e8bf7b82c47f8
- F src/vdbesort.c 0971557e5d3c289e46f56a52aed2197c13251de7
- F src/vdbetrace.c 8befe829faff6d9e6f6e4dee5a7d3f85cc85f1a0
+ F src/vdbesort.c ef3c6d1f1a7d44cf67bb2bee59ea3d1fe5bad174
+ F src/vdbetrace.c f75c5455d8cf389ef86a8bfdfd3177e0e3692484
  F src/vtab.c 320682cca733115b4cbe71320b5c5eeb1074ebde
- F src/vxworks.h 974e7d9a98f602d6310d563e1dc4e08f9fc48e47
+ F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
  F src/wal.c d21b99fd1458159d0b1ecdccc8ee6ada4fdc4c54
  F src/wal.h 2f7c831cf3b071fa548bf2d5cac640846a7ff19c
  F src/walker.c 0f142b5bd3ed2041fc52d773880748b212e63354
@@@ -1440,7 -1422,7 +1443,7 @@@ F tool/vdbe_profile.tcl 246d0da094856d7
  F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
  F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b
  F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
- P 327af5f644a49b2f41d5456958f9d61a2b704e1c e8adeb64d4e463772feb58dbd6f00715b92e735c
- R ed9d6c66302fd811ae6a8e53c4d95620
 -P 6d7d4703ebf3754bec74123d5ba7e861a705f90f
 -R a0fd58918162f72722cea72a597641d9
++P 36cb3d6e274a06a78693ca506feaad0b14bde11d d8b7b1996eefae7768bfcb82d4ff22c69392aa63
++R a6848fc70bf84dd1da28684cee4a5e04
  U drh
- Z 8662dc0834e686268b7ae44f172fcd73
 -Z 8a77cde1543981fcb216eb719b02e019
++Z 8c0e589f1ff041b7f5f063df66382fc8
diff --cc manifest.uuid
index df02854c570fe3da20e9e8d4116a643c583d4283,dae04066fbaa312f339c9256a39d33056da6fae1..1979b8ac777b0f305ff8703afc829f082c9ce473
@@@ -1,1 -1,1 +1,1 @@@
- 36cb3d6e274a06a78693ca506feaad0b14bde11d
 -d8b7b1996eefae7768bfcb82d4ff22c69392aa63
++f3f9200115caf4b356f90ec97c351d1afbcb9bf6
diff --cc src/delete.c
index 68c4c4b3609554c4c9312df96b659d8e48b6c833,5b5a5e3cb1000e4fc4568d9f2f3a9bef0a676571..feda71bf8da7543207c22e60894ff586b051b03c
@@@ -719,18 -715,17 +718,22 @@@ void sqlite3GenerateRowDelete
  
    /* Delete the index and table entries. Skip this step if pTab is really
    ** a view (in which case the only effect of the DELETE statement is to
 -  ** fire the INSTEAD OF triggers).  */ 
 +  ** fire the INSTEAD OF triggers).  
 +  **
 +  ** If variable 'count' is non-zero, then this OP_Delete instruction should
 +  ** invoke the update-hook. The pre-update-hook, on the other hand should
 +  ** be invoked unless table pTab is a system table. The difference is that
 +  ** the update-hook is not invoked for rows removed by REPLACE, but the 
 +  ** pre-update-hook is.
 +  */ 
    if( pTab->pSelect==0 ){
+     u8 p5 = 0;
      sqlite3GenerateRowIndexDelete(pParse, pTab, iDataCur, iIdxCur,0,iIdxNoSeek);
      sqlite3VdbeAddOp2(v, OP_Delete, iDataCur, (count?OPFLAG_NCHANGE:0));
 -    if( count ){
 -      sqlite3VdbeChangeP4(v, -1, pTab->zName, P4_TRANSIENT);
 -    }
 +    sqlite3VdbeChangeP4(v, -1, (char*)pTab, P4_TABLE);
+     if( eMode!=ONEPASS_OFF ){
+       sqlite3VdbeChangeP5(v, OPFLAG_AUXDELETE);
+     }
      if( iIdxNoSeek>=0 ){
        sqlite3VdbeAddOp1(v, OP_Delete, iIdxNoSeek);
      }
diff --cc src/insert.c
Simple merge
diff --cc src/sqlite.h.in
Simple merge
diff --cc src/sqliteInt.h
index 25871ff68427c636beba40eeed4551134fe4699e,dbe1595af9e780477216e7fa1e1c725634fcf196..3da16465cf14e794dafd737b11be06aae5c96798
@@@ -2854,11 -2846,9 +2854,12 @@@ struct AuthContext 
  
  /*
  ** Bitfield flags for P5 value in various opcodes.
 +**
 +** Note that the values for ISNOOP and LENGTHARG are the same.  But as 
 +** those bits are never used on the same opcode, the overlap is harmless.
  */
- #define OPFLAG_NCHANGE       0x01    /* Set to update db->nChange */
+ #define OPFLAG_NCHANGE       0x01    /* OP_Insert: Set to update db->nChange */
+                                      /* Also used in P2 (not P5) of OP_Delete */
  #define OPFLAG_EPHEM         0x01    /* OP_Column: Ephemeral output is ok */
  #define OPFLAG_LASTROWID     0x02    /* Set to update db->lastRowid */
  #define OPFLAG_ISUPDATE      0x04    /* This OP_Insert is an sql UPDATE */
diff --cc src/tclsqlite.c
Simple merge
diff --cc src/vdbe.c
index 786534df8a451ad6fb86bbb44e1761324246bae9,1cf4cb16a75b56252331f28763e8ab9518182330..5d68d2632afa1fa1328b920fce23e4cea06e6c42
@@@ -4440,8 -4376,25 +4431,27 @@@ case OP_Delete: 
    }
  #endif
  
 +  if( opflags & OPFLAG_ISNOOP ) break;
 + 
+   /* Only flags that can be set are SAVEPOISTION and AUXDELETE */ 
+   assert( (pOp->p5 & ~(OPFLAG_SAVEPOSITION|OPFLAG_AUXDELETE))==0 );
+   assert( OPFLAG_SAVEPOSITION==BTREE_SAVEPOSITION );
+   assert( OPFLAG_AUXDELETE==BTREE_AUXDELETE );
+ #ifdef SQLITE_DEBUG
+   if( p->pFrame==0 ){
+     if( pC->isEphemeral==0
+         && (pOp->p5 & OPFLAG_AUXDELETE)==0
+         && (pC->wrFlag & OPFLAG_FORDELETE)==0
+       ){
+       nExtraDelete++;
+     }
+     if( pOp->p2 & OPFLAG_NCHANGE ){
+       nExtraDelete--;
+     }
+   }
+ #endif
    rc = sqlite3BtreeDelete(pC->uc.pCursor, pOp->p5);
    pC->cacheStatus = CACHE_STALE;
  
diff --cc src/vdbeInt.h
Simple merge
diff --cc src/vdbeapi.c
Simple merge
diff --cc src/vdbeaux.c
Simple merge