]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
6 years agoMerge recent trunk enhancements into the bytecode-function branch.
drh [Thu, 9 Apr 2020 15:07:22 +0000 (15:07 +0000)] 
Merge recent trunk enhancements into the bytecode-function branch.

FossilOrigin-Name: 7e6576ec00fde277c5c7abac264f7ec7e531de00c4e112bf733a07fe703fadcc

6 years agoMerge trunk enhancements into the approximate-analyze branch.
drh [Thu, 9 Apr 2020 15:01:09 +0000 (15:01 +0000)] 
Merge trunk enhancements into the approximate-analyze branch.

FossilOrigin-Name: 17901ea6a1951b8c55671408841901c6660e3f8099378204f080b171a684d718

6 years agoLimit LIKE/GLOB pattern length to 100 bytes (default is 50K) when running
drh [Tue, 7 Apr 2020 15:07:11 +0000 (15:07 +0000)] 
Limit LIKE/GLOB pattern length to 100 bytes (default is 50K) when running
dbsql cases in the fuzzcheck utility.

FossilOrigin-Name: 10306118e8591e727af477a1a15d136852d21170e645bd0e75f7c88346b037d7

6 years agoAdd the --spinner option to the fuzzcheck test program.
drh [Tue, 7 Apr 2020 13:08:56 +0000 (13:08 +0000)] 
Add the --spinner option to the fuzzcheck test program.

FossilOrigin-Name: b1eae2686f03a6e20a49ca2b3a654b3019506d4941708ee3919c339cd093a57d

6 years agoThe ALTER TABLE fix of check-in [7e5ad8e0ab7ee91a] is no longer needed due
drh [Tue, 7 Apr 2020 01:18:23 +0000 (01:18 +0000)] 
The ALTER TABLE fix of check-in [7e5ad8e0ab7ee91a] is no longer needed due
to the changes at check-in [4cf8721f5ceb1fda].  But, we keep the defense
in place as an assert() for extra safety.

FossilOrigin-Name: 230556e859536bbadf0daf8133a9a01ef4f03148b3296723e37bad66e3fc3d82

6 years agoRemove dead code that was added during initial development of RENAME COLUMN
drh [Tue, 7 Apr 2020 00:54:09 +0000 (00:54 +0000)] 
Remove dead code that was added during initial development of RENAME COLUMN
but never actually served a purpose.

FossilOrigin-Name: c95c4cda4640f05d61b13b4e60494dec07d4483734fc41ffcce73fb5163cbb0d

6 years agoPerformance improvement in sqlite3ResolveExprNameList().
drh [Mon, 6 Apr 2020 20:35:52 +0000 (20:35 +0000)] 
Performance improvement in sqlite3ResolveExprNameList().

FossilOrigin-Name: 7e170e67f24c7cdef7e7ceac4e0b81a75382618e4abe9e604f3d7f6db9dc6396

6 years agoPerformance improvement for column name lookup.
drh [Mon, 6 Apr 2020 18:16:31 +0000 (18:16 +0000)] 
Performance improvement for column name lookup.

FossilOrigin-Name: 1e4b6a93987cdfbf829e2ff35ef417c290625f2894ad11949e301af518f1fb44

6 years agoWhen running ALTER TABLE, avoid adding some internally generated tokens to the token...
dan [Mon, 6 Apr 2020 16:37:05 +0000 (16:37 +0000)] 
When running ALTER TABLE, avoid adding some internally generated tokens to the token map to improve performance on schemas with nested views.

FossilOrigin-Name: 4cf8721f5ceb1fdaefdc355b3211f75c53c4cdf9d2582ca70fc96777a9b057c2

6 years agoRemove a NEVER() that could be true in sqlite3MatchEName().
drh [Sat, 4 Apr 2020 11:58:22 +0000 (11:58 +0000)] 
Remove a NEVER() that could be true in sqlite3MatchEName().

FossilOrigin-Name: 921448f0e24a3753374b32be9d7bf36a9ca5d8522eff9f0b51dc243f08652419

6 years agoIn the push-down optimization, do not substitute columns that have previously
drh [Sat, 4 Apr 2020 00:15:54 +0000 (00:15 +0000)] 
In the push-down optimization, do not substitute columns that have previously
been identified as being constant by the propagate-constants optimization.
Fix for ticket [51166be0159fd2ce]

FossilOrigin-Name: 70c44811d12f540d4ec1c29dedbe999cf79b82e326a8712ae2fa0725d6bd8a65

6 years agoAvoid factoring out constant expressions on the LHS of an IN(...) operator, as the...
dan [Fri, 3 Apr 2020 19:37:14 +0000 (19:37 +0000)] 
Avoid factoring out constant expressions on the LHS of an IN(...) operator, as the IN(...) operation may affect the affinity of these values.

FossilOrigin-Name: 98d56b4a34fddcbaecd953a045ae0270b4d78c1edf34cc73522fb4e12743af80

6 years agoAdd a test case to fuzzdata8.db for the recent Henry Liu bugs.
drh [Fri, 3 Apr 2020 16:11:32 +0000 (16:11 +0000)] 
Add a test case to fuzzdata8.db for the recent Henry Liu bugs.

