]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
5 years agoAdd the sqlite3_database_file_object() interface to sqlite3ext.h. sqlite3_database_file_object
drh [Tue, 21 Apr 2020 19:27:08 +0000 (19:27 +0000)] 
Add the sqlite3_database_file_object() interface to sqlite3ext.h.

FossilOrigin-Name: 3cabe06b6e9433cbfb4bf7bd72a425f43b54f57d84a205adbaa6a1147bbe46bf

5 years agoExperimental API: sqlite3_database_file_object().
drh [Tue, 21 Apr 2020 01:06:35 +0000 (01:06 +0000)] 
Experimental API: sqlite3_database_file_object().

FossilOrigin-Name: ae697b152d22737169892411a0c4d908895ff5fb249cce9bdb1ba0bbe32806f0

5 years agoDo not use O_NOFOLLOW when opening a directory just to call fsync() on
drh [Mon, 20 Apr 2020 17:35:32 +0000 (17:35 +0000)] 
Do not use O_NOFOLLOW when opening a directory just to call fsync() on
that directory.

FossilOrigin-Name: 2fc80ef16ce5878311ab88a0c64631813572ffbb71f75363b4619c9667e0926b

5 years agoEnhance the ".filectrl" command in the CLI to support the --schema option.
drh [Mon, 20 Apr 2020 16:21:30 +0000 (16:21 +0000)] 
Enhance the ".filectrl" command in the CLI to support the --schema option.

FossilOrigin-Name: 698d40db58b76f4094687d46b5c6292702a62168054f9e6a70ee86650a6635f7

5 years agoThe SQLITE_TESTCTRL_RESERVE operator is removed. In its place is the
drh [Mon, 20 Apr 2020 15:18:43 +0000 (15:18 +0000)] 
The SQLITE_TESTCTRL_RESERVE operator is removed.  In its place is the
more generate SQLITE_FCNTL_RESERVE_BYTES which is an API and which can
operator on more than just the main schema.

FossilOrigin-Name: abc1aad74f7b6a1e72fb09936239f2224aa942d16296c6a3de0b8daef4bc8471

5 years agoRemove an obsolete comment. No changes to code.
drh [Mon, 20 Apr 2020 14:05:54 +0000 (14:05 +0000)] 
Remove an obsolete comment.  No changes to code.

FossilOrigin-Name: 4135cb024456288d9c85aef5fb572dbb591527dd33d9a60ca5946b712c269941

5 years agoAdd the --bom option to the ".excel", ".once", and ".output" commands
drh [Sat, 18 Apr 2020 14:12:00 +0000 (14:12 +0000)] 
Add the --bom option to the ".excel", ".once", and ".output" commands
of the CLI.  Also fix the "--all" option on ".help" so that it works with
two dashes in addition to just one.

FossilOrigin-Name: d5b0def96ba6d90f47bc96fab1ccf9c501d84885d086744035b16fd96f3e248c

5 years agoFix the ".excel" command and the ".open -x" and ".open -e" command so that
drh [Fri, 17 Apr 2020 23:46:54 +0000 (23:46 +0000)] 
Fix the ".excel" command and the ".open -x" and ".open -e" command so that
they work better when running from an in-memory database and on Windows
and when running from a script.

FossilOrigin-Name: 07752164c2bf00b6885808533bbdb2cefbf1bf281a887b0b4f6316649a6cb810

5 years agoMerge accidentally created fork.
dan [Thu, 16 Apr 2020 15:56:03 +0000 (15:56 +0000)] 
Merge accidentally created fork.

FossilOrigin-Name: cb772b7a8fb53694cb267e74c11f49d2b9fd6920821c4e232f90ec35739c8904

5 years agoImprove corruption detection in fts3 shadow tables earlier in order to prevent an...
dan [Thu, 16 Apr 2020 11:35:27 +0000 (11:35 +0000)] 
Improve corruption detection in fts3 shadow tables earlier in order to prevent an assert() from failing.

FossilOrigin-Name: a9ec8c8f80a59badabb0afdb4189f0fd2934f936530d4151de395b3a7e7c1f1f

5 years agoClarification of the byte-order determination for UTF16 inputs to routines
drh [Wed, 15 Apr 2020 17:39:39 +0000 (17:39 +0000)] 
Clarification of the byte-order determination for UTF16 inputs to routines
like sqlite3_bind_text16() and sqlite3_result_text16() and others that
accept UTF16 input strings.

