]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
6 years agoAdd the sqlite3_normalized_sql() API. normalized_sql
mistachkin [Mon, 29 Oct 2018 17:53:23 +0000 (17:53 +0000)] 
Add the sqlite3_normalized_sql() API.

FossilOrigin-Name: 592b66e8058dd03a056a036e2606247c9efdb06d15eebe9bcc455f7f55e30ae6

6 years agoIn the sessions module, avoid collecting rebase data if the user has not
dan [Mon, 29 Oct 2018 17:08:27 +0000 (17:08 +0000)] 
In the sessions module, avoid collecting rebase data if the user has not
requested it.

FossilOrigin-Name: de72a773dd3ad58a7f2233e1fc06bf60deb8892a2719ea8e9b42e7d592c1279f

6 years agoHarden the dbstat extension against corrupt database files.
drh [Mon, 29 Oct 2018 16:07:10 +0000 (16:07 +0000)] 
Harden the dbstat extension against corrupt database files.

FossilOrigin-Name: a0d47f25ae7bdf98f5b853f23776b3bf86bea7c0dda386664c1e3b1c363c518f

6 years agoImprovements to the dbfuzz2.c test module.
drh [Sat, 27 Oct 2018 21:06:44 +0000 (21:06 +0000)] 
Improvements to the dbfuzz2.c test module.

FossilOrigin-Name: d60eff493b875366981c5a25000bb65cde9f6e628192914910790acc562c17b9

6 years agoAdd an entry in Makefile.in to build dbfuzz2 using clang-6.0 with
drh [Sat, 27 Oct 2018 16:02:16 +0000 (16:02 +0000)] 
Add an entry in Makefile.in to build dbfuzz2 using clang-6.0 with
-fsanitize=fuzzer,undefined.

FossilOrigin-Name: a4a083ed8cdb106af661d2ee0203e21c576f5c2304419ce603826e4f2851c2e0

6 years agoInitial code for a fuzzing tool on database file that works with the
drh [Sat, 27 Oct 2018 00:47:33 +0000 (00:47 +0000)] 
Initial code for a fuzzing tool on database file that works with the
-fsanitize=fuzzer option of clang.

FossilOrigin-Name: 90d12094d36957fbded71545add8a5dc206798fdacc17d4d161d715569a7f991

6 years agoAdd the sqlite3session_config() interface. For configuring global parameters
dan [Fri, 26 Oct 2018 17:05:00 +0000 (17:05 +0000)] 
Add the sqlite3session_config() interface. For configuring global parameters
belonging to the sessions module.

FossilOrigin-Name: 1e69f3ff057b0be27a9e79842de2485f8299799f309e89bfa7597dd688e0975b

6 years agoPrevent an == constraint specified using the table-valued-function argument
dan [Fri, 26 Oct 2018 15:36:53 +0000 (15:36 +0000)] 
Prevent an == constraint specified using the table-valued-function argument
syntax from being used to optimize any scan not related to the virtual table
for which it was specified as an argument.

FossilOrigin-Name: 4d46685f282409f7154be288719cbea4b743d7ea5315a55a91462003497469f7

6 years agoIn the WHERE-constraint propagation optimization, if there are duplicate
drh [Thu, 25 Oct 2018 14:15:37 +0000 (14:15 +0000)] 
In the WHERE-constraint propagation optimization, if there are duplicate
constraint, make sure only one of them propagates.  Proposed fix for
ticket [cf5ed20fc8621b165].

FossilOrigin-Name: 5d5b596f152bb2781011a05f75f9e200774d4f69d648ef68de577b4ace973e07

6 years agoAdd the ENABLE_GEOPOLY case to the compile_options pragma.
drh [Wed, 24 Oct 2018 23:55:41 +0000 (23:55 +0000)] 
Add the ENABLE_GEOPOLY case to the compile_options pragma.

FossilOrigin-Name: de940296d227c96db4d0cf913fc5c0e5138729eda7cda0a0ac6b704cce1e1e1e

6 years agoFix a problem with using window functions in compound (UNION, INTERSECT etc.)
dan [Tue, 23 Oct 2018 13:48:19 +0000 (13:48 +0000)] 
Fix a problem with using window functions in compound (UNION, INTERSECT etc.)
queries.

FossilOrigin-Name: 059ff53a46c7f1e4bf3e7dc558312beef67826c2753e2ab7e4e7df498b37b617

6 years agoAdd the sqlite3changeset_start_v2() - a new version of _start() that accepts a flags...
dan [Sat, 20 Oct 2018 13:48:09 +0000 (13:48 +0000)] 
Add the sqlite3changeset_start_v2() - a new version of _start() that accepts a flags parameter - and a streaming equivalent to the sessions module. Also add the SQLITE_CHANGESETSTART_INVERT flag, used with start_v2() to invert a changeset while iterating through it.

FossilOrigin-Name: cbedcb9aaefdfe00453efbdf0eac6c15e1f53bbe8fff2e7d534a5adf23be04f5

6 years agoTake steps to avoid a potential integer overflow in sessionBufferGrow().
dan [Thu, 18 Oct 2018 15:17:18 +0000 (15:17 +0000)] 
Take steps to avoid a potential integer overflow in sessionBufferGrow().

FossilOrigin-Name: f7affa2e708d1b4c7c47157bcb18e9f79611ca45a93ebc88de6dc96f84a677e7

