]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
4 years agoFix a potential use-after-free following an OOM in sqlite3ParserAddCleanup() parse-cleanup
drh [Tue, 12 Jan 2021 15:30:01 +0000 (15:30 +0000)] 
Fix a potential use-after-free following an OOM in sqlite3ParserAddCleanup()
and add a mechanism to detect situations where this might occur in the
future.

FossilOrigin-Name: 38ef8ab9830e12acd2c710e113939b1f8dced02612c6933c37a3c948a4030d0a

4 years agoAdd a linked list of ParseCleanup objects to the end of a Parse object and
drh [Mon, 11 Jan 2021 20:37:02 +0000 (20:37 +0000)] 
Add a linked list of ParseCleanup objects to the end of a Parse object and
use that list as a place to put other sub-objects that need to be deallocated.
Have a single such list for infrequently used sub-objects is more efficient
than doing an a separate check for each kind of sub-object.

FossilOrigin-Name: affa2b7b316941b8a6c4d0d1ff212c81a593faf1d05d129e14d2b70d73a25c59

4 years agoNew CLI command: ".stats vmstep" enables the display of the virtual-machine
drh [Sat, 9 Jan 2021 19:10:04 +0000 (19:10 +0000)] 
New CLI command:  ".stats vmstep" enables the display of the virtual-machine
step count only, after each command.  Useful for optimization problems.

FossilOrigin-Name: 49dfce469e6a17111b349e53578479daf783064200bf0eec5bf8a91d3553b19f

4 years agoMore detailed compile-time testing before attempting to use atomic load
drh [Sat, 9 Jan 2021 18:24:33 +0000 (18:24 +0000)] 
More detailed compile-time testing before attempting to use atomic load
intrinsics.  See
[forum:/forumpost/fc0237a39b30ac0a|forum post fc0237a39b30ac0a].

FossilOrigin-Name: 5204c2c4a7b73a64764b0d2d1d7c53709bb64e0d2685a829c7bf31af13bab5e7

4 years agoFix an issue with sha3_query() when the first argument contains blank
drh [Fri, 8 Jan 2021 19:53:18 +0000 (19:53 +0000)] 
Fix an issue with sha3_query() when the first argument contains blank
SQL statements.

FossilOrigin-Name: 24baab9a9faab50c26d7167821031cd66aaf784baefbc0f92354ae54ac43a714

4 years agoUpdate cksumvfs to check that the xCurrentTimeGetInt64 method of the underlying VFS...
dan [Thu, 7 Jan 2021 16:59:35 +0000 (16:59 +0000)] 
Update cksumvfs to check that the xCurrentTimeGetInt64 method of the underlying VFS is not NULL before invoking it.

FossilOrigin-Name: c71f6cadcc8c2172ad4113bbe4026aac4ebb8a91485454e8a14de32d197a93aa

4 years agoFix problems with some "crashsql" tests.
dan [Thu, 7 Jan 2021 16:29:34 +0000 (16:29 +0000)] 
Fix problems with some "crashsql" tests.

FossilOrigin-Name: 0c8e2ede5c325aa7fef8e8587057ec8c865fc7cf3e974a2733066fbac640b983

4 years agoFix harmless typos in comments per
drh [Thu, 7 Jan 2021 16:10:14 +0000 (16:10 +0000)] 
Fix harmless typos in comments per
[forum:/forumpost/7849e58dd5|forum post 7849e58dd5]

FossilOrigin-Name: d1e22e2f76cce7eb9f9029646176daef2d9e41c7bb1d3e1da182fbdd0096605c

4 years agoAdd extra test for handling of embedded nul characters in the fts4 unicode61 tokenizer.
dan [Mon, 4 Jan 2021 18:28:29 +0000 (18:28 +0000)] 
Add extra test for handling of embedded nul characters in the fts4 unicode61 tokenizer.

FossilOrigin-Name: c2c2c7e945f5d5700d91b8e779117e70e388ffc613912a434885ae27f5fe4e22

4 years agoIn Lemon, factor the parser stack overflow detection logic out of the
drh [Sat, 2 Jan 2021 23:56:37 +0000 (23:56 +0000)] 
In Lemon, factor the parser stack overflow detection logic out of the
yy_reduce() subroutine and into the main parser routine, so that when overflow
is detected, it can exit immediately.  This saves a single conditional in
the main loop of the parser.

FossilOrigin-Name: 203c049c662380411522d0c7c493201331bbb2792a7c5b12684f04f532a0695d

4 years agoAvoid allocating space to hold the prepared statements for CREATE statements
drh [Fri, 1 Jan 2021 22:06:17 +0000 (22:06 +0000)] 
Avoid allocating space to hold the prepared statements for CREATE statements
when parsing the schema of an existing database, since those prepared
statements are never used..  This helps to make startup faster,

FossilOrigin-Name: d01e9f2d00dc439c529cd8885a219fcddbaad73b9f471b020e2a0c18e2add69b

4 years agoFaster and smaller test to ensure that the sqlite_schema.sql field is always
drh [Fri, 1 Jan 2021 21:02:37 +0000 (21:02 +0000)] 
Faster and smaller test to ensure that the sqlite_schema.sql field is always
a CREATE statement of some kind.

