]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
4 years agoFix another problem with RETURNING clauses in UPDATEs against tables with virtual... returning-fix
dan [Fri, 5 Mar 2021 15:29:22 +0000 (15:29 +0000)] 
Fix another problem with RETURNING clauses in UPDATEs against tables with virtual columns.

FossilOrigin-Name: f0ef5c76ab1a6568b9148b928277bf589d4cb7033c0acf3e6323879b656d8bd1

4 years agoFix an assert() failure that could be triggered by a correlated sub-query in a RETURN...
dan [Fri, 5 Mar 2021 15:10:33 +0000 (15:10 +0000)] 
Fix an assert() failure that could be triggered by a correlated sub-query in a RETURNING clause.

FossilOrigin-Name: 551260c8625828262809b1ef7acf5343a3527b7e167ca0cfd13b81e5ece0e66c

4 years agoFix the processing of implied LIMIT clauses when flattening a compound
drh [Fri, 5 Mar 2021 14:08:45 +0000 (14:08 +0000)] 
Fix the processing of implied LIMIT clauses when flattening a compound
query.

FossilOrigin-Name: 90c6b9fcb0e15e2552fe5be53f8201f145bb535cc37b603d488eadf33438412b

4 years agoMark the NotUsed parameter to the dropColumnFunc() function as unused,
drh [Thu, 4 Mar 2021 19:44:01 +0000 (19:44 +0000)] 
Mark the NotUsed parameter to the dropColumnFunc() function as unused,
to avoid a harmless compiler warning.

FossilOrigin-Name: 23459071091248e94202e609bb8031c3e34722b8ae8ff5a66851dcc528a2d2c2

4 years agoPut ALWAYS() on a branch that is now always true because of changes
drh [Thu, 4 Mar 2021 18:34:54 +0000 (18:34 +0000)] 
Put ALWAYS() on a branch that is now always true because of changes
in OOM behavior due to check-in [9adf6e2469d18bc3].

FossilOrigin-Name: 8a1bb9c3e92085fb71d75eb36f64eb85053a4730fd314acd401e7ad32c274748

4 years agoUpdate shell.c.in so that SQLITE_SHELL_IS_UTF8 is set to 0 if the -municode option...
dan [Thu, 4 Mar 2021 18:31:07 +0000 (18:31 +0000)] 
Update shell.c.in so that SQLITE_SHELL_IS_UTF8 is set to 0 if the -municode option is passed to gcc on windows.

FossilOrigin-Name: 99e6a0f020fadda4011e4ca370d2421dbf2f97f6fb004fcbba9bd6c76faf7a73

4 years agoRemove a branch made unreachable by check-in [e893f88750ea64d4].
drh [Thu, 4 Mar 2021 16:32:28 +0000 (16:32 +0000)] 
Remove a branch made unreachable by check-in [e893f88750ea64d4].

FossilOrigin-Name: 20d7dc120dc964a0236da719e4de22bff5110b95da396e2ac6790e9f6b667899

4 years agoFix a segfault that could occur following an OOM condition.
dan [Thu, 4 Mar 2021 16:10:23 +0000 (16:10 +0000)] 
Fix a segfault that could occur following an OOM condition.

FossilOrigin-Name: 9adf6e2469d18bc3bfc0c804cfcaa692e23ab6b3e13465dcfc51c4b111b05cb4

4 years agoEarlier detection of a misplaced ORDER BY or LIMIT clause in a compound
drh [Thu, 4 Mar 2021 16:03:32 +0000 (16:03 +0000)] 
Earlier detection of a misplaced ORDER BY or LIMIT clause in a compound
SELECT.  This prevents problems in recursive CTEs with multiple recursive
terms in which there is an ORDER BY or LIMIT clause on the last non-recursive
term.

FossilOrigin-Name: e893f88750ea64d45922429e022c585748974016404f2a2b7952f5a227865246

4 years agoFix a crash that could occur if a sub-select inside an EXISTS expression features...
dan [Thu, 4 Mar 2021 14:18:22 +0000 (14:18 +0000)] 
Fix a crash that could occur if a sub-select inside an EXISTS expression features an ORDER BY clause containing one or more window functions.

FossilOrigin-Name: 9768e7db624fbfe688d61ac06bffca14a169d439d8f65f5a14529af5660d3d2e

4 years agoFix a buffer overrun that could occur in fts5 when running a prefix query against...
dan [Wed, 3 Mar 2021 19:36:40 +0000 (19:36 +0000)] 
Fix a buffer overrun that could occur in fts5 when running a prefix query against a corrupt db.

FossilOrigin-Name: 4da40620ac8557aba6e1e06e720418b55e9950f406288b03749ef1b117041cd9

4 years agoRemove the --timeout option from the valgrindfuzz Makefile target.
dan [Wed, 3 Mar 2021 16:46:03 +0000 (16:46 +0000)] 
Remove the --timeout option from the valgrindfuzz Makefile target.

FossilOrigin-Name: 3f520b8bdef7dcdad30e052ed8a07b0493bff4497603521e701fab7324df2995

4 years agoFix a case where fts3 was erroneously reporting corruption.
dan [Wed, 3 Mar 2021 16:00:26 +0000 (16:00 +0000)] 
Fix a case where fts3 was erroneously reporting corruption.