6 years agoAdd the SQLITE_CHANGESETAPPLY_INVERT flag to sessions. For inverting and applying...
dan [Thu, 18 Oct 2018 14:59:21 +0000 (14:59 +0000)] 
Add the SQLITE_CHANGESETAPPLY_INVERT flag to sessions. For inverting and applying a changeset in a single step.

FossilOrigin-Name: d4b6406e7f5ba06ac73ab9fdef57232b2459e0af12420ed946ebed6aef46f0b1

6 years agoTest case modifications to support SEE.
drh [Fri, 12 Oct 2018 15:01:56 +0000 (15:01 +0000)] 
Test case modifications to support SEE.

FossilOrigin-Name: 02b6f8f2778c371130c512e980c3db07c7e76dcf7dd92a878b86e4b6a47ca307

6 years agoAdd the textkey and textrekey pragmas.
drh [Thu, 11 Oct 2018 18:41:50 +0000 (18:41 +0000)] 
Add the textkey and textrekey pragmas.

FossilOrigin-Name: f03164d45450cd7ff2162999aa9e51eec7fb5e7cab1fa83d876b544f8f841097

6 years agoFix harmless compiler warnings in the CLI.
drh [Thu, 11 Oct 2018 16:53:37 +0000 (16:53 +0000)] 
Fix harmless compiler warnings in the CLI.

FossilOrigin-Name: 1916d2912a4ef5c251853de3c9d66417e20f0c0fc8ddfbc84c131dfd798439f6

6 years agoAlways reset the pager before changing the codec.
drh [Thu, 11 Oct 2018 16:38:56 +0000 (16:38 +0000)] 
Always reset the pager before changing the codec.

FossilOrigin-Name: 0bf0fd242b93c3bd308ab46db1be9edef141b89db07a0f5a4ed8b23c963da0d5

6 years agoOn the first connection to a WAL-mode database that was not cleanly shut down
drh [Thu, 11 Oct 2018 13:51:48 +0000 (13:51 +0000)] 
On the first connection to a WAL-mode database that was not cleanly shut down
and contains a left-over -shm file, truncate the -shm file to 3 bytes instead
of to 0 bytes. Avoiding a truncation to 0 means that system monitoring tools
can better detect if a process illegitimately tries to truncate a -shm file.
Such a rogue process might think it is being helpful by cleaning up old files,
but there is a race condition that can cause damage to the database.

FossilOrigin-Name: 90cf32cde072a305f30c75a71665d1f9e23e805c0a49f5306f015c056dd70f0c

6 years agoIn the CLI, fix a file descriptor leak following OOM and a missing va_end()
drh [Thu, 11 Oct 2018 10:37:24 +0000 (10:37 +0000)] 
In the CLI, fix a file descriptor leak following OOM and a missing va_end()
call.

FossilOrigin-Name: ec36d15a9e349f4295a9e2215dea0a18e9276e0e4ce2d05021e6b467ab7763bb

6 years agoIn the unix VFS, fix the heap shm allocator (used for unix-excl)
drh [Thu, 11 Oct 2018 02:39:11 +0000 (02:39 +0000)] 
In the unix VFS, fix the heap shm allocator (used for unix-excl)
so that it works even on systems where the page size is larger than 32KB.

FossilOrigin-Name: 7fbb083c5cf0948af3624b7538ffa086f77de27a3e84a7039ae7d6574f1a3a54

6 years agoIn the CLI, allow the SQLITE_HISTORY environment variable, if it exists,
drh [Wed, 10 Oct 2018 18:56:40 +0000 (18:56 +0000)] 
In the CLI, allow the SQLITE_HISTORY environment variable, if it exists,
to specify an alternative file in which to store the shell edit history.

FossilOrigin-Name: 696e82f7c82d1720756078e73f3b15b4cafc202ec290e66f9095a3246c65a3cb

6 years agoFix an issue with the new memstat.c extension.
drh [Mon, 8 Oct 2018 20:04:16 +0000 (20:04 +0000)] 
Fix an issue with the new memstat.c extension.

FossilOrigin-Name: ce6e80b1303ed161bec2c63735cd2e2bea7b4e9b4ff780d214d408b1a30d50da

6 years agoReplace the new geopoly_reverse() function with geopoly_ccw(). The
drh [Mon, 8 Oct 2018 18:55:56 +0000 (18:55 +0000)] 
Replace the new geopoly_reverse() function with geopoly_ccw().  The
geopoly_ccw() function only reverses the vertex order if doing so is necessary
to get the correct right-hand winding rule on the polygon.

FossilOrigin-Name: 075066944b13b18d339ccf87ae16f0b91bf00f40bd70f71c6beba6aa6c43f0b6

6 years agoAdd the geopoly_reverse() function to the GeoPoly extension.
drh [Mon, 8 Oct 2018 12:58:59 +0000 (12:58 +0000)] 
Add the geopoly_reverse() function to the GeoPoly extension.

FossilOrigin-Name: 690dd18a5768c5a8cdfa92d5b01901c1a7b1fb6ebb90399f56a3112e41609f92

6 years agoFix the ".help -all" option in the command-line shell.
drh [Sat, 6 Oct 2018 14:38:17 +0000 (14:38 +0000)] 
Fix the ".help -all" option in the command-line shell.

FossilOrigin-Name: aac8f1dff0728c629b5cbf30369ee91c5862a707ede694dc2628d1d4f5a6c202

