]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
8 years agoChange the name of the json_merge_patch() function to just json_patch(). json_mergepatch
drh [Thu, 23 Mar 2017 20:33:49 +0000 (20:33 +0000)] 
Change the name of the json_merge_patch() function to just json_patch().

FossilOrigin-Name: 04d4100445a3373986ee962618bc03ec304f6ba2f867c8e9eee415daffb593fc

8 years agoAvoid redundant edits in the json_merge_patch() function.
drh [Thu, 23 Mar 2017 12:56:44 +0000 (12:56 +0000)] 
Avoid redundant edits in the json_merge_patch() function.

FossilOrigin-Name: 4a8e6437dd610c5376a07867a73e5a7e2ea90357a018e1788ecce6f4e10bc939

8 years agoFix harmless compiler warnings in the new json_merge_patch() logic.
drh [Thu, 23 Mar 2017 00:46:15 +0000 (00:46 +0000)] 
Fix harmless compiler warnings in the new json_merge_patch() logic.

FossilOrigin-Name: 5d2cf5a2f8afd88d041d89b3936042ce5a43629d23c48738cb2791b24da3e6af

8 years agoVarious fixes to the json_merge_patch() function.
drh [Thu, 23 Mar 2017 00:13:52 +0000 (00:13 +0000)] 
Various fixes to the json_merge_patch() function.

FossilOrigin-Name: f49fd2554b0723eb7cf2fd765d655c6820833ee7e5f7d7629d98c27a6fffa1d9

8 years agoChange the name of the new function to "json_merge_patch()".
drh [Wed, 22 Mar 2017 21:45:20 +0000 (21:45 +0000)] 
Change the name of the new function to "json_merge_patch()".

FossilOrigin-Name: 53bf70f37bbca319ea35f70849e2a34ae628a504486158fdad5c4bb7431c68e0

8 years agoInitial implementation of the json_mergepatch(A,B) SQL function.
drh [Wed, 22 Mar 2017 21:24:31 +0000 (21:24 +0000)] 
Initial implementation of the json_mergepatch(A,B) SQL function.

FossilOrigin-Name: a267444039af519f088dd8f8ee33f686cc3071c087677075af2364ebc2587514

8 years agoNew simplified memory initialization for MacOS.
drh [Tue, 21 Mar 2017 20:17:24 +0000 (20:17 +0000)] 
New simplified memory initialization for MacOS.

FossilOrigin-Name: 055b36f1c1593bb123f7319a07c476143d71af052b5b8d34afcd0d500f197882

8 years agoFix an incorrect assert in the ANALYZE logic for STAT4 on WITHOUT ROWID
drh [Tue, 21 Mar 2017 18:56:52 +0000 (18:56 +0000)] 
Fix an incorrect assert in the ANALYZE logic for STAT4 on WITHOUT ROWID
tables.

FossilOrigin-Name: ad741976c8c29bcc94f9ea9ed7deb580bb00c8a81d1a7fba1a4e03849728433d

8 years agoAdd short script ext/fts3/tool/fts3cov.sh. To help measure test-coverage of
dan [Tue, 21 Mar 2017 17:19:31 +0000 (17:19 +0000)] 
Add short script ext/fts3/tool/fts3cov.sh. To help measure test-coverage of
fts3 source code.

FossilOrigin-Name: ee9588e873ffebcaa177957950cbb14924e154c391ed7f687116065064ff11b0

8 years agoDo not run sync2.test as part of the "inmemory_journal" permutation.
dan [Tue, 21 Mar 2017 10:45:38 +0000 (10:45 +0000)] 
Do not run sync2.test as part of the "inmemory_journal" permutation.

FossilOrigin-Name: 9f680bc7c47f8391adba6ea2b4b2cb6a5a041e22753543d5224da6656c3762fe

8 years agoAdd the --native-malloc option to fuzzcheck. Fix ossfuzz.c and fuzzcheck.c
drh [Mon, 20 Mar 2017 22:58:27 +0000 (22:58 +0000)] 
Add the --native-malloc option to fuzzcheck.  Fix ossfuzz.c and fuzzcheck.c
so that they both deallocate the temp_store_directory before closing.

FossilOrigin-Name: 0dd18ec882bb28a87629d6d8dfeb5ea5d82833634b3781a7d14b917272c4dfa0

8 years agoFix the fuzzcheck program so that it can create new databases again.
drh [Mon, 20 Mar 2017 20:42:21 +0000 (20:42 +0000)] 
Fix the fuzzcheck program so that it can create new databases again.

FossilOrigin-Name: 021e8874a7d1bb94debae3ae04f83056a8573148ffc872cd76a186a2d22d0296

8 years agoAvoid passing NULL as the second argument to memcpy() in fts3.
dan [Mon, 20 Mar 2017 19:35:30 +0000 (19:35 +0000)] 
Avoid passing NULL as the second argument to memcpy() in fts3.

FossilOrigin-Name: 49b93d972de9649abfd6235b65dda1c9d468956671e50704afde6181ffa56dea

