]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge in all the trunk enhancements of the previous 7 months. The LIKE est_count_pragma
authordrh <drh@noemail.net>
Fri, 22 Sep 2017 20:18:41 +0000 (20:18 +0000)
committerdrh <drh@noemail.net>
Fri, 22 Sep 2017 20:18:41 +0000 (20:18 +0000)
optimization has stopped working when there is an ESCAPE - that problem will
be addressed in a subsequent check-in.

FossilOrigin-Name: 8d2a1cca613f75fb4b1a050cf7ea03b74a4d98f4c56d8079201035d7fdc49e85

13 files changed:
1  2 
main.mk
manifest
manifest.uuid
src/btree.c
src/btree.h
src/build.c
src/parse.y
src/pragma.c
src/pragma.h
src/sqliteInt.h
src/vdbe.c
test/without_rowid1.test
tool/mkpragmatab.tcl

diff --cc main.mk
Simple merge
diff --cc manifest
index fdd93eef09e9ba5426e30d3d10be5eb0ea5124eb,1938515870514ab9309d9f5f34b37f11b8392eda..4dcf11f5e69ac88ac4d8e7842761b982679ddcb2
+++ b/manifest
@@@ -1,10 -1,10 +1,10 @@@
- C Merge\srecent\senhancements\sfrom\strunk.
- D 2017-02-16T14:02:04.692
- F Makefile.in edb6bcdd37748d2b1c3422ff727c748df7ffe918
 -C Use\sthe\supdated\sWin32\sVFS\ssemantics\sfor\swinOpen\sfrom\scheck-in\s[5d03c738e9]\sfor\sWinRT,\set\sal,\sas\swell.
 -D 2017-09-22T16:23:23.946
++C Merge\sin\sall\sthe\strunk\senhancements\sof\sthe\sprevious\s7\smonths.\s\sThe\sLIKE\noptimization\shas\sstopped\sworking\swhen\sthere\sis\san\sESCAPE\s-\sthat\sproblem\swill\nbe\saddressed\sin\sa\ssubsequent\scheck-in.
++D 2017-09-22T20:18:41.272
+ F Makefile.in 4bc36d913c2e3e2d326d588d72f618ac9788b2fd4b7efda61102611a6495c3ff
  F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
- F Makefile.msc 067a6766f800cc8d72845ab61f8de4ffe8f3fc99
- F README.md 8ecc12493ff9f820cdea6520a9016001cb2e59b7
- F VERSION 3605fa447e4623f5ff4a6adc97b1fde9a257b8f2
+ F Makefile.msc 6033b51b6aea702ea059f6ab2d47b1d3cef648695f787247dd4fb395fe60673f
+ F README.md f5c87359573c4d255425e588a56554b50fdcc2afba4e017a2e02a43701456afd
+ F VERSION f81232df28e2d3ff049feefad5fbd5489cc33697f6bd2ecf61af7f0dde3b83d0
  F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
  F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2
  F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90
@@@ -30,13 -30,13 +30,13 @@@ F autoconf/tea/win/rules.vc c511f222b80
  F config.guess 226d9a188c6196f3033ffc651cbc9dcee1a42977
  F config.h.in 6376abec766e9a0785178b1823b5a587e9f1ccbc
  F config.sub 9ebe4c3b3dab6431ece34f16828b594fb420da55
- F configure b15d030a8ae2e672d76c97b6667dacb98934a467 x
- F configure.ac 605173e829ab64514ed89f9b53d0da1739d7b0a0
+ F configure e9dbb65b61c36bb9622225de254b768d4816749ff4cb4d71307bb067095aceec x
+ F configure.ac 369ebae6c04d9d2de5064e21d300f2f42f2fbf13235cabff9d1a54f2b2c4d05d
  F contrib/sqlitecon.tcl 210a913ad63f9f991070821e599d600bd913e0ad
- F doc/lemon.html b5a3c07d33ecb8e019ce8f7660fe2dbbad9d7977
+ F doc/lemon.html 278113807f49d12d04179a93fab92b5b917a08771152ca7949d34e928efa3941
  F doc/pager-invariants.txt 27fed9a70ddad2088750c4a2b493b63853da2710
  F doc/vfs-shm.txt e101f27ea02a8387ce46a05be2b1a902a021d37a
- F ext/README.txt 913a7bd3f4837ab14d7e063304181787658b14e1
 -F ext/README.md fd5f78013b0a2bc6f0067afb19e6ad040e89a10179b4f6f03eee58fac5f169bd
++F ext/README.md fd5f78013b0a2bc6f0067afb19e6ad040e89a10179b4f6f03eee58fac5f169bd w ext/README.txt
  F ext/async/README.txt e12275968f6fde133a80e04387d0e839b0c51f91
  F ext/async/sqlite3async.c 0f3070cc3f5ede78f2b9361fb3b629ce200d7d74
  F ext/async/sqlite3async.h f489b080af7e72aec0e1ee6f1d98ab6cf2e4dcef
@@@ -318,7 -382,7 +382,7 @@@ F ext/userauth/userauth.c 3410be31283ab
  F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
  F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
  F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60
- F main.mk 50ef2b2b02d0907151f40a3bcc6abaf9f855b6aa
 -F main.mk d0145f02deb67d65c4822225847cba112c237cdb62f4905eeb4b648e82bfc222
++F main.mk 018c64f868af7027c22d7e39ee94e3826f86db53b111ce402bd6bd188e7e0fec
  F mkso.sh fd21c06b063bb16a5d25deea1752c2da6ac3ed83
  F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
  F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504