FossilOrigin-Name: e6c7683c7503ac743d1d476c60c31f887b7ad829e26e812c25acdd4366044db8

4 years agoFix a harmless assertion fault resulting from [6e6b3729e0549de0] that was
drh [Wed, 3 Mar 2021 14:07:52 +0000 (14:07 +0000)] 
Fix a harmless assertion fault resulting from [6e6b3729e0549de0] that was
discovered by dbsqlfuzz.  Enhance .selecttrace output to show omitted
ORDER BY clauses.  New dbsqlfuzz test cases added.

FossilOrigin-Name: 27a0388ad616f80e8dcc986c247a5c23a8565dae9081b04ff85bac0d357e531b

4 years agoFix a problem with using ALTER TABLE commands on database schemas that contain expres...
dan [Wed, 3 Mar 2021 11:00:31 +0000 (11:00 +0000)] 
Fix a problem with using ALTER TABLE commands on database schemas that contain expressions of the form "<expr> NOT NULL" or "<expr> IS NULL" that can be evaluated at prepare time.

FossilOrigin-Name: d2630ffafa077b8cfd75110b6b73da30f780edc920d2788769a4dc747f09d3f6

4 years agoCast a string size variable to 64-bit to avoid any possibility of
drh [Tue, 2 Mar 2021 21:07:41 +0000 (21:07 +0000)] 
Cast a string size variable to 64-bit to avoid any possibility of
integer overflow.

FossilOrigin-Name: a5940294b2ac8d157d7fa72f65ee70b713f7feb8a0a98d7f47e71acd1b6942b1

4 years agoLimit the size of the exponent input in the second argument to the
drh [Tue, 2 Mar 2021 16:27:04 +0000 (16:27 +0000)] 
Limit the size of the exponent input in the second argument to the
ieee754() SQL function, to avoid integer overflow.
Ticket [22dea1cfdb9151e4].

FossilOrigin-Name: 99aab32da14cc76beb5c1823a70bdeab144459398d61c42a858be4d6868d361e

4 years agoChange the timeout for test case "valgrindfuzz" from 600 seconds to 1200.
dan [Tue, 2 Mar 2021 13:50:56 +0000 (13:50 +0000)] 
Change the timeout for test case "valgrindfuzz" from 600 seconds to 1200.

FossilOrigin-Name: 7c6aa6f38403931df7940c7acfeba4e2f8099a419222fcab2a3c959ccae90e40

4 years agoDo not run test file windowpushd.test as part of the "no_optimization" permutation.
dan [Tue, 2 Mar 2021 13:36:37 +0000 (13:36 +0000)] 
Do not run test file windowpushd.test as part of the "no_optimization" permutation.

FossilOrigin-Name: 275a75aa82bf5d2366fd4020066d7b9fbb93a955ac9ec15dc7d5b8bfa29074e4

4 years agoAdd ALWAYS() to an always-true conditional.
drh [Tue, 2 Mar 2021 00:42:46 +0000 (00:42 +0000)] 
Add ALWAYS() to an always-true conditional.

FossilOrigin-Name: fa3506db2051ceade8aa535d92c0900b3cfdd8850c6d00adedeb1ebfaf6f885f

4 years agoAdd #ifndef macros so that the build works again with
drh [Mon, 1 Mar 2021 21:43:25 +0000 (21:43 +0000)] 
Add #ifndef macros so that the build works again with
-DSQLITE_OMIT_AUTHORIZATION and -DSQLITE_OMIT_WINDOWFUNC.

FossilOrigin-Name: 9400bdc60294be6a938025d481e50aad9af246e64f38fafecc6ca4f24112a98c

4 years agoFix a couple of memory-sanitizer complaints that could be triggered by a corrupt...
dan [Mon, 1 Mar 2021 16:16:59 +0000 (16:16 +0000)] 
Fix a couple of memory-sanitizer complaints that could be triggered by a corrupt database.

FossilOrigin-Name: 39c8686cabe6c437ba4860aade49a701c4f5772b97d9fbe6cb9a394e85b9c092

4 years agoFix another msan complain triggered by a corrupt database. msan-fix
dan [Mon, 1 Mar 2021 16:15:41 +0000 (16:15 +0000)] 
Fix another msan complain triggered by a corrupt database.

FossilOrigin-Name: d235d406283191fc7b9e1299be602f1e8be6f36cee8b183cf85c8660519a1c3b

4 years agoInitialize extra field in PgHdr1 to fix an msan complaint.
dan [Sun, 28 Feb 2021 08:24:56 +0000 (08:24 +0000)] 
Initialize extra field in PgHdr1 to fix an msan complaint.

FossilOrigin-Name: 4cb2ea5795b0c0678665fd89bd560209beaab8a756fe00335dbfd07493b0542d

4 years agoAdd OOM test case associated with the fix in the previous commit.
dan [Sat, 27 Feb 2021 15:32:02 +0000 (15:32 +0000)] 
Add OOM test case associated with the fix in the previous commit.

FossilOrigin-Name: a631c38d22bc00d38b0f112a623fb24c0e03a962f661ffe0931dad32fd31ba31