FossilOrigin-Name: 42b02454b146ca1b04c0a5321465326435fc5b995f5498d3b1cf69c558a20f95

6 years agoMerge updates from trunk.
drh [Fri, 3 Apr 2020 15:48:05 +0000 (15:48 +0000)] 
Merge updates from trunk.

FossilOrigin-Name: 348c40136c8ec20f36ccdd4c8a6d4ec2d8274328b86b25b385813e3aae31ea8b

6 years agoIn the event of a semantic error in an aggregate query, early-out the
drh [Fri, 3 Apr 2020 13:19:03 +0000 (13:19 +0000)] 
In the event of a semantic error in an aggregate query, early-out the
resetAccumulator() function to prevent problems due to incomplete or
incorrect initialization of the AggInfo object.
Fix for ticket [af4556bb5c285c08].

FossilOrigin-Name: 4a302b42c7bf5e11ddb5522ca999f74aba397d3a7eb91b1844bb02852f772441

6 years agoDo not suppress errors when resolving references in an ORDER BY clause belonging...
dan [Fri, 3 Apr 2020 11:52:59 +0000 (11:52 +0000)] 
Do not suppress errors when resolving references in an ORDER BY clause belonging to a compound SELECT within a view or trigger within ALTER TABLE. Fix for ticket [a10a14e9b4ba2].

FossilOrigin-Name: 684293882c302600e112cf52553c19d84fdb31663d96e5dd7f8ac17dda00a026

6 years agoFix a case when a pointer might be used after being freed in the ALTER TABLE code...
dan [Fri, 3 Apr 2020 11:20:40 +0000 (11:20 +0000)] 
Fix a case when a pointer might be used after being freed in the ALTER TABLE code. Fix for [4722bdab08cb1].

FossilOrigin-Name: d09f8c3621d5f7f8c6d99d7d82bcaa8421855b3f470bea2b26c858106382b906

6 years agoFix a minor problem with EXPLAIN QUERY PLAN for triggers.
drh [Thu, 2 Apr 2020 19:58:31 +0000 (19:58 +0000)] 
Fix a minor problem with EXPLAIN QUERY PLAN for triggers.

FossilOrigin-Name: 6e11c03f84efa93b218b07e39b6b56b1d872639f39c18498ee54d8cd8364d4f5

6 years agoMinor changes for better test coverage.
drh [Thu, 2 Apr 2020 17:21:51 +0000 (17:21 +0000)] 
Minor changes for better test coverage.

FossilOrigin-Name: ae3ac297d2deee2a687ae2e9cf98aaf3e1b41196363238101a19d38092aebec6

6 years agoFix an obsolete comment in the parameter binding logic of the CLI.
drh [Thu, 2 Apr 2020 13:21:10 +0000 (13:21 +0000)] 
Fix an obsolete comment in the parameter binding logic of the CLI.
No changes to code.

FossilOrigin-Name: c9c735e201d7900d8c2b766463a6c90f547d9844352719dc650734e25e635fad

6 years agoFix another harmless compiler warning.
drh [Thu, 2 Apr 2020 13:08:54 +0000 (13:08 +0000)] 
Fix another harmless compiler warning.

FossilOrigin-Name: 949eec2530bbe7f48daddfb3022d60ea5d7a43f0f5d120e71c682054feb721db

6 years agoAdd a missing #ifdef to avoid a harmless compiler warning.
drh [Thu, 2 Apr 2020 12:53:17 +0000 (12:53 +0000)] 
Add a missing #ifdef to avoid a harmless compiler warning.

FossilOrigin-Name: cc54de354317ebc080d4d1ee25427b31a49c4a75e01cb5d9966f1aaeb2ad098d

6 years agoMerge enhancements from trunk.
drh [Thu, 2 Apr 2020 12:24:08 +0000 (12:24 +0000)] 
Merge enhancements from trunk.

FossilOrigin-Name: d1731385c077f298b0cf654d6183ed40f7e5c07e4e2ab7f69109cf951ce99d9e

6 years agoSimple fixes to PRAGMA analysis_limit.
drh [Wed, 1 Apr 2020 01:15:16 +0000 (01:15 +0000)] 
Simple fixes to PRAGMA analysis_limit.

FossilOrigin-Name: c20d4fdee21409ebc9c65c9540af8ac48d1f4425499a6674ef9319655c192612

6 years agoAdd "PRAGMA analysis_limit=N;" to limit the number of rows visited by
drh [Tue, 31 Mar 2020 20:57:06 +0000 (20:57 +0000)] 
Add "PRAGMA analysis_limit=N;" to limit the number of rows visited by
ANALYZE when N is positive.  Positive N also disables collecting stat4.

FossilOrigin-Name: a279b151c1623807774daf4975175c62ea252eefb71f9820ced6773769b392c5

6 years agoMerge recent enhancements from trunk.
drh [Tue, 31 Mar 2020 18:41:21 +0000 (18:41 +0000)] 
Merge recent enhancements from trunk.