@@@ -337,22 -401,22 +401,22 @@@ F src/auth.c 6277d63837357549fe14e72349
  F src/backup.c faf17e60b43233c214aae6a8179d24503a61e83b
  F src/bitvec.c 17ea48eff8ba979f1f5b04cc484c7bb2be632f33
  F src/btmutex.c 0e9ce2d56159b89b9bc8e197e023ee11e39ff8ca
- F src/btree.c ab9cb31e13ee1742456230d5a291bac8abea9d23
- F src/btree.h fef389999fda3984800d55ea563e1b52debe13ab
- F src/btreeInt.h cd55d39d9916270837a88c12e701047cba0729b0
- F src/build.c 26f9e24b58a801d070a621440fb6624bace28b9f
- F src/callback.c 2e76147783386374bf01b227f752c81ec872d730
 -F src/btree.c 1c2b2f1714c411d7a9bc52c90d9dd7eab261261d5691ac0f67e1ced92419799c
 -F src/btree.h 32ef5d3f25dc70ef1ee9cecf84a023c21378f06a57cd701d2e866e141b150f09
++F src/btree.c 9c273587506a42f1961840b7bf423a3bfe0783a04cba707e792dec4db637b9ff
++F src/btree.h 90eae6df0e4e9aada570980f7b0473a6f705b563bd49183b9adeebd278d8e3db
+ F src/btreeInt.h 55b702efce17e5d1941865464227d3802cfc9c7c832fac81d4c94dced47a71fc
 -F src/build.c e71e96a67daf3d1dd23188423e66cd6af38017e2ec73fead5d2b57da2d3c7e16
++F src/build.c ff2ea9709d2cfb83ad8caee97541a89d099f46b46ff4ec278bf5e55824c6f99d
+ F src/callback.c 28a8ede982fde4129b828350f78f2c01fe7d12c74d1a0a05d7108ab36f308688
  F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
- F src/ctime.c a9984df73898c042a5cfc8f9d8e7723d02bc35c9
- F src/date.c dc3f1391d9297f8c748132813aaffcb117090d6e
- F src/dbstat.c 19ee7a4e89979d4df8e44cfac7a8f905ec89b77d
- F src/delete.c 0d9d5549d42e79ce4d82ff1db1e6c81e36d2f67c
- F src/expr.c 38bd92fcbd86b3904bfa29e477412e374b7df5a2
+ F src/ctime.c ff1be3eed7bdd75aaca61ca8dc848f7c9f850ef2fb9cb56f2734e922a098f9c0
+ F src/date.c 48f743d88bbe88f848532d333cca84f26e52a4f217e86f86be7fc1b919c33d74
+ F src/dbstat.c 7a4ba8518b6369ef3600c49cf9c918ad979acba610b2aebef1b656d649b96720
+ F src/delete.c 21a5f1812fdb599e9f7afb9f650bdabab60a3afd51d7e94e539c982f647b0023
+ F src/expr.c 82fedd57c8ce9e7dc16a003ad4cd863308787d5b5cbd0f83263b37805a56319c
  F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
- F src/fkey.c 2e9aabe1aee76273aff8a84ee92c464e095400ae
- F src/func.c c67273e1ec08abbdcc14c189892a3ff6eeece86b
- F src/global.c 4a34512d82fc5aa13c802db06bcfff5e1d3de955
- F src/hash.c 63d0ee752a3b92d4695b2b1f5259c4621b2cfebd
+ F src/fkey.c 5ff2c895fe087756d8085dc1a9bc229b5670e2a65c3929dd87c71e43649af333
+ F src/func.c b4d259af627e3cd9510cf08db37f0bcc88b1887c735169c74490c3739d5cf5c6
+ F src/global.c ac3094f1dc59fbeb919aef7cc0cc827a8459d1fb1adb7972ef75bd9e0c10b75b
+ F src/hash.c a12580e143f10301ed5166ea4964ae2853d3905a511d4e0c44497245c7ce1f7a
  F src/hash.h ab34c5c54a9e9de2e790b24349ba5aab3dbb4fd4
  F src/hwtime.h 747c1bbe9df21a92e9c50f3bbec1de841dc5e5da
  F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71
@@@ -378,40 -442,41 +442,41 @@@ F src/os.c 93e0979b9b55df29c0c4923f73b4
  F src/os.h 8e976e59eb4ca1c0fca6d35ee803e38951cb0343
  F src/os_common.h b2f4707a603e36811d9b1a13278bffd757857b85
  F src/os_setup.h 0dbaea40a7d36bf311613d31342e0b99e2536586
- F src/os_unix.c 30e2c43e4955db990e5b5a81e901f8aa74cc8820
- F src/os_win.c cf90abd4e50d9f56d2c20ce8e005aff55d7bd8e9
+ F src/os_unix.c 3984fc069df59e26f000e30609611cecdb4e93293e6ee52313a473a7e874af1b
+ F src/os_win.c 6892c3ff23b7886577e47f13d827ca220c0831bae3ce00eea8c258352692f8c6
  F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