8 years agoAvoid a technically undefined right-shift of a signed value in rtree.c.
dan [Mon, 20 Mar 2017 19:26:27 +0000 (19:26 +0000)] 
Avoid a technically undefined right-shift of a signed value in rtree.c.

FossilOrigin-Name: a144875fe44ff3a30bab299d50b7dbec2ee21f8c73e692a71ee1f7c54b5f0c76

8 years agoFix some problems in fts3 found by address-sanitizer.
dan [Mon, 20 Mar 2017 18:53:32 +0000 (18:53 +0000)] 
Fix some problems in fts3 found by address-sanitizer.

FossilOrigin-Name: 16a8e84fa7f67a467f824bdd7f72cbd6a6e95dab8cc7aa1e0e751720b98f3e31

8 years agoAvoid the possibility of signed integer overflow with oversized precisions
drh [Mon, 20 Mar 2017 16:34:18 +0000 (16:34 +0000)] 
Avoid the possibility of signed integer overflow with oversized precisions
in %d conversions in the printf() implementation.

FossilOrigin-Name: ef3a7c877a7549b351aafd983cfa96c863eb2641b6218bdd5cb563f659f879d8

8 years agoDo not run sync2.test as part of the "journaltest" permutation, as it uses
dan [Mon, 20 Mar 2017 16:06:48 +0000 (16:06 +0000)] 
Do not run sync2.test as part of the "journaltest" permutation, as it uses
"PRAGMA synchronous = off".

FossilOrigin-Name: 285005a9bcb210bb2a9aa9fed6a19d4b78641a6e7622d469bd0d2a365b2c0735

8 years agoEnsure that a "--" prefix is added to sqlite3_trace_v2() output for nested
drh [Mon, 20 Mar 2017 15:29:28 +0000 (15:29 +0000)] 
Ensure that a "--" prefix is added to sqlite3_trace_v2() output for nested
SQL statements.

FossilOrigin-Name: 673a7b67c4828acaea3baebea500ef1f8ae763588b0d9c9f2ad6ed5ceb3cfee2

8 years agoOnly run sync2.test on unix, as it depends on instrumentation in os_unix.c.
dan [Mon, 20 Mar 2017 15:11:40 +0000 (15:11 +0000)] 
Only run sync2.test on unix, as it depends on instrumentation in os_unix.c.

FossilOrigin-Name: ecb9321e18dd72ea18d197c61c4d69500e9c4282c0eac67822cb40b2710a2815

8 years agoFix the check.test script so that it works on Windows.
drh [Mon, 20 Mar 2017 14:44:07 +0000 (14:44 +0000)] 
Fix the check.test script so that it works on Windows.

FossilOrigin-Name: 8822eb5d790bf8d4302c3f2dc05ab672193b309fb11771c4b3eea8a77f37e299

8 years agoDocumentation fix: SQLITE_SOURCE_ID is a now a SHA3-256 hash.
drh [Mon, 20 Mar 2017 13:03:39 +0000 (13:03 +0000)] 
Documentation fix:  SQLITE_SOURCE_ID is a now a SHA3-256 hash.

FossilOrigin-Name: 2aa22509e7c8a1f09b16e4544c95d0b77503daed1f83106ccc18dee8bd9487a4

8 years agoOnly do the specialized MacOS single-core zone_malloc initialization if
drh [Sat, 18 Mar 2017 13:59:46 +0000 (13:59 +0000)] 
Only do the specialized MacOS single-core zone_malloc initialization if
compiled with the SQLITE_MIGHT_BE_SINGLE_CORE flag.  This avoids a (harmless)
warning about OSAtomicCompareAndSwapPtrBarrier() being deprecated.

FossilOrigin-Name: 4e6a03d9e12b120d15946b025f97a97697cb8e8af543c238ffda220c9e3f28f4

8 years agoFix an error in the newly revised documentation for SQLITE_LIMIT_VDBE_OP.
drh [Fri, 17 Mar 2017 23:08:11 +0000 (23:08 +0000)] 
Fix an error in the newly revised documentation for SQLITE_LIMIT_VDBE_OP.
No changes to code.

FossilOrigin-Name: f4cf8635e6fec6f04075cc067aaa71abc4f71739068e0ad2c44609dcb8691009

8 years agoSet a reasonable limit on the number of opcodes in a prepared statement
drh [Fri, 17 Mar 2017 22:51:28 +0000 (22:51 +0000)] 
Set a reasonable limit on the number of opcodes in a prepared statement
for ossfuzz.c.  This should prevent timeouts in OSS-Fuzz when it generates
totally unreasonable queries.

FossilOrigin-Name: f74899ed2c78019abb406432a74dcd42a0ff8d9add005f8544dc4a8905f232eb

8 years agoBegin enforcing the SQLITE_LIMIT_VDBE_OP. The documentation warned that this
drh [Fri, 17 Mar 2017 22:50:16 +0000 (22:50 +0000)] 
Begin enforcing the SQLITE_LIMIT_VDBE_OP.  The documentation warned that this
day might come.