FossilOrigin-Name: c705ce266ad25af71791035590875f0ea9f2c72826b3eda17f065d2bf091de92

6 years agoUse __atomic_load_n() and __atomic_store_n() for a few more things where they are...
dan [Mon, 30 Mar 2020 13:35:05 +0000 (13:35 +0000)] 
Use __atomic_load_n() and __atomic_store_n() for a few more things where they are available.

FossilOrigin-Name: a49f8ec552bede7da731e0571ccf49de1a30e7be3a5673150436c8b411ba6ffc

6 years agoFix "GCC_VESRION" typo in wal.c.
dan [Mon, 30 Mar 2020 11:17:37 +0000 (11:17 +0000)] 
Fix "GCC_VESRION" typo in wal.c.

FossilOrigin-Name: fbd9378727141848ba2f5a8eee3076ecbd315e4a87b264c6d890103d56b2e4bc

6 years agoEnhancements to the SQLITE_ENABLE_SETLK_TIMEOUT compile-time option to avoid
drh [Sat, 28 Mar 2020 19:02:39 +0000 (19:02 +0000)] 
Enhancements to the SQLITE_ENABLE_SETLK_TIMEOUT compile-time option to avoid
rare deadlocks on recovery.

FossilOrigin-Name: 06885e9aa4e430d10f4b32105bcf405c65fd6f7b4cd451baf56fb4f12f408963

6 years agoMSVC does not allow constant expressions as initializers for
drh [Sat, 28 Mar 2020 12:01:25 +0000 (12:01 +0000)] 
MSVC does not allow constant expressions as initializers for
constants with /fp:strict.

FossilOrigin-Name: 076658e5d21d9284448f41312b83a6c3d25394c2bfa088ef6cdfe1dc60277856

6 years agoModifications to the way blocking locks are used in SQLITE_ENABLE_SETLK_TIMEOUT build... setlk-deadlock-fix
dan [Fri, 27 Mar 2020 17:23:17 +0000 (17:23 +0000)] 
Modifications to the way blocking locks are used in SQLITE_ENABLE_SETLK_TIMEOUT builds so that multiple processes or threads may not deadlock when operating on a single database.

FossilOrigin-Name: c516027d5fd876b7d0bf566435667d554db29ded30ad6fc1165caa4a93d015a0

6 years agoAdd the tables_used() table-valued function as a variation on bytecode().
drh [Thu, 26 Mar 2020 16:48:18 +0000 (16:48 +0000)] 
Add the tables_used() table-valued function as a variation on bytecode().

FossilOrigin-Name: 6283c677d57220e54375a6463f453c6d068e042263558df16cff1055d1b0d3f5

6 years agoMerge updates from trunk.
drh [Thu, 26 Mar 2020 15:28:46 +0000 (15:28 +0000)] 
Merge updates from trunk.

FossilOrigin-Name: d7db09101878102e192ee7a81437e8f6f2e317ddf110852673a2e81d1f80ae0e

6 years agoReinstate the optimization that converts "x IN (y)" into "x==y".
drh [Thu, 26 Mar 2020 00:29:50 +0000 (00:29 +0000)] 
Reinstate the optimization that converts "x IN (y)" into "x==y".

FossilOrigin-Name: 27936e6884e77093533719c7955a17f051cfb359872e51a6d1481152e6256443

6 years agoFor the LIKE pattern in the .dump command of the CLI, accept backslash as
drh [Wed, 25 Mar 2020 20:31:45 +0000 (20:31 +0000)] 
For the LIKE pattern in the .dump command of the CLI, accept backslash as
an escape character.

FossilOrigin-Name: 029ceea612f5c7a1420939d8a772eefcc6f9550d24d57b52ae1729ea9d85fae9

6 years agoEnhance the ".dump" command in the CLI so that it accepts multiple LIKE
drh [Wed, 25 Mar 2020 12:50:13 +0000 (12:50 +0000)] 
Enhance the ".dump" command in the CLI so that it accepts multiple LIKE
pattern arguments and shows the union of all matching tables.

FossilOrigin-Name: 45fba3d7055f90f67005ca740687f060a2311db40c8f6a161bfea0424e6ebf6d

6 years agoOptimize the "subprog IS NULL" constraint.
drh [Tue, 24 Mar 2020 18:41:58 +0000 (18:41 +0000)] 
Optimize the "subprog IS NULL" constraint.

FossilOrigin-Name: ca8c5f028b9f6f32639c8bc9df5dc02537e21385fcbe7e1ae600c640977ea0d5

6 years agoFix a memory leak.
drh [Tue, 24 Mar 2020 17:52:31 +0000 (17:52 +0000)] 
Fix a memory leak.

FossilOrigin-Name: c9f3405eeac8aff171b5d76bae954f3b51b353d16286a3d2af43ef942c212abc

6 years agoProvide content for the bytecode.subprog column.
drh [Tue, 24 Mar 2020 13:27:53 +0000 (13:27 +0000)] 
Provide content for the bytecode.subprog column.

FossilOrigin-Name: df893364b7cea07ff2b15b80cb294dccaffe701d51452264599b55304a36fa7c