- F src/pager.c ff1232b3088a39806035ecfac4fffeb22717d80b
- F src/pager.h f2a99646c5533ffe11afa43e9e0bea74054e4efa
- F src/parse.y 26827d624da07780662fa4967ade033b414cb9a8
- F src/pcache.c 62835bed959e2914edd26afadfecce29ece0e870
- F src/pcache.h 2cedcd8407eb23017d92790b112186886e179490
- F src/pcache1.c e3967219b2a92b9edcb9324a4ba75009090d3953
- F src/pragma.c 0457012c3c0bbfc193c5e447bd4b64fd300edc1b
- F src/pragma.h 5d3266fb4d4bbbbcd00cc81342c6357b38ad1ea4
- F src/prepare.c b1140c3d0cf59bc85ace00ce363153041b424b7a
- F src/printf.c 67427bbee66d891fc6f6f5aada857e9cdb368c1c
+ F src/pager.c 2aa56a99bb13128d9102e84c7a9f835e546cbb58f0861d481bc3db32973b1628
+ F src/pager.h 581698f2177e8bd4008fe4760898ce20b6133d1df22139b9101b5155f900df7a
 -F src/parse.y 52ef3cecd0934e9da4a45b585883a03243ad615d338ad94f44501a05891dcdfa
++F src/parse.y 6fa01cadb6c1d29ce623bbb5f4001f92962d171e41dcdcd4d05ef0509f5ceabe
+ F src/pcache.c 4bada070456980c3c1f16d58ec2e64e389ad77b935e3d77e0c96e7bbd397289c
+ F src/pcache.h 072f94d29281cffd99e46c1539849f248c4b56ae7684c1f36626797fee375170
+ F src/pcache1.c 716975564c15eb6679e97f734cec1bfd6c16ac3d4010f05f1f8e509fc7d19880
 -F src/pragma.c d04725ac25387d9638919e197fb009f378e13af7bf899516979e54b3164e3602
 -F src/pragma.h bb83728944b42f6d409c77f5838a8edbdb0fe83046c5496ffc9602b40340a324
++F src/pragma.c 9f8839691c075f367679a5b8fcf145e1c24fc0c685ef75d253ad7a47ab8d0950
++F src/pragma.h aaf1207923ec3524346e53c912eb7990bd4bed8798a78193bd6a51adce95252a
+ F src/prepare.c 9a141a1b02dca53beaa9771699d390aafcac01f5d1f1c0ae6e23ded8dcdb709a
+ F src/printf.c 40aee47ae9be4bd3dbdc8968bd07fddc027be8edec8daddf24d3391d36698a1c
  F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
- F src/resolve.c f9bc0de45a30a450da47b3766de00be89bf9be79
+ F src/resolve.c 4324a94573b1e29286f8121e4881db59eaedc014afeb274c8d3e07ed282e0e20
  F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac
- F src/select.c d12f3539f80db38b09015561b569e0eb1c4b6c5f
- F src/shell.c a661e7ccd202b16cb5321999354699e5ee018fb2
- F src/sqlite.h.in 751ff125eb159c8f92c182b8df980a5e4f50e966
+ F src/select.c 9fa0db382f43217e207a145b8c6cec26e85cd1a42a8428ee8b3df5870dfea0f4
+ F src/shell.c c1206a23d9239f8f51751d3be9b8c3b02fa4103546bea1add7f864d84a8276ab
+ F src/shell.c.in bb9720a8c5c98d3984b16ab7540e7142bcae959666ecf248bfc523a1d44220ee
+ F src/sqlite.h.in ab4f8a29d1580dfaeb6891fa1b83cff8229ba0daa56994707ceaca71495d9ab7
  F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
- F src/sqlite3ext.h 8648034aa702469afb553231677306cc6492a1ae
- F src/sqliteInt.h 1c9c511606670c9feb39dcfcbc10477828c4c2f6
- F src/sqliteLimit.h c0373387c287c8d0932510b5547ecde31b5da247
- F src/status.c a9e66593dfb28a9e746cba7153f84d49c1ddc4b1
+ F src/sqlite3ext.h a1fd3aa82f967da436164e0728a7d6841651fd0c6e27b9044e0eb9f6c8462e47
 -F src/sqliteInt.h 12aa1f626b3209ffa6a50d9d1e6b4235abd33273a0fcbfeedb66f573a68932b9
++F src/sqliteInt.h 8943d3b3f9ebd4ffb6a8f0d4b52cd28f523f1c2f7cc422909b0b3d5644aeca49
+ F src/sqliteLimit.h 1513bfb7b20378aa0041e7022d04acb73525de35b80b252f1b83fedb4de6a76b
+ F src/status.c 9737ed017279a9e0c5da748701c3c7bf1e8ae0dae459aad20dd64fcff97a7e35
  F src/table.c b46ad567748f24a326d9de40e5b9659f96ffff34
- F src/tclsqlite.c 6c2151b6d8d98e183a04466d40df8889c0574d79
- F src/test1.c 8a98191a1da8e100f77cdb5cc716df67d405028d
+ F src/tclsqlite.c 487951d81f9704800fd9f0ffdaa2f935a83ccb6be3575c2c4ef83e4789b4c828
+ F src/test1.c a947b2554fa77d0ef2dd21d1ef08e37e5d91b17af83de923a4e3c7f10957a2eb
  F src/test2.c 3efb99ab7f1fc8d154933e02ae1378bac9637da5
- F src/test3.c d03f5b5da9a2410b7a91c64b0d3306ed28ab6fee
+ F src/test3.c b8434949dfb8aff8dfa082c8b592109e77844c2135ed3c492113839b6956255b
  F src/test4.c 18ec393bb4d0ad1de729f0b94da7267270f3d8e6
  F src/test5.c 328aae2c010c57a9829d255dc099d6899311672d