FossilOrigin-Name: 76de2bb04b1c02a6c0300cd61d9b3d2477d845aa0d1cdb9dbe4f354b9fedd923

4 years agoChange the unions of the Table.addColOffset field from characters to bytes.
drh [Fri, 1 Jan 2021 20:04:34 +0000 (20:04 +0000)] 
Change the unions of the Table.addColOffset field from characters to bytes.
This makes the query that implements ALTER TABLE ADD COLUMN more complex and
slightly slower, but also makes CREATE TABLE statement parsing faster by
avoiding a call to sqlite3UtfCharLen().  Since, CREATE TABLE parsing is far
more common than ALTER TABLE, this is a net win for performance.

FossilOrigin-Name: 6f25f2529f1495a26129d7d407979906e4962b2de351f901d41cb037d05ba780

4 years agoUse the column name hash to improve performance of column name collision
drh [Fri, 1 Jan 2021 19:17:01 +0000 (19:17 +0000)] 
Use the column name hash to improve performance of column name collision
detection while parsing CREATE TABLE statements.

FossilOrigin-Name: d02820f03575e4633a7917427f11c19f99bd7b92f37d0ffe6fdc2418ad729813

4 years agoModify the makefile rule for "startup" so that it always builds with
drh [Fri, 1 Jan 2021 18:32:15 +0000 (18:32 +0000)] 
Modify the makefile rule for "startup" so that it always builds with
-Os and -DSQLITE_THREADSAFE=0 and no other options, for consistency of
performance.

FossilOrigin-Name: 5ac939e0adc923378173297e934c3664254a4fefbcddcc842bf4cc42dbaacf4f

4 years agoSize reduction and performance increase in sqlite3Prepare().
drh [Fri, 1 Jan 2021 18:23:56 +0000 (18:23 +0000)] 
Size reduction and performance increase in sqlite3Prepare().

FossilOrigin-Name: 41f45c8e894f48049325ccfef12cec0887b636bfad5d531a47628eb9e8612924

4 years agoSmall size reduction and performance improvement in sqlite3VdbeMakeReady()
drh [Fri, 1 Jan 2021 17:01:33 +0000 (17:01 +0000)] 
Small size reduction and performance improvement in sqlite3VdbeMakeReady()
by linking the new prepared statement into the prepared statement list sooner
rather than later.

FossilOrigin-Name: 2996e800a02967f9d0e27c816cf0b7b581a25634f94abcf167f27b019e1515e5

4 years agoStreamline processing of the authenticator callback for the common case
drh [Fri, 1 Jan 2021 16:43:26 +0000 (16:43 +0000)] 
Streamline processing of the authenticator callback for the common case
when there is no callback.

FossilOrigin-Name: d3196685d958bf22b5c362e96bbf8e1df58cc09cc3abc4bfa94bb33bc28c61aa

4 years agoAdd the "startup" test program designed to measure startup performance,
drh [Fri, 1 Jan 2021 15:13:17 +0000 (15:13 +0000)] 
Add the "startup" test program designed to measure startup performance,
and in particular schema parsing time.

FossilOrigin-Name: 7b3b31efb0047c5a461f487905cffba2b0ddb1518a6e757ca092eb40e1e2cd49

4 years agoDo not attempt to take a pointer to the ceil() and floor() functions as
drh [Fri, 1 Jan 2021 01:44:06 +0000 (01:44 +0000)] 
Do not attempt to take a pointer to the ceil() and floor() functions as
those routines are intrinsics on some versions of MSVC.

FossilOrigin-Name: e5d7209e118a84537a85c0c9cd2b7ca4cd6ccf04181dc840b19339b4c93840cd

4 years agoNew test case for the HAVING fix of check-in [f62f983b56623f0e].
drh [Wed, 30 Dec 2020 13:20:27 +0000 (13:20 +0000)] 
New test case for the HAVING fix of check-in [f62f983b56623f0e].

FossilOrigin-Name: 45f46317ab8bd92dcd346bf00ba3a33b0cfd030b790c04e19ef33cff124d8d7f

4 years agoNew test cases for cursor renumbering in the UNION ALL query flattener.
drh [Wed, 30 Dec 2020 13:10:57 +0000 (13:10 +0000)] 
New test cases for cursor renumbering in the UNION ALL query flattener.

FossilOrigin-Name: 270babf259750f3d6c490a08df608a101b24b3c06b9e8a938a0e09a854af6a20

4 years agoDo not set the P3 parameter on OP_RowCell when copying an index btree, as
drh [Tue, 29 Dec 2020 15:06:26 +0000 (15:06 +0000)] 
Do not set the P3 parameter on OP_RowCell when copying an index btree, as
P3 is not used in that case.

FossilOrigin-Name: eef070a4aadf02a845d0ed00767be049d3b76e811e24797a116776fa836d1b03

4 years agoFix missing comma in ctime.c that would cause the ENABLE_MATH_FUNCTIONS
drh [Mon, 28 Dec 2020 21:42:38 +0000 (21:42 +0000)] 
Fix missing comma in ctime.c that would cause the ENABLE_MATH_FUNCTIONS
output rw to merge with whatever row followed.  Problem reported in
[forum:/forumpost/aacac97680|forum post aacac97680].