6 years agoFix the build so that it works even without SQLITE_ENABLE_EXPLAIN_COMMENTS.
drh [Mon, 23 Mar 2020 23:17:38 +0000 (23:17 +0000)] 
Fix the build so that it works even without SQLITE_ENABLE_EXPLAIN_COMMENTS.

FossilOrigin-Name: 5896cbf4d0c7854c29c96d2ea2cea4adaedaa027a0fe4a3f0ac4dfbeaabb8dec

6 years agoThe bytecode() function now runs and sometimes works, but it untested and
drh [Mon, 23 Mar 2020 20:58:55 +0000 (20:58 +0000)] 
The bytecode() function now runs and sometimes works, but it untested and
there are known problems.

FossilOrigin-Name: 6819b86eb2de516c445655a83f9b2ba5ae0bff660cffaf84f1345d9be79b051e

6 years agoFurther simplification and modularization of the EXPLAIN logic.
drh [Mon, 23 Mar 2020 19:14:11 +0000 (19:14 +0000)] 
Further simplification and modularization of the EXPLAIN logic.

FossilOrigin-Name: aee1c12f4227cea9e8c6295cee3ec11797422c31b48c9468f176eb52f8261fe8

6 years agoBegin breaking appear the sqlite3VdbeList() routine into subroutines that
drh [Mon, 23 Mar 2020 17:24:46 +0000 (17:24 +0000)] 
Begin breaking appear the sqlite3VdbeList() routine into subroutines that
can be reused by the bytecode() table.

FossilOrigin-Name: 2c4dd79fbd4b9f72634a732abb9ed833cd8c9b05fe1e10af8f23e6d6ec023c7c

6 years agoInfrastructure for the bytecode() table-valued function. The function itself
drh [Mon, 23 Mar 2020 15:49:22 +0000 (15:49 +0000)] 
Infrastructure for the bytecode() table-valued function.  The function itself
is not yet implemented.

FossilOrigin-Name: 2795f0d633577e0de66b389d9e8e44c55e85975bdc62f1a0b8f93959d19b22bf

6 years agoFix to the recomputation of the colUsed field added by check-in
drh [Sat, 21 Mar 2020 23:10:38 +0000 (23:10 +0000)] 
Fix to the recomputation of the colUsed field added by check-in
[a9bb71ba708ba722].  This fixes ticket [5829597ac43811e3].

FossilOrigin-Name: 5d14a1c4f2fc17de98ad685ad1422cdfda89dfccb00afcaf32ee416b6f84f525

6 years agoEnhance the treeview system to show the SrcList_item.colUsed field for
drh [Sat, 21 Mar 2020 22:03:32 +0000 (22:03 +0000)] 
Enhance the treeview system to show the SrcList_item.colUsed field for
FROM clause elements.

FossilOrigin-Name: 8a5c539b77aa174c048a504d211c56902075f9b42b654e1f8cc5767739e5fcc9

6 years agoSimplify some of the code modified by the previous commit.
dan [Sat, 21 Mar 2020 20:58:05 +0000 (20:58 +0000)] 
Simplify some of the code modified by the previous commit.

FossilOrigin-Name: 04abadb545d1b34bdd74d62becb3bfd83aceee373fd6b4b708d5ad53f41d9464

6 years agoEnsure that "main" can always be used to refer to the main database, even if it has...
dan [Sat, 21 Mar 2020 15:41:55 +0000 (15:41 +0000)] 
Ensure that "main" can always be used to refer to the main database, even if it has been renamed using SQLITE_DBCONFIG_MAINDBNAME.

FossilOrigin-Name: 682b426f5658254e63dff02c960b557fb33cb3e944fdd14faa0aa9988af7269a

6 years agoConsolidate some code on this branch. main-alias-fix
dan [Sat, 21 Mar 2020 15:10:40 +0000 (15:10 +0000)] 
Consolidate some code on this branch.

FossilOrigin-Name: a85c63daa640e02fdfd891a05a1a09e848c9621a5dd6e112338451008623ecbb

6 years agoChange a bitfield in sqlite3_stmt into an unsigned character, for slightly
drh [Sat, 21 Mar 2020 15:07:27 +0000 (15:07 +0000)] 
Change a bitfield in sqlite3_stmt into an unsigned character, for slightly
smaller code and better performance.

FossilOrigin-Name: 0d4d3c642494ad494b4ec937215eaf833158e62e5ae59ed981d6b546220c13b8

6 years agoPerformance optimization in sqlite3VdbeMakeReady().
drh [Sat, 21 Mar 2020 14:22:27 +0000 (14:22 +0000)] 
Performance optimization in sqlite3VdbeMakeReady().

FossilOrigin-Name: aa92f9b95f95d40cc58910da87168a5bd440f71deb072dc651bb15936315786c

6 years agoRecompute the set of columns used for each table when the table is
drh [Sat, 21 Mar 2020 00:05:53 +0000 (00:05 +0000)] 
Recompute the set of columns used for each table when the table is
involved in query flattening.

FossilOrigin-Name: a9bb71ba708ba72255ba8d18c9856e38ddf53eae2d61c8435149354fb2b2459e