- F src/test6.c 121060d2e79a4f5047eb12b5135b23a6a7a5af01
+ F src/test6.c e8d839fbc552ce044bec8234561a2d5b8819b48e29548ad0ba400471697946a8
  F src/test7.c 5612e9aecf934d6df7bba6ce861fdf5ba5456010
- F src/test8.c 4f4904721167b32f7a4fa8c7b32a07a673d6cc86
+ F src/test8.c 3f7d0cc4e12e06832ba3db4455cb16867ccadafa602eb6ff5fcf097bffce56ed
  F src/test9.c 12e5ba554d2d1cbe0158f6ab3f7ffcd7a86ee4e5
  F src/test_async.c 195ab49da082053fdb0f949c114b806a49ca770a
  F src/test_autoext.c 915d245e736652a219a907909bb6710f0d587871
@@@ -454,31 -519,31 +519,31 @@@ F src/test_windirent.c 17f91f5f2aa1bb73
  F src/test_windirent.h 5d67483a55442e31e1bde0f4a230e6e932ad5906
  F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9
  F src/threads.c 4ae07fa022a3dc7c5beb373cf744a85d3c5c6c3c
- F src/tokenize.c 25ccc63ae2c4163933221f3181c9982b47cd08d2
- F src/treeview.c 4e44ade3bfe59d82005039f72e09333ce2b4162c
- F src/trigger.c c9f0810043b265724fdb1bdd466894f984dfc182
- F src/update.c 456d4a4656f8a03c2abc88a51b19172197400e58
- F src/utf.c 699001c79f28e48e9bcdf8a463da029ea660540c
- F src/util.c ca8440ede81e155d15cff7c101654f60b55a9ae6
- F src/vacuum.c 33c174b28886b2faf26e503b5a49a1c01a9b1c16
- F src/vdbe.c 35a632d4f0647a90a18d073fd5796e728562977e
- F src/vdbe.h 59998ffd71d7caa8886bc78dafaf8caeccd4c13c
- F src/vdbeInt.h 4e4b15b2e1330e1636e4e01974eab2b0b985092f
- F src/vdbeapi.c 3e4a8893feeb78620f4aac4ac5b85d92255b97e1
- F src/vdbeaux.c 4122458d33318ab039c4b5da1ca4e7c9221c38e4
- F src/vdbeblob.c 359891617358deefc85bef7bcf787fa6b77facb9
- F src/vdbemem.c 3b5a9a5b375458d3e12a50ae1aaa41eeec2175fd
- F src/vdbesort.c eda25cb2d1727efca6f7862fea32b8aa33c0face
- F src/vdbetrace.c 41963d5376f0349842b5fc4aaaaacd7d9cdc0834
- F src/vtab.c c4bbe0f870f52036553f8098aee0703997f0577a
+ F src/tokenize.c 1003d6d90c6783206c711f0a9397656fa5b055209f4d092caa43bb3bf5215db5
+ F src/treeview.c 2ee4a5dada213d5ab08a742af5c876cee6f1aaae65f10a61923f3fb63846afef
+ F src/trigger.c 48e0f7ed6749ce4d50a695e09e20ce9cf84ecabf2691852c965a51e0b620eccc
+ F src/update.c 5404be9e840717323a69209190cdbc9d0d34adaedaaf1d1a1069babf2c4171c0
+ F src/utf.c 810fbfebe12359f10bc2a011520a6e10879ab2a163bcb26c74768eab82ea62a5
+ F src/util.c 5168013cfd937a695d23cce8c67cb07a3dda242d4cb812530ba1148b88e0f159
+ F src/vacuum.c 90839322fd5f00df9617eb21b68beda9b6e2a2937576b0d65985e4aeb1c53739
 -F src/vdbe.c 176c0897af0aedecd3abc9afaf7fa80eaa7cf5eaf62583de256a9961df474373
++F src/vdbe.c 1c0a8c8e65e0a7b6289f66d6775b0293b849b3ee461691ec1b55c2e78121029e
+ F src/vdbe.h d50cadf12bcf9fb99117ef392ce1ea283aa429270481426b6e8b0280c101fd97
+ F src/vdbeInt.h 1fe00770144c12c4913128f35262d11527ef3284561baaab59b947a41c08d0d9
+ F src/vdbeapi.c 9c670ca0dcc1cd86373aa353b747b26fe531ca5cd4331690c611d1f03842e2a1
+ F src/vdbeaux.c 831a77aaa7aa43005f1c9bf3e9eb6506f4865e1cf99943ccdcd3be5d2dd8a3c7
+ F src/vdbeblob.c 635a79b60340a6a14a622ea8dcb081f0a66b1ac3836870c587f232eec08c0286
+ F src/vdbemem.c 5c1533bf756918b4e46b2ed2bb82c29c7c651e1e37bbd0a0d8731a68787598ff
+ F src/vdbesort.c 731a09e5cb9e96b70c394c1b7cf3860fbe84acca7682e178615eb941a3a0ef2f
+ F src/vdbetrace.c 48e11ebe040c6b41d146abed2602e3d00d621d7ebe4eb29b0a0f1617fd3c2f6c
+ F src/vtab.c f1d5c23132fb0247af3e86146404112283ddedb6c518de0d4edc91cfb36970ef
  F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