FossilOrigin-Name: 328bc4a01dd67096be49c8b5a656109ad2839a7959d1b00c02a96bfbcb44ec18

4 years agoAdd the sqlite3session_memory_used() API to the sessions module. For querying the...
dan [Wed, 23 Dec 2020 16:46:39 +0000 (16:46 +0000)] 
Add the sqlite3session_memory_used() API to the sessions module. For querying the amount of heap memory currently being used by a session object.

FossilOrigin-Name: 823f75c2e448b649cbe9e174be21524ae3f580beedced65701ad49a2dcc5ee19

4 years agoFix SQLITE_OMIT_WINDOWFUNC builds by moving declaration of sqlite3ExpandSubquery...
dan [Tue, 22 Dec 2020 20:35:22 +0000 (20:35 +0000)] 
Fix SQLITE_OMIT_WINDOWFUNC builds by moving declaration of sqlite3ExpandSubquery out of "ifndef SQLITE_OMIT_WINDOWFUNC" block.

FossilOrigin-Name: 9587fa8b29fc2f91d751a71b909f574014656f24d276b4974f47fcc18dbadcb8

4 years agoFix a couple spelling typos in comments.
mistachkin [Tue, 22 Dec 2020 19:57:53 +0000 (19:57 +0000)] 
Fix a couple spelling typos in comments.

FossilOrigin-Name: 907ddf86766ebdbe39bdc89543c1a7bbd65c710c9f3a3a4d796845b2c02b711b

4 years agoFix a problem handling sub-queries with both a correlated WHERE clause and a "HAVING...
dan [Tue, 22 Dec 2020 16:23:29 +0000 (16:23 +0000)] 
Fix a problem handling sub-queries with both a correlated WHERE clause and a "HAVING 0" clause where the parent query is itself an aggregate.

FossilOrigin-Name: f62f983b56623f0ec34f9a54ce1c21b013a20399162f5ee6ee43b23f10c2ecd5

4 years agoSimplification to the aggregate-function analysis error detection logic at
drh [Tue, 22 Dec 2020 14:54:20 +0000 (14:54 +0000)] 
Simplification to the aggregate-function analysis error detection logic at
the end of sqlite3Select().

FossilOrigin-Name: 82884438e30ad8241f8249927fe92e0856d78b64d7ade38f3d5bb1c931d958d0

4 years agoFix problems with joining UNION ALL sub-queries against other sub-queries that contai...
dan [Mon, 21 Dec 2020 19:50:10 +0000 (19:50 +0000)] 
Fix problems with joining UNION ALL sub-queries against other sub-queries that contain LEFT JOIN.

FossilOrigin-Name: d554f710a5abbe64022f47a14ef67227c861a8f0991d85d240434e9a709cf8b8

4 years agoFix a problem when flattening joins between a UNION ALL sub-query and another sub...
dan [Mon, 21 Dec 2020 18:39:58 +0000 (18:39 +0000)] 
Fix a problem when flattening joins between a UNION ALL sub-query and another sub-query that uses more than one window function.

FossilOrigin-Name: ef9733fe1c6b31849a5da1037d21915f82e0e4ab42d1a23ead8a121012f1bace

4 years agoEnhance documentation to show that "ro" is the correct way to say "readonly"
drh [Mon, 21 Dec 2020 14:51:33 +0000 (14:51 +0000)] 
Enhance documentation to show that "ro" is the correct way to say "readonly"
in the mode= query parameter.

FossilOrigin-Name: 788b96851d9ced84757c48dc3e0414cab27ee7e50e9730dab30b2e42a7762397

4 years agoAdd the --timer option to fuzzcheck. Get the --timeout option working in
drh [Mon, 21 Dec 2020 12:14:59 +0000 (12:14 +0000)] 
Add the --timer option to fuzzcheck.  Get the --timeout option working in
fuzzcheck when running dbsql tests.

FossilOrigin-Name: 3b0c9b41a877c7344ef3b7c5b6981436005716e25b41b1a1ffc145520243abd3

4 years agoAlways declare the sqlite3WhereTrace variable, even for non-debug builds.
drh [Sun, 20 Dec 2020 14:51:17 +0000 (14:51 +0000)] 
Always declare the sqlite3WhereTrace variable, even for non-debug builds.

FossilOrigin-Name: 88d93ee380b6fd87474545f20ade874ba05c784c787ce9c45ebfcffed3795308

4 years agoFix a broken assert() in fts5 that could be triggered by corrupt database records.
dan [Sat, 19 Dec 2020 15:39:10 +0000 (15:39 +0000)] 
Fix a broken assert() in fts5 that could be triggered by corrupt database records.

FossilOrigin-Name: b79f59f9ad897d5bd4b9d17e6219bc765b02450bfe14dc020485f221ba6b02cb

4 years agoAllow UNION ALL sub-queriesto be flattened even if the parent query is a join.
drh [Sat, 19 Dec 2020 13:58:06 +0000 (13:58 +0000)] 
Allow UNION ALL sub-queriesto be flattened even if the parent query is a join.

FossilOrigin-Name: df1d6482f9e92dafdca1948e96eef52d8646eef9c356394afabe431d6357dd34