FossilOrigin-Name: ef5914617088cbf89bfae88f63ea959a07f02dff387ddc2b43948ad99c6a97b8

8 years agoAdd the --show-errors and --show-max-delay command-line options to the
drh [Fri, 17 Mar 2017 14:59:40 +0000 (14:59 +0000)] 
Add the --show-errors and --show-max-delay command-line options to the
ossshell test program.

FossilOrigin-Name: 626bdca98e0cd78ae873d97e75bb7d544ca18759c9f1e67f4adf03daca7fe5bf

8 years agoFix the Makefile.in so that it builds the ossshell test program correctly.
drh [Fri, 17 Mar 2017 14:15:06 +0000 (14:15 +0000)] 
Fix the Makefile.in so that it builds the ossshell test program correctly.

FossilOrigin-Name: 36f5602ec9fb8e404c5250e18b1db877ac7bee643918b94afd51808134ea7900

8 years agoFix a buffer overread in debugging routine sqlite3VdbeMemPrettyPrint().
dan [Fri, 17 Mar 2017 13:59:06 +0000 (13:59 +0000)] 
Fix a buffer overread in debugging routine sqlite3VdbeMemPrettyPrint().
Problem discovered by OSS-Fuzz.

FossilOrigin-Name: f336fba7d7d41b91a5000d01dddf785821fa79ea31dbd8d1f769d55f7e871896

8 years agoFix a problem in the enhanced PRAGMA integrity_check where it verifies
drh [Fri, 17 Mar 2017 03:21:14 +0000 (03:21 +0000)] 
Fix a problem in the enhanced PRAGMA integrity_check where it verifies
CHECK constraints: Do not be confused by the reuse of the Table.pCheck field
by VIEWs with named columns.  Problem discovered by OSS-Fuzz.

FossilOrigin-Name: 019dd3d5ba4a596c4ec3b5f0de8402c72196af0faca9138edbc0f1f4957cae60

8 years agoIf the user has not set it explicitly, set the "PRAGMA synchronous" setting to
dan [Thu, 16 Mar 2017 18:55:21 +0000 (18:55 +0000)] 
If the user has not set it explicitly, set the "PRAGMA synchronous" setting to
SQLITE_DEFAULT_SYNCHRONOUS when a database connection changes from wal to
rollback journal mode.

FossilOrigin-Name: 5c604479fda06714500959e121c719d1b6c8e54d1658eb9f560a4af95b7c5829

8 years agoFix a typo causing the build to fail if SQLITE_DEFAULT_SYNCHRONOUS==SQLITE_DEFAULT_WA... default-synchronous-fix
dan [Thu, 16 Mar 2017 18:54:42 +0000 (18:54 +0000)] 
Fix a typo causing the build to fail if SQLITE_DEFAULT_SYNCHRONOUS==SQLITE_DEFAULT_WAL_SYNCHRONOUS.

FossilOrigin-Name: df39adeaa4d73a3d4ec831843b8ec7fd449f8b2137bdc7d7c320958d00e98db6

8 years agoIf the user has not set it explicitly, set the "PRAGMA synchronous" setting to
dan [Thu, 16 Mar 2017 18:14:39 +0000 (18:14 +0000)] 
If the user has not set it explicitly, set the "PRAGMA synchronous" setting to
SQLITE_DEFAULT_SYNCHRONOUS when a database connection changes from wal to
rollback journal mode.

FossilOrigin-Name: 78030c0f52aa39fb2ab32c75c56e6bcefe6382b8df28b1909e3c911e42dbeca3

8 years agoSimplified OOM detection in the instr() SQL function.
drh [Thu, 16 Mar 2017 14:28:52 +0000 (14:28 +0000)] 
Simplified OOM detection in the instr() SQL function.

FossilOrigin-Name: 6d85eb5736781b43aa674d9544c7523b849b4e634f371702f8764b33e22e1e9f

8 years agoFix an uninitialized variable reference in the text generator
drh [Thu, 16 Mar 2017 13:30:58 +0000 (13:30 +0000)] 
Fix an uninitialized variable reference in the text generator
for "PRAGMA vdbe_trace=ON" output.
Problem discovered by OSS-Fuzz.

FossilOrigin-Name: e3d487162d1596ce125644f754ed9531ef4412f31f6837c3e31b7542b90602fe

8 years agoFix a problem in the "showdb" utility that prevents it from correctly
drh [Thu, 16 Mar 2017 13:14:03 +0000 (13:14 +0000)] 
Fix a problem in the "showdb" utility that prevents it from correctly
decoding cells with no content beyond the record header.

FossilOrigin-Name: eb7680a1c047b2a33d6a0c9733fafaee11272377c627af10bbd541b6b7ed952b

8 years agoFix a crash that could follow an OOM condition in the instr() SQL function.
dan [Thu, 16 Mar 2017 12:11:07 +0000 (12:11 +0000)] 
Fix a crash that could follow an OOM condition in the instr() SQL function.

FossilOrigin-Name: 6e59e903e4e956617bddef0b94e5cae02d724ac8145940b57ab5b0f628759736