FossilOrigin-Name: a42fdcf54bcbd72a301dad4a040346dc48e67cacab43479ec618f5c32108c55f

5 years agoBuild the UINT collating sequence extension into the CLI.
drh [Tue, 14 Apr 2020 15:53:58 +0000 (15:53 +0000)] 
Build the UINT collating sequence extension into the CLI.

FossilOrigin-Name: 2b8c6b035a276029850de02651712a5fd69f4dfee45083d24b9d1f998004829b

5 years agoAdd the UINT collating sequence extension. The implementation is copied out
drh [Tue, 14 Apr 2020 15:48:55 +0000 (15:48 +0000)] 
Add the UINT collating sequence extension.  The implementation is copied out
of the "natsort" branch.

FossilOrigin-Name: 6f46c6e3e3c471ca864d7596e0211ee90316b784c8fe22c7ae177c9d29731dc7

5 years agoWhen compiling the shell for WinRT, avoid using Win32 APIs that are unavailable.
mistachkin [Thu, 9 Apr 2020 15:31:22 +0000 (15:31 +0000)] 
When compiling the shell for WinRT, avoid using Win32 APIs that are unavailable.

FossilOrigin-Name: 85d3dc8c50d8dbb8eac1956e8976e861d3b671e03355ca9257060fa3dca51cc4

5 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

5 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

5 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

5 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

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

FossilOrigin-Name: 7e170e67f24c7cdef7e7ceac4e0b81a75382618e4abe9e604f3d7f6db9dc6396

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

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

FossilOrigin-Name: aa92f9b95f95d40cc58910da87168a5bd440f71deb072dc651bb15936315786c

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

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

FossilOrigin-Name: 86465c08f4d629a296332a7985937326ac43ea2822c5651bf03862cd79d370fc

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 years agoEnsure that the filename passed into the xFullPathname method of the VFS is
drh [Thu, 27 Feb 2020 11:32:14 +0000 (11:32 +0000)] 
Ensure that the filename passed into the xFullPathname method of the VFS is
acceptable as an argument to sqlite3_uri_parameter().  The interface spec does
not guarantee this, but it has been so historically and some applications
have come to depends on it.

FossilOrigin-Name: bfb09371d452d5d4dacab2ec476880bc729952f44ac0e5de90ea7ba203243c8c

5 years agoUpdate the fuzzcheck test module so that it avoids inserting text values
drh [Tue, 25 Feb 2020 20:05:58 +0000 (20:05 +0000)] 
Update the fuzzcheck test module so that it avoids inserting text values
that contain embedded NULs in the XSQL table.  Fix some legacy entries in
the test/fuzzdata8.db that had embedded NULs.  Add in new dbsqlfuzz cases
that have accumulated over on the dbsqlfuzz project for a while.

FossilOrigin-Name: 47d4240c4a837e829f593bb2aad7563010838f55345e7a0d8e2ea79462aeeb3c

5 years agoIf STAT4 determines that a WHERE clause term that is not used by an index
drh [Mon, 24 Feb 2020 17:05:09 +0000 (17:05 +0000)] 
If STAT4 determines that a WHERE clause term that is not used by an index
has very high probability of being true, then do not use that term to reduce
the estimated output row count.

FossilOrigin-Name: 40739c793b0e98a3bae296d3a1f74944edcdd4cc33c26b417fde4eaf6f14d062

5 years agoRework this changes so that instead of setting the WhereTerm.truthProb when stat4-truthprob
drh [Mon, 24 Feb 2020 16:46:08 +0000 (16:46 +0000)] 
Rework this changes so that instead of setting the WhereTerm.truthProb when
a term is seen to be of low selectivity, it merely sets a new flag
(the TERM_HIGHTRUTH flag) which causes whereLoopOutputAdjust() to ignore
that term.

FossilOrigin-Name: 4558163b6a525990f0f1b6629dbb76daf49bcaf1ddbaf0c50fe05ce9ee480ff8

5 years agoDisable the new analyzeG.test module if not building with STAT4.
drh [Mon, 24 Feb 2020 13:35:34 +0000 (13:35 +0000)] 
Disable the new analyzeG.test module if not building with STAT4.

FossilOrigin-Name: 4a9d3005769e0398183b03a3e132e3946b9d1c48073af2e0559d7beeac3245c0

5 years agoMerge bugfix from trunk.
drh [Mon, 24 Feb 2020 13:26:29 +0000 (13:26 +0000)] 
Merge bugfix from trunk.