4 years agoFix for the previous fix in the case where a UNION ALL sub-query is joined against... union-all-flattener
dan [Fri, 18 Dec 2020 18:04:44 +0000 (18:04 +0000)] 
Fix for the previous fix in the case where a UNION ALL sub-query is joined against some other compound query.

FossilOrigin-Name: 63c5cfb9ae8f4598a523bed2a60c0e69172179952961a573113fcf756c06551d

4 years agoWhen flattening UNION ALL subqueries into a join query, ensure that separate cursor...
dan [Fri, 18 Dec 2020 16:13:39 +0000 (16:13 +0000)] 
When flattening UNION ALL subqueries into a join query, ensure that separate cursor numbers are used for each segment of the newly flattened query.

FossilOrigin-Name: c510377b0b052e400f2ee4f20220b61cdf74ee44b9bb9e6490787c88dd4c55aa

4 years agoFix a part of the header comment for flattenSubquery().
dan [Thu, 17 Dec 2020 17:17:12 +0000 (17:17 +0000)] 
Fix a part of the header comment for flattenSubquery().

FossilOrigin-Name: dc0937ce9d5569e3409b2b036a9f15b896125f4eb2eec30e3f0bbe4a92bcd0ad

4 years agoAdd test cases and minor fixes to this branch.
dan [Thu, 17 Dec 2020 16:48:04 +0000 (16:48 +0000)] 
Add test cases and minor fixes to this branch.

FossilOrigin-Name: 5d6dc29d5f81738b07e4fee652fb2343fc409c2545f2f4667e8ee82d1a75f721

4 years agoIn the CLI, add the ".filectrl data_version" command. And put the various
drh [Thu, 17 Dec 2020 15:17:42 +0000 (15:17 +0000)] 
In the CLI, add the ".filectrl data_version" command.  And put the various
".filectrl" subcommands in alphabetical order.

FossilOrigin-Name: 3434452148eef39ba3ba2f40a6fedb6ec4f5157cbc2763b3ec90ec7f2b126382

4 years agoFix a problem with sqlite3_expanded_sql() that could occur with statements that use...
dan [Thu, 17 Dec 2020 11:24:26 +0000 (11:24 +0000)] 
Fix a problem with sqlite3_expanded_sql() that could occur with statements that use both numbered (e.g. "?1") and unnumbered (i.e. "?") parameters.

FossilOrigin-Name: 2a6cd6833e44dd6a2ac388815f43be6508f6fa6db5e451e964276a6c87e6c5ae

4 years agoEnhance the sqlite3BtreeTransferRow() routine so that it does more careful
drh [Wed, 16 Dec 2020 21:09:45 +0000 (21:09 +0000)] 
Enhance the sqlite3BtreeTransferRow() routine so that it does more careful
checks for corrupt database pages.

FossilOrigin-Name: 85952e71175dae73c4e587a3b80783825d91fe8567a819e072da651c1ff4131b

4 years agoAllow sub-queries that use UNION ALL to be flattened, even if the parent query is...
dan [Wed, 16 Dec 2020 20:00:46 +0000 (20:00 +0000)] 
Allow sub-queries that use UNION ALL to be flattened, even if the parent query is a join. Still some problems on this branch.

FossilOrigin-Name: 00e4bf74d3dfb87666a2266905f7d1a2afc6eb088d22cfd4f38f048733d6b936

4 years agoRemove an unnecessary and incorrect #ifdef. Fix harmless compiler warnings.
drh [Wed, 16 Dec 2020 14:20:45 +0000 (14:20 +0000)] 
Remove an unnecessary and incorrect #ifdef.  Fix harmless compiler warnings.

FossilOrigin-Name: 31cd1bbfa5b06723288d99d1cb423f88353bdef770b82e9103f71a796d66f660

4 years agoFix a typo in the sqlite3_free_filename() documentation.
drh [Wed, 16 Dec 2020 13:17:32 +0000 (13:17 +0000)] 
Fix a typo in the sqlite3_free_filename() documentation.

FossilOrigin-Name: 48301edc90fe5811df0394b106edce7726d0ea86ac562c9f4db511b812a76433

4 years agoFix another integer overflow triggered by a corrupt database in recently modified...
dan [Tue, 15 Dec 2020 19:27:20 +0000 (19:27 +0000)] 
Fix another integer overflow triggered by a corrupt database in recently modified vacuum code.

FossilOrigin-Name: 4e2dd2a53364f1fed48b995fd5d2642472585f6da5e4735e9da193ba7ff45514

4 years agoWhen the -statstep option is passed to the "rbu" executable, print out memory stats...
dan [Tue, 15 Dec 2020 16:28:07 +0000 (16:28 +0000)] 
When the -statstep option is passed to the "rbu" executable, print out memory stats right before exiting, as well as every -statstep steps.

FossilOrigin-Name: 94f81b51176566409b7d16b30d861f48ad15bb43a145df6e02e0880f7c348109

4 years agoChange an fts5 assert() that can be triggered by a corrupt database to an if() condition.
dan [Tue, 15 Dec 2020 13:55:38 +0000 (13:55 +0000)] 
Change an fts5 assert() that can be triggered by a corrupt database to an if() condition.