8 years agoUpdates to README files under the ext/ hierarchy. No changes to code.
drh [Wed, 15 Mar 2017 20:27:46 +0000 (20:27 +0000)] 
Updates to README files under the ext/ hierarchy.  No changes to code.

FossilOrigin-Name: 029bc5d224bcbdcca2307710539b133c39e2a27b971c28b294a1f517b80cb418

8 years agoAdd the "Obtaining The Code" subsection in the top-level README.md file.
drh [Wed, 15 Mar 2017 19:11:29 +0000 (19:11 +0000)] 
Add the "Obtaining The Code" subsection in the top-level README.md file.
No changes to code.

FossilOrigin-Name: b1b1aa8b69aa80c83aec3380565f0b4ec0b6a6e033537becee098872da362e9a

8 years agoMention the ".selftest" command in the ".help" output of the CLI.
drh [Wed, 15 Mar 2017 14:20:34 +0000 (14:20 +0000)] 
Mention the ".selftest" command in the ".help" output of the CLI.

FossilOrigin-Name: 37f766dbad1f99ff86dd1b771bf443036e928e5b4d8abe55bbe4acf3362c7be2

8 years agoMake "PRAGMA temp.synchronous=N" a no-op to ensure that the TEMP schema
drh [Wed, 15 Mar 2017 14:04:03 +0000 (14:04 +0000)] 
Make "PRAGMA temp.synchronous=N" a no-op to ensure that the TEMP schema
always has synchronous=OFF.  This fixes an issue discovered by OSS-Fuzz.

FossilOrigin-Name: bcf6bb08d8b07d3c4567bcd367f8d4011ce8baad28c25d4e8870bdf347dd48bd

8 years agoImproved header comment on the shathree.c extension. No changes to code.
drh [Wed, 15 Mar 2017 13:47:39 +0000 (13:47 +0000)] 
Improved header comment on the shathree.c extension.  No changes to code.

FossilOrigin-Name: 84f2e3d5f611b35de16684956d842df6c93d858e8187f17eb27452758a752c57

8 years agoUpdates to the MSVC makefiles.
mistachkin [Tue, 14 Mar 2017 15:27:56 +0000 (15:27 +0000)] 
Updates to the MSVC makefiles.

FossilOrigin-Name: 1e4b9e7c9ee32b985c440bf3eb65bbdf28055566e66b6feba438143a3ad8dd07

8 years agoAdd the dbdump.c extension that implements functionality similar to the
drh [Mon, 13 Mar 2017 22:10:05 +0000 (22:10 +0000)] 
Add the dbdump.c extension that implements functionality similar to the
".dump" command of the CLI, though in a separate library.

FossilOrigin-Name: 2b9980a292d7f0d995b77d9b3fb217bb2206f6d452e036ac502fa06561af4c12

8 years agoAdd dbdump.exe to the MSVC makefile. dbdump
drh [Mon, 13 Mar 2017 22:02:01 +0000 (22:02 +0000)] 
Add dbdump.exe to the MSVC makefile.

FossilOrigin-Name: 59241a50ad1d6fe9f5804b73b3467dcd407d359ccbdcb9d72f2f6d94c90c1f40

8 years agoFixes to the dump logic. All appears to be working in preliminary tests.
drh [Mon, 13 Mar 2017 21:49:48 +0000 (21:49 +0000)] 
Fixes to the dump logic.  All appears to be working in preliminary tests.

FossilOrigin-Name: 007b11e301d444361c8eff8734dc2fb968a64343c177ff30cec74a0cf76099e8

8 years agoFirst draft of the complete dbdump.c library.
drh [Mon, 13 Mar 2017 21:26:41 +0000 (21:26 +0000)] 
First draft of the complete dbdump.c library.

FossilOrigin-Name: 84ea4fcc52d0af02648c52989c2e69f4961071e1620382555ec59a39161a7a7d

8 years agoInfrastructure for an extension C-library to implement sqlite3_db_dump() and
drh [Mon, 13 Mar 2017 19:26:34 +0000 (19:26 +0000)] 
Infrastructure for an extension C-library to implement sqlite3_db_dump() and
a corresponding "dbdump" command-line utility - both of which do the same
work as the ".dump" command of the CLI.

FossilOrigin-Name: 74c5ace498f72d7f5495203678bedd0bc540211131a4e4db7b62115d5322a288

8 years agoIn the output of the ".dump" command in the CLI, quote newline and
drh [Mon, 13 Mar 2017 18:24:06 +0000 (18:24 +0000)] 
In the output of the ".dump" command in the CLI, quote newline and
carriage-return characters using the char() function, so that they do not
get eaten by end-of-line processing logic in the OS or in other command-line
utilities and/or libraries.

FossilOrigin-Name: 68f6dc7af1013f296a11db14c007cc13cc3fe56832848bfed835ed8f74dcc676

8 years agoFix the sqlite3TreeViewSelect() routine so that it works with a null pointer
drh [Mon, 13 Mar 2017 17:37:13 +0000 (17:37 +0000)] 
Fix the sqlite3TreeViewSelect() routine so that it works with a null pointer
to the Select object.

