]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
7 years agoImproved context for error_log message coming from sqlite3_prepare(). ieee754
drh [Thu, 21 Jun 2018 23:43:05 +0000 (23:43 +0000)] 
Improved context for error_log message coming from sqlite3_prepare().

FossilOrigin-Name: 64df1189b32b29ad9cba866ce88184f18444341daa3fbb26dc58eafb581de9e4

7 years agoMake the ieee754() a built-in function. Add the --ieee754 option to the
drh [Tue, 19 Jun 2018 21:15:51 +0000 (21:15 +0000)] 
Make the ieee754() a built-in function.  Add the --ieee754 option to the
".dump" command in the shell to cause it to output floating-point values as
ieee754() calls, so that the floating point number will be reproduced exactly.
Not sure yet that we want to go this way, but it is one option.

FossilOrigin-Name: 7fa8f16e586a52ac8b7f4991bdd31912ee61bd4845bdeced4c0dac363b7e823d

7 years agoMinor change to the input grammar to make the parser tables slightly smaller.
drh [Tue, 19 Jun 2018 11:15:19 +0000 (11:15 +0000)] 
Minor change to the input grammar to make the parser tables slightly smaller.

FossilOrigin-Name: 320fa69e6aa2a7d67f6444d6c13de9893e27b85c36a933b06da113d753b6aafc

7 years agoAdd test case for the fix in the previous commit.
dan [Mon, 18 Jun 2018 20:08:08 +0000 (20:08 +0000)] 
Add test case for the fix in the previous commit.

FossilOrigin-Name: 39434262d5cf1af197ce0abb1f1ee84ee0797823e290a493c5bf8376fbe287a6

7 years agoFix typo in the 'normalize' extension.
mistachkin [Mon, 18 Jun 2018 19:09:30 +0000 (19:09 +0000)] 
Fix typo in the 'normalize' extension.

FossilOrigin-Name: 0c9163ea232d4008105939910565b0d1e533cbb38067d7900dc732b911786d37

7 years agoOutput infinity as 1e999 in the ".dump" command of the command-line shell.
drh [Wed, 13 Jun 2018 17:19:20 +0000 (17:19 +0000)] 
Output infinity as 1e999 in the ".dump" command of the command-line shell.

FossilOrigin-Name: ee431d55eba618cfba414c3946b3162bc205a70dd4e43d74a7623be332b94c92

7 years agoPad out the sqlite3_value structure to be a multiple of 8 bytes.
drh [Wed, 13 Jun 2018 16:52:38 +0000 (16:52 +0000)] 
Pad out the sqlite3_value structure to be a multiple of 8 bytes.

FossilOrigin-Name: f76dc33bde4b2180b935d1261492d9535772ed37e54489c1a33e9f11c7c90433

7 years agoFix some test case numbers in expert1.test.
dan [Wed, 13 Jun 2018 16:08:22 +0000 (16:08 +0000)] 
Fix some test case numbers in expert1.test.

FossilOrigin-Name: b90c3c16c04589583d2d1619320bb45a0b012c5960f23bd4e3f9dbe7c84b2eae

7 years agoUnless SQLITE_OMIT_AUTOINIT is defined, allow sqlite3_vfs_unregister() to be called...
dan [Wed, 13 Jun 2018 11:41:54 +0000 (11:41 +0000)] 
Unless SQLITE_OMIT_AUTOINIT is defined, allow sqlite3_vfs_unregister() to be called before sqlite3_initialize().

FossilOrigin-Name: ab6c1ae46d992f91ce0995274f48d545eb02ba92544aee89b188f2fc92b66f2a

7 years agoCheck that malloc() has not already failed when invoking the xUpdate() method
dan [Wed, 13 Jun 2018 11:11:13 +0000 (11:11 +0000)] 
Check that malloc() has not already failed when invoking the xUpdate() method
of a virtual table implementation. This fixes an assert() failure in FTS5 that
could occur following an OOM condition.

FossilOrigin-Name: e9a7e4d58f3716991309ca0e3f080717e473c7c231685954aceee36172f19cf2

7 years agoAdd the unused SQLITE_CANTOPEN_DIRTYWAL result code. This code was used
drh [Wed, 13 Jun 2018 02:20:34 +0000 (02:20 +0000)] 
Add the unused SQLITE_CANTOPEN_DIRTYWAL result code.  This code was used
in some historical versions on the apple-osx branch but was removed
by check-in [27e20d699872b2b8].  Restore it so that old code that actually
references that result code will still compile.

FossilOrigin-Name: 9f40383eed936a6921ef8dc94775eb55d03a761f36eda7be1b9cdd0a0d30fa80

7 years agoDocumentation update: clarify that sqlite3_errcode() and related interfaces
drh [Tue, 12 Jun 2018 19:35:51 +0000 (19:35 +0000)] 
Documentation update: clarify that sqlite3_errcode() and related interfaces
do not themselves modify the error code.

FossilOrigin-Name: 858fc52b237702b5e0381eebf5c158bffd7371ff0053a8583b8c175f8f691c82

7 years agoDocumentation updates: clarify the behavior of sqlite3_column and
drh [Tue, 12 Jun 2018 19:22:30 +0000 (19:22 +0000)] 
Documentation updates: clarify the behavior of sqlite3_column and
sqlite3_value interfaces following an OOM error.