FossilOrigin-Name: ea0a7f103a6f6a9e57d7377140ff9f372bf2b156f86f148291fb05a7030f2b36

4 years agoEnhance UPSERT so that it allows multiple ON CONFLICT clauses and does
drh [Mon, 14 Dec 2020 15:39:12 +0000 (15:39 +0000)] 
Enhance UPSERT so that it allows multiple ON CONFLICT clauses and does
not require a conflict target for DO UPDATE.

FossilOrigin-Name: 6b01a24daab1e5bcb0768ebf994368d941b1dfc217bf6b661211d900331e68cf

4 years agoFix an integer overflow problem in new VACUUM code.
dan [Mon, 14 Dec 2020 15:25:14 +0000 (15:25 +0000)] 
Fix an integer overflow problem in new VACUUM code.

FossilOrigin-Name: 59b4367fd852ba1bfefdff99a27b11657495a3f114ed6f85fdcf6c532f4a19fa

4 years agoMinor changes for test coverage. generalized-upsert
drh [Mon, 14 Dec 2020 13:52:03 +0000 (13:52 +0000)] 
Minor changes for test coverage.

FossilOrigin-Name: e5a8fa50f4e5e5c24664452eda4af80904f75e5123b8f84353347dbd505d416d

4 years agoMore test cases. No new problems discovered.
drh [Sat, 12 Dec 2020 00:43:52 +0000 (00:43 +0000)] 
More test cases.  No new problems discovered.

FossilOrigin-Name: f34dd67e2d0dfc9e3b5d49148fb0162853119c097cbc3fe961878875ba98d8e3

4 years agoNew test cases with corresponding bug fixes.
drh [Sat, 12 Dec 2020 00:28:15 +0000 (00:28 +0000)] 
New test cases with corresponding bug fixes.

FossilOrigin-Name: f22c21a94ca4cad0217f91c1a5a275bc348cb6ba0f3a54c927533bc8d8c96a90

4 years agoBegin adding test cases. Fix one bug found so far. More are pending.
drh [Fri, 11 Dec 2020 19:36:19 +0000 (19:36 +0000)] 
Begin adding test cases.  Fix one bug found so far.  More are pending.

FossilOrigin-Name: aadd67ddf2a191629b5356395f75e4556aac904a6e2f6b83742fa4f26e4253a4

4 years agoFix an assert() broken by recent changes to vacuum.
dan [Fri, 11 Dec 2020 19:01:24 +0000 (19:01 +0000)] 
Fix an assert() broken by recent changes to vacuum.

FossilOrigin-Name: dd058da85ca54ae70e26cb0bdc75ff42998d4a8b29a5e2dcac44ee0e45776a85

4 years agoSmall performance tweaks.
drh [Fri, 11 Dec 2020 17:11:56 +0000 (17:11 +0000)] 
Small performance tweaks.

FossilOrigin-Name: 5321d60c575ef8f888d1b315df02cf9ed96a3ffc61babbc1429aa73b2a61a190

4 years agoBug fixes so that legacy tests pass. New tests for new functionality have
drh [Fri, 11 Dec 2020 16:49:51 +0000 (16:49 +0000)] 
Bug fixes so that legacy tests pass.  New tests for new functionality have
not yet been added.

FossilOrigin-Name: aa76790e58cea9a2b707f5912fd66c76545e7417442553fc13c87f773a2fe1dd

4 years agoAdd an "#ifndef SQLITE_AMALGAMATION" block around the typedef for u64 in shathree.c.
dan [Fri, 11 Dec 2020 16:03:19 +0000 (16:03 +0000)] 
Add an "#ifndef SQLITE_AMALGAMATION" block around the typedef for u64 in shathree.c.

FossilOrigin-Name: b411f29e1a6415f4a241777c45591b8389e746cd8b40d9b225e073bcb0a3bdbf

4 years agoFix the configure script on the autoconf distribution so that the
drh [Fri, 11 Dec 2020 14:34:58 +0000 (14:34 +0000)] 
Fix the configure script on the autoconf distribution so that the
--disable-threadsafe option works.  See
[https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=244459|FreeBSD bug 244459].

FossilOrigin-Name: e64ff2cce3c03ba27c3bf410948ece1424113e727870015eb3806b75d0d21f94

4 years agoFix the expert extension so that it handles generated columns correctly.
dan [Fri, 11 Dec 2020 14:22:44 +0000 (14:22 +0000)] 
Fix the expert extension so that it handles generated columns correctly.

FossilOrigin-Name: c2ae7ba6f8f4b10bd734051a0cfa8ed9675bd58c82ede4e9eadfd7cbcc03b82d

4 years agoLogic is in place to handle multiple ON CONFLICT clauses, but it does not work.
drh [Fri, 11 Dec 2020 01:17:06 +0000 (01:17 +0000)] 
Logic is in place to handle multiple ON CONFLICT clauses, but it does not work.
Any use of ON CONFLICT will likely lead to memory faults.  This is an
incremental check-in to save my place.

FossilOrigin-Name: 155142314feb007d526f8f67723636fd50dc52d1cd4d3a67dd93b105c9d5c2be