FossilOrigin-Name: b542dee9de843c19664c19df7435c6034d23d0d213804d588ec0ff599082d576

5 years agoFix a problem with ALTER TABLE for views that have a nested FROM clause.
drh [Sun, 23 Feb 2020 17:34:45 +0000 (17:34 +0000)] 
Fix a problem with ALTER TABLE for views that have a nested FROM clause.
Ticket [f50af3e8a565776b].

FossilOrigin-Name: c431b3fd8fd0f6a6974bba3e9366b0430ec003d570e7ce70ceefbcff5fe4b6fa

5 years agoDo not activate the truthProb adjustment mechanism if the truth probability
drh [Sat, 22 Feb 2020 18:27:48 +0000 (18:27 +0000)] 
Do not activate the truthProb adjustment mechanism if the truth probability
is less than the heuristic value, as there could be correlations unknown to
stat4.  Also add additional tracing output to make truthProb adjustments more
visible.

FossilOrigin-Name: c535fea147ce5c6e4aab25d3c85a3f53a7364c5b5ee10fb6d393c5911a02be7e

5 years agoAdd new test file analyzeG.test, containing a test for the change on this branch.
dan [Sat, 22 Feb 2020 17:32:00 +0000 (17:32 +0000)] 
Add new test file analyzeG.test, containing a test for the change on this branch.

FossilOrigin-Name: 243ab1852a2291595527ea1f26e78ad83eda285ae28f876bc1c703677f495cfa

5 years agoWhen stat4 information is available, try to use it to improve the truth
drh [Sat, 22 Feb 2020 16:58:49 +0000 (16:58 +0000)] 
When stat4 information is available, try to use it to improve the truth
probability of WHERE clause terms that do not participate in the index.

FossilOrigin-Name: 1babd6ec5d60e2c34aa1c0285ead768a88004218468e97262411973fe3487022

5 years agoIn the OP_Column opcode, if the cursor is marked NullRow (due to being the
drh [Sat, 22 Feb 2020 13:01:19 +0000 (13:01 +0000)] 
In the OP_Column opcode, if the cursor is marked NullRow (due to being the
right table of a LEFT JOIN that does not match) and the cursor is the table
cursor for an OR-optimization with a covering index, then do not substitute
the covering index cursor, since the covering index cursor does not have
the NullRow flag set.  Ticket [aa4378693018aa99]

FossilOrigin-Name: f02030b3403d67734bba471a91ad5bfdb03ddf6fdc3ef14808a04495e43b0470

5 years agoAdd test case for previous commit.
dan [Thu, 20 Feb 2020 14:11:08 +0000 (14:11 +0000)] 
Add test case for previous commit.

FossilOrigin-Name: 14d14eb537075c6ac77513b1e7305bed8bc01a9034dfb763fd96f76400f2b705

5 years agoEarly-out on the INTERSECT query processing following an error.
drh [Thu, 20 Feb 2020 14:08:51 +0000 (14:08 +0000)] 
Early-out on the INTERSECT query processing following an error.

FossilOrigin-Name: a67cf5b7d37d5b1484be32092635faafd8f76e5881898cd9435517c4b287d663

5 years agoFix a potential NULL pointer dereference following OOM. Problem discovered
drh [Wed, 19 Feb 2020 15:39:46 +0000 (15:39 +0000)] 
Fix a potential NULL pointer dereference following OOM.  Problem discovered
by dbsqlfuzz.  Test case in TH3.

FossilOrigin-Name: 5aeb5a2d295e10d5fc1d456b3acaf8ac13c04cb5bb71a8c4571541d366e95887

5 years agoRemove a NEVER() macro and add a test case to cause its argument to be true.
drh [Tue, 18 Feb 2020 23:58:58 +0000 (23:58 +0000)] 
Remove a NEVER() macro and add a test case to cause its argument to be true.

FossilOrigin-Name: ee034fe916448e953ee7824e5c0db99a36a0ad138ebfb25f751bf84cb80a8fa7

5 years agoAdd the new sqlite3_create_filename() and sqlite3_free_filename() interfaces
drh [Tue, 18 Feb 2020 19:49:48 +0000 (19:49 +0000)] 
Add the new sqlite3_create_filename() and sqlite3_free_filename() interfaces
for use by Shims.  Use these interfaces inside the multiplexor.

FossilOrigin-Name: 9469f36ac89e4b75d0ab25fefbeff25201992c53141da915dcaa017083cab6db