6 years agoAdd test cases and assert() statements to ensure that the authorizer is being
dan [Sat, 6 Oct 2018 13:46:22 +0000 (13:46 +0000)] 
Add test cases and assert() statements to ensure that the authorizer is being
called as expected from within ALTER TABLE.

FossilOrigin-Name: ff10d2c7de430c88167b1e6e4f5307eee5d69e22c8d24b2ef4fcb3aea25a92e1

6 years agoChanges to geopoly to silience false-positive warnings coming out of clang.
drh [Fri, 5 Oct 2018 15:10:00 +0000 (15:10 +0000)] 
Changes to geopoly to silience false-positive warnings coming out of clang.

FossilOrigin-Name: 11d9015f31d1ea2fd27174d4ceea08a145fdbb92a175bec0aae4b90f991694bc

6 years agoAdd an ALWAYS on an unreachable branch in the ALTER TABLE logic.
drh [Wed, 3 Oct 2018 18:05:36 +0000 (18:05 +0000)] 
Add an ALWAYS on an unreachable branch in the ALTER TABLE logic.

FossilOrigin-Name: ebcd4523171f0988ff08e2bf36fb8a0caa40efe7ac7556b4eb206784969b03e4

6 years agoChange a type in shell.c.in from "int" to "sqlite3_int64" in order to
dan [Wed, 3 Oct 2018 11:13:30 +0000 (11:13 +0000)] 
Change a type in shell.c.in from "int" to "sqlite3_int64" in order to
avoid a compiler warning and possible integer overflow.

FossilOrigin-Name: bf0a6634cd8f9457992b8da522a6775a304156815bf6f4f64f96016356baa870

6 years agoAdd an additional assert() verifying mutex invariants on the
drh [Tue, 2 Oct 2018 20:16:41 +0000 (20:16 +0000)] 
Add an additional assert() verifying mutex invariants on the
unixShmSystemLock() routine in the unix VFS.

FossilOrigin-Name: cb1511065d5348c5b3015dc9d690fc5d519a14ffdfa7164bb552a4fa686ad142

6 years agoAdditional field name changes and commit fixes associated with shared-memory
drh [Tue, 2 Oct 2018 19:58:08 +0000 (19:58 +0000)] 
Additional field name changes and commit fixes associated with shared-memory
locking in the unix VFS, to improve maintainability.  No logic changes.

FossilOrigin-Name: 9280774a4bbc665d70f346d258768cbcca3e0e77791473aecfd7d0e87810ab31

6 years agoFix comments and refactor some names associated with shared-memory locking
drh [Tue, 2 Oct 2018 19:36:40 +0000 (19:36 +0000)] 
Fix comments and refactor some names associated with shared-memory locking
in the Unix VFS.  No logical changes.

FossilOrigin-Name: 3e9f1635271c92dce5324728b4ee1cc1a1856ec3c60b1b512a652c21e010e63e

6 years agoAdd the "PRAGMA table_xinfo" command that works like table_info but also
drh [Mon, 1 Oct 2018 21:41:15 +0000 (21:41 +0000)] 
Add the "PRAGMA table_xinfo" command that works like table_info but also
shows hidden columns in virtual tables and adds the "hidden" boolean column.

FossilOrigin-Name: defa0515b8fd50ed9be699542f8c6695dd4a60c02f310665db6657ec5b6b67d0

6 years agoTest case for PRAGMA table_xinfo. pragma-table-vinfo
drh [Mon, 1 Oct 2018 21:36:38 +0000 (21:36 +0000)] 
Test case for PRAGMA table_xinfo.

FossilOrigin-Name: 7694b9bc3003db6ba0b41c5029c8f7b84c07724e7a518e835e98b3c46e4ea227

6 years agoChange the name of the pragma to PRAGMA table_xinfo. Improve the
drh [Mon, 1 Oct 2018 21:26:30 +0000 (21:26 +0000)] 
Change the name of the pragma to PRAGMA table_xinfo.  Improve the
mkpragmatab.tcl script to reuse column names where appropriate.

FossilOrigin-Name: 2fdd068987e59b979045d71ae64e700600ef07e54ae340f30c2064e5dcccb8ea

6 years agoAdd the extra "hidden" column to the end of the PRAGMA table_vinfo output.
drh [Mon, 1 Oct 2018 18:28:42 +0000 (18:28 +0000)] 
Add the extra "hidden" column to the end of the PRAGMA table_vinfo output.

FossilOrigin-Name: cf1b76135f511530dcc7b82f78c952bf97ebcddb40be06f713f9f2326915fabe

6 years agoSpeed up xAccess() calls made on an RBU VFS when there are lots of open
dan [Mon, 1 Oct 2018 17:33:35 +0000 (17:33 +0000)] 
Speed up xAccess() calls made on an RBU VFS when there are lots of open
connections.

FossilOrigin-Name: 310b4b65b8c8ee080760c7efb4c7e20244c6063a5dba37a4f40490105aafd29f

6 years agoBring the PRAGMA table_vinfo statement up to date with trunk.
drh [Mon, 1 Oct 2018 17:15:17 +0000 (17:15 +0000)] 
Bring the PRAGMA table_vinfo statement up to date with trunk.

FossilOrigin-Name: 6f606f99231f88ae5ff719d0ce21afc4b844490102c27ac20aa606baaf78d8d6