4 years agoUse an iterator for the index loop in sqlite3GenerateConstraintChecks().
drh [Thu, 10 Dec 2020 20:31:25 +0000 (20:31 +0000)] 
Use an iterator for the index loop in sqlite3GenerateConstraintChecks().
The idea is that this iterator can be enhanced to traverse the indexes in
any order, as required by multi-index UPSERT.

FossilOrigin-Name: 64a4a91ecc5dcde3fa07d3cf038c74b9ede63d36628ecfb35203a9dfbbfe113c

4 years agoRemove a redundant branch added by [56a54258560].
dan [Thu, 10 Dec 2020 19:54:13 +0000 (19:54 +0000)] 
Remove a redundant branch added by [56a54258560].

FossilOrigin-Name: b4d6f6d728738710249ad74236c31a1872fdff7dadabd4c4a67d05826eb5df9e

4 years agoChanges to avoid loading large records into memory within VACUUM.
dan [Thu, 10 Dec 2020 19:51:39 +0000 (19:51 +0000)] 
Changes to avoid loading large records into memory within VACUUM.

FossilOrigin-Name: 56a54258560fab715b83967634b2bd4c04be43cded112b46e85da9f99ee02f7c

4 years agoFix minor issues with new code on this branch. vacuum-lomem
dan [Thu, 10 Dec 2020 19:20:15 +0000 (19:20 +0000)] 
Fix minor issues with new code on this branch.

FossilOrigin-Name: f7fa76d0963e7b34026dc20c920bfbf7961033fe2b99503f6857157595f86823

4 years agoMerge trunk changes into this branch.
dan [Thu, 10 Dec 2020 18:07:01 +0000 (18:07 +0000)] 
Merge trunk changes into this branch.

FossilOrigin-Name: 7337eed629b4537b8fc2dc87c3c71d0a664128a91fd00f3c5f18843505beee90

4 years agoBetter integrate the changes on this branch with OP_Insert and OP_IdxInsert.
dan [Thu, 10 Dec 2020 18:06:24 +0000 (18:06 +0000)] 
Better integrate the changes on this branch with OP_Insert and OP_IdxInsert.

FossilOrigin-Name: 101cef14910d6e865a94bc870aed599321b893188062a9a61d70a9434992cf23

4 years agoAdd an optional function to the chsumvfs extension. When activated by
drh [Thu, 10 Dec 2020 13:49:00 +0000 (13:49 +0000)] 
Add an optional function to the chsumvfs extension.  When activated by
the SQLITE_CKSUMVFS_INIT_FUNCNAME macro, this function will invoke the
file-control that sets the number of reserved bytes to 8.  This can be
used to initialize a cksumvfs database file by programming languages
that do not have access to the sqlite3_file_control() interface.

FossilOrigin-Name: 01841fb4bf3d6c5fd5bcbc7d1338998c50f69f84ca475fba7cf764d636714678

4 years agoThe DO UPDATE code generator searches for the correct ON CONFLICT clause to
drh [Thu, 10 Dec 2020 12:49:26 +0000 (12:49 +0000)] 
The DO UPDATE code generator searches for the correct ON CONFLICT clause to
use.

FossilOrigin-Name: a47e35ee2d901baaa37e7229d190f934e1b0bd3510147cd4a2a49c4a1411416a

4 years agoFix compilation issues with MSVC related to C99.
mistachkin [Wed, 9 Dec 2020 23:35:51 +0000 (23:35 +0000)] 
Fix compilation issues with MSVC related to C99.

FossilOrigin-Name: c0de6c1fb2c486be1da01e5e4ca8c5634ba37822e418d57f272e018c3e3fc0a2

4 years agoTransfer large index or WITHOUT ROWID records between b-trees when vacuuming without...
dan [Wed, 9 Dec 2020 20:33:51 +0000 (20:33 +0000)] 
Transfer large index or WITHOUT ROWID records between b-trees when vacuuming without loading them into memory.

FossilOrigin-Name: dfd4ca6891a893d0e9551689954d3e79114d5565f8a5264f96ad1d64fe1d6280

4 years agoFor upsert, the constraint check code generator uses a copy of the index list generalized-upsert-ex1
drh [Wed, 9 Dec 2020 20:30:47 +0000 (20:30 +0000)] 
For upsert, the constraint check code generator uses a copy of the index list
for the target table, which can potentially be reordered.

FossilOrigin-Name: 3194c00c2c6a32bdfd5acc9fda5b38ae131d20cd3b7aea8512a41b2e76808f6a

4 years agoAdd tests for a 'delete' command on a contentless table where values that weren't...
dan [Wed, 9 Dec 2020 16:49:28 +0000 (16:49 +0000)] 
Add tests for a 'delete' command on a contentless table where values that weren't actually inserted are NULL.

FossilOrigin-Name: 818c647cec7063b33b6c5de3e23599a1d61439fa6e9bf6c974b2522a5a9e1b44

4 years agoAvoid loading large intkey rows when VACUUMing, even if the page-size is changing.
dan [Wed, 9 Dec 2020 16:32:11 +0000 (16:32 +0000)] 
Avoid loading large intkey rows when VACUUMing, even if the page-size is changing.