- F src/wal.c 40c543f0a2195d1b0dc88ef12142bea690009344
- F src/wal.h 06b2a0b599cc0f53ea97f497cf8c6b758c999f71
- F src/walker.c 91a6df7435827e41cff6bb7df50ea00934ee78b0
- F src/where.c 6397fab50fdbf9bde76c574ce07b3b776eb28b34
- F src/whereInt.h 2bcc3d176e6091cb8f50a30b65c006e88a73614d
- F src/wherecode.c 677e95413c472c0b413023b6b69a47f40fce1b04
- F src/whereexpr.c 130cdd1a43af71b19755270fb1224874cf55158c
+ F src/wal.c 839db09792fead5052bb35e533fa485e134913d547d05b5f42e537b73e63f07a
+ F src/wal.h 8de5d2d3de0956d6f6cb48c83a4012d5f227b8fe940f3a349a4b7e85ebcb492a
+ F src/walker.c 3ccfa8637f95355bff61144e01a615b8ef26f79c312880848da73f03367da1e6
+ F src/where.c 21eea981920a13fd3c0ac3d6c128d0a34b22cbec064e4f0603375fe1ffe26ca6
+ F src/whereInt.h 82c04c5075308abbac59180c8bad5ecb45b07453981f60a53f3c7dee21e1e971
+ F src/wherecode.c e8c2ece5843ea56e6c90277d421f2d628f3f7b7c976642369cc519f008e1d2b1
+ F src/whereexpr.c 4953ca4e769c047d0a00a1ba9085849626b1f3a6e89f6befcf5c38fa0722acdd
  F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
  F test/affinity2.test a6d901b436328bd67a79b41bb0ac2663918fe3bd
  F test/affinity3.test 6a101af2fc945ce2912f6fe54dd646018551710d
@@@ -1456,7 -1551,7 +1551,7 @@@ F test/with1.test 732e3ef398dcecb609839
  F test/with2.test 2b40da883658eb74ad8ad06afabe11a408e7fb87
  F test/with3.test e71604a0e53cba82bc04c703987cb1d6751ec0b6
  F test/withM.test 693b61765f2b387b5e3e24a4536e2e82de15ff64
- F test/without_rowid1.test eaac24556ed2dfaf84d8a32fac46229bd61b1015
 -F test/without_rowid1.test 06b7215130882d6a072233820dd364c874c4fd69221e8fc756ec471009192874
++F test/without_rowid1.test aafbe8b016e190cf23c5bec0708349e0ea9b0a060f3edfd48e4d6e8db82e015a
  F test/without_rowid2.test af260339f79d13cb220288b67cd287fbcf81ad99
  F test/without_rowid3.test 2724c787a51a5dce09d078453a758117b4b728f1
  F test/without_rowid4.test 4e08bcbaee0399f35d58b5581881e7a6243d458a
@@@ -1476,9 -1572,8 +1572,9 @@@ F tool/checkSpacing.c 810e51703529a204f
  F tool/dbhash.c a06228aa21ebc4e6ea8daa486601d938499238a5
  F tool/extract.c 054069d81b095fbdc189a6f5d4466e40380505e2
  F tool/fast_vacuum.c 5ba0d6f5963a0a63bdc42840f678bad75b2ebce1
 +F tool/faststat1.c 67637f03dced49951f1021bfdc95aa9ffadbe871
  F tool/fragck.tcl 5265a95126abcf6ab357f7efa544787e5963f439
- F tool/fuzzershell.c dbf6c26eef936ec78cb0707570de3a4308b2507e
+ F tool/fuzzershell.c e1d90a03ca790d7c331c2aae08ca46ff435f1ae1faa6cb9cc48f4687c18fdc6e
  F tool/genfkey.README cf68fddd4643bbe3ff8e31b8b6d8b0a1b85e20f4
  F tool/genfkey.test 4196a8928b78f51d54ef58e99e99401ab2f0a7e5
  F tool/getlock.c f4c39b651370156cae979501a7b156bdba50e7ce
@@@ -1490,16 -1585,19 +1586,19 @@@ F tool/loadfts.c c3c64e4d5e90e8ba411592
  F tool/logest.c 11346aa019e2e77a00902aa7d0cabd27bd2e8cca
  F tool/max-limits.c cbb635fbb37ae4d05f240bfb5b5270bb63c54439
  F tool/mkautoconfamal.sh e855df211ecbcc7131dee817110ff386cfb112f7
- F tool/mkkeywordhash.c f7f3b342211ac6a14258b9726d5b97cf4f548f22
- F tool/mkmsvcmin.tcl 95b37e202cbed873aa8ffdbb493b9db45927be2b
+ F tool/mkctimec.tcl dd183b73ae1c28249669741c250525f0407e579a70482371668fd5f130d9feb3
+ F tool/mkkeywordhash.c 2e852ac0dfdc5af18886dc1ce7e9676d11714ae3df0a282dc7d90b3a0fe2033c
+ F tool/mkmsvcmin.tcl cbd93f1cfa3a0a9ae56fc958510aa3fc3ac65e29cb111716199e3d0e66eefaa4
  F tool/mkopcodec.tcl d1b6362bd3aa80d5520d4d6f3765badf01f6c43c
- F tool/mkopcodeh.tcl a01d2c1d8a6205b03fc635adf3735b4c523befd3
+ F tool/mkopcodeh.tcl 4ee2a30ccbd900dc4d5cdb61bdab87cd2166cd2affcc78c9cc0b8d22a65b2eee
  F tool/mkopts.tcl 66ac10d240cc6e86abd37dc908d50382f84ff46e