FossilOrigin-Name: 428c581e4bed1d140cfb670633c9c61b36be7bb30a862d2e1ae7eaee26dccb4f

7 years agoImprovements to SCopy correctness tracking when SQLITE_DEBUG is enabled.
drh [Tue, 12 Jun 2018 13:52:23 +0000 (13:52 +0000)] 
Improvements to SCopy correctness tracking when SQLITE_DEBUG is enabled.

FossilOrigin-Name: b2973f2357a2c5e22e0d612c970adbc6d51cbc5e4ff7ac6d2b678722e553e8ec

7 years agoFix the "Synopsis" on the OP_BitNot opcode.
drh [Tue, 12 Jun 2018 13:16:57 +0000 (13:16 +0000)] 
Fix the "Synopsis" on the OP_BitNot opcode.

FossilOrigin-Name: acd78df61188591d33ddb9b1b8c16bcc015f4dffac66314529caa747d4395c70

7 years agoImprovements to the --enable and --disable options for the
drh [Mon, 11 Jun 2018 21:33:08 +0000 (21:33 +0000)] 
Improvements to the --enable and --disable options for the
amalgamation tarball.

FossilOrigin-Name: 02e337e0808947c7ef376b5a300cd3c461f1a368c9fe7ffd7ca5744f102641c2

7 years agoFix various --enable and --disable options on the top-level configure
drh [Mon, 11 Jun 2018 19:47:14 +0000 (19:47 +0000)] 
Fix various --enable and --disable options on the top-level configure
script.

FossilOrigin-Name: 6fd7e8ceb96981cff023653a54b85bea0e1da3d706cd9f4383f5c5533213ef4d

7 years agoFix the column cache invalidation logic in the code for ROWID uniqueness
drh [Mon, 11 Jun 2018 18:06:48 +0000 (18:06 +0000)] 
Fix the column cache invalidation logic in the code for ROWID uniqueness
constraint checking in the INSERT command.  This fixes ticket
[c2432ef9089ee73bd].

FossilOrigin-Name: 0b485a571c805a5bc431a231a196ff6034342c6548d92b09c52814dd57c89c75

7 years agoAdd the OP_SetTabCol and OP_VerifyTabCol opcodes, only when compiling with
drh [Mon, 11 Jun 2018 17:35:02 +0000 (17:35 +0000)] 
Add the OP_SetTabCol and OP_VerifyTabCol opcodes, only when compiling with
SQLITE_DEBUG, to do run-time verification of the column cache.

FossilOrigin-Name: b37614a3670770919a7c7f8157c5fd6578d736447998640b52e5cef8174cadc2

7 years agoStrengthen the sqlite3VdbeMemAboutToChange() run-time verification mechanism
drh [Mon, 11 Jun 2018 13:10:45 +0000 (13:10 +0000)] 
Strengthen the sqlite3VdbeMemAboutToChange() run-time verification mechanism
to better detect missed calls to AboutToChange().

FossilOrigin-Name: 793e942205a12eedb7ecc5ad8a27e3e52bbd4e1d50a0d1453d04a83ba728884e

7 years agoAlways initialize the WhereClause.hasOr field that was added by check-in
drh [Mon, 11 Jun 2018 01:30:03 +0000 (01:30 +0000)] 
Always initialize the WhereClause.hasOr field that was added by check-in
[292724ffc4].  Error detected by OSSFuzz.

FossilOrigin-Name: 9faf41713e865f26485d9e90918d77c25be211384941eadda6a36237f52c25de

7 years agoFix a typo in the amalgamation autoconf file.
drh [Sat, 9 Jun 2018 20:52:45 +0000 (20:52 +0000)] 
Fix a typo in the amalgamation autoconf file.

FossilOrigin-Name: de0857f39620b7f5c921ddf8d11b11723b4ba3cfe52e43cf77e883697b7c1c4c

7 years agoSlightly smaller and faster code by encapsulating wal-index hash table
drh [Sat, 9 Jun 2018 16:49:00 +0000 (16:49 +0000)] 
Slightly smaller and faster code by encapsulating wal-index hash table
location information in a separate WalHashLoc object rather than passing
around the various elements as separate variables.

FossilOrigin-Name: 538a365b7a32ab7fa84f59d7556242cfb59b76d287b6417eb3a823197a354e8e

7 years agoImproved comments an presentation for the recent IN operator decision
drh [Sat, 9 Jun 2018 14:13:46 +0000 (14:13 +0000)] 
Improved comments an presentation for the recent IN operator decision
improvement.

FossilOrigin-Name: 31e480f68dfd887cfd9114f9f9fec53d751d3ecc27e36f55c0166b51b2fbb08c

7 years agoPerformance improvement to sqlite3WhereExprUsage().
drh [Sat, 9 Jun 2018 02:49:11 +0000 (02:49 +0000)] 
Performance improvement to sqlite3WhereExprUsage().

FossilOrigin-Name: fd0934139076848f2f2edfd3d74d54608531031a05a60ca6ac1d7016dcd538df