FossilOrigin-Name: 9034cf7efc603864f51e931c7dc4fbbc2d01904e951e78c88d4d80f9936250e8

8 years agoFix a segfault that could occur following an OOM error in the
dan [Mon, 13 Mar 2017 14:30:40 +0000 (14:30 +0000)] 
Fix a segfault that could occur following an OOM error in the
flattenSubquery() routine.

FossilOrigin-Name: c6dda3f752c184f441624c9993e77d5031063d79a0e177b6e25a9886514a742e

8 years agoIn the OSSFuzz test module, invoke the progress handler much more frequently
drh [Mon, 13 Mar 2017 13:45:29 +0000 (13:45 +0000)] 
In the OSSFuzz test module, invoke the progress handler much more frequently
so that timeouts are detected punctually even if the test script is running
opcodes that individually take a long time (for example, an OP_Function opcode
that invokes "randomblob(1.5e6)").

FossilOrigin-Name: f3b6959c04c4ef7b8ff03582b867012a869d52b4a90a0d7ab079ee4c21be5464

8 years agoFix a possible NULL pointer dereference in following an OOM error
drh [Sun, 12 Mar 2017 20:28:44 +0000 (20:28 +0000)] 
Fix a possible NULL pointer dereference in following an OOM error
in sqlite3ExprIsInteger(). Problem found by OSS-Fuzz.

FossilOrigin-Name: 5ec655e8e817c1ed3bfb2e576745a7cef441494ad7baf1bf9f8895e98ac19c5a

8 years agoRemove an obsolete assert() in the IN operator code generation.
drh [Sun, 12 Mar 2017 19:39:00 +0000 (19:39 +0000)] 
Remove an obsolete assert() in the IN operator code generation.

FossilOrigin-Name: 18bf6aca2ac86478fd12d5020f3a41cfd2bd2dc3defe2298411f79ad308a6f73

8 years agoMake sure the translateColumnToCopy() routine in the query planner does not
drh [Sat, 11 Mar 2017 13:02:59 +0000 (13:02 +0000)] 
Make sure the translateColumnToCopy() routine in the query planner does not
try to access an array that failed to be fully allocated due to a prior OOM.
This fixes an issue discovered by OSSFuzz.

FossilOrigin-Name: 3299a26160c239255608d1e2b15a221e28b18a3d

8 years agoThe output of the ".dump" command in the CLI quotes newline and carriage-return string-quoting-dump
drh [Sat, 11 Mar 2017 01:56:41 +0000 (01:56 +0000)] 
The output of the ".dump" command in the CLI quotes newline and carriage-return
characters using "char(10)" and "char(13)".

FossilOrigin-Name: 8b2954dd8376e2de985cf5dedeb6eec32c430505

8 years agoIncrease the number of significant digits in floating point literals on
drh [Sat, 11 Mar 2017 00:46:57 +0000 (00:46 +0000)] 
Increase the number of significant digits in floating point literals on
".dump" output from the shell.

FossilOrigin-Name: 7359fcacaadc349f520536311dcd1d0b5cea7673

8 years agoRemove the rbu_round_trip.tcl script. It is now part of project "test-dbs".
dan [Fri, 10 Mar 2017 18:36:34 +0000 (18:36 +0000)] 
Remove the rbu_round_trip.tcl script. It is now part of project "test-dbs".

FossilOrigin-Name: b5bf2957677e8f2acd7426b302229a966de08fd9

8 years agoFix an error in the SQLITE_MAX_MEMORY implementation resulting from a bad
drh [Fri, 10 Mar 2017 17:03:11 +0000 (17:03 +0000)] 
Fix an error in the SQLITE_MAX_MEMORY implementation resulting from a bad
merge.  Update the OSSFuzz interface so that it times out after running
the byte-code engine for 10 seconds.

FossilOrigin-Name: f8560c60d10c0365b33342ab05b5a953987b0471

8 years agoAdd the -DSQLITE_MAX_MEMORY=N compile-time option. The default is no limit.
drh [Fri, 10 Mar 2017 16:22:40 +0000 (16:22 +0000)] 
Add the -DSQLITE_MAX_MEMORY=N compile-time option.  The default is no limit.

FossilOrigin-Name: eabd4ef498a0f0d97d65e321c4d06ab90523ed61

8 years agoAdd the SQLITE_MAX_MEMORY compile-time option that provides a hard upper bound max-memory-option
drh [Fri, 10 Mar 2017 15:55:54 +0000 (15:55 +0000)] 
Add the SQLITE_MAX_MEMORY compile-time option that provides a hard upper bound
on the amount of memory that SQLite will use, per process.

FossilOrigin-Name: 77dfe2abdae88dea81217f352d87e5ba2c822715

8 years agoEnhance the ".stats" dot-command in the CLI to use sqlite3_status64() instead
drh [Fri, 10 Mar 2017 14:36:10 +0000 (14:36 +0000)] 
Enhance the ".stats" dot-command in the CLI to use sqlite3_status64() instead
of sqlite3_status().