6 years agoAllow "main" to be used to refer to the main database even after SQLITE_DBCONFIG_MAIN...
dan [Fri, 20 Mar 2020 20:54:28 +0000 (20:54 +0000)] 
Allow "main" to be used to refer to the main database even after SQLITE_DBCONFIG_MAINDBNAME has been used to assign another alias.

FossilOrigin-Name: 75c85ca32f9ae4a28fd8f8ff2f7639599413d22af706e9799a0e76cc560d14eb

6 years agoAvoid an undefined integer overflow in fts3 by detecting data structure corruption...
dan [Fri, 20 Mar 2020 20:18:49 +0000 (20:18 +0000)] 
Avoid an undefined integer overflow in fts3 by detecting data structure corruption earlier.

FossilOrigin-Name: 86e98ddc19470410ccc6d2cf4ad56ef0bc5a23b7fbe6331b8cae374689f54529

6 years agoChagnes the ESCAPE clause on the LIKE operator to overwrite wildcard
drh [Thu, 19 Mar 2020 18:13:28 +0000 (18:13 +0000)] 
Chagnes the ESCAPE clause on the LIKE operator to overwrite wildcard
characters, in order ot match the behavior of PosgreSQL.

FossilOrigin-Name: 11e0844f71e8f2d27ce9363fb505e02fd7795c61dae0b3886cf0d8df4484dd97

6 years agoFix an integer overflow problem with the dbstat virtual table that comes up
drh [Thu, 19 Mar 2020 17:27:52 +0000 (17:27 +0000)] 
Fix an integer overflow problem with the dbstat virtual table that comes up
when trying to analyze a corrupt database.

FossilOrigin-Name: 1d64f4a8af81fe1235fffa54884d8f842a48ff6a33d6172f0cd65bf42fe8b2a1

6 years agoFix a typo in a comment. No changes to code.
drh [Thu, 19 Mar 2020 15:57:03 +0000 (15:57 +0000)] 
Fix a typo in a comment.  No changes to code.

FossilOrigin-Name: 3a51919ac23ae7312d78905334dc97742b517a7476052a85aa07945d9c77697b

6 years agoFix the build for when SQLITE_ENABLE_STAT4 is defined.
drh [Wed, 18 Mar 2020 15:58:13 +0000 (15:58 +0000)] 
Fix the build for when SQLITE_ENABLE_STAT4 is defined.

FossilOrigin-Name: 8f0a8c2aa45f7cf7339094d83893aeb046b010b5b97bb4dae99ac07a8ebf2fa6

6 years agoAdd the SQLITE_ANALYZE_LIMIT compile-time option (expected to be temporary)
drh [Wed, 18 Mar 2020 14:43:05 +0000 (14:43 +0000)] 
Add the SQLITE_ANALYZE_LIMIT compile-time option (expected to be temporary)
that sets a threshold at which ANALYZE starts to use approximations during
the analysis process.

FossilOrigin-Name: a773fd4698d474fda5e57bc77ed66a79cf74efee2706f43f6def6f450bfd1fc0

6 years agoProvide an estimated row count to stat_init() for STAT1 analysis.
drh [Tue, 17 Mar 2020 17:11:23 +0000 (17:11 +0000)] 
Provide an estimated row count to stat_init() for STAT1 analysis.

FossilOrigin-Name: 714419fe85cfdad22979183a94e4569c87740652758ab76b646753cf2b013b54

6 years agoRemove the SQLITE_OMIT_BTREECOUNT option. Btree count is required.
drh [Tue, 17 Mar 2020 13:41:51 +0000 (13:41 +0000)] 
Remove the SQLITE_OMIT_BTREECOUNT option.  Btree count is required.

FossilOrigin-Name: a9bfa47aeea27e91611ba913d33e6635d2016e2c2ab78f9b0657f1bd8933e1a8

6 years agoImproved bytecode comments for the ANALYZE command.
drh [Tue, 17 Mar 2020 13:07:04 +0000 (13:07 +0000)] 
Improved bytecode comments for the ANALYZE command.

FossilOrigin-Name: c38ea4139d87535b789f43eb1e38b2dc4b8312352a721035283e67cf0f3d5067

6 years agoMerge changes from trunk.
drh [Tue, 17 Mar 2020 12:37:27 +0000 (12:37 +0000)] 
Merge changes from trunk.

FossilOrigin-Name: 93d710262eb046e2370660b1096ac634373755f92a2e9b1220df3b2bda5f9eeb

6 years agoFix handling of window functions in aggregate queries that have no GROUP BY clause...
dan [Mon, 16 Mar 2020 18:52:53 +0000 (18:52 +0000)] 
Fix handling of window functions in aggregate queries that have no GROUP BY clause. Also remove a faulty assert causing the error reported in [618156e3].

FossilOrigin-Name: 38e3dd389d142e520c71139ec84aa3c7722992af28a5f93a7f16e0ea176b74bb