4 years agoRemove a NEVER() that might sometimes be tree following an OOM.
drh [Sat, 27 Feb 2021 15:12:24 +0000 (15:12 +0000)] 
Remove a NEVER() that might sometimes be tree following an OOM.

FossilOrigin-Name: ccb8cf5256d01b3ff13e75e1471b1afb0055ec2c344ba886f98b83d47eba00f8

4 years agoFix a segfault that could occur when optimizing a NOT NULL constraint against an...
dan [Fri, 26 Feb 2021 21:39:34 +0000 (21:39 +0000)] 
Fix a segfault that could occur when optimizing a NOT NULL constraint against an IPK column of a sub-query.

FossilOrigin-Name: e4d1970ef17b2330f78c750d71d625c2997f79ed1445d0351ec32b482485a954

4 years agoAttempt to optimize "x IS NULL" and "x IS NOT NULL" expressions when x is a column...
dan [Fri, 26 Feb 2021 20:39:08 +0000 (20:39 +0000)] 
Attempt to optimize "x IS NULL" and "x IS NOT NULL" expressions when x is a column with a NOT NULL constraint.

FossilOrigin-Name: de9c86c9e4cdb34f4b7d65f160d1e589fb969bbf64c66d2b24c502d1ee424dbb

4 years agoAttempt to optimize "x IS NULL" and "x IS NOT NULL" expressions when x is a column... ifnull-opt
dan [Fri, 26 Feb 2021 20:14:32 +0000 (20:14 +0000)] 
Attempt to optimize "x IS NULL" and "x IS NOT NULL" expressions when x is a column with a NOT NULL constraint.

FossilOrigin-Name: 5ecd842555009ce27ee6390325ac5c2504143474b12b730933f0833b3dad788a

4 years agoMinor simplification in resolve.c.
dan [Fri, 26 Feb 2021 15:20:17 +0000 (15:20 +0000)] 
Minor simplification in resolve.c.

FossilOrigin-Name: 310dac342e7b1f9b5a5df6a9d598e85d5fef59bba9307d9230baf77c8f2351a2

4 years agoFix test case in altercorrupt.test so that it works with SQLITE_ENABLE_OVERSIZE_CELL_...
dan [Thu, 25 Feb 2021 18:28:11 +0000 (18:28 +0000)] 
Fix test case in altercorrupt.test so that it works with SQLITE_ENABLE_OVERSIZE_CELL_CHECK builds.

FossilOrigin-Name: 062b338ff2ea71633b4fb3c75c6a47b5fc4fe9c2a72daacd987d1eca0bda5217

4 years agoFix a problem with UPDATE and DELETE statements that use both INDEXED BY and LIMIT...
dan [Thu, 25 Feb 2021 18:23:39 +0000 (18:23 +0000)] 
Fix a problem with UPDATE and DELETE statements that use both INDEXED BY and LIMIT clauses in SQLITE_ENABLE_UPDATE_DELETE_LIMIT builds.

FossilOrigin-Name: cc2b4b38668bd32ebd8cf2e0d244eef2a6c7e0a1ee0a34c9c43eaf25c9cc09ae

4 years agoFix handling of INSERT on views with implicitly named hidden columns in SQLITE_ENABLE...
dan [Thu, 25 Feb 2021 16:55:47 +0000 (16:55 +0000)] 
Fix handling of INSERT on views with implicitly named hidden columns in SQLITE_ENABLE_HIDDEN_COLUMNS builds.

FossilOrigin-Name: 15795a96a8b3f4ea368b3eb29a4ff8d1b4b33ebb2bff2a5ccb045b8f01f9f99b

4 years agoEnsure that tests like "rbu.test" and "notify2.test" that are only run by specific...
dan [Thu, 25 Feb 2021 15:50:19 +0000 (15:50 +0000)] 
Ensure that tests like "rbu.test" and "notify2.test" that are only run by specific configurations during release testing are run for both release and debug versions of the tests.

FossilOrigin-Name: 911df43f98297bf645688dc51e988106a0297cb60bb97dde699c2848404fcf72

4 years agoWhen a sub-transaction is released, if no pages required by containing sub-transactio...
dan [Tue, 23 Feb 2021 16:40:47 +0000 (16:40 +0000)] 
When a sub-transaction is released, if no pages required by containing sub-transactions were journaled, truncate the statement journal. This prevents out of control statement journal growth in some cases.

FossilOrigin-Name: 23ca23894af352ea351c9efcdd7d86b82455f4c81b6001052a6d13aa2d705e84

4 years agoAllow WHERE terms to be pushed down into sub-queries that contain window functions...
dan [Tue, 23 Feb 2021 15:53:22 +0000 (15:53 +0000)] 
Allow WHERE terms to be pushed down into sub-queries that contain window functions, provided that the WHERE term is made up of entirely of constants and copies of expressions found in the PARTITION BY clauses of all window functions in the sub-query.

FossilOrigin-Name: 20689468100aed264877111367b42837ca19e63e717fed2ebd4b20b908f13178

4 years agoFurther tests for the push-down optimization with window functions. window-functions-pushdown
dan [Tue, 23 Feb 2021 15:36:06 +0000 (15:36 +0000)] 
Further tests for the push-down optimization with window functions.