FossilOrigin-Name: 0d2c3776065dc94119899ae4164995193b82fca7ac31868f3141b729d0b65ab9

4 years agoImproved comments in sqliteInt.h. No changes to code.
drh [Wed, 9 Dec 2020 13:11:02 +0000 (13:11 +0000)] 
Improved comments in sqliteInt.h.  No changes to code.

FossilOrigin-Name: 8ccb8d1d55fa5aaf625c30f0e7c10aa403d79b5574dbdfa3fd0271a4e546f7e3

4 years agoInitialize all terms in the ON CONFLICT clause stack.
drh [Wed, 9 Dec 2020 01:34:48 +0000 (01:34 +0000)] 
Initialize all terms in the ON CONFLICT clause stack.

FossilOrigin-Name: 5e683fd1cbde53f37cf8a2b1e981191e2b29e3376db554691767f33c37c7547e

4 years agoExperimental changes to vacuum to avoid loading large records entirely into memory...
dan [Tue, 8 Dec 2020 20:19:07 +0000 (20:19 +0000)] 
Experimental changes to vacuum to avoid loading large records entirely into memory. Currently only works in limited cases only - for rowid tables when the page-size does not change.

FossilOrigin-Name: c90e063ca9ddcdd1e9f1a2e25a3f7d6e7ee798373ad8acf65b90536b0a124c0d

4 years agoEnhance UPSERT parsing to allow multiple ON CONFLICT clauses. Only the
drh [Tue, 8 Dec 2020 14:29:03 +0000 (14:29 +0000)] 
Enhance UPSERT parsing to allow multiple ON CONFLICT clauses.  Only the
very last clause may omit the conflict target, but the conflict target may
now be omitted for the DO UPDATE resolution.

FossilOrigin-Name: 2ca62f4c71df6544cb8039bdc80e3701d09697c38800534371f6d44532fcffae

4 years agoFix a bad assert() in math1Func().
drh [Mon, 7 Dec 2020 23:14:25 +0000 (23:14 +0000)] 
Fix a bad assert() in math1Func().

FossilOrigin-Name: 4b286129138d44e6f8e9b3450289941e01d20fdfb9d0b5d846031425e8ca6b49

4 years agoFix to the --disable-math option to ./configure.
drh [Mon, 7 Dec 2020 21:19:17 +0000 (21:19 +0000)] 
Fix to the --disable-math option to ./configure.

FossilOrigin-Name: 99ff6418492adcbaf2be728737735afa1c2997de5868395e69c53d08fc14491f

4 years agoMany more math functions. Semantics follows PG wherever possible.
drh [Mon, 7 Dec 2020 21:13:06 +0000 (21:13 +0000)] 
Many more math functions.  Semantics follows PG wherever possible.

FossilOrigin-Name: 6b93627b5d9819abf179a3e4a82e7afe17cbcafdabbd5f058de9ed114c9d477f

4 years agoBegin adding new SQL functions that depend on -lm: ceil(), ceiling(),
drh [Mon, 7 Dec 2020 17:15:32 +0000 (17:15 +0000)] 
Begin adding new SQL functions that depend on -lm:  ceil(), ceiling(),
floor(), ln(), log(), and log10() so far.  More to follow.

FossilOrigin-Name: 4db5f2f7875f6df78630a7816fc018141a6eee2e295b44fc7627eb66d07881ea

4 years agoFix harmless compiler warnings associated with the recent FTS5 enhancements.
drh [Fri, 4 Dec 2020 17:05:16 +0000 (17:05 +0000)] 
Fix harmless compiler warnings associated with the recent FTS5 enhancements.

FossilOrigin-Name: 1db7c751912beb57a697ac8e85b9c29e30da7b6c89207e9828bf08e56c58242f

4 years agoFix a bug in the ".eqp" command of the shell that was introduced by the
drh [Fri, 4 Dec 2020 16:58:20 +0000 (16:58 +0000)] 
Fix a bug in the ".eqp" command of the shell that was introduced by the
recent sqlite3SelectTrace/SQLITE_TESTCTRL_TRACEFLAGS changes.

FossilOrigin-Name: fd02dffceb0e21cd85c99d5481ab8567110d01c30ea701178547f32299944302

4 years agoEnsure that fts5 function matchinfo() is registered before running tests that use...
dan [Fri, 4 Dec 2020 16:49:25 +0000 (16:49 +0000)] 
Ensure that fts5 function matchinfo() is registered before running tests that use it in fts5corrupt3.test.

FossilOrigin-Name: 932e05e093192991589e70c2cbcc8a57fb3dcc6df1c2673962bfd06ba5cfdd97

4 years agoFix a test script problem in walvfs.test.
dan [Fri, 4 Dec 2020 16:26:25 +0000 (16:26 +0000)] 
Fix a test script problem in walvfs.test.

FossilOrigin-Name: 4c5076fbe42cc6447c47bfc202501f945f78bd716cbe8e33599c67b7d0956611

4 years agoFix an incorrect datatype no the sqlite3WhereTrace variable in test1.c.
drh [Fri, 4 Dec 2020 16:25:59 +0000 (16:25 +0000)] 
Fix an incorrect datatype no the sqlite3WhereTrace variable in test1.c.