6 years agoAt the end of the right-hand table loop of a LEFT JOIN that uses an IN
drh [Mon, 16 Mar 2020 03:07:53 +0000 (03:07 +0000)] 
At the end of the right-hand table loop of a LEFT JOIN that uses an IN
operator in the ON clause, put the OP_IfNoHope operator after the
OP_IfNotOpen operator, not before, to avoid a (harmless) uninitialized
register reference.  Ticket [82b588d342d515d1]

FossilOrigin-Name: 8b437b47266ec2d80d85eafcfdd6949556d6c28d9d67d5f43d89799f0f5b7bd0

6 years agoRemove stray comment characters at the end of an #ifdef that were
drh [Thu, 12 Mar 2020 17:54:39 +0000 (17:54 +0000)] 
Remove stray comment characters at the end of an #ifdef that were
accidently left in the previous check-in.

FossilOrigin-Name: ea914bec81c49625072fc9d23faa048300f3a0421e069d303b7203edcdfb3743

6 years agoFix comments and strengthen assert() statements associated with the
drh [Thu, 12 Mar 2020 17:28:27 +0000 (17:28 +0000)] 
Fix comments and strengthen assert() statements associated with the
OPFLAG_SEEKEQ and BTREE_SEEK_EQ flags.

FossilOrigin-Name: 231749213854756b599b33413b17b35186f17889b0c73f109fa9db726b415558

6 years agoMerge enhancements from trunk.
drh [Wed, 11 Mar 2020 20:03:22 +0000 (20:03 +0000)] 
Merge enhancements from trunk.

FossilOrigin-Name: 4945a66237fa3861bc691d5fbef0d40286b596a0902b4f4c032d1d6528bb1a1b

6 years agoDo not factor out constant functions into the initialization section of a
drh [Wed, 11 Mar 2020 19:56:26 +0000 (19:56 +0000)] 
Do not factor out constant functions into the initialization section of a
prepared statement, because even though they are constant, they can still
throw exceptions.  Instead, put such functions in an OP_Once block.  This
fixes ticket [3c9eadd2a6ba0aa5] and causes COALESCE() and CASE...END to
be short-circuit.

FossilOrigin-Name: c5f96a085db9688a09793f52ce1ecf033c2e6e2e5873a19fe0fb374b242b317f

6 years agoRename sqlite3ExprCodeAtInit() to sqlite3ExprCodeRunJustOnce(). do-not-factor-functions
drh [Wed, 11 Mar 2020 19:41:49 +0000 (19:41 +0000)] 
Rename sqlite3ExprCodeAtInit() to sqlite3ExprCodeRunJustOnce().
Other changes to make the new code cleaner.  Test cases added.

FossilOrigin-Name: d7f18489978fdbbe3ab317485518cac91a75416ccef55898301afdd76d3b415b

6 years agoDo not factor out constant functions into the initialization section at the
drh [Wed, 11 Mar 2020 17:58:27 +0000 (17:58 +0000)] 
Do not factor out constant functions into the initialization section at the
end of the prepared statement, be cause if they throw an exception, it will
abort the statement even if the function is never called.  Better to put
constant functions in an OP_Once block.

FossilOrigin-Name: 97a18a5cd701848a9660385e31bffe2c397e3cfe57ccdb876f44d08c00d1d39a

6 years agoThis variant to the fix for ticket [e0c2ad1aa8a9c691] uses fewer CPU cycles.
drh [Wed, 11 Mar 2020 02:04:15 +0000 (02:04 +0000)] 
This variant to the fix for ticket [e0c2ad1aa8a9c691] uses fewer CPU cycles.

FossilOrigin-Name: fb5a8a9edd0a4f979d6c30278d4ddc73c651f56ae989b4e5983fca36887c5ceb

6 years agoMerge updates from trunk.
drh [Tue, 10 Mar 2020 22:55:51 +0000 (22:55 +0000)] 
Merge updates from trunk.

FossilOrigin-Name: e05f743f619a6b60d0782ee85c73f6866696962954d7cb3eceb03af79c6a6189

6 years agoEnhanced detection logic for preventing the use of static schema expressions
drh [Tue, 10 Mar 2020 19:24:38 +0000 (19:24 +0000)] 
Enhanced detection logic for preventing the use of static schema expressions
by code generating routines.

FossilOrigin-Name: 5f60b527b938c0778e8f725c635ce0dc5ed7a4e01fd6252aa2cdb64da2f625bc

6 years agoFurther changes to ensure that expressions held in table and index definitions
drh [Tue, 10 Mar 2020 18:55:41 +0000 (18:55 +0000)] 
Further changes to ensure that expressions held in table and index definitions
do not get passed down into code generator logic where they might be modified.

FossilOrigin-Name: f45f5de000834da5b23cdcf12c3f0e3073287756afe06bdb77b95fb65b250258

6 years agoMake a copy of the expression that defines a value of a generated column
drh [Tue, 10 Mar 2020 13:35:04 +0000 (13:35 +0000)] 
Make a copy of the expression that defines a value of a generated column
before sending it to the code generator routines.

FossilOrigin-Name: 03d201c041c17579e791c73fe6babd60b9f892a84ffd1470851f8eb2857d3990