6 years agoFix a potential crash that can occur while reading an index from a corrupt
drh [Mon, 1 Oct 2018 13:54:30 +0000 (13:54 +0000)] 
Fix a potential crash that can occur while reading an index from a corrupt
database file.  The corruption is a record-header-size that is larger than
0x7fffffff.  Problem detected by OSSFuzz against GDAL and reported to us
(with a suggested fix) by Even Rouault.  The test case is in TH3.

FossilOrigin-Name: 8ac2cdda68f92b0352bc7f0b4be5fca4bb58565ca65055fb34153cc284ed6922

6 years agoFix a problem with ALTER TABLE commands when the schema features an INSTEAD of
dan [Mon, 1 Oct 2018 07:04:12 +0000 (07:04 +0000)] 
Fix a problem with ALTER TABLE commands when the schema features an INSTEAD of
trigger that uses NEW.* or OLD.*.

FossilOrigin-Name: c52f457e56eb9d573eb67093731eb231aaf6fd6dbdc397e6f948b82736fbe3ab

6 years agoAdd the PRAGMA table_vinfo command (with an extra "v" before "info") that
drh [Sat, 29 Sep 2018 19:38:42 +0000 (19:38 +0000)] 
Add the PRAGMA table_vinfo command (with an extra "v" before "info") that
works like PRAGMA table_info (without the "v") except that it also shows
hidden columns on virtual tables.

FossilOrigin-Name: 8bcd1a59560aa7ea73e6529e5c14ece8ac09bf7e99efdcfd388fead39846b6bf

6 years agoFix test cases so that they work with ICU.
drh [Fri, 28 Sep 2018 23:53:24 +0000 (23:53 +0000)] 
Fix test cases so that they work with ICU.

FossilOrigin-Name: d04b2013b5436430ebbf7053d637fd89c1b15affcb42787dcf1cf5ffc3ae54e2

6 years agoHave sqlite3changegroup_output_strm() call its output function more regularly.
dan [Fri, 28 Sep 2018 20:46:41 +0000 (20:46 +0000)] 
Have sqlite3changegroup_output_strm() call its output function more regularly.

FossilOrigin-Name: 8467c31aa0bf24e597f680748460a99f425c49f5ab741c3574c339aa56857146

6 years agoFix a bug in the sqlite_memstat virtual table that was causing it to report
drh [Fri, 28 Sep 2018 18:51:18 +0000 (18:51 +0000)] 
Fix a bug in the sqlite_memstat virtual table that was causing it to report
the amount of memory used as zero bytes.

FossilOrigin-Name: 8a758a872175b0c74e631c231240c5c733fbec708d0cff23eb9c4025e4a800ec

6 years agoAdd the geopoly_regular(X,Y,R,N) function to the geopoly extension.
drh [Fri, 28 Sep 2018 14:01:17 +0000 (14:01 +0000)] 
Add the geopoly_regular(X,Y,R,N) function to the geopoly extension.

FossilOrigin-Name: 4505bbae58357eacab262b642b2a56d6dd380de72faceb5bbfd042eb94a12c06

6 years agoMake most geopoly functions pure.
drh [Fri, 28 Sep 2018 13:18:24 +0000 (13:18 +0000)] 
Make most geopoly functions pure.

FossilOrigin-Name: 944e167a98e995c5750c1fcd44df857d6b10c1cbb91731fad2849415c42b2cfc

6 years agoRig geopoly to use sqlite3AtoF() if it is available, as that routine is much
drh [Fri, 28 Sep 2018 00:16:57 +0000 (00:16 +0000)] 
Rig geopoly to use sqlite3AtoF() if it is available, as that routine is much
faster than atof().

FossilOrigin-Name: 470c6c07d0eb70806ac257c1c8ad877e041bbc14ff9a5c490edb51b2956ae726

6 years agoSmall performance optimization in the JSON parser of Geopoly.
drh [Thu, 27 Sep 2018 23:57:45 +0000 (23:57 +0000)] 
Small performance optimization in the JSON parser of Geopoly.

FossilOrigin-Name: fb520e71035258d5490be33ee28575df2caefa5d5a301c8bbdf1471551c96282

6 years agoEnhance the GeoPOLY extension so that it always stores its polygons in the
drh [Thu, 27 Sep 2018 20:37:52 +0000 (20:37 +0000)] 
Enhance the GeoPOLY extension so that it always stores its polygons in the
binary format, which is faster and more compact.

FossilOrigin-Name: dc35f7b1754a78fa0d70c92754de07bb3c28d0d31cb929ee8a3a47ac4f3d446e

6 years agoEnsure that the OP_VColumn opcode does set sqlite3_vtab_nochange() unless
drh [Thu, 27 Sep 2018 20:20:01 +0000 (20:20 +0000)] 
Ensure that the OP_VColumn opcode does set sqlite3_vtab_nochange() unless
the OPFLAG_NOCHNG bit is set in P5.  Fix for ticket
[69d642332d25aa3b7315a6d385]

FossilOrigin-Name: 322ab1fc613f616e9f07dc94ef74a29572a21cc476d88e97b4ce865500a47b62

6 years agoAnother minor tweak to memstat.c so that it may be built against older versions
dan [Thu, 27 Sep 2018 17:33:06 +0000 (17:33 +0000)] 
Another minor tweak to memstat.c so that it may be built against older versions
of SQLite.