7 years agoCompute the bitmask of indexed columns for each index once when the Index
drh [Sat, 9 Jun 2018 01:12:08 +0000 (01:12 +0000)] 
Compute the bitmask of indexed columns for each index once when the Index
objecct is constructed, instead of recomputing it every time it is needed.

FossilOrigin-Name: d735872ec383bbd220b08c61d25db9ff3675d2542b9e7867e7d6323a12e0cc23

7 years agoAvoid invoking the whereLoopAddOr() routine in the query planner if there
drh [Sat, 9 Jun 2018 00:09:58 +0000 (00:09 +0000)] 
Avoid invoking the whereLoopAddOr() routine in the query planner if there
are no OR operators in the WHERE clause, thus speeding up query planning
slightly.

FossilOrigin-Name: 292724ffc4bfca435fff309383d488ffdbe1e314e5eb26da21cf2f621b64bce5

7 years agoWhen the query planner has the opportunity to use an IN operater constraint
drh [Fri, 8 Jun 2018 23:23:53 +0000 (23:23 +0000)] 
When the query planner has the opportunity to use an IN operater constraint
on a term of an index other than the left-most term, use the estimated number
of elements on the right-hand side of the IN operator to determine if makes
sense to use the IN operator with index looks, or to just do a scan over the
range of the table identified by the index terms to the left.   Only do this
if sqlite_stat1 measurements are available as otherwise the performance
estimates will not be accurate enough to discern the best plan.  Bias the
decision slightly in favor of using index lookups on each element of the IN
operator.

FossilOrigin-Name: 2cbbabdf5ef624d809fbb40d2d312a29e0b5f02756fc0dbf6985fc8b0c8d1ade

7 years agoOnly choose to scan an IN operator rather than use an index if we have
drh [Fri, 8 Jun 2018 21:21:01 +0000 (21:21 +0000)] 
Only choose to scan an IN operator rather than use an index if we have
real STAT1 data to suggest it is advantageous.

FossilOrigin-Name: 30e874661dcc1a2ecb40df2ef74582151d85bb36c754a38548829a3b6285f18d

7 years agoMerge the btreeNext() assertion bug fix from trunk.
drh [Fri, 8 Jun 2018 19:54:07 +0000 (19:54 +0000)] 
Merge the btreeNext() assertion bug fix from trunk.

FossilOrigin-Name: 11bd66e09035039fbfc4c5631196962dd3f2e6634f5123a7b2fec17aeaaab07b

7 years agoFix an assert() that can be false for a corrupt database and a strange query
drh [Fri, 8 Jun 2018 19:13:57 +0000 (19:13 +0000)] 
Fix an assert() that can be false for a corrupt database and a strange query
that uses a recursive SQL function to delete content from a corrupt database
file while it is being queried.

FossilOrigin-Name: 99057383acc8f92093530e216c621d40386a06fe98131ff0af6df524d80a6410

7 years agoConsider doing a partial table scan to fulfill an IN operator rather
drh [Fri, 8 Jun 2018 18:22:10 +0000 (18:22 +0000)] 
Consider doing a partial table scan to fulfill an IN operator rather
than using an index.  Try to pick the plan with the lowest cost.

FossilOrigin-Name: 1fa40a78fef4516c39b217bff67efe7e7d2077cca00aae0ef5c2c9cff94f008b

7 years agoThe IN-early-out optimization: When doing a look-up on a multi-column index
drh [Thu, 7 Jun 2018 18:13:49 +0000 (18:13 +0000)] 
The IN-early-out optimization:  When doing a look-up on a multi-column index
and an IN operator is used on a column other than the left-most column, then
if no rows match against the first IN value, check to make sure there exist
rows that match the columns to the right before continuing with the next IN
value.

FossilOrigin-Name: 09fffbdf9f2f6ce31a22d5a6df7a45f19a16628da622f12d6e33171cce09fb21

7 years agoFix the assert()s in the byte-code engine that prove that cursors multikey-opt-idea
drh [Thu, 7 Jun 2018 18:01:21 +0000 (18:01 +0000)] 
Fix the assert()s in the byte-code engine that prove that cursors
are unidirectional.

FossilOrigin-Name: 4b0b4e14039469b656662312a5f80f086ede293e9ad04c7bc99a202b683a1e55

7 years agoRemove the NextIfOpen and PrevIfOpen opcodes which are no longer needed
drh [Thu, 7 Jun 2018 17:32:59 +0000 (17:32 +0000)] 
Remove the NextIfOpen and PrevIfOpen opcodes which are no longer needed
when the IN-early-out optimization is working.

FossilOrigin-Name: 439c8162272795b422a0e01b01b832fbc12b39914c9632a674162af8bdecff98

7 years agoTest cases.
drh [Thu, 7 Jun 2018 16:07:00 +0000 (16:07 +0000)] 
Test cases.

FossilOrigin-Name: 085e863713a3f2d420c0076b275a6ac445a59d4d93f9eb0e8503b4e3f5589249

7 years agoMerge the ".stat/.eqp" CLI fix from trunk.
drh [Thu, 7 Jun 2018 15:28:40 +0000 (15:28 +0000)] 
Merge the ".stat/.eqp" CLI fix from trunk.