6 years agoApply the correct affinity transformations when pulling values off of the
drh [Tue, 10 Mar 2020 11:50:43 +0000 (11:50 +0000)] 
Apply the correct affinity transformations when pulling values off of the
sorter index used for GROUP BY.  Ticket [e0c2ad1aa8a9c691]

FossilOrigin-Name: 101f7dea75a203f1f3aa422a607ef701eb0901ba4d5e8d1075cd350454a61956

6 years agoThe sqlite3ExprCodeFactorable() routine should make a copy of non-factorable
drh [Tue, 10 Mar 2020 02:57:37 +0000 (02:57 +0000)] 
The sqlite3ExprCodeFactorable() routine should make a copy of non-factorable
expressions, as they might be coming from a DEFAULT or generated column
in a table constraint.

FossilOrigin-Name: a2d6f108c5d07559b125823a04c9cb072c80be80d7913097891a6192c7e1e225

6 years agoBackground work for experiments trying to enhance ANALYZE so that it runs
drh [Tue, 10 Mar 2020 01:24:13 +0000 (01:24 +0000)] 
Background work for experiments trying to enhance ANALYZE so that it runs
off of samples of the entire index and does not need to read the entire
index.

FossilOrigin-Name: 29d1cc5c3619a88229f18c3c8131228f8a2d151ac3d9203f0c7fc538a996ecec

6 years agoCleaner separation of the STAT4-specific logic in the implementation of
drh [Mon, 9 Mar 2020 18:26:11 +0000 (18:26 +0000)] 
Cleaner separation of the STAT4-specific logic in the implementation of
ANALYZE.

FossilOrigin-Name: 3df07e5a9a3781a4cf866fc6ee0e5c6f9cd7ca35ce0a6eb3aa7f5f3502e0ffae

6 years agoEnhancements to the ".import" command of the CLI.
drh [Mon, 9 Mar 2020 15:39:39 +0000 (15:39 +0000)] 
Enhancements to the ".import" command of the CLI.

FossilOrigin-Name: cab1834cfc71f71bfed3c5170a0ba40a39385c3b2c50b7c6b6f09cc830dd1b1e

6 years agoFix typos in RowSet.
pdr [Mon, 9 Mar 2020 03:21:33 +0000 (03:21 +0000)] 
Fix typos in RowSet.

FossilOrigin-Name: 86465c08f4d629a296332a7985937326ac43ea2822c5651bf03862cd79d370fc

6 years agoFix typos in the Lemon documentation.
drh [Mon, 9 Mar 2020 01:02:45 +0000 (01:02 +0000)] 
Fix typos in the Lemon documentation.

FossilOrigin-Name: 35f1f151ac478d6b46f3685d2565c35108ef74bd33ce96fb65300d3c303b289b

6 years agoAvoid a redundant NULL check
pdr [Sun, 8 Mar 2020 13:33:58 +0000 (13:33 +0000)] 
Avoid a redundant NULL check

FossilOrigin-Name: 25dc53f6608dd9b8b4e8d8ee22e194a6d41d15811781752797cb42fc22ee1317

6 years agoReport an error if the main, or any other, database encoding is modified by an extern...
dan [Thu, 5 Mar 2020 18:04:09 +0000 (18:04 +0000)] 
Report an error if the main, or any other, database encoding is modified by an external process (perhaps using the backup API) after the db has been opened.

FossilOrigin-Name: 895bd20b29e223496e1585483c6ce3335ae9050f2e5de4d6b69d0e40df396862