FossilOrigin-Name: 4e6dab30f6d6795ecec9d8c4489fa4d210a3002715ad89812d65a1a846c164b9

4 years agoEliminate the sqlite3_unsupported_selecttrace global variable by creating
drh [Fri, 4 Dec 2020 16:09:27 +0000 (16:09 +0000)] 
Eliminate the sqlite3_unsupported_selecttrace global variable by creating
a new test-control to control SELECT tracing.  Note that SELECT tracing is
only available on debug builds.

FossilOrigin-Name: fb07c4e3c7ad3493c274cbfcf0dffdedcca18c0d90de04459134511d4e2a5277

4 years agoFurther changes to the trace variables to try to eliminate (harmless) compiler traceflags-test-control
drh [Fri, 4 Dec 2020 16:04:45 +0000 (16:04 +0000)] 
Further changes to the trace variables to try to eliminate (harmless) compiler
warnings in all configurations.

FossilOrigin-Name: 3a4c98b989964e3e366fe9519e9b5ed935e893d5b69d92bc0388a14c7e7938e6

4 years agoAlternative implementation of ".selecttrace" and ".wheretrace" that uses
drh [Fri, 4 Dec 2020 01:17:57 +0000 (01:17 +0000)] 
Alternative implementation of ".selecttrace" and ".wheretrace" that uses
a test-control rather than global variables.

FossilOrigin-Name: d36d6f2923a2393c751c0ac7634433453be20df7567fd914e57cbb1ae15f68b2

4 years agoWhen merging prefix lists in fts5, use 16-way merges instead of 2-way merges. This...
dan [Thu, 3 Dec 2020 21:22:37 +0000 (21:22 +0000)] 
When merging prefix lists in fts5, use 16-way merges instead of 2-way merges. This faster.

FossilOrigin-Name: 026a93508ec392ca5cd2578ae9eab64974f58beccda088e10d4cc951f237632f

4 years agoDo not simulate OOM faults on the SQLITE_FCNTL_CKPT_START and
drh [Thu, 3 Dec 2020 19:25:06 +0000 (19:25 +0000)] 
Do not simulate OOM faults on the SQLITE_FCNTL_CKPT_START and
SQLITE_FCNTL_CKPT_DONE file-controls, as those are write-only and
the return value is always ignored.

FossilOrigin-Name: 62a2d394835276fabc0f1df2302605a700b2244775bf2e35e86529df8e40a0da

4 years agoEnhance the generate_series() table-valued function to support negative
drh [Thu, 3 Dec 2020 14:21:26 +0000 (14:21 +0000)] 
Enhance the generate_series() table-valued function to support negative
step values.

FossilOrigin-Name: 9b60fc48706bb77b2d4fe27a7b5834a6dc229b4051a9285032da578e4f2849e6

4 years agoPrevent potential segfault in the sqlite-expert idxPopulateStat1 context cleanup...
mistachkin [Wed, 2 Dec 2020 20:07:49 +0000 (20:07 +0000)] 
Prevent potential segfault in the sqlite-expert idxPopulateStat1 context cleanup code.

FossilOrigin-Name: c24f13448b5a55f45b4d4786a878fa73fe3395b5724f3bc2eea22e5e2b074353

4 years agoAllow a search for an N character prefix in fts5 to use a prefix index of size N...
dan [Wed, 2 Dec 2020 19:08:15 +0000 (19:08 +0000)] 
Allow a search for an N character prefix in fts5 to use a prefix index of size N+1, if no prefix index of size N exists.

FossilOrigin-Name: 78a7801d8fc9e58a62e5168e35b52b7440340549123fc6a537e2abd571f6fe7b

4 years agoFix the ".open" command in the CLI so that it accepts command-line options
drh [Wed, 2 Dec 2020 18:27:48 +0000 (18:27 +0000)] 
Fix the ".open" command in the CLI so that it accepts command-line options
both before and after the filename.

FossilOrigin-Name: d330bf0c02e67f70f49496e4b1e484bb4e876622becc6a062b2aefbd585d0117

4 years agoImprove performance for fts5 column filters that filter for more than one column...
dan [Wed, 2 Dec 2020 16:23:05 +0000 (16:23 +0000)] 
Improve performance for fts5 column filters that filter for more than one column. e.g. "{col1 col2 col3}:phrase".

FossilOrigin-Name: d8de2f236d43a88fac7550a0451951dd5a945eb304e32f82e662479cea7c2684

4 years agoParameterize the hash function in mkkeywordhash.c. This was an attempt to
drh [Wed, 2 Dec 2020 02:58:05 +0000 (02:58 +0000)] 
Parameterize the hash function in mkkeywordhash.c.  This was an attempt to
find a better hash function, which turned out to not be successful.

FossilOrigin-Name: 2195d731f51a18f917c4299d8f4c7ee7c139c2527f62869d6da171a6d1d89ea6

4 years agoIncrease the version number to 3.35.0 to begin the next development cycle.
drh [Wed, 2 Dec 2020 00:22:09 +0000 (00:22 +0000)] 
Increase the version number to 3.35.0 to begin the next development cycle.

FossilOrigin-Name: edbabaa30823db7c7d169cb93722b5f74bc711359984fb7e139ca9d10fe7dae4