FossilOrigin-Name: 4c1fed60b9b35ac2f5d2f2533b54db429d72bdbc0aad0dd5af52ff851789d4ae

6 years agoModify the memstat virtual table so that it works with SQLite version 3.9.2.
drh [Thu, 27 Sep 2018 17:15:21 +0000 (17:15 +0000)] 
Modify the memstat virtual table so that it works with SQLite version 3.9.2.

FossilOrigin-Name: 7171d8ae6b1e7c97b0cf06bcca2262674c9ce557c85666b4b77c16cbac508502

6 years agoAdd the sqlite_memstat extension - an eponymous virtual table that shows
drh [Thu, 27 Sep 2018 17:03:03 +0000 (17:03 +0000)] 
Add the sqlite_memstat extension - an eponymous virtual table that shows
memory usages statistics for SQLite.

FossilOrigin-Name: 954ef61f6a02532e72c815208ec839310f1e00d69e0003cc6f5426f0559229d1

6 years agoEnhancements to sqlite_memstat: memstat-vtab
drh [Thu, 27 Sep 2018 16:57:42 +0000 (16:57 +0000)] 
Enhancements to sqlite_memstat:
(1) Add an extra "schema" column to show the schema name for ZIPVFS stats.
(2) Only show ZIPVFS stats to schema that use ZIPVFS
(3) Put a NULL in unused columns of the output.

FossilOrigin-Name: 9351135b4331107be2f2bda7b6adbd5436381f4f9a68340e8a172b6517ec3f12

6 years agoAdd initial ZIPVFS support for the "main" database to the sqlite_memstat
drh [Thu, 27 Sep 2018 15:45:03 +0000 (15:45 +0000)] 
Add initial ZIPVFS support for the "main" database to the sqlite_memstat
virtual table.

FossilOrigin-Name: 9cd27350b0f62debfe3238c57c3ab51079699142e82c05a7ec8460a8429f55f2

6 years agoInitial prototype of a eponymous virtual table that accesses sqlite3_status64()
drh [Thu, 27 Sep 2018 15:21:13 +0000 (15:21 +0000)] 
Initial prototype of a eponymous virtual table that accesses sqlite3_status64()
and sqlite3_db_status().

FossilOrigin-Name: 0b44e1f68e0c8349367e3f929d4734c3df96338ec8d6fb652565bf894e8b8343

6 years agoDisallow the use of window functions in the recursive part of a recursive CTE.
dan [Thu, 27 Sep 2018 12:14:15 +0000 (12:14 +0000)] 
Disallow the use of window functions in the recursive part of a recursive CTE.

FossilOrigin-Name: 7fc2994434c7d9ed29c96a69c07e8eb4e97be776473c170c63f9a1bbaa09fa68

6 years agoMinor simplification: In OP_ParseSchema, read the p1 register once.
mistachkin [Thu, 27 Sep 2018 00:04:31 +0000 (00:04 +0000)] 
Minor simplification: In OP_ParseSchema, read the p1 register once.

FossilOrigin-Name: bd250533a06e4a11c1f548c3de66b8562fc627383848570d7d030cf132fd336f

6 years agoFurther improvements to the ".help" command in the CLI.
drh [Wed, 26 Sep 2018 18:02:32 +0000 (18:02 +0000)] 
Further improvements to the ".help" command in the CLI.

FossilOrigin-Name: edc3d18ecbda32d6a55de76ee7335342425c57d917e9b48814a7301a012263b2

6 years agoBegin revamping the ".help" command in the command-line shell so that it
drh [Wed, 26 Sep 2018 16:53:51 +0000 (16:53 +0000)] 
Begin revamping the ".help" command in the command-line shell so that it
can accept an argument and will do a search for commands that match that
argument.

FossilOrigin-Name: 209afb8d06466536863b89a8acb9a1a18477a06331d8cce95fc6380e1666b6f5

6 years agoTweak spellfix.c so that if SQLITE_SPELLFIX_5BYTE_MAPPINGS is defined at
dan [Wed, 26 Sep 2018 16:05:07 +0000 (16:05 +0000)] 
Tweak spellfix.c so that if SQLITE_SPELLFIX_5BYTE_MAPPINGS is defined at
compile time the Transliteration structure has space for 5 byte (instead of 4
byte) mappings.

FossilOrigin-Name: cbaf5b6c1b07b29b2c83fa01618de856d81cc1174769cb9770cb5c894cc87ace

6 years agoFix typos in the header comment for the sha1 and sha3 hash extensions
drh [Wed, 26 Sep 2018 03:43:42 +0000 (03:43 +0000)] 
Fix typos in the header comment for the sha1 and sha3 hash extensions
in the ext/misc folder.

FossilOrigin-Name: 4ed9d83a0b14a22b3ecf25785b03b5a824d260e01a608aea85231df9b816421d

6 years agoFix a problem in releasetest.tcl causing configuration "Fast-One" to fail.
dan [Tue, 25 Sep 2018 13:51:31 +0000 (13:51 +0000)] 
Fix a problem in releasetest.tcl causing configuration "Fast-One" to fail.

FossilOrigin-Name: 42e04fefbc241dd33f12abd66344a87720ae4cda6d82f2882217b3cb71be8733

