]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
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

8 years agoTweak the code on this branch to detect b-tree page corruption in the same cases... defragmentpage-opt
dan [Sat, 25 Feb 2017 16:24:02 +0000 (16:24 +0000)] 
Tweak the code on this branch to detect b-tree page corruption in the same cases as the trunk.

FossilOrigin-Name: f9863b39d96dce6cb5e49a5f3a445ff3d897a951

8 years agoOptimize defragmentPage() in the case where the page contains either one or
dan [Fri, 24 Feb 2017 19:58:22 +0000 (19:58 +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: 202b1c0276aec6b8da64d3277de1ad91c9d62d80

8 years agoSave a few bytes and a few cycles by setting Vdbe.expmask to zero for
dan [Thu, 23 Feb 2017 16:30:16 +0000 (16:30 +0000)] 
Save a few bytes and a few cycles by setting Vdbe.expmask to zero for
statements prepared using legacy interface sqlite3_prepare().

FossilOrigin-Name: a8fd705258643863493476f8b42ee981608a339f

8 years agoAdd two NEVER() operators in the sqlite3BtreeRowCountEst() routine.
drh [Thu, 23 Feb 2017 02:15:33 +0000 (02:15 +0000)] 
Add two NEVER() operators in the sqlite3BtreeRowCountEst() routine.

FossilOrigin-Name: 7a959f6d1ea038988cdb4c02d6f37abaec2580a0

8 years agoDo a single OP_Expire at the very end of "PRAGMA optimize", and omit the
drh [Thu, 23 Feb 2017 00:58:36 +0000 (00:58 +0000)] 
Do a single OP_Expire at the very end of "PRAGMA optimize", and omit the
OP_Expire on ANALYZE commands invoked by the pragma.

FossilOrigin-Name: 188300a337c87b7ee0dd1f4b9a4f1bd80e70cca4

8 years agoChange the name of the analyze_as_needed pragma to "optimize". Enhance the
drh [Wed, 22 Feb 2017 20:24:10 +0000 (20:24 +0000)] 
Change the name of the analyze_as_needed pragma to "optimize".  Enhance the
comment (which will become documentation, assuming these changes land on trunk)
to explain that the optimize pragma is likely to be enhanced in various ways
in future releases and that applications should not depend upon the current
behavior.

FossilOrigin-Name: 9fced545a6f80c55d6dc4a6106cb2d3569566b3e

8 years agoMerge integrity_check and other improvements from trunk.
drh [Wed, 22 Feb 2017 19:49:54 +0000 (19:49 +0000)] 
Merge integrity_check and other improvements from trunk.

FossilOrigin-Name: fe073905081b421405ca425ca03c5b8b0ff5f2c8

8 years agoMove a branch condition in analyze.c inside an #ifdef SQLITE_ENABLE_STAT4 block.
dan [Wed, 22 Feb 2017 19:41:16 +0000 (19:41 +0000)] 
Move a branch condition in analyze.c inside an #ifdef SQLITE_ENABLE_STAT4 block.

FossilOrigin-Name: d6afd98de3ee8b714dfd6477ead955096f623972

8 years agoImprove the performance of ANALYZE when SQLITE_ENABLE_STAT4 is defined.
dan [Wed, 22 Feb 2017 19:27:51 +0000 (19:27 +0000)] 
Improve the performance of ANALYZE when SQLITE_ENABLE_STAT4 is defined.

FossilOrigin-Name: 737a82444065752785c643b1d29ca097c828effb

8 years agoImprovements to PRAGMA integrity_check.
drh [Wed, 22 Feb 2017 18:53:13 +0000 (18:53 +0000)] 
Improvements to PRAGMA integrity_check.
Verify CHECK constraints.
Verify NOT NULL constraints even on table that lack indexes.
Verify CHECK and NOT NULL constraints with PRAGMA quick_check.

FossilOrigin-Name: aa02bd3c95e374008b930d296c88dfafaf11c65a

8 years agoCleanup and simplification of the output row count limit control of integrity-check-improvements
drh [Wed, 22 Feb 2017 18:04:42 +0000 (18:04 +0000)] 
Cleanup and simplification of the output row count limit control of
PRAGMA integrity_check.

FossilOrigin-Name: 5af7d72ed9ec758283d78ceb46627d72021c1c60

8 years agoFix integrity_check so that it verifies NOT NULL constraints even for tables
drh [Wed, 22 Feb 2017 15:11:36 +0000 (15:11 +0000)] 
Fix integrity_check so that it verifies NOT NULL constraints even for tables
that have no indexes.  Enhance quick_check so that it verifies NOT NULL and
CHECK constraints.

FossilOrigin-Name: 5264844b069cdc20f456acee9f5b2b97c986120d

8 years agoEnhance "PRAGMA integrity_check" so that it verifies CHECK constraints.
drh [Wed, 22 Feb 2017 14:15:37 +0000 (14:15 +0000)] 
Enhance "PRAGMA integrity_check" so that it verifies CHECK constraints.

FossilOrigin-Name: 549bae0856004ff65b505175460abd598b30fe57

8 years agoIn sqlite3VdbeHalt(), return as soon as possible if
dan [Tue, 21 Feb 2017 21:24:05 +0000 (21:24 +0000)] 
In sqlite3VdbeHalt(), return as soon as possible if
Vdbe.magic!=VDBE_MAGIC_RUN. This makes sqlite3_reset() slightly faster in some
cases.

FossilOrigin-Name: 80adc0cb4ed7bacc54b15ac8b5b205403939c8c4

8 years agoFix an FTS5 problem that could cause a crash when certain queries were
dan [Tue, 21 Feb 2017 17:52:58 +0000 (17:52 +0000)] 
Fix an FTS5 problem that could cause a crash when certain queries were
interrupted using sqlite3_interrupt().

FossilOrigin-Name: e400909f313c317b7b67be6eb867ed61df7383dc

8 years agoVery small enhancement to dispatch speed for SQL functions.
drh [Tue, 21 Feb 2017 15:27:22 +0000 (15:27 +0000)] 
Very small enhancement to dispatch speed for SQL functions.

FossilOrigin-Name: 3c3228ed16ed8a72630bd56bb9192ee3c7f82093

8 years agoCorrect a harmless typo in the previous check-in.
mistachkin [Mon, 20 Feb 2017 23:32:04 +0000 (23:32 +0000)] 
Correct a harmless typo in the previous check-in.

FossilOrigin-Name: 1589db012ef1389bf84399fccf96d143b2ac4c0f

8 years agoAvoid unsigned integer overflows for SQLITE_WIN32_HEAP_INIT_SIZE when the Win32 heap...
mistachkin [Mon, 20 Feb 2017 19:13:37 +0000 (19:13 +0000)] 
Avoid unsigned integer overflows for SQLITE_WIN32_HEAP_INIT_SIZE when the Win32 heap subsystem is used with very large values of SQLITE_DEFAULT_CACHE_SIZE and/or SQLITE_DEFAULT_PAGE_SIZE.

FossilOrigin-Name: 96b6a98e5e4cb0ddbfcd78b05bfbfcd8976e9f32

8 years agoSmall grammar simplification.
drh [Mon, 20 Feb 2017 14:30:17 +0000 (14:30 +0000)] 
Small grammar simplification.

FossilOrigin-Name: 0d8a868acd74fb1d076f23fda58b841bb7e6900b

8 years agoMerge fixes from trunk.
drh [Mon, 20 Feb 2017 13:11:07 +0000 (13:11 +0000)] 
Merge fixes from trunk.

FossilOrigin-Name: ff213f2ef5bf96754a2264685d25546d8b5ccf0a

8 years agoUpdated comments. No code changes.
drh [Sat, 18 Feb 2017 22:52:40 +0000 (22:52 +0000)] 
Updated comments.  No code changes.

FossilOrigin-Name: e842ad391e62df273a5b1ed569d42ea46d03a99b

8 years agoAdd the OP_SqlExec opcode and use it to implement "PRAGMA analyze_as_needed",
drh [Sat, 18 Feb 2017 15:58:52 +0000 (15:58 +0000)] 
Add the OP_SqlExec opcode and use it to implement "PRAGMA analyze_as_needed",
invoking ANALYZE subcommands as necessary.  This simplifies the implementation.

FossilOrigin-Name: d386015f5e7ecdd951d70db56b7bbd858be7ad90

8 years agoAdd the SQLITE_BUG_COMPATIBLE_20160819 compile-time option to omit the error
drh [Sat, 18 Feb 2017 13:47:11 +0000 (13:47 +0000)] 
Add the SQLITE_BUG_COMPATIBLE_20160819 compile-time option to omit the error
message when an unrecognized argument is provided to the VACUUM command.

FossilOrigin-Name: 491814272dce7e937b4734fcbc2ad69e12377b56

8 years agoFix errors in the table resize detection.
drh [Sat, 18 Feb 2017 02:42:54 +0000 (02:42 +0000)] 
Fix errors in the table resize detection.

FossilOrigin-Name: 4229caec0b60a1617b9d5ff94b47271cbd7be1e0

8 years agoIn the analyze_as_needed pragma, avoid running unnecessary OP_LoadAnalysis
drh [Sat, 18 Feb 2017 02:19:02 +0000 (02:19 +0000)] 
In the analyze_as_needed pragma, avoid running unnecessary OP_LoadAnalysis
and OP_Expire opcodes.  Make the analyze_as_needed pragma responsive to the
schema name.

FossilOrigin-Name: 882599a4a7ea92c9e7752e0745475508e58a11c3

8 years agoFix the #endif location for an #ifndef SQLITE_UNTESTABLE macro in the
drh [Fri, 17 Feb 2017 23:52:00 +0000 (23:52 +0000)] 
Fix the #endif location for an #ifndef SQLITE_UNTESTABLE macro in the
command-line shell.

FossilOrigin-Name: 8cc9d74c176a78aeebfbb39198c21b5dd547ff52

8 years agoThe analyze_as_needed pragma now responds to table size growth and will
drh [Fri, 17 Feb 2017 19:24:06 +0000 (19:24 +0000)] 
The analyze_as_needed pragma now responds to table size growth and will
automatically rerun the analysis after each 10x size increase.

FossilOrigin-Name: bfbdd07409688fac4ccddbab3639745f6152e23d

8 years agoAdd the "PRAGMA analyze_as_needed" command.
drh [Fri, 17 Feb 2017 16:26:34 +0000 (16:26 +0000)] 
Add the "PRAGMA analyze_as_needed" command.

FossilOrigin-Name: e93db2373127d31d33ec46ef918fa9386bb664a6

8 years agoSet the TF_StatsUsed flag on tables when the query planner outcome is
drh [Fri, 17 Feb 2017 15:26:36 +0000 (15:26 +0000)] 
Set the TF_StatsUsed flag on tables when the query planner outcome is
affected by the sqlite_stat1 data.  Also, change the column names of the
"PRAGMA stats" command so that they are not keywords.

FossilOrigin-Name: fb2b8ae8310e4ea4b42354bbf36c3084a9d5c6d7

8 years agoEnhance the Index and Table objects so that they remember if their stats come
drh [Fri, 17 Feb 2017 13:38:15 +0000 (13:38 +0000)] 
Enhance the Index and Table objects so that they remember if their stats come
from the sqlite_stat1 table.  Make the "PRAGMA stats" an SQLITE_DEBUG only
pragma.  Add the flags column to "PRAGMA stats".  These are all preliminary
steps toward a "PRAGMA analyze_ifneeded;" feature.

FossilOrigin-Name: 85026c8ee143bbd46565660fff8346ef81421546