- F tool/mkpragmatab.tcl 72cd1298ca53952a6064fea99e6e5dabd6154d24
 -F tool/mkpragmatab.tcl 2144bc8550a6471a029db262a132d2df4b9e0db61b90398bf64f5b7b3f8d92cd
++F tool/mkpragmatab.tcl 0ee82c05406f7fb218eb4ad0b557596d0148aac24507f7971d75f6417ad92802
+ F tool/mkshellc.tcl 950c36f45941c12140e346a907fb66198bc2770ff7a17c749201e78d34bb3b0b
+ F tool/mksourceid.c d458f9004c837bee87a6382228ac20d3eae3c49ea3b0a5aace936f8b60748d3b
  F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97
  F tool/mksqlite3c-noext.tcl fef88397668ae83166735c41af99d79f56afaabb
- F tool/mksqlite3c.tcl 06b2e6a0f21cc0a5d70fbbd136b3e0a96470645e
- F tool/mksqlite3h.tcl b9836752c3d08f9fab2dfc0017ca9fd5d90ac863
+ F tool/mksqlite3c.tcl b258d679829a9305f5cf107b7d97b9bf23adb3773df42947fed5ef7b180dfbd9
+ F tool/mksqlite3h.tcl f92f994d9709aeb9e2b6e6f9fc8b069d2f55202c8e23f453edc44390a25982dc
  F tool/mksqlite3internalh.tcl eb994013e833359137eb53a55acdad0b5ae1049b
  F tool/mkvsix.tcl b9e0777a213c23156b6542842c238479e496ebf5
  F tool/offsets.c fe4262fdfa378e8f5499a42136d17bf3b98f6091
@@@ -1557,7 -1655,7 +1656,7 @@@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a9
  F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
  F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
  F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
- P fe86ff54293fbee69126aca9ca9839e3e16d7a1c 58797e9bafa95709e0f706a15f42f93b409e2db5
- R 5310dd6883f39dad6946e3525c6b1916
 -P 403b88a894d877b85bcc33133abad06c3c576e4928de4a4b0c091f74c4015355
 -R 7f08f0df04c939d1dd5a187c9ae3cc49
 -U mistachkin
 -Z 321f82ff3326ba269549cfe661409f34
++P 325ccfa95e3afed2dc6849d6b05d81f0203bf73e 2c03d8b8f028b6a736aaf2cf8b28a51b3434cf341c95cf3a80469e0a24acdd98
++R 9c70c731081fc8d935ffa7f95aaf0d4e
 +U drh
- Z 1faf13fde713514c6504218ba0433691
++Z c1e4e80ea16b3e736eda73c5e9d93cfe
diff --cc manifest.uuid
index e83f274f6c1078c000a8b069ff5e2694b38947e1,04153e1aac0f472913b38912a088e02d009da50e..5ac0c2273bdc29f39e85050155a3cbfc7fffe832
@@@ -1,1 -1,1 +1,1 @@@
- 325ccfa95e3afed2dc6849d6b05d81f0203bf73e
 -2c03d8b8f028b6a736aaf2cf8b28a51b3434cf341c95cf3a80469e0a24acdd98