6 years agoSlightly smaller and faster alternative to [507d892c3a40a0bacbd47] that
drh [Mon, 24 Sep 2018 15:39:30 +0000 (15:39 +0000)] 
Slightly smaller and faster alternative to [507d892c3a40a0bacbd47] that
fixes a problem with views that use window function as part of complex
expressions.

FossilOrigin-Name: d7c816ae15f05f21b9b213161e1044aaefc56f17e7bc4b7b551a9e04efc05855

6 years agoFix a problem with views that use window functions as part of complex expressions.
dan [Mon, 24 Sep 2018 14:51:59 +0000 (14:51 +0000)] 
Fix a problem with views that use window functions as part of complex expressions.

FossilOrigin-Name: 507d892c3a40a0bacbd47ed3c4fe2d8925a82716ae08da8401750a42782ba454

6 years agoAllow a writable virtual table to have a schema with an INTEGER PRIMARY KEY
drh [Mon, 24 Sep 2018 14:10:55 +0000 (14:10 +0000)] 
Allow a writable virtual table to have a schema with an INTEGER PRIMARY KEY
and WITHOUT ROWID.  This fixes ticket
[f25d5ceebe1d710ff61a571e395356869d8272ef].

FossilOrigin-Name: 5a38d9281b4ad63b853efa5cdd5ad4a64b19dfaf8250ef8e0e186684df1211ea

6 years agoUse compile-time options SQLITE_QUERY_PLANNER_LIMIT and
drh [Mon, 24 Sep 2018 12:37:01 +0000 (12:37 +0000)] 
Use compile-time options SQLITE_QUERY_PLANNER_LIMIT and
SQLITE_QUERY_PLANNER_LIMIT_INCR to control the value for
WhereLoopBuilder.iPlanLimit, rather than embedding magic numbers in the
code.

FossilOrigin-Name: 903e501894b2a5dd7055b5154d74d4a47a619f76e66485a4d62b6259f10723d6

6 years agoIncrease the initial value of WhereLoopBuilder.iPlanLimit to 20K. Issue
drh [Mon, 24 Sep 2018 10:47:33 +0000 (10:47 +0000)] 
Increase the initial value of WhereLoopBuilder.iPlanLimit to 20K.  Issue
a warning if the iPlanLimit reaches zero.

FossilOrigin-Name: 3dd35f51187574f47f860405309877cdbf9dc5710703dfd98cf98073b771140c

6 years agoFix a faulty assert() in the validation logic for the LEFT JOIN strength
drh [Sun, 23 Sep 2018 02:01:42 +0000 (02:01 +0000)] 
Fix a faulty assert() in the validation logic for the LEFT JOIN strength
reduction optimization.  Problem found by OSSFuzz.

FossilOrigin-Name: 2fd62fccd13e326dbd7dd730112542c6faa56e466bf4f7b8e22ced543031280c

6 years agoEnhance WhereLoopBuilder.iPlanLimit to handle a case involving the OR
drh [Sat, 22 Sep 2018 15:05:32 +0000 (15:05 +0000)] 
Enhance WhereLoopBuilder.iPlanLimit to handle a case involving the OR
optimization discovered overnight by OSSFuzz.

FossilOrigin-Name: 7b59930a1d7b664b54d5a2bc9fa385925b5f4c8f34bf401c798307e3e2dae2c6

6 years agoFix harmless compiler warning when compiled with SQLITE_OMIT_AUTHORIZATION.
mistachkin [Fri, 21 Sep 2018 23:41:18 +0000 (23:41 +0000)] 
Fix harmless compiler warning when compiled with SQLITE_OMIT_AUTHORIZATION.

FossilOrigin-Name: 50f2fa19532e0f849d61d9e2a97427cfbf64cfb787ca481ef8c860d0f24f6cfe

6 years agoComment typo fixed. No code changes.
drh [Fri, 21 Sep 2018 19:06:09 +0000 (19:06 +0000)] 
Comment typo fixed.  No code changes.

FossilOrigin-Name: 7e68cdab20f50cf776b92b2138bb4aba7cb070f2bd855dd4cbbf46d447f2dc88

6 years agoPut a limit counter on the query planner that restricts the number of
drh [Fri, 21 Sep 2018 18:43:51 +0000 (18:43 +0000)] 
Put a limit counter on the query planner that restricts the number of
index+constraint options that can be considered for each table in a join.
This prevents certain pathological queries from taking up too much time
in the query planner.

FossilOrigin-Name: 8690b5a0cc08eeb175230de45d4ca9b9f7b9b22aeebea70b8b7151f10b130969

6 years agoOptimization to the OP_MakeRecord opcode makes speed-check.sh run about
drh [Fri, 21 Sep 2018 13:07:14 +0000 (13:07 +0000)] 
Optimization to the OP_MakeRecord opcode makes speed-check.sh run about
1.1 million cycles faster, and results in a slightly smaller library.

FossilOrigin-Name: d10e63629183f6daf0c263cd4dae052a3786c8c1480b3b6a73124b3315e41951

6 years agoMinor code simplification.
drh [Thu, 20 Sep 2018 20:43:28 +0000 (20:43 +0000)] 
Minor code simplification.

FossilOrigin-Name: 22ae8a52dd2fb744f467c7dccf1d7fe7c7cef0e1dcc897dd492f897e84c9facb