FossilOrigin-Name: 4b089f70117bfb440eaefd830c05576be0cc624d9d6018c869270dc68e44513e

4 years agoAllow WHERE terms to be pushed down into sub-queries that contain window functions...
dan [Mon, 22 Feb 2021 20:56:13 +0000 (20:56 +0000)] 
Allow WHERE terms to be pushed down into sub-queries that contain window functions, provided that the WHERE term is made up of entirely of constants and copies of expressions found in the PARTITION BY clauses of all window functions in the sub-query.

FossilOrigin-Name: dac51f303bba1a0aac7768c688b0c134deb7641062cce2071d546f2d8f241dec

4 years agoAdd a few simple test cases for MATERIALIZED and NOT MATERIALIZED.
drh [Mon, 22 Feb 2021 19:57:58 +0000 (19:57 +0000)] 
Add a few simple test cases for MATERIALIZED and NOT MATERIALIZED.

FossilOrigin-Name: 64878124c160f790bc5861fd799ada03bd7db0c4426b8abc3b7ad1f7aa181168

4 years agoImplement the MATERIALIZED and NOT MATERIALIZED hints on common
drh [Mon, 22 Feb 2021 16:42:09 +0000 (16:42 +0000)] 
Implement the MATERIALIZED and NOT MATERIALIZED hints on common
table expressions.

FossilOrigin-Name: b5a0778cc5a98a864bea72670f83262da940aceb91fa4cdf46ec097337a38a95

4 years agoWhen a sub-transaction is released, if no pages required by containing sub-transactio... stmt-jrnl-truncate
dan [Mon, 22 Feb 2021 15:44:45 +0000 (15:44 +0000)] 
When a sub-transaction is released, if no pages required by containing sub-transactions were journaled, truncate the statement journal. This might prevent out-of-control statement journal growth in some cases.

FossilOrigin-Name: e36327fb22db08763a82fb517407ff5ab0dbc053953098033e7e50796a777810

4 years agoAdd an ALWAYS() on a branch that is now unreachable. as-materialize-redux
drh [Mon, 22 Feb 2021 14:25:40 +0000 (14:25 +0000)] 
Add an ALWAYS() on a branch that is now unreachable.

FossilOrigin-Name: ace54c5bd50176db7c60b7e3cf9293a86d9ecf2fea897467044020b9684c0af3

4 years agoFix inverted logic regarding the materialization hint on the push-down
drh [Mon, 22 Feb 2021 11:07:25 +0000 (11:07 +0000)] 
Fix inverted logic regarding the materialization hint on the push-down
optimization.

FossilOrigin-Name: b66a49570852cf118a372a6ac44be3070cf9b4254696f16315b7c79a614e6c35

4 years agoAdd the AS MATERIALIZED and AS NOT MATERIALIZED syntax that works like it
drh [Mon, 22 Feb 2021 03:04:25 +0000 (03:04 +0000)] 
Add the AS MATERIALIZED and AS NOT MATERIALIZED syntax that works like it
does in PostgreSQL.

FossilOrigin-Name: a6bb272ec0c758ab069bfc07443624e0ea7910b1f23224ee078d050fa3ccf068

4 years agoMaterialize any CTE that is used more than once.
drh [Sun, 21 Feb 2021 23:44:14 +0000 (23:44 +0000)] 
Materialize any CTE that is used more than once.

FossilOrigin-Name: ba59159fbe6b83fb6d79fbfee22d983768b0ebbaac7e99d2ac66c810e5e04100

4 years agoRename the "struct SrcList_item" object to the more succinct "SrcItem".
drh [Sun, 21 Feb 2021 21:04:54 +0000 (21:04 +0000)] 
Rename the "struct SrcList_item" object to the more succinct "SrcItem".
This is a symbolic change only.  The logic is unmodified.

FossilOrigin-Name: bfd5bf2c73110fcb36db9ba2a949ff516131fbd3e89325f88fe9f5c2b4ed87b2

4 years agoSimplified resolution of CTE names. Slightly faster and about 100 bytes
drh [Sun, 21 Feb 2021 01:19:42 +0000 (01:19 +0000)] 
Simplified resolution of CTE names.  Slightly faster and about 100 bytes
of code smaller.

FossilOrigin-Name: 0d2c992f3622a6272ca4a3caff6b21f619fe976b8df8b34eff066086f8df2202

4 years agoPerformance improvement in resolving the INDEXED BY index name for the common
drh [Sat, 20 Feb 2021 21:20:54 +0000 (21:20 +0000)] 
Performance improvement in resolving the INDEXED BY index name for the common
case where there is no INDEXED BY clause.

FossilOrigin-Name: 554b286ac208168bde91c6c6034cc7087410def76fce650b519661b2ee2c61b7

4 years agoFix a case where FTS3/4 could pass a NULL pointer to memcpy() when handling a corrupt db.
dan [Sat, 20 Feb 2021 19:22:32 +0000 (19:22 +0000)] 
Fix a case where FTS3/4 could pass a NULL pointer to memcpy() when handling a corrupt db.

FossilOrigin-Name: 68bb541a39833d7d4bf41aa91cb6cd9c98757d1fc8236299d09db7e9b14d8ec9