++8d2a1cca613f75fb4b1a050cf7ea03b74a4d98f4c56d8079201035d7fdc49e85
diff --cc src/btree.c
Simple merge
diff --cc src/btree.h
Simple merge
diff --cc src/build.c
Simple merge
diff --cc src/parse.y
index 527233ec754e53631a00b7d5625f9cbebf1ae71b,a8d080eed30cf51cbc2559f421b8f72f4e11c1b4..24efd6a8c974d112e438d6eee1a911706db18073
@@@ -222,27 -251,6 +251,10 @@@ columnname(A) ::= nm(A) typetoken(Y). {
  //
  %token_class id  ID|INDEXED.
  
- // The following directive causes tokens ABORT, AFTER, ASC, etc. to
- // fallback to ID if they will not parse as their original value.
- // This obviates the need for the "id" nonterminal.
- //
- %fallback ID
-   ABORT ACTION AFTER ANALYZE ASC ATTACH BEFORE BEGIN BY CASCADE CAST COLUMNKW
-   CONFLICT DATABASE DEFERRED DESC DETACH EACH END EXCLUSIVE EXPLAIN FAIL FOR
-   IGNORE IMMEDIATE INITIALLY INSTEAD LIKE_KW MATCH NO PLAN
-   QUERY KEY OF OFFSET PRAGMA RAISE RECURSIVE RELEASE REPLACE RESTRICT ROW
-   ROLLBACK SAVEPOINT TEMP TRIGGER VACUUM VIEW VIRTUAL WITH WITHOUT
- %ifdef SQLITE_OMIT_COMPOUND_SELECT
-   EXCEPT INTERSECT UNION
- %endif SQLITE_OMIT_COMPOUND_SELECT
-   REINDEX RENAME CTIME_KW IF
-   .
- %wildcard ANY.
 +// A "number" can be either an integer or a floating point value
 +%token_class number INTEGER|FLOAT.
 +
 +
  
  // And "ids" is an identifer-or-string.
  //
diff --cc src/pragma.c
Simple merge
diff --cc src/pragma.h
index 29c0b9d93cb855c4368ef6a781294c9b241408e0,c9ece2dc875f8232c6c30a8b788c1dbc0507f7dd..d4dbf2724c95ef70acba2f998b57b387fbcf078e
@@@ -8,48 -8,50 +8,52 @@@
  #define PragTyp_HEADER_VALUE                   0
  #define PragTyp_AUTO_VACUUM                    1
  #define PragTyp_FLAG                           2
 -#define PragTyp_BUSY_TIMEOUT                   3
 -#define PragTyp_CACHE_SIZE                     4
 -#define PragTyp_CACHE_SPILL                    5
 -#define PragTyp_CASE_SENSITIVE_LIKE            6
 -#define PragTyp_COLLATION_LIST                 7
 -#define PragTyp_COMPILE_OPTIONS                8
 -#define PragTyp_DATA_STORE_DIRECTORY           9
 -#define PragTyp_DATABASE_LIST                 10
 -#define PragTyp_DEFAULT_CACHE_SIZE            11
 -#define PragTyp_ENCODING                      12
 -#define PragTyp_FOREIGN_KEY_CHECK             13
 -#define PragTyp_FOREIGN_KEY_LIST              14
 -#define PragTyp_FUNCTION_LIST                 15
 -#define PragTyp_INCREMENTAL_VACUUM            16
 -#define PragTyp_INDEX_INFO                    17
 -#define PragTyp_INDEX_LIST                    18
 -#define PragTyp_INTEGRITY_CHECK               19
 -#define PragTyp_JOURNAL_MODE                  20
 -#define PragTyp_JOURNAL_SIZE_LIMIT            21
 -#define PragTyp_LOCK_PROXY_FILE               22
 -#define PragTyp_LOCKING_MODE                  23
 -#define PragTyp_PAGE_COUNT                    24
 -#define PragTyp_MMAP_SIZE                     25
 -#define PragTyp_MODULE_LIST                   26
 -#define PragTyp_OPTIMIZE                      27
 -#define PragTyp_PAGE_SIZE                     28
 -#define PragTyp_PRAGMA_LIST                   29
 -#define PragTyp_SECURE_DELETE                 30
 -#define PragTyp_SHRINK_MEMORY                 31
 -#define PragTyp_SOFT_HEAP_LIMIT               32
 -#define PragTyp_SYNCHRONOUS                   33
 -#define PragTyp_TABLE_INFO                    34
 -#define PragTyp_TEMP_STORE                    35
 -#define PragTyp_TEMP_STORE_DIRECTORY          36
 -#define PragTyp_THREADS                       37
 -#define PragTyp_WAL_AUTOCHECKPOINT            38
 -#define PragTyp_WAL_CHECKPOINT                39
 -#define PragTyp_ACTIVATE_EXTENSIONS           40
 -#define PragTyp_HEXKEY                        41
 -#define PragTyp_KEY                           42
 -#define PragTyp_REKEY                         43
 -#define PragTyp_LOCK_STATUS                   44
 -#define PragTyp_PARSER_TRACE                  45
 -#define PragTyp_STATS                         46
 +#define PragTyp_BTREE_SAMPLE                   3
 +#define PragTyp_BUSY_TIMEOUT                   4
 +#define PragTyp_CACHE_SIZE                     5
 +#define PragTyp_CACHE_SPILL                    6
 +#define PragTyp_CASE_SENSITIVE_LIKE            7
 +#define PragTyp_COLLATION_LIST                 8
 +#define PragTyp_COMPILE_OPTIONS                9
 +#define PragTyp_DATA_STORE_DIRECTORY          10
 +#define PragTyp_DATABASE_LIST                 11
 +#define PragTyp_DEFAULT_CACHE_SIZE            12
 +#define PragTyp_ENCODING                      13
 +#define PragTyp_EST_COUNT                     14
 +#define PragTyp_FOREIGN_KEY_CHECK             15
 +#define PragTyp_FOREIGN_KEY_LIST              16
- #define PragTyp_INCREMENTAL_VACUUM            17
- #define PragTyp_INDEX_INFO                    18
- #define PragTyp_INDEX_LIST                    19
- #define PragTyp_INTEGRITY_CHECK               20
- #define PragTyp_JOURNAL_MODE                  21
- #define PragTyp_JOURNAL_SIZE_LIMIT            22
- #define PragTyp_LOCK_PROXY_FILE               23
- #define PragTyp_LOCKING_MODE                  24
- #define PragTyp_PAGE_COUNT                    25
- #define PragTyp_MMAP_SIZE                     26
- #define PragTyp_PAGE_SIZE                     27
- #define PragTyp_SECURE_DELETE                 28
- #define PragTyp_SHRINK_MEMORY                 29
- #define PragTyp_SOFT_HEAP_LIMIT               30
- #define PragTyp_STATS                         31
- #define PragTyp_SYNCHRONOUS                   32
- #define PragTyp_TABLE_INFO                    33
- #define PragTyp_TEMP_STORE                    34
- #define PragTyp_TEMP_STORE_DIRECTORY          35
- #define PragTyp_THREADS                       36
- #define PragTyp_WAL_AUTOCHECKPOINT            37
- #define PragTyp_WAL_CHECKPOINT                38
- #define PragTyp_ACTIVATE_EXTENSIONS           39
- #define PragTyp_HEXKEY                        40
- #define PragTyp_KEY                           41
- #define PragTyp_REKEY                         42
- #define PragTyp_LOCK_STATUS                   43
- #define PragTyp_PARSER_TRACE                  44
++#define PragTyp_FUNCTION_LIST                 17
++#define PragTyp_INCREMENTAL_VACUUM            18
++#define PragTyp_INDEX_INFO                    19
++#define PragTyp_INDEX_LIST                    20
++#define PragTyp_INTEGRITY_CHECK               21
++#define PragTyp_JOURNAL_MODE                  22
++#define PragTyp_JOURNAL_SIZE_LIMIT            23
++#define PragTyp_LOCK_PROXY_FILE               24
++#define PragTyp_LOCKING_MODE                  25
++#define PragTyp_PAGE_COUNT                    26
++#define PragTyp_MMAP_SIZE                     27
++#define PragTyp_MODULE_LIST                   28
++#define PragTyp_OPTIMIZE                      29
++#define PragTyp_PAGE_SIZE                     30
++#define PragTyp_PRAGMA_LIST                   31
++#define PragTyp_SECURE_DELETE                 32
++#define PragTyp_SHRINK_MEMORY                 33
++#define PragTyp_SOFT_HEAP_LIMIT               34
++#define PragTyp_SYNCHRONOUS                   35
++#define PragTyp_TABLE_INFO                    36
++#define PragTyp_TEMP_STORE                    37
++#define PragTyp_TEMP_STORE_DIRECTORY          38
++#define PragTyp_THREADS                       39
++#define PragTyp_WAL_AUTOCHECKPOINT            40
++#define PragTyp_WAL_CHECKPOINT                41
++#define PragTyp_ACTIVATE_EXTENSIONS           42
++#define PragTyp_HEXKEY                        43
++#define PragTyp_KEY                           44
++#define PragTyp_REKEY                         45
++#define PragTyp_LOCK_STATUS                   46
++#define PragTyp_PARSER_TRACE                  47
++#define PragTyp_STATS                         48
  
  /* Property flags associated with various pragma. */
  #define PragFlg_NeedSchema 0x01 /* Force schema load before running */
@@@ -613,7 -643,7 +655,7 @@@ static const PragmaName aPragmaName[] 
    /* ePragTyp:  */ PragTyp_FLAG,
    /* ePragFlg:  */ PragFlg_Result0|PragFlg_NoColumns1,
    /* ColNames:  */ 0, 0,
-   /* iArg:      */ SQLITE_WriteSchema|SQLITE_RecoveryMode },
+   /* iArg:      */ SQLITE_WriteSchema },
  #endif
  };