FossilOrigin-Name: 118f5c0564fef70cbd06fc0d9dbb2baec162cc39

8 years agoImprovements to ".selftest --init". Tests are number in increments of 10
drh [Fri, 10 Mar 2017 01:05:38 +0000 (01:05 +0000)] 
Improvements to ".selftest --init".  Tests are number in increments of 10
starting with 100.  The tests are generated inside a SAVEPOINT.  Errors are
reported during test generation.  Tests can be appended to existing tests.
Add a test case to verify the schema.

FossilOrigin-Name: b044b152aac2ec606750940ea816ad4a4aef8eb6

8 years agoRemove the test/dbselftest.c program. In its place, add the ".selftest"
drh [Thu, 9 Mar 2017 22:00:33 +0000 (22:00 +0000)] 
Remove the test/dbselftest.c program.  In its place, add the ".selftest"
command to the CLI.  The new CLI version is .selftest is slightly different
in that it uses SHA3 hashing instead of SHA1, so the new is subtly
incompatible with the old.

FossilOrigin-Name: f4fcd46f08ba59d2a3e772cad98383129f648386

8 years agoFix the ".dump" command to correctly extract tail data from corrupt
drh [Thu, 9 Mar 2017 18:13:52 +0000 (18:13 +0000)] 
Fix the ".dump" command to correctly extract tail data from corrupt
WITHOUT ROWID tables.

FossilOrigin-Name: 6c627e50622d8bcd25ec7d5503f3fafd725673a8

8 years agoBegin moving separate boolean variables in the ShellState object of the CLI
drh [Thu, 9 Mar 2017 13:50:49 +0000 (13:50 +0000)] 
Begin moving separate boolean variables in the ShellState object of the CLI
into the shellFlgs bitmask.

FossilOrigin-Name: 50eec5d9aa38fab1a85d788356ffdaf6c35d9ece

8 years agoMake sure the database connection is open prior to running the ".sha3sum"
drh [Wed, 8 Mar 2017 18:06:20 +0000 (18:06 +0000)] 
Make sure the database connection is open prior to running the ".sha3sum"
command.

FossilOrigin-Name: 2ea300fb8f7c497f3f092dc91f4305d8431c27d9

8 years agoIn the ".sha3sum" command, if there is a LIKE pattern, show the hashes for
drh [Wed, 8 Mar 2017 17:56:54 +0000 (17:56 +0000)] 
In the ".sha3sum" command, if there is a LIKE pattern, show the hashes for
each table separately.  Without a LIKE pattern, show a single hash over the
entire database.

FossilOrigin-Name: 30f878832820ce7ccc4627c4f0f98fbe82f8b0f6

8 years agoAdd the ".sha3sum" command to the CLI - used to compute a cryptographic hash
drh [Wed, 8 Mar 2017 16:10:34 +0000 (16:10 +0000)] 
Add the ".sha3sum" command to the CLI - used to compute a cryptographic hash
of the <em>content</em> of a database file or of individual tables with in
that file.

FossilOrigin-Name: fc663799075a22b0a61a6a114116bb2d1b96d4ab

8 years agoImproved comments explaining the sha3_query() format. Fix a performance #ifdef
drh [Wed, 8 Mar 2017 15:03:12 +0000 (15:03 +0000)] 
Improved comments explaining the sha3_query() format.  Fix a performance #ifdef
error in the sha3 implementation.

FossilOrigin-Name: 54ef7abd7f5b16f4b29c9519d283e142c9340fbf

8 years agoAdd the shathree.c extension for implementing SHA3() and SHA3_QUERY() SQL
drh [Wed, 8 Mar 2017 13:50:40 +0000 (13:50 +0000)] 
Add the shathree.c extension for implementing SHA3() and SHA3_QUERY() SQL
functions.

FossilOrigin-Name: f7ca9193ddafd3676406bdfeb1b7d21182c2a3c1

8 years agoIn the CLI, avoid unnecessary identifier quoting in the ".dump" output.
drh [Wed, 8 Mar 2017 12:25:18 +0000 (12:25 +0000)] 
In the CLI, avoid unnecessary identifier quoting in the ".dump" output.
Also add new ".dump" test cases.

FossilOrigin-Name: de65f907610a59e64cbf2214789c11f7117a86a6

8 years agoAdd the --preserve-rowids option to the ".dump" command in the CLI.
drh [Wed, 8 Mar 2017 11:44:00 +0000 (11:44 +0000)] 
Add the --preserve-rowids option to the ".dump" command in the CLI.

FossilOrigin-Name: c60aee24714a47ce12ee2a4dcefb9f55211d3761

8 years agoAdd test script ext/rbu/rbu_round_trip.tcl. Uses "dbselftest" to test that
dan [Tue, 7 Mar 2017 20:03:25 +0000 (20:03 +0000)] 
Add test script ext/rbu/rbu_round_trip.tcl. Uses "dbselftest" to test that
"rbu" and "sqldiff" work together.