6 years agoChange the sqlite3.pDfltColl (the default collating sequence for the
drh [Thu, 5 Mar 2020 16:13:24 +0000 (16:13 +0000)] 
Change the sqlite3.pDfltColl (the default collating sequence for the
database connection) so that it is the collating sequence appropriate for
the database encoding, not the UTF8 collating sequence.  This helps to
ensure that the database encoding collation is always used, even for
expressions that do not have an defined collating sequence.
Ticket [1b8d7264567eb6fc].

FossilOrigin-Name: 4a5851893c3d71cc823b6ab5df5e58a852cd322fff26290f1ea05b63d67f564a

6 years agoWhen printing the OP_CollSeq opcode for EXPLAIN listings, include the
drh [Thu, 5 Mar 2020 14:19:49 +0000 (14:19 +0000)] 
When printing the OP_CollSeq opcode for EXPLAIN listings, include the
text encoding with the name of the collating sequence.

FossilOrigin-Name: eb5c1b77d1c55fc286ff8fccfd61e21cb67aec92d6f93b093b9af5c32165d82b

6 years agoFix a false-positive in the debugging logic that attempts to detect the
drh [Tue, 3 Mar 2020 20:48:12 +0000 (20:48 +0000)] 
Fix a false-positive in the debugging logic that attempts to detect the
use of uninitialized registers inside triggers.
Ticket [c4c56482ced89d90]

FossilOrigin-Name: 0463576b5de0a1ee71530f0e4988fc9cceda79148520bea2c67f1fbc4a99cea9

6 years agoRemove an invalid assert() on the debugging logic that checks to ensure that
drh [Tue, 3 Mar 2020 20:04:29 +0000 (20:04 +0000)] 
Remove an invalid assert() on the debugging logic that checks to ensure that
register values are not used after they go stale.  Ticket [d165ad781b39d574].

FossilOrigin-Name: bd94d7d052734460904c687756231f8aa243a2252f07f742dd1e437aa940f536

6 years agoImproved detection of corruption in the interior nodes of a segment btree
drh [Tue, 3 Mar 2020 01:16:04 +0000 (01:16 +0000)] 
Improved detection of corruption in the interior nodes of a segment btree
in FTS3/4.

FossilOrigin-Name: cc99447ac923166104e8a7c75088ed95279f4491b30cfa37dc3ee5e005dd9fac

6 years agoEnhance the fuzzcheck test program so that it is able to simulate OOM errors
drh [Mon, 2 Mar 2020 16:31:21 +0000 (16:31 +0000)] 
Enhance the fuzzcheck test program so that it is able to simulate OOM errors
in the same way that dbsqlfuzz does.

FossilOrigin-Name: a65c8d4e26b2428ecb8232a4a6a44443aa1701319223397e61a823a5aa1827de

6 years agoFix a faulty assert() statement in the stale-register detection logic.
drh [Mon, 2 Mar 2020 01:50:48 +0000 (01:50 +0000)] 
Fix a faulty assert() statement in the stale-register detection logic.
Ticket [da5a09be6dabbf42].

FossilOrigin-Name: 219c296cc8cab13fa12b64c297bc4a98d8e21491309d97a031edf89ae77fce75

6 years agoEnsure that the NULL-scan pass counter is initialized when a ORDER BY NULLS LAST
drh [Mon, 2 Mar 2020 01:16:33 +0000 (01:16 +0000)] 
Ensure that the NULL-scan pass counter is initialized when a ORDER BY NULLS LAST
is used on the right table of a LEFT JOIN.  Ticket [e12a0ae526bb51c7].

FossilOrigin-Name: 704bb9a39acbee420c1d6ac9eb1466a02dd77d3334b938bfddf235973129b5fe

6 years agoFix a problem with window functions occuring within sub-selects that are part of...
dan [Sat, 29 Feb 2020 17:19:42 +0000 (17:19 +0000)] 
Fix a problem with window functions occuring within sub-selects that are part of an OR term in a WHERE clause of the outer SELECT.

FossilOrigin-Name: 1e174ed0d29366eb56ad1a0cc8defcb440b426bfd9525aed2f93468248606efc

6 years agoIn the CLI, add the ".oom" command for debugging builds.
drh [Sat, 29 Feb 2020 15:53:48 +0000 (15:53 +0000)] 
In the CLI, add the ".oom" command for debugging builds.

FossilOrigin-Name: 9c3136a722715952d155aae55cbc6d1fb921c6940d8e7d3e32fcba000f6ac1ed

6 years agoThe RTREE extension behaves has if data columns have type REAL, so we
drh [Fri, 28 Feb 2020 16:04:28 +0000 (16:04 +0000)] 
The RTREE extension behaves has if data columns have type REAL, so we
should actually declare them as REAL so that automatic indexes handle
them correctly.  Ticket [e63b4d1a65546532]

FossilOrigin-Name: 85a9b6a92fd5805d5936f02d555af395441607b9eb5f4dae63560b5e65663b00

6 years agoIn sqlite3changeset_apply(), ensure that DELETE and UPDATE changes are always execute...
dan [Thu, 27 Feb 2020 17:16:45 +0000 (17:16 +0000)] 
In sqlite3changeset_apply(), ensure that DELETE and UPDATE changes are always executed on main database tables, not similarly named temp tables, as documented. INSERT statements are already being handled correctly.

FossilOrigin-Name: f71a13d072398c9fc3556f42d75159cc2d0edc2c42f6c47f64503a7fbbca6e37

6 years agoFix harmless compiler warnings from MSVC.
drh [Thu, 27 Feb 2020 16:21:39 +0000 (16:21 +0000)] 
Fix harmless compiler warnings from MSVC.

FossilOrigin-Name: 951b39ca74c9bd933139e099d5555283278db475f410f202c162e5d1e6aef933

6 years agoOptimization for "SELECT min(x) FROM tbl" where "x" is indexed and NOT NULL. This...
dan [Thu, 27 Feb 2020 15:07:16 +0000 (15:07 +0000)] 
Optimization for "SELECT min(x) FROM tbl" where "x" is indexed and NOT NULL. This also allows similar queries on NOT NULL virtual table columns to be optimized.

FossilOrigin-Name: 59726777934e201d94e99ca693f0fda4ebfb1c7883d0258ce542f63f9924c28c

6 years agoExtra zero terminators on the end of the blank filename returned by
drh [Thu, 27 Feb 2020 13:54:18 +0000 (13:54 +0000)] 
Extra zero terminators on the end of the blank filename returned by
sqlite3PagerFilename() for an in-memory database.  This helps the result
work better with sqlite3_filename_journal() and similar functions.

FossilOrigin-Name: 63e533d28e87bbb10e0c611de4b79d22aae291b163fe59d1f95dcad9ab3939e4