- /* Number of pragmas: 62 on by default, 75 total. */
 -/* Number of pragmas: 60 on by default, 77 total. */
++/* Number of pragmas: 62 on by default, 79 total. */
diff --cc src/sqliteInt.h
Simple merge
diff --cc src/vdbe.c
Simple merge
index 23fac402fffdf7f0807e18b6c331ef3cca206221,c7899cfb39e2033f4a22089f80b661c36460b083..160d2c491bf51a7609043012af87832e30513423
@@@ -328,24 -328,19 +328,36 @@@ do_catchsql_test 7.3 
    ) WITHOUT ROWID;
  } {1 {no such column: rowid}}
  
-   
 +# The PRAGMA index_info and index_xinfo pragmas work on 
 +# WITHOUT ROWID tables too, but not on rowid tables.
 +#
 +do_execsql_test 8.1 {
 +  CREATE TABLE t80a(a TEXT, b INT, c BLOB, PRIMARY KEY(c,b));
 +  PRAGMA index_info(t80a);
 +} {}
 +do_execsql_test 8.2 {
 +  PRAGMA index_xinfo(t80a);
 +} {}
 +do_execsql_test 8.3 {
 +  CREATE TABLE t80b(a TEXT, b INT, c BLOB, PRIMARY KEY(c,b)) WITHOUT ROWID;
 +  PRAGMA index_info(t80b);
 +} {0 2 c 1 1 b}
 +do_execsql_test 8.4 {
 +  PRAGMA index_xinfo(t80b);
 +} {0 2 c 0 BINARY 1 1 1 b 0 BINARY 1 2 0 a 0 BINARY 0}
 +
 +
 -do_execsql_test 8.1 {
+ # 2017-07-30: OSSFuzz discovered that an extra entry was being
+ # added in the sqlite_master table for an "INTEGER PRIMARY KEY UNIQUE"
+ # WITHOUT ROWID table.  Make sure this has now been fixed.
+ #
+ db close
+ sqlite3 db :memory:
 -
 -
 -  
++do_execsql_test 9.1 {
+   CREATE TABLE t1(x INTEGER PRIMARY KEY UNIQUE, b) WITHOUT ROWID;
+   CREATE INDEX t1x ON t1(x);
+   INSERT INTO t1(x,b) VALUES('funny','buffalo');
+   SELECT type, name, '|' FROM sqlite_master;
+ } {table t1 | index t1x |}
++ 
  finish_test
index b221f0a2011dbd6850bf90f6901bc704fbb82ac2,1bfbeb7c58befc4e916a48e60f2e18b55d594bf2..8e7d42e2d24278363318768db1c0988ef0e6416c
@@@ -279,15 -297,9 +297,15 @@@ set pragma_def 
  
    NAME: quick_check
    TYPE: INTEGRITY_CHECK
-   FLAG: NeedSchema
+   FLAG: NeedSchema Result0 Result1
    IF:   !defined(SQLITE_OMIT_INTEGRITY_CHECK)
  
 +  NAME: est_count
 +  FLAG: NeedSchema
 +
 +  NAME: btree_sample
 +  FLAG: NeedSchema
 +
    NAME: encoding
    FLAG: Result0 NoColumns1
    IF:   !defined(SQLITE_OMIT_UTF16)