FossilOrigin-Name: 961e79da73b4550b3e5b0f9a617133a76485db67

8 years agoPerformance optimization in the tokenizer/parser loop.
drh [Tue, 7 Mar 2017 14:38:52 +0000 (14:38 +0000)] 
Performance optimization in the tokenizer/parser loop.

FossilOrigin-Name: 2cb71583d631cd417acbeebbb4ee950573a9deef

8 years agoMinor comment typo fixes. No changes to code.
drh [Tue, 7 Mar 2017 12:18:23 +0000 (12:18 +0000)] 
Minor comment typo fixes.  No changes to code.

FossilOrigin-Name: 01cd9fb176cde30658233e36aad44e4a5519612e

8 years agoMore size and speed improvements in the expression name resolver.
drh [Tue, 7 Mar 2017 03:40:48 +0000 (03:40 +0000)] 
More size and speed improvements in the expression name resolver.

FossilOrigin-Name: e0a3d39f51a50420bae97e2bc9a8c01a5b0d3db8

8 years agoSmall size reduction and performance increase in the name resolver routine
drh [Tue, 7 Mar 2017 03:25:52 +0000 (03:25 +0000)] 
Small size reduction and performance increase in the name resolver routine
for expressions.

FossilOrigin-Name: 1a3554e1d71b666325ff377fae5329d79ce5c05f

8 years agoMake the default MASK argument for "PRAGMA optimize" be 0xfffe, to allow for
drh [Mon, 6 Mar 2017 23:51:16 +0000 (23:51 +0000)] 
Make the default MASK argument for "PRAGMA optimize" be 0xfffe, to allow for
future expansion of up to 14 new default-on optimizations.

FossilOrigin-Name: 73019a8bba29fd07f73559cd00d5346fa822b439

8 years agoFix a typo in a comment. No changes to code.
drh [Mon, 6 Mar 2017 20:44:13 +0000 (20:44 +0000)] 
Fix a typo in a comment.  No changes to code.

FossilOrigin-Name: ec529bf11b16c801ea438e57d208ff7e4cedf1f9

8 years agoAdd an initial implementation of the "PRAGMA optimize" command.
drh [Mon, 6 Mar 2017 17:33:58 +0000 (17:33 +0000)] 
Add an initial implementation of the "PRAGMA optimize" command.

FossilOrigin-Name: 137aeb2b160888100bc1e871b00860149e5f6196

8 years agoMerge updates from trunk. auto-analyze
drh [Mon, 6 Mar 2017 11:39:34 +0000 (11:39 +0000)] 
Merge updates from trunk.

FossilOrigin-Name: 5f7fc79aa06ca9b79664c50c3c277c98a74ff9a0

8 years agoIf a reprepare is needed after binding to a variable with a number larger
drh [Fri, 3 Mar 2017 21:51:40 +0000 (21:51 +0000)] 
If a reprepare is needed after binding to a variable with a number larger
than 32, set only the high-order bit of the Vdbe.expmask rather than setting
all bits.  This could potentially result in fewer false-positive reprepares.

FossilOrigin-Name: 45797feefe90cb7da53256b0c42fdaa1221d0a27

8 years agoRemove an redundant function call from the date/time function implementation.
drh [Fri, 3 Mar 2017 21:36:26 +0000 (21:36 +0000)] 
Remove an redundant function call from the date/time function implementation.

FossilOrigin-Name: 4a04c48a311b19ba5e566877dc5baff543c41aba

8 years agoFix another corner-case for the 'start of ...' modifier in the date/time
drh [Fri, 3 Mar 2017 20:43:43 +0000 (20:43 +0000)] 
Fix another corner-case for the 'start of ...' modifier in the date/time
functions.  Related to ticket [6097cb92745327a1].

FossilOrigin-Name: 8831f4393dda42b3434e7767968caea84bbca2af

8 years agoFix a case introduced by [4cd2a967] where a corrupt database could cause a buffer...
dan [Fri, 3 Mar 2017 20:02:53 +0000 (20:02 +0000)] 
Fix a case introduced by [4cd2a967] where a corrupt database could cause a buffer overwrite.

FossilOrigin-Name: 5d0455fece514552ad7f283d56526f53d7c688bd

8 years agoBefore beginning an incremental checkpoint in RBU, sync the directory
dan [Fri, 3 Mar 2017 16:51:46 +0000 (16:51 +0000)] 
Before beginning an incremental checkpoint in RBU, sync the directory
containing the target database file. This ensures that the new directory entry
created by renaming the *-oal file to *-wal is synced to disk.

FossilOrigin-Name: 915a9a28783fbb2f4c0794eb4264ce8c0b9d42f7

8 years agoFix a bug in the 'start of ...' date/time modifiers when they follow a
drh [Thu, 2 Mar 2017 23:40:21 +0000 (23:40 +0000)] 
Fix a bug in the 'start of ...' date/time modifiers when they follow a
julian day number.  Fix for ticket [6097cb92745327a1].

FossilOrigin-Name: 081dbcfb6d82528cefecb36c4491fa6e1a790b17