FossilOrigin-Name: a91cad3381bb843d6f58975251bf99f0fa1a1398fae53d97a98a6c8ee65e718e

7 years agoAvoid using a prepared statement for ".stats on" after it has been closed
drh [Thu, 7 Jun 2018 15:23:43 +0000 (15:23 +0000)] 
Avoid using a prepared statement for ".stats on" after it has been closed
by the ".eqp full" logic.  Fix for ticket [7be932dfa60a8a6b3b26bcf76].

FossilOrigin-Name: bb87c054b1b76959e46258ac66b24027f468b390a4148ac67f208a1fbeda4060

7 years agoAdd the WHERE_IN_EARLYOUT flag and use it to clarify the logic of this
drh [Thu, 7 Jun 2018 14:59:22 +0000 (14:59 +0000)] 
Add the WHERE_IN_EARLYOUT flag and use it to clarify the logic of this
optimization.

FossilOrigin-Name: 522f1eacc20f11002cad58232a7c2610f369568653510e54f46088f579f778dc

7 years agoMerge recent trunk enhancements.
drh [Thu, 7 Jun 2018 14:32:16 +0000 (14:32 +0000)] 
Merge recent trunk enhancements.

FossilOrigin-Name: e9d7bf4f7b9d6f8dabc4c95d43ebf12f2149bed1c5e750048b1b684128073c38

7 years agoChange a comma into a logically equivalent but semantically clearer semicolon.
drh [Wed, 6 Jun 2018 23:31:26 +0000 (23:31 +0000)] 
Change a comma into a logically equivalent but semantically clearer semicolon.

FossilOrigin-Name: 71f97f0f82b3abfb07feb78d64a182fc50ff396e85d6f5aac479dbf58ba4d00a

7 years agoMore space and performance enhancements to sqlite3VdbeRecordCompare().
drh [Wed, 6 Jun 2018 20:55:10 +0000 (20:55 +0000)] 
More space and performance enhancements to sqlite3VdbeRecordCompare().

FossilOrigin-Name: 83a60ff056a63f18479030e9dfb10926fbb0d906d51f2cf88233098e15c75534

7 years agoSmall performance optimization in sqlite3VdbeRecordCompareWithSkip() for
drh [Wed, 6 Jun 2018 20:29:19 +0000 (20:29 +0000)] 
Small performance optimization in sqlite3VdbeRecordCompareWithSkip() for
the common case where the comparison is equal.

FossilOrigin-Name: 1e616e256a4fb1b64271706fdfa77dc5790eba0a2f0e619544e169bc61d7c805

7 years agoRearrange the order of some checks in the integrity_check pragma for a very
drh [Wed, 6 Jun 2018 19:48:19 +0000 (19:48 +0000)] 
Rearrange the order of some checks in the integrity_check pragma for a very
slight performance gain.

FossilOrigin-Name: 4b853f020570bf4af1b14e03f35764c7d7a03a40af58efc783e06f2b883cef78

7 years agoFix the sqlite3BeginTrans() calls within the snapshot extension.
drh [Wed, 6 Jun 2018 18:50:50 +0000 (18:50 +0000)] 
Fix the sqlite3BeginTrans() calls within the snapshot extension.

FossilOrigin-Name: 1fef7ad25b6a8e59163ac57f5cf0412bfc5b0e9446fd782f5f0a7d7ee11741fc

7 years agoAnother minor optimization to OP_Transaction.
drh [Wed, 6 Jun 2018 17:45:51 +0000 (17:45 +0000)] 
Another minor optimization to OP_Transaction.

FossilOrigin-Name: d80077aee3904e5d93164b342cae14d813de8e84e567462412751e06c7487d41

7 years agoChange sqlite3BtreeBeginTrans() to return the BTREE_SCHEMA_COOKIE, for a
drh [Wed, 6 Jun 2018 16:28:40 +0000 (16:28 +0000)] 
Change sqlite3BtreeBeginTrans() to return the BTREE_SCHEMA_COOKIE, for a
small speed improvement when starting new transactions.

FossilOrigin-Name: a10662aa915ae2b5a78b3e10920350d32255b2d6b1a8aac0aba1ad173b07ed2b