6 years agoAdd the "PRAGMA legacy_alter_table=ON" command to enable the pre-3.25.0
drh [Thu, 20 Sep 2018 20:15:02 +0000 (20:15 +0000)] 
Add the "PRAGMA legacy_alter_table=ON" command to enable the pre-3.25.0
behavior of ALTER TABLE that does not modify the bodies of triggers or
views or the WHERE clause of a partial index.  Enable the legacy behavior
by default when running the xRename method of virtual tables.

FossilOrigin-Name: 7edd26ed27ed1e7eab603058f7d55f2eac45e7bd1908bfa5f32293611883b157

6 years agoCombine the Expr.pTab and Expr.pWin fields into a union named "y". Add a new
drh [Thu, 20 Sep 2018 19:02:15 +0000 (19:02 +0000)] 
Combine the Expr.pTab and Expr.pWin fields into a union named "y".  Add a new
EP_WinFunc property that is only true if Expr.y.pWin is a valid pointer.
This reduces the size of the Expr object by 8 bytes, reduces the overall
amount of code, and shaves over 1 million cycles off of the speed test.

FossilOrigin-Name: ad130bb86e74e6ce165fdbdce3a19699510f0e62071c1c7923b5a4538d888c7c

6 years agoBy default, make all "ALTER TABLE RENAME" statements executed within a virtual legacy-alter-table
dan [Thu, 20 Sep 2018 17:21:21 +0000 (17:21 +0000)] 
By default, make all "ALTER TABLE RENAME" statements executed within a virtual
table xRename() method exhibit the legacy behaviour.

FossilOrigin-Name: 71947337e98b90debb13b390119bc2a6b39dd41535151b836071ee327a31e45d

6 years agoAdd a PRAGMA that restores the legacy ALTER TABLE RENAME TO behaviour.
dan [Thu, 20 Sep 2018 08:28:01 +0000 (08:28 +0000)] 
Add a PRAGMA that restores the legacy ALTER TABLE RENAME TO behaviour.

FossilOrigin-Name: 5acad2e92c11c209bedc6ac8a709595e8070eed028ffc82af61499e5ceaa5e2b

6 years agoA minor code simplification, saved in a branch for future reference. minor-altertab-simplification
drh [Wed, 19 Sep 2018 18:17:46 +0000 (18:17 +0000)] 
A minor code simplification, saved in a branch for future reference.

FossilOrigin-Name: 5e458f4a92743effb9a3d3249767424fed8b444a05ca136c4a55d60c4d70c2cc

6 years agoFix a compilation issue in the "userauth" extension. Also fix a few test
dan [Wed, 19 Sep 2018 17:09:09 +0000 (17:09 +0000)] 
Fix a compilation issue in the "userauth" extension. Also fix a few test
script errors that occur with SQLITE_USER_AUTHENTICATION=1 builds.

FossilOrigin-Name: 221f3f572ed49d7af69a2e7c88741fa5206ea33ca59ee791eac7698bdd11ca4d

6 years agoFix the "sqlite3" command in the TCL interface so that it correctly returns
drh [Wed, 19 Sep 2018 15:08:21 +0000 (15:08 +0000)] 
Fix the "sqlite3" command in the TCL interface so that it correctly returns
an error if invoked with no arguments.

FossilOrigin-Name: 2034fa8089676132b5e2f71bdebf1af9ca141da2e173920c6e84fb974ab0f022

6 years agoFix a problem building on Android with SQLITE_ENABLE_BATCH_ATOMIC_WRITE set.
dan [Tue, 18 Sep 2018 19:40:18 +0000 (19:40 +0000)] 
Fix a problem building on Android with SQLITE_ENABLE_BATCH_ATOMIC_WRITE set.

FossilOrigin-Name: e41e50fe7430cb79f67369fe81ac9938665bfc5db59c4faaf429ceb8ca03f584

6 years agoAvoid incrementing the SQLITE_LOOKASIDE_MISS_SIZE stat before sqlite3_open()
dan [Tue, 18 Sep 2018 17:50:34 +0000 (17:50 +0000)] 
Avoid incrementing the SQLITE_LOOKASIDE_MISS_SIZE stat before sqlite3_open()
returns. Fix test script problem in lookaside.test.

FossilOrigin-Name: e461cb281959d8517296e3e4e934eba8206770b1a592cd7655b6567268da1634

6 years agoEnhance tester.tcl so that when "--malloctrace=1" is specified, the test
dan [Tue, 18 Sep 2018 17:00:06 +0000 (17:00 +0000)] 
Enhance tester.tcl so that when "--malloctrace=1" is specified, the test
generates self-contained Tcl scripts that present GUIs instead of *.sql files
that require a separate program to interpret.

FossilOrigin-Name: de2e3cbd08c00d235106c040fa472ec267ef8f1ec13c34ed7d16deac8d50b6cc

6 years agoMinor improvements to the permutations.test script. Most notably, a command
dan [Tue, 18 Sep 2018 16:06:42 +0000 (16:06 +0000)] 
Minor improvements to the permutations.test script. Most notably, a command
like "permutations.test alter%" now runs all test scripts with names that
match the LIKE pattern "alter%". Or, say, "permutations wal alter%" to run all
alter% tests in wal mode.

FossilOrigin-Name: 3e1a2f6614eacb65e1dffe64c6292c809fc5808be2d9d7d103cfc57d7b32fcd9