8 years agoFix another RBU case similar to the previous. This one for systems where the
dan [Thu, 2 Mar 2017 16:56:48 +0000 (16:56 +0000)] 
Fix another RBU case similar to the previous. This one for systems where the
sector-size is larger than the page-size.

FossilOrigin-Name: 4012bb3aa91927156ba149caa4e5c622b0729d79

8 years agoWhen saving the state of an RBU update in the incremental-checkpoint phase,
dan [Thu, 2 Mar 2017 14:51:47 +0000 (14:51 +0000)] 
When saving the state of an RBU update in the incremental-checkpoint phase,
sync the database file. Otherwise, if a power failure occurs and the RBU
update resumed following system recovery, the database may become corrupt.

FossilOrigin-Name: edee6a80e1cc7e6a2b8c3c7f76dd794fc8ab9a72

8 years agoAdd an optional bitmask of allowed optimizations on the "PRAGMA optimize"
drh [Thu, 2 Mar 2017 14:17:21 +0000 (14:17 +0000)] 
Add an optional bitmask of allowed optimizations on the "PRAGMA optimize"
command.  The 0x01 bit is Debug Mode.

FossilOrigin-Name: a35388eef4096c1856b025dbd90143409d4a72d3

8 years agoMerge recent trunk enhancements.
drh [Thu, 2 Mar 2017 13:22:04 +0000 (13:22 +0000)] 
Merge recent trunk enhancements.

FossilOrigin-Name: c60cdb47612c05c252613e50a8ac10635469fdfe

8 years agoMake sure the Vdbe.expmask value is set correctly in sqlite3VdbeSwap().
drh [Thu, 2 Mar 2017 13:13:30 +0000 (13:13 +0000)] 
Make sure the Vdbe.expmask value is set correctly in sqlite3VdbeSwap().
This fixes a problem introduced by [a8fd7052].

FossilOrigin-Name: 29f54b899e5cf22ece98ab41c39c41d75a4b228d

8 years agoFix a use-after-free problem in the shell tool code that could occur if an SQL
dan [Wed, 1 Mar 2017 11:30:27 +0000 (11:30 +0000)] 
Fix a use-after-free problem in the shell tool code that could occur if an SQL
statement were executed after an ".open" command with invalid options.

FossilOrigin-Name: ac760db0727209db0a816e112ea5f47e54d54dac

8 years agoMake PATH handling more robust in the batch tools for MSVC.
mistachkin [Mon, 27 Feb 2017 17:16:27 +0000 (17:16 +0000)] 
Make PATH handling more robust in the batch tools for MSVC.

FossilOrigin-Name: 23a8917e848a999533bc66467f7cb2f4f3d45bc1

8 years agoImprove performance of fts5 writes by writing the "averages" record once at
dan [Mon, 27 Feb 2017 17:06:56 +0000 (17:06 +0000)] 
Improve performance of fts5 writes by writing the "averages" record once at
the end of each transaction instead of every time the table is updated.

FossilOrigin-Name: 2b210d691462b463796e7948399133c296e89ebf

8 years agoAdd an sqlite3_set_last_insert_rowid() method. Use it to work around fts4 and
dan [Mon, 27 Feb 2017 16:15:29 +0000 (16:15 +0000)] 
Add an sqlite3_set_last_insert_rowid() method. Use it to work around fts4 and
fts5 modifying the last-insert-rowid unintuitively from within commit
processing.

FossilOrigin-Name: 952a3906b30a818e4574bb85f57150577d04f74e

8 years agoAdd an sqlite3_set_last_insert_rowid() method. Use it to work around fts4 and set-last-insert-rowid
dan [Mon, 27 Feb 2017 14:52:48 +0000 (14:52 +0000)] 
Add an sqlite3_set_last_insert_rowid() method. Use it to work around fts4 and
fts5 modifying the last-insert-rowid unintuitively from within commit
processing.

FossilOrigin-Name: fe41bb5632a5d438acfd682809f1bd12315b970a

8 years agoRemove references to special handling in virtual table methods from the
dan [Mon, 27 Feb 2017 12:23:52 +0000 (12:23 +0000)] 
Remove references to special handling in virtual table methods from the
documentation for sqlite3_last_insert_rowid().

FossilOrigin-Name: 660f9569d76e4ff1f5bd4f37f640e6a4fc2cf87d

8 years agoAdd an 'extern "C"' block to header file sqlite3userauth.h.
dan [Sat, 25 Feb 2017 20:57:46 +0000 (20:57 +0000)] 
Add an 'extern "C"' block to header file sqlite3userauth.h.

FossilOrigin-Name: ffd61fb449a510b2fc90caf86b266733051cc365

8 years agoOptimize defragmentPage() in the case where the page contains either one or
dan [Sat, 25 Feb 2017 17:47:31 +0000 (17:47 +0000)] 
Optimize defragmentPage() in the case where the page contains either one or
two free-blocks and a small number of fragmented bytes.

FossilOrigin-Name: 4cd2a9672c59ea4b3b4cf3d2f139af3c18a8e833