7 years agoFix the ".archive" command in the CLI (and the corresponding -A command-line
drh [Wed, 6 Jun 2018 01:18:01 +0000 (01:18 +0000)] 
Fix the ".archive" command in the CLI (and the corresponding -A command-line
option) so that it silently ignores filenames that contain "../" in their
names.  This prevents the "Zip Slip" attack.

FossilOrigin-Name: 27291f2d7fd4dadf2ee9b9a7d1373158cadfbaf83c3654b00d7030dc921770c6

7 years agoUpdate the version number to 3.25.0 for the next development cycle.
drh [Tue, 5 Jun 2018 23:51:52 +0000 (23:51 +0000)] 
Update the version number to 3.25.0 for the next development cycle.

FossilOrigin-Name: 7598236c356cdb548c6188d69dfef99f7a08b89e512a3addfe1433ccd85e7b68

7 years agoAvoid unnecessary loads of columns in an aggregate query that are not
drh [Tue, 5 Jun 2018 23:21:11 +0000 (23:21 +0000)] 
Avoid unnecessary loads of columns in an aggregate query that are not
within an aggregate function and that are not part of the GROUP BY clause.

FossilOrigin-Name: e15e100660d290249ef235e7a8927b88296e56ec0f80ec626eecbd542adc7633

7 years agoAdd the OP_IfNoHope and OP_SeekHit opcodes used to reduce the number of
drh [Tue, 5 Jun 2018 20:45:20 +0000 (20:45 +0000)] 
Add the OP_IfNoHope and OP_SeekHit opcodes used to reduce the number of
unnecessary sqlite3BtreeMovetoUnpacked() calls when checking for an early
exit on IN-operator loops.  Futher optimizations are likely possible here.

FossilOrigin-Name: 6bf251af4347165a470d39457d61ab6d2a06c206db8f30bd8be5dbb388ae8a5b

7 years agoCalculate non-aggregate expressions in the SELECT list of an aggregate query exp-agg-opt
dan [Tue, 5 Jun 2018 20:04:28 +0000 (20:04 +0000)] 
Calculate non-aggregate expressions in the SELECT list of an aggregate query
that does not use min() or max() once per group, instead of once per row
visited.

FossilOrigin-Name: dce2dfbe1590deb3ef5661230ae2d232bd492441195defbf698ac56f9629211c

7 years agoUse an OP_NotFound opcode to cancel futile IN operators early. The current
drh [Tue, 5 Jun 2018 15:16:25 +0000 (15:16 +0000)] 
Use an OP_NotFound opcode to cancel futile IN operators early.  The current
implementation is suboptimal because it always runs teh OP_NotFound.  This
still needs to be enhanced to only do the OP_NotFound if no results have been
seen on the current loop.

FossilOrigin-Name: 87a9fc504f9a78caf7a7949cc7ada0a19d61bfab51bb49a00a1607194c116212

7 years agoMerge trunk changes.
drh [Tue, 5 Jun 2018 13:54:06 +0000 (13:54 +0000)] 
Merge trunk changes.

FossilOrigin-Name: 047295c588e9fdf2ffa4e69e166f177fd193309531dc6a9ac755fb7a763adb72

7 years agoUpdate and correct the documentation on the OP_OpenRead, OP_OpenWrite,
drh [Tue, 5 Jun 2018 13:43:02 +0000 (13:43 +0000)] 
Update and correct the documentation on the OP_OpenRead, OP_OpenWrite,
and OP_ReopenIdx opcodes.  No code changes other than the addition of
an assert().

FossilOrigin-Name: 8a0b730d0ea640d5cf75febe39b2162411a12eb5275765a85882158b5a085681

7 years agoVersion 3.24.0 version-3.24.0
drh [Mon, 4 Jun 2018 19:24:41 +0000 (19:24 +0000)] 
Version 3.24.0

FossilOrigin-Name: c7ee0833225bfd8c5ec2f9bf62b97c4e04d03bd9566366d5221ac8fb199a87ca

7 years agoMerge recent changes from trunk.
drh [Mon, 4 Jun 2018 13:27:39 +0000 (13:27 +0000)] 
Merge recent changes from trunk.

FossilOrigin-Name: f8df2a8e28acdd9573a9ffc18027553f35f769a989f5dfbf81f31b0656ee6065

7 years agoAvoid using a misaligned pointer.
drh [Sat, 2 Jun 2018 19:14:58 +0000 (19:14 +0000)] 
Avoid using a misaligned pointer.

FossilOrigin-Name: 1ecb3aa13de5c8dc611b814ff34010de0bd90aae73d88aa37a59c4627be4cc2d

7 years agoFix the usage of posix_fallocate() so that it correctly responds to
drh [Sat, 2 Jun 2018 19:01:54 +0000 (19:01 +0000)] 
Fix the usage of posix_fallocate() so that it correctly responds to
EINVAL returns.

FossilOrigin-Name: ce2c3e7a875ede4366c48660ae8239d2b74e5f690ad5059844a45f1164f41e61

7 years agoUpdate a test case in malloc5.test to take into account that malloc()
dan [Sat, 2 Jun 2018 17:00:57 +0000 (17:00 +0000)] 
Update a test case in malloc5.test to take into account that malloc()
sometimes returns slightly more space than requested.

FossilOrigin-Name: 3d5eae1c26353cdee89f31f1293b05c0edb494c775ba0912d9b4fda9ab0ef304

7 years agoWork around a sanitizer warning about a pointer being only 4-byte aligned align8-fix
drh [Sat, 2 Jun 2018 16:32:04 +0000 (16:32 +0000)] 
Work around a sanitizer warning about a pointer being only 4-byte aligned
instead of 8-byte aligned.

FossilOrigin-Name: 1b807b51cdf455b4f54216b73fd22bbc90f94e24222401e045f88cfd27f487e3

7 years agoProposed fix for the use of posix_fallocate() so that it handles EINVAL einval-from-fallocate
drh [Sat, 2 Jun 2018 14:37:39 +0000 (14:37 +0000)] 
Proposed fix for the use of posix_fallocate() so that it handles EINVAL
returns correctly.

FossilOrigin-Name: ab3a5539db82814cafb832cdaebd1e14566139306453ef9cdba6b244a994fe0b

7 years agoFix the CSV extension so that it works with single-column CSV files.
drh [Sat, 2 Jun 2018 12:05:18 +0000 (12:05 +0000)] 
Fix the CSV extension so that it works with single-column CSV files.

FossilOrigin-Name: e336cf00486bdc0ec04ecded2b7c874d73a87e6aba3544e3678bedfb9a4af3b6

7 years agoEnsure that sqlite3AuthRead() is only call for TK_COLUMN and TK_TRIGGER
drh [Sat, 2 Jun 2018 11:31:15 +0000 (11:31 +0000)] 
Ensure that sqlite3AuthRead() is only call for TK_COLUMN and TK_TRIGGER
expression nodes.  This fixes a harmless assert() identified by OSSFuzz.
Move the assert() into a position where it is tested even if the authorizer
is disabled.

FossilOrigin-Name: d0c3beef7cdc680c0768ddd18f766a4ca7be822c1eb1776b2f73b7433d9962dc

7 years agoFix a bug in the SQLITE_ENABLE_SORTER_REFERENCES code causing an out-of-bounds
dan [Fri, 1 Jun 2018 13:30:45 +0000 (13:30 +0000)] 
Fix a bug in the SQLITE_ENABLE_SORTER_REFERENCES code causing an out-of-bounds
array reference.

FossilOrigin-Name: 8cadaf587dc96370f9c8a1dccc366b93021e8cfe4526da9368a088828fd14faf

7 years agoMore documentation typo fixes. No code changes.
drh [Thu, 31 May 2018 19:14:52 +0000 (19:14 +0000)] 
More documentation typo fixes.  No code changes.

FossilOrigin-Name: 66c24513c2f6de98bd888c3e4c07bbb39fabf30ea9dd01eb255460054055347d

7 years agoFix a harmless typo in a comment used to generate documentation.
drh [Thu, 31 May 2018 19:00:20 +0000 (19:00 +0000)] 
Fix a harmless typo in a comment used to generate documentation.

FossilOrigin-Name: 5a2a88cb01ef4b299f9a5b2963f392a3bae90e8a7f84b190e67f86090f891e23

7 years agoAdd the Makefile.fallback makefile to the amalgamation tarball.
drh [Wed, 30 May 2018 14:17:09 +0000 (14:17 +0000)] 
Add the Makefile.fallback makefile to the amalgamation tarball.

FossilOrigin-Name: ce3d04563337c9556d66e55acfb454789b0baa49a1be8fcc349251ce88236d62

7 years agoDo not use the codec on the resetdb.test script.
drh [Wed, 30 May 2018 07:36:55 +0000 (07:36 +0000)] 
Do not use the codec on the resetdb.test script.

FossilOrigin-Name: fe55cea0c80ab29120574c5c4a8473b83fc80f79d7e11bc7c326bfdb32aa3902

7 years agoFix a typo in an error message in the CLI.
drh [Wed, 30 May 2018 07:24:41 +0000 (07:24 +0000)] 
Fix a typo in an error message in the CLI.

FossilOrigin-Name: 808839808141493c1e5122f40b2cdff725be0cd1212e03d609345dbff7af03e4

7 years agoFix the parser so that it builds with -DSQLITE_OMIT_CTE.
drh [Wed, 30 May 2018 01:14:20 +0000 (01:14 +0000)] 
Fix the parser so that it builds with -DSQLITE_OMIT_CTE.

FossilOrigin-Name: 86ee267ee86f5264774a9f215b1158aeaa2d605e77c205731b5ee3945d7de4c2

7 years agoFix a harmless compiler warning.
drh [Wed, 30 May 2018 00:59:09 +0000 (00:59 +0000)] 
Fix a harmless compiler warning.

FossilOrigin-Name: 8d02c7a6a09f7520ad180b0d943db475894cd39b0ccdb2ad2c44009d5f25c8a6

7 years agoDemonstration code on a possible technique for optimizing the use of IN
drh [Wed, 30 May 2018 00:54:23 +0000 (00:54 +0000)] 
Demonstration code on a possible technique for optimizing the use of IN
operator on columns to the right of multicolumn indexes.  If the OP_Noop
generated where were really a new opcode that checked to see if there existed
any entries in the index with a matching prefix, it might prevent unnecessary
iterations of the IN operator.

FossilOrigin-Name: 92f0fe155d5546fc7f4a443d0630613dabe149061966308e5420fad652278f16

7 years agoIncrease the number of database handles opened by test script oserror.test to
dan [Tue, 29 May 2018 19:12:58 +0000 (19:12 +0000)] 
Increase the number of database handles opened by test script oserror.test to
provoke an "out of file-descriptors" error to 20000 (from 2000).

FossilOrigin-Name: 3b00f73456c65dfc1827fdada9afb49245f9addfa684d5ae35e69a07f39164bf

7 years agoFix autoinc.test and resetdb.test so that they work with all permutations.
dan [Tue, 29 May 2018 16:37:12 +0000 (16:37 +0000)] 
Fix autoinc.test and resetdb.test so that they work with all permutations.

FossilOrigin-Name: 89f56d6b0a6847b042a1556cdf79c598c9bfdbdd5f9529d508ca7b4d26a6ed38

7 years agoAdd a comment to justify a goto statement. No code changes.
drh [Tue, 29 May 2018 15:18:31 +0000 (15:18 +0000)] 
Add a comment to justify a goto statement.  No code changes.

FossilOrigin-Name: f141d806476aabe592a15d83b72c9409d2cd6bd7f9cced1ea2513c134191430a

7 years agoMore minor changes to test scripts.
dan [Tue, 29 May 2018 14:29:28 +0000 (14:29 +0000)] 
More minor changes to test scripts.

FossilOrigin-Name: ce9b756f09df4feb485bbf9695f8c6774906eb1b2fb45a340b74ffd21c9adfd8

7 years agoFix some test script issues caused by recent EXPLAIN QUERY PLAN enhancements.
dan [Tue, 29 May 2018 14:06:55 +0000 (14:06 +0000)] 
Fix some test script issues caused by recent EXPLAIN QUERY PLAN enhancements.

FossilOrigin-Name: f808e22831c33bfe3d0dd44e209f64d527c23ca7c72be7c694736535afee1317

7 years agoDo not run test file "resetdb.test" as part of permutation "inmemory_journal".
dan [Tue, 29 May 2018 13:25:14 +0000 (13:25 +0000)] 
Do not run test file "resetdb.test" as part of permutation "inmemory_journal".

FossilOrigin-Name: 4921e5bae4c12c3413cc0b2e58766cf2ac117ad95f92fcd1c2457db6cfabb054

7 years agoDo not require a statement journal in cases where REPLACE conflict handling is
dan [Mon, 28 May 2018 18:29:46 +0000 (18:29 +0000)] 
Do not require a statement journal in cases where REPLACE conflict handling is
used to insert a single row, so long as the REPLACE operation cannot fire any
triggers or foreign key actions.

FossilOrigin-Name: 469a62ca33081854e54f3af6d93ab5a350484b149c8c8c4ee8be0ae5418382d9

7 years agoWhen compiling with SQLITE_DEBUG, add run-time checks to ensure that no statement...
drh [Mon, 28 May 2018 18:25:19 +0000 (18:25 +0000)] 
When compiling with SQLITE_DEBUG, add run-time checks to ensure that no statement aborts unless either there have been no writes or else there is a statement journal.

FossilOrigin-Name: ce99c7724460b9cf4ccaf7f6bc1a522b5c34d5ad0683d465f7926b10f31f7d05

7 years agoFix the build so that it works with -DSQLITE_TEST_REALLOC_STRESS stmt-journal-testing
drh [Mon, 28 May 2018 17:43:28 +0000 (17:43 +0000)] 
Fix the build so that it works with -DSQLITE_TEST_REALLOC_STRESS

FossilOrigin-Name: 90ba2b2e5ce2619e68879eb325b43639159f27eb462b9fb6795534c91200a3d2

7 years agoWhen compiling with SQLITE_DEBUG, add run-time checks to ensure that no
drh [Mon, 28 May 2018 17:31:20 +0000 (17:31 +0000)] 
When compiling with SQLITE_DEBUG, add run-time checks to ensure that no
statement aborts unless either there have been no writes or else there is
a statement journal.

FossilOrigin-Name: 5a4542dbcf17a9f7fed600897555c271e1651fd50eb41d0b126725b486e1d14c

7 years agoStore application-defined function names as lower-case to avoid the need
drh [Sat, 26 May 2018 16:00:26 +0000 (16:00 +0000)] 
Store application-defined function names as lower-case to avoid the need
for case conversions before calling xFindFunction on virtual tables.
Avoid using lookaside to store the destructors for application defined
functions, as lookaside should be reserved for transient allocations.

FossilOrigin-Name: 777189ce88799f93f393fd14fd716111c85bcdcb23690fd561f78ea2bd2ce5da

7 years agoAdd a single sentence of documentation about the virtual table
drh [Sat, 26 May 2018 13:55:04 +0000 (13:55 +0000)] 
Add a single sentence of documentation about the virtual table
scan flags.  No changes to code.

FossilOrigin-Name: 27b4fa5dd0defc6ddaf5d8cde6a1e1162b70d99bfdc69c1d2290621a6d23ed91

7 years agoWhen doing a one-pass UPDATE or DELETE on virtual tables, close the cursor
drh [Thu, 24 May 2018 23:51:57 +0000 (23:51 +0000)] 
When doing a one-pass UPDATE or DELETE on virtual tables, close the cursor
prior to running VUpdate.  This allows one-pass to work on virtual tables
that do not allow concurrent reads and writes.  Enhance rtree to take
advantage of this new capability.

FossilOrigin-Name: b816023ce07d01024d5769e16db924374a49bf909edd12dc1344a0a1ef693db5

7 years agoNew test case for reading and writing the same rtree concurrently.
drh [Thu, 24 May 2018 22:42:27 +0000 (22:42 +0000)] 
New test case for reading and writing the same rtree concurrently.

FossilOrigin-Name: 3ba08e53d54165f5541756ad13a4c2f0b18516cb612a256e056ed1ff76c1fa83

7 years agoDo not allow RTree writes when a read cursor is active on the same virtual
drh [Thu, 24 May 2018 22:31:01 +0000 (22:31 +0000)] 
Do not allow RTree writes when a read cursor is active on the same virtual
table, as the writes might rebalance and disrupt the read cursors.  Return
the new SQLITE_LOCKED_VTAB error code if this happens.

FossilOrigin-Name: d4ce66610851c825cb712f985216b63e015c753fdd5521f929c67ad18bfd7664

7 years agoIn the OOM testing logic, add the sqlite3FirstFault() routine as a place to
drh [Thu, 24 May 2018 17:38:00 +0000 (17:38 +0000)] 
In the OOM testing logic, add the sqlite3FirstFault() routine as a place to
set a breakpoint the first time any simulated OOM fault occurs for a single
test case.

FossilOrigin-Name: b4d80bd287ca7f3a6d182ba2435273266035b94fdf6a44047a64a4eff931c571

7 years agoFix a typo in a comment used to generate VDBE opcode documentation. No
drh [Thu, 24 May 2018 17:25:35 +0000 (17:25 +0000)] 
Fix a typo in a comment used to generate VDBE opcode documentation.  No
code changes.

FossilOrigin-Name: 36cdfbf2ce1811691c790fde3eaeed0238c03b4dc97dc3a20d1e0397520145d1

7 years agoAddition cases for rtree preformance testing in speedtest1.c. Add the
drh [Thu, 24 May 2018 16:18:35 +0000 (16:18 +0000)] 
Addition cases for rtree preformance testing in speedtest1.c.  Add the
--nodiff option to the speed-check.sh script.

FossilOrigin-Name: 95f2d62cf3cf8dbe0f12b652b47fe1f8e0f52bc269e269955fafdf802afc47c1

7 years agoUpdates to the sqlite3_vtab_nochange() documentation. No changes to code.
drh [Thu, 24 May 2018 13:59:45 +0000 (13:59 +0000)] 
Updates to the sqlite3_vtab_nochange() documentation.  No changes to code.

FossilOrigin-Name: 5bd99abc10b8153aadff5f815ae15fbe375f34f043c65def4be03014d2efdb50

7 years agoRemove a branch that is no longer used due to the fix to the
drh [Wed, 23 May 2018 17:53:07 +0000 (17:53 +0000)] 
Remove a branch that is no longer used due to the fix to the
sqlite_sequence schema problem, ticket
[d8dc2b3a58cd5dc2918a1d4acbba4676a23ada4c]

FossilOrigin-Name: 066742692a9e8735b814c6a145545f97a7fb10b29cead78e68e25324e79aabaa

7 years agoVerify that the sqlite_sequence table exists and is in approximately the
drh [Wed, 23 May 2018 16:50:21 +0000 (16:50 +0000)] 
Verify that the sqlite_sequence table exists and is in approximately the
correct format prior to using it to process an autoincrement table.
Fix for ticket [d8dc2b3a58cd5dc2918a1d4a].

FossilOrigin-Name: e199e859ace4f8381c6380175206e7a276e3f2228fadbbca9341bca8d2fc445d

7 years agoAdd support for auxiliary columns to the rtree extension.
drh [Fri, 18 May 2018 17:58:33 +0000 (17:58 +0000)] 
Add support for auxiliary columns to the rtree extension.

FossilOrigin-Name: c6071ac99cfa4b6272ac4d739fc61a85acb544f6c1c2ae67b31e92aadcc995bd

7 years agoMerge enhancements from trunk, especially the CLI fixes. aux-data-in-rtree
drh [Fri, 18 May 2018 17:17:36 +0000 (17:17 +0000)] 
Merge enhancements from trunk, especially the CLI fixes.

FossilOrigin-Name: a350040a3bb962823f92908fb31cade52baf13eab90ef608ca3a8349e4c28c9d

7 years agoIn the CLI, detect and report errors on sqlite3_close(). Clear global
drh [Fri, 18 May 2018 17:11:50 +0000 (17:11 +0000)] 
In the CLI, detect and report errors on sqlite3_close().  Clear global
variables prior to exit to so that valgrind can better detect resource
leaks.

FossilOrigin-Name: e3b2e0a078b82ac6cd3c3312e8ac0983c1375e1052f1e324476d2f8d1b227c30

7 years agoAvoid unnecessary sqlite3_finalize() operations.
drh [Fri, 18 May 2018 16:53:07 +0000 (16:53 +0000)] 
Avoid unnecessary sqlite3_finalize() operations.

FossilOrigin-Name: 16f71032a3a2919cb226b25b5256a370adb5c55fa506d4774b7f83dc8868e793

7 years agoFix a prepare-statement leak.
drh [Fri, 18 May 2018 16:46:09 +0000 (16:46 +0000)] 
Fix a prepare-statement leak.

FossilOrigin-Name: 95fd296ffc8130526a1453cbdca6ce47f22fc5b5c474aa31d66b627d0c7393a1

7 years agoImproved error messages. Limit the number of auxiliary columns to 100.
drh [Fri, 18 May 2018 15:21:43 +0000 (15:21 +0000)] 
Improved error messages.  Limit the number of auxiliary columns to 100.

FossilOrigin-Name: 059d20abd57727e6d312f15b640359ef778786f577d9b50b17b57195db2d0aef