6 years agoFurther optimizations to the UPDATE logic to avoid making changes to partial
drh [Mon, 17 Sep 2018 20:47:38 +0000 (20:47 +0000)] 
Further optimizations to the UPDATE logic to avoid making changes to partial
indexes if none of the columns mentioned in the WHERE clause are modified by
the UPDATE.

FossilOrigin-Name: d1365a5bf0ee2f145427b81d2a593f539c3ad4705d579478703c1f65ae5f80bf

6 years agoDisable the ORDER BY LIMIT optimization in queries using window functions.
drh [Mon, 17 Sep 2018 15:19:13 +0000 (15:19 +0000)] 
Disable the ORDER BY LIMIT optimization in queries using window functions.
This fixes a problem that was introduced by check-in [206720129ed2fa8875a286]
which attempted to fix ticket [9936b2fa443fec03ff25f9].  This changes is
a fix for the follow-in tocket [510cde277783b5fb5de628].

FossilOrigin-Name: c6c9585f294710829ca24b64d70a36fd9f409261dd0661367c6c4198cdbc4c81

6 years agoFix a false-positive in the post-ALTER-TABLE schema verification logic that
drh [Mon, 17 Sep 2018 14:13:48 +0000 (14:13 +0000)] 
Fix a false-positive in the post-ALTER-TABLE schema verification logic that
prevents ALTER TABLE from working if the table being altered has a trigger
that references any column of a virtual table. Ticket [b41031ea2b537237].

FossilOrigin-Name: 84105ea4af98bd8bddbdf9dc6674bdf73c110c0685afe868ce9681da110144d7

6 years agoRestore an assert() that was present on trunk. tkt-b41031ea
drh [Mon, 17 Sep 2018 13:55:18 +0000 (13:55 +0000)] 
Restore an assert() that was present on trunk.

FossilOrigin-Name: a7b572ca7867a95f49888dc95c0dc6d726afa9fea26283be147ba422639d1307

6 years agoMinor modification to the fix on this branch to avoid adding extra conditional
dan [Mon, 17 Sep 2018 13:38:45 +0000 (13:38 +0000)] 
Minor modification to the fix on this branch to avoid adding extra conditional
compilation macros.

FossilOrigin-Name: 4d8be404dab265b51e5a6a95e83be85c22512e19a437191690c7d845c87ff259

6 years agoFix missing space in 'configure.ac' reported on the mailing list.
mistachkin [Mon, 17 Sep 2018 12:49:21 +0000 (12:49 +0000)] 
Fix missing space in 'configure.ac' reported on the mailing list.

FossilOrigin-Name: 96b00a3cd2273dd3baa8e5b7a441458b142d4d2daabc679e4fcb5ab706674e76

6 years agoAdd extra test for the fix on this branch. Also fix a
dan [Mon, 17 Sep 2018 08:27:23 +0000 (08:27 +0000)] 
Add extra test for the fix on this branch. Also fix a
pointer-compare-after-free problem that occurs in similar cases.

FossilOrigin-Name: 1856ea63b3186c2c8fa716ffe01c731397bdbbc3fbb56dc72ad0686cb7f152ca

6 years agoAdd assert()s to the new code in the previous check-in.
drh [Mon, 17 Sep 2018 00:15:21 +0000 (00:15 +0000)] 
Add assert()s to the new code in the previous check-in.

FossilOrigin-Name: b12f23a5c484cab3654721299ea0f05230eef6b14012b557f3bf2592fac0f00e

6 years agoFirst proposed fix for the ALTER TABLE problem described by ticket
drh [Sun, 16 Sep 2018 23:27:37 +0000 (23:27 +0000)] 
First proposed fix for the ALTER TABLE problem described by ticket
[b41031ea2b5372378cb3d2d]

FossilOrigin-Name: 05a9d129254e01a5f6b5e4033c105190eae386575a94b020ef3e0cbd30bbf056

6 years agoRemove an unreachable branch from the index-on-expression optimization.
drh [Sun, 16 Sep 2018 18:23:48 +0000 (18:23 +0000)] 
Remove an unreachable branch from the index-on-expression optimization.

FossilOrigin-Name: 2df2cf4f179dd88fb2530dfd338f344ac48dd052ef954dc95a136884523f7aee

6 years agoFix a memory leak in the explain extension.
drh [Sun, 16 Sep 2018 16:34:31 +0000 (16:34 +0000)] 
Fix a memory leak in the explain extension.

FossilOrigin-Name: d0c92b047a5355726aea87f38038e5bda3adf6137492919be94bd29bb847eddb

6 years agoAdd the new "explain" virtual table in ext/misc. Use this virtual table
drh [Sun, 16 Sep 2018 16:18:01 +0000 (16:18 +0000)] 
Add the new "explain" virtual table in ext/misc.  Use this virtual table
for additional test cases for the optimization that avoids updating indexes
on expressions when none of the columns changed by the UPDATE are in the
expression.

FossilOrigin-Name: 2404304cc15eaeee2744cf3c8f9cac0a544631c4f1060c5a17a78b43ca86edf0

6 years agoImproved presentation on the new code that prevents unnecessary writes to
drh [Sun, 16 Sep 2018 15:01:25 +0000 (15:01 +0000)] 
Improved presentation on the new code that prevents unnecessary writes to
expressions on indexes during an UPDATE when the expression does not reference
any of the columns that are changing.

FossilOrigin-Name: c9f045295c4577752b0847ff2027b44661e6cb15bb08b942ccb3a0ef396f3dec