4 years agoUpdate sqlite3changeset_apply_v2() so that it handles no-op UPDATE changes (UPDATE...
dan [Sat, 20 Feb 2021 18:02:37 +0000 (18:02 +0000)] 
Update sqlite3changeset_apply_v2() so that it handles no-op UPDATE changes (UPDATE changes that modify no columns). This fixes a regression introduced by [e4ccfac09b]. Also modify sqlite3rebaser_rebase() so that it does not output changesets containing such UPDATEs.

FossilOrigin-Name: 0288a8013e00594e716a5fb0d9f684dcfeb03e877650630e2736565fa6261290

4 years agoBreak out the Cte object from the With object. This will make it simpler
drh [Sat, 20 Feb 2021 14:57:16 +0000 (14:57 +0000)] 
Break out the Cte object from the With object.  This will make it simpler
to add new kinds of Cte objects (ex: DML statements) and/or MATERIALIZED
keywords in the future.  It brings trunk into closer alignment with the
experimental as-materialize branch.

FossilOrigin-Name: f03efe905d7b40fb25f9f78b874bb56c6d6ccacb60f86b3b199d430d5eade8d2

4 years agoSimplification to where.c manually cherrypicked from the as-materialize
drh [Sat, 20 Feb 2021 13:36:14 +0000 (13:36 +0000)] 
Simplification to where.c manually cherrypicked from the as-materialize
branch.

FossilOrigin-Name: 03805a6117c813a33f9bca68bf4d9912997d6abd88ac9b3cb844c5d93ec68049

4 years agoFix another problem handling corrupt database files in the ALTER TABLE DROP COLUMN...
dan [Fri, 19 Feb 2021 18:39:32 +0000 (18:39 +0000)] 
Fix another problem handling corrupt database files in the ALTER TABLE DROP COLUMN code.

FossilOrigin-Name: 9edf2ddc4799c8830c4b7b91d7aacee50029a4b9db329fd4c5674fbedea33034

4 years agoAdd tests for ALTER TABLE DROP COLUMN commands.
dan [Fri, 19 Feb 2021 15:34:16 +0000 (15:34 +0000)] 
Add tests for ALTER TABLE DROP COLUMN commands.

FossilOrigin-Name: 05dbea9b26bdcb096194dc531816333f3784eca50b133fe3efede6ab0d233472

4 years agoAdd support for "ALTER TABLE ... DROP COLUMN ..." commands.
dan [Fri, 19 Feb 2021 14:32:58 +0000 (14:32 +0000)] 
Add support for "ALTER TABLE ... DROP COLUMN ..." commands.

FossilOrigin-Name: c844a331e78949850fde8ed95058cb34f863566944bc9e92e3ae042768f130e1

4 years agoFix a crash that could occur in ALTER TABLE DROP COLUMN if the sqlite_schema table... alter-table-drop-column
dan [Fri, 19 Feb 2021 14:13:40 +0000 (14:13 +0000)] 
Fix a crash that could occur in ALTER TABLE DROP COLUMN if the sqlite_schema table was corrupt.

FossilOrigin-Name: 126ee1ec4f3565c0cccca98885fa3665a641ea3df251511de16eed2a1c396124

4 years agoOmit an branch made unreachable by the improved error message from dropping
drh [Fri, 19 Feb 2021 09:46:52 +0000 (09:46 +0000)] 
Omit an branch made unreachable by the improved error message from dropping
the last column of a table.

FossilOrigin-Name: c5719fc5aa04c50bb01533f1cedb73dc80c4bf5315ff6a7206c8a10504afca8b

4 years agoThe COLUMN keyword in ALTER TABLE DROP COLUMN is optional.
drh [Fri, 19 Feb 2021 09:36:50 +0000 (09:36 +0000)] 
The COLUMN keyword in ALTER TABLE DROP COLUMN is optional.

FossilOrigin-Name: a22f87fb6c43dd6217691c8dd1cdcd7880068024fb779ca8a5def068d72c3e6b

4 years agoGive a better error message on DROP COLUMN when attempting to drop
drh [Fri, 19 Feb 2021 09:09:07 +0000 (09:09 +0000)] 
Give a better error message on DROP COLUMN when attempting to drop
the last column of a table.

FossilOrigin-Name: 5e1f362bc3e53c60f9e6f771346d10c6e6a6cb3ff1eec5608101f9c5d6d2a5a4

4 years agoAdd a NEVER() to an unreachable branch in the DROP COLUMN logic.
drh [Fri, 19 Feb 2021 02:30:02 +0000 (02:30 +0000)] 
Add a NEVER() to an unreachable branch in the DROP COLUMN logic.

FossilOrigin-Name: 963f498ae64cf7530fb7a405fa476c411ad66523f62f5eefa5a16596cd19a481

4 years agoAdd missing VdbeCoverage() macros.
drh [Thu, 18 Feb 2021 23:53:47 +0000 (23:53 +0000)] 
Add missing VdbeCoverage() macros.

FossilOrigin-Name: 9bb720e6590482bc9c2fbb273738808209e9651710dbee7572b0348cadf87e68

4 years agoEnhance renameParseSql() to better handle OOMs.
drh [Thu, 18 Feb 2021 23:03:50 +0000 (23:03 +0000)] 
Enhance renameParseSql() to better handle OOMs.

FossilOrigin-Name: 68bcde7ab57b2d4bdcfb2f6c7134a0b01a504b2e7cdf6ee5bf0df70fb4a517b0

4 years agoMerge changes from trunk into the alter-table-drop-column branch.
drh [Thu, 18 Feb 2021 22:47:34 +0000 (22:47 +0000)] 
Merge changes from trunk into the alter-table-drop-column branch.

FossilOrigin-Name: 9ea640073f8809dfe2612ae1ea384a938b433f884c54d9e5aa3712de79397ac1

4 years agoFix DROP COLUMN so that it works even if the user has registered an authorizer callback.
dan [Thu, 18 Feb 2021 20:27:46 +0000 (20:27 +0000)] 
Fix DROP COLUMN so that it works even if the user has registered an authorizer callback.

FossilOrigin-Name: e5f144182bbb3ba10c77151cf63c8bddf86374049fb6866387f85e335df298cb

4 years agoFix a problem with schema error detection when processing ALTER TABLE DROP COLUMN...
dan [Thu, 18 Feb 2021 19:25:44 +0000 (19:25 +0000)] 
Fix a problem with schema error detection when processing ALTER TABLE DROP COLUMN commands.

FossilOrigin-Name: 565a6fd0c95b438fea7bf84913b38de1718117e16e0d685534a8650e1dc8421b

4 years agoAdd test cases for ALTER TABLE DROP COLUMN.
dan [Thu, 18 Feb 2021 17:48:36 +0000 (17:48 +0000)] 
Add test cases for ALTER TABLE DROP COLUMN.

FossilOrigin-Name: 204ee5e28210738fb624a9cf85dc6f9b59de0d7eb4fddd46c8babe9beddd4944

4 years agoAvoid invoking the update or pre-update hooks during VACUUM operations.
dan [Thu, 18 Feb 2021 15:59:37 +0000 (15:59 +0000)] 
Avoid invoking the update or pre-update hooks during VACUUM operations.

FossilOrigin-Name: 3c25cb4ab8885a50e2a485fe76f5ffd5dd8ebe1306aca8c0989e0b7fd7dd18d2

4 years agoImprovement to the INSERT optimization of check-in [16ac213c57196361] so
drh [Thu, 18 Feb 2021 15:45:34 +0000 (15:45 +0000)] 
Improvement to the INSERT optimization of check-in [16ac213c57196361] so
that it works with SQLITE_ENABLE_HIDDEN_COLUMN but is also easier to maintain
and a little faster as well.

FossilOrigin-Name: f985a78ecc0c6d9ff671c730a109d97dc781b06e47a0ab03f441cea5d021a4c3

4 years agoDisable the optimization of [16ac213c57196361] when the
drh [Thu, 18 Feb 2021 14:27:43 +0000 (14:27 +0000)] 
Disable the optimization of [16ac213c57196361] when the
SQLITE_ENABLE_HIDDEN_COLUMN compile-time option is used, as the optimization
does not work in that case.

FossilOrigin-Name: 5168b06bcf283ef64cb9fd76330a743baf8bb0cd747c14eae23e607e0491cbce

4 years agoEnsure that the pre-update hook is invoked for INSERT operations on WITHOUT ROWID...
dan [Thu, 18 Feb 2021 12:18:10 +0000 (12:18 +0000)] 
Ensure that the pre-update hook is invoked for INSERT operations on WITHOUT ROWID tables that use the xfer optimization.

FossilOrigin-Name: 66bbad239b4527ac8ae8b487a0c71d88b1861a8dfe1edc25109600dc447c60c4

4 years agoAdd missing VdbeCoverage() macros to some of the new RETURNING code.
drh [Thu, 18 Feb 2021 01:02:03 +0000 (01:02 +0000)] 
Add missing VdbeCoverage() macros to some of the new RETURNING code.

FossilOrigin-Name: 53a5390909822b3aef8c5f522144bc2e86cc31318b2d3e310a064ae7202b4a15

4 years agoPerformance optimization in the resolver.
drh [Thu, 18 Feb 2021 00:59:16 +0000 (00:59 +0000)] 
Performance optimization in the resolver.

FossilOrigin-Name: 1aafb94d4e3f28a8322e5e43be737d84b1a09f0063408f4a466a6071fa95b39b

4 years agoPerformance optimization in the code generator for INSERT for the common
drh [Thu, 18 Feb 2021 00:26:11 +0000 (00:26 +0000)] 
Performance optimization in the code generator for INSERT for the common
case where the target table has neither generated nor hidden columns.
Also fix a redundant (and thus unreachable) branch in the resolver.

FossilOrigin-Name: 16ac213c57196361a9d14df4c0d1ccc6f67ac522365b345ea364d1aec61fa3f2

4 years agoUse the sqlite3ParserAddCleanup() mechanism to ensure that the AggInfo
drh [Wed, 17 Feb 2021 21:13:14 +0000 (21:13 +0000)] 
Use the sqlite3ParserAddCleanup() mechanism to ensure that the AggInfo
structure associated with an aggregate query is deallocated, for a performance
increase and size reduction.

FossilOrigin-Name: 7a1399671fa10c64d5358cc4d364d24c643fe9dd8da923356462267ee7962f61

4 years agoFix a problem with OOM error handling in the new code on this branch.
dan [Wed, 17 Feb 2021 20:46:44 +0000 (20:46 +0000)] 
Fix a problem with OOM error handling in the new code on this branch.

FossilOrigin-Name: ea999c9db59e4193b306a2e1b15fc94f8f04cb05e852bb0d068b7d5243a0849b

4 years agoMerge trunk changes into this branch.
dan [Wed, 17 Feb 2021 20:19:13 +0000 (20:19 +0000)] 
Merge trunk changes into this branch.

FossilOrigin-Name: 0cd5e2f9ce181f2c940ffca6fe69fda84f452613e66463d0d7c7413fc11b9772

4 years agoFix various issues with the changes on this branch. Add test cases for the same.
dan [Wed, 17 Feb 2021 20:08:22 +0000 (20:08 +0000)] 
Fix various issues with the changes on this branch. Add test cases for the same.

FossilOrigin-Name: 10538ec6fc1642dfc2ca6cef06ce6cb9e124847b421ccf01f5842064fad379ab

4 years agoEnhance the ".once" and ".output" commands in the CLI so that if the
drh [Wed, 17 Feb 2021 13:19:22 +0000 (13:19 +0000)] 
Enhance the ".once" and ".output" commands in the CLI so that if the
filename argument begins with "|" the name becomes the concatenation
of all subsequent arguments.  Hence, commands like ".once | open -f" become
possible without the need for quotes.

FossilOrigin-Name: c46a94a624c2cc6c49ac916a206a913081e1628c24805987cabc75c9057ea36b

4 years agoAdd experimental implementation of ALTER TABLE DROP COLUMN. Only some cases work...
dan [Tue, 16 Feb 2021 20:43:36 +0000 (20:43 +0000)] 
Add experimental implementation of ALTER TABLE DROP COLUMN. Only some cases work so far.

FossilOrigin-Name: f0217937d7306fb595727e61e871e8b03d8c881d339a0865bfd0117d90d42e4e

4 years agoSimplification to the resolveAlias() routine.
drh [Tue, 16 Feb 2021 20:32:17 +0000 (20:32 +0000)] 
Simplification to the resolveAlias() routine.

FossilOrigin-Name: 00bead3931135af80475c22f08cbb26c914518e8f2c7e73c2b8be1cee4ac4d5e

4 years agoNew SELECTTRACE macros more clearly deliniate when the query planner is
drh [Tue, 16 Feb 2021 20:01:08 +0000 (20:01 +0000)] 
New SELECTTRACE macros more clearly deliniate when the query planner is
invoked in the middle of PRAGMA vdbe_addoptrace output.

FossilOrigin-Name: 7c03ce49b74f72b63dd75c3a02625e671bfd771f71b24e808994322b00d97677

4 years agoFix an issue with the LIKE operator when it includes the "ESCAPE '_'" clause.
drh [Mon, 15 Feb 2021 17:02:01 +0000 (17:02 +0000)] 
Fix an issue with the LIKE operator when it includes the "ESCAPE '_'" clause.
Ticket [c0aeea67d58ae0fd].

FossilOrigin-Name: 27d4117980d125975b5e70eeea58a6ab07bcf066e71b5fcb81b822e05afdbab0

4 years agoAdd tests for sqlite3_column_count().
dan [Mon, 15 Feb 2021 14:32:05 +0000 (14:32 +0000)] 
Add tests for sqlite3_column_count().

FossilOrigin-Name: 7cc65ae57183b3c16f1102fca5603a36acda432e5d45e22a2996e5ebe069fc6a

4 years agoEnsure that the ALTER TABLE statements return 0 for
drh [Mon, 15 Feb 2021 13:17:19 +0000 (13:17 +0000)] 
Ensure that the ALTER TABLE statements return 0 for
sqlite3_column_count().

FossilOrigin-Name: 29c1932a47cd46c2585ebbf937c03544a8a355014776129662789e15db9ed4de

4 years agoFix an error in the test case fix in [ecd71203].
dan [Mon, 15 Feb 2021 11:14:53 +0000 (11:14 +0000)] 
Fix an error in the test case fix in [ecd71203].

FossilOrigin-Name: 5411bfa41ea9a492ca1f567327d8e0a1b3db047292fec1753bfef8a157cf8c1d

4 years agoFix incorrect test name labels in the select1.test script.
drh [Sat, 13 Feb 2021 18:14:15 +0000 (18:14 +0000)] 
Fix incorrect test name labels in the select1.test script.

FossilOrigin-Name: 179c79ea0deb0f5adaa8d369cfcad06d959a9cc18a8a41e01ef013b2d90acd61

4 years agoAvoid manifesting a CTE (or other view) multiple times when it is possible to
drh [Sat, 13 Feb 2021 16:39:24 +0000 (16:39 +0000)] 
Avoid manifesting a CTE (or other view) multiple times when it is possible to
reuse the first manifestation.

FossilOrigin-Name: 9692f510803c9b9725abb687d7c10fbc0d5ed784479ec6f3fcc55925a87fe16d

4 years agoFix a problem in the unreleased union-all flattening code.
dan [Sat, 13 Feb 2021 14:26:25 +0000 (14:26 +0000)] 
Fix a problem in the unreleased union-all flattening code.

FossilOrigin-Name: e4f8a79fd8b3be9bf8add5f5e1c66bc2fe78da4e50ea500ab0b8370d30e31ba5

4 years agoFix a test case to account for the fact that different versions of OpenBSD behave...
dan [Fri, 12 Feb 2021 21:22:01 +0000 (21:22 +0000)] 
Fix a test case to account for the fact that different versions of OpenBSD behave differently when a program tries to read() from a file-descriptor open on a directory.

FossilOrigin-Name: ecd712032f56a20d7df2bcf89b0d3b8d91dc72c552e27f0a4b23980bd49747b0

4 years agoEnsure RBU tests are run as part of release testing.
dan [Fri, 12 Feb 2021 11:37:13 +0000 (11:37 +0000)] 
Ensure RBU tests are run as part of release testing.

FossilOrigin-Name: a18dc08bafefd849e640086b18c41e06361d2e09d7dd2e9af4a394dc543e598b

4 years agoFix a longstanding problem causing an RBU vacuum to omit releasing some locks before...
dan [Wed, 10 Feb 2021 20:00:40 +0000 (20:00 +0000)] 
Fix a longstanding problem causing an RBU vacuum to omit releasing some locks before finishing.

FossilOrigin-Name: 66c07a07b21e46529780eec3c82a84c494d586f8b7ed80b78d358e23b80458c7

4 years agoRemove an assert() added by the previous commit that is sometimes false. shm-lock-fix
dan [Wed, 10 Feb 2021 19:49:35 +0000 (19:49 +0000)] 
Remove an assert() added by the previous commit that is sometimes false.

FossilOrigin-Name: fb36ac4dc60ccc6c5fba3f23e13fcab985f27ebef0527c929806cda5f9d3660c

4 years agoFix a longstanding problem causing an RBU vacuum to omit releasing some locks before...
dan [Wed, 10 Feb 2021 19:40:47 +0000 (19:40 +0000)] 
Fix a longstanding problem causing an RBU vacuum to omit releasing some locks before finishing.

FossilOrigin-Name: cb5bdf82fe0f90922dc34202be9d0aa34d899afff4200456623765da2877ca41

4 years agoIn RBU, avoid passing VFS xShmLock calls through to the underlying VFS in cases where...
dan [Wed, 10 Feb 2021 17:31:50 +0000 (17:31 +0000)] 
In RBU, avoid passing VFS xShmLock calls through to the underlying VFS in cases where xShmMap calls may not be. This fixes a bad interaction with ZipVFS.

FossilOrigin-Name: bd1e9e0a4c0e07901ef59fe3b7e6f7b9cc66ccfcd5192f576e1620820891de99

4 years agoCorrectly detect correlated subqueries when resolving names in RETURNING
drh [Mon, 8 Feb 2021 15:56:01 +0000 (15:56 +0000)] 
Correctly detect correlated subqueries when resolving names in RETURNING
clauses.

FossilOrigin-Name: b43cfa04922a401442b9d1708e3e4a88d3cfa2c591f9a6b253d99ba83f4b280a

4 years agoImproved name resolution for references to a table begin modified from
drh [Mon, 8 Feb 2021 13:41:17 +0000 (13:41 +0000)] 
Improved name resolution for references to a table begin modified from
within a subquery in the RETURNING clause.

FossilOrigin-Name: 799d205bfa7945ee4a92dfec5fbf90a00b9a535e3171aab2ec46404f7efb0f78

4 years agoDo not allow RETURNING in the DML statements of a trigger.
drh [Sun, 7 Feb 2021 23:28:20 +0000 (23:28 +0000)] 
Do not allow RETURNING in the DML statements of a trigger.

FossilOrigin-Name: 7a8fe6463a9728bc4e34465688a059afb74f3c373cde8fdf570d5d148fdde04d

4 years agoFix harmless compiler warnings.
drh [Sun, 7 Feb 2021 12:59:43 +0000 (12:59 +0000)] 
Fix harmless compiler warnings.

FossilOrigin-Name: 5f8bf99579e6663fc701cdc94f685584a86398c4687e25e7e241de755398f17d

4 years agoRemove an ALWAYS() and NEVER() in the authorizer that become reachable
drh [Sat, 6 Feb 2021 14:56:30 +0000 (14:56 +0000)] 
Remove an ALWAYS() and NEVER() in the authorizer that become reachable
as of [078dbff04a95a001].  Test case for coverage in TH3.

FossilOrigin-Name: b469327e2949352325d3db815bd4782f9734239c378f08afd2f00ffa54bef924

4 years agoFix the OSSFuzz-discovered shift problem from two days ago. This patch was
drh [Sat, 6 Feb 2021 14:37:36 +0000 (14:37 +0000)] 
Fix the OSSFuzz-discovered shift problem from two days ago.  This patch was
omitted from [078dbff04a95a001] apparently because I made the edit to
"sqlite3.c" rather than "resolve.c" where it belongs.

FossilOrigin-Name: 864772ffec4e91d8d73f9b97e6e1d7bd4e0537de19d11d30aed7eedd5b7d394a