From: drh Date: Fri, 22 Sep 2017 20:18:41 +0000 (+0000) Subject: Merge in all the trunk enhancements of the previous 7 months. The LIKE X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fheads%2Fest_count_pragma;p=thirdparty%2Fsqlite.git Merge in all the trunk enhancements of the previous 7 months. The LIKE optimization has stopped working when there is an ESCAPE - that problem will be addressed in a subsequent check-in. FossilOrigin-Name: 8d2a1cca613f75fb4b1a050cf7ea03b74a4d98f4c56d8079201035d7fdc49e85 --- 1b2f6fa20af4e1174eaf6446707848afa89ae22a diff --cc manifest index fdd93eef09,1938515870..4dcf11f5e6 --- a/manifest +++ 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 e83f274f6c,04153e1aac..5ac0c2273b --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - 325ccfa95e3afed2dc6849d6b05d81f0203bf73e -2c03d8b8f028b6a736aaf2cf8b28a51b3434cf341c95cf3a80469e0a24acdd98 ++8d2a1cca613f75fb4b1a050cf7ea03b74a4d98f4c56d8079201035d7fdc49e85 diff --cc src/parse.y index 527233ec75,a8d080eed3..24efd6a8c9 --- a/src/parse.y +++ b/src/parse.y @@@ -222,27 -251,6 +251,10 @@@ columnname(A) ::= nm(A) typetoken(Y). { // %token_class id ID|INDEXED. +// A "number" can be either an integer or a floating point value +%token_class number INTEGER|FLOAT. + + - // 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. - // And "ids" is an identifer-or-string. // diff --cc src/pragma.h index 29c0b9d93c,c9ece2dc87..d4dbf2724c --- a/src/pragma.h +++ b/src/pragma.h @@@ -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 test/without_rowid1.test index 23fac402ff,c7899cfb39..160d2c491b --- a/test/without_rowid1.test +++ b/test/without_rowid1.test @@@ -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} + + - + # 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 8.1 { ++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 diff --cc tool/mkpragmatab.tcl index b221f0a201,1bfbeb7c58..8e7d42e2d2 --- a/tool/mkpragmatab.tcl +++ b/tool/mkpragmatab.tcl @@@ -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)