dan
5fd9dbbfc1
Fixes for cksmvfs and rbu so that they work together.
...
FossilOrigin-Name: ce8b589e4c7b14ae5f84d47da91931bae109f027490f4b23e0837fde3b037127
2021-05-11 11:25:06 +00:00
dan
9274c84f9d
Ensure that all records are updated by setting the OPFLAG_SAVEPOSITION flag when updating records as part of ALTER TABLE DROP COLUMN. Fix for [c88f3036a2].
...
FossilOrigin-Name: 11c368f20ab1806b6b2dbeb77dd70e9c190dccbe700f0a601d49e94c328ddba7
2021-04-18 06:03:58 +00:00
dan
56fdafb30b
Modify the drop column code to handle WITHOUT ROWID tables for which a single column appears more than once in the primary key.
...
FossilOrigin-Name: cfa8912a94fc5cfed32ea9aac92ba97a61a6017c474ccb5e909b3f02e7b77382
2021-04-18 05:52:57 +00:00
drh
a153e56893
Fix a problem with handling expressions like "(col IS NULL AND <expr1>) OR col == NULL" in WHERE clauses. Reported at [ https://sqlite.org/forum/forumpost/1c4f2fdcc4 ].
...
FossilOrigin-Name: e8c7bd34d0cb8c595d58b6b24621fdd3cc02f05ac7dc59f450fa08c0e394a4b4
2021-04-13 18:39:32 +00:00
drh
ea602ac6b0
When resolving names in the RETURNING clause, do not accept trigger names
...
even within subquires.
FossilOrigin-Name: 8541c71b35fd529ee3addd51fd51279bc1fb35dd6b6ceee3ed22c06df0e3d02e
2021-04-01 11:30:23 +00:00
drh
378c763eb3
When resolving column names in the RETURNING clause, do not ignore an
...
incorrect table name qualifier. Raise an error instead.
FossilOrigin-Name: 3b916924cef383f3d395e1f10aed6584d22d39a26f3b3c9919bd1afc0db635aa
2021-03-31 17:49:52 +00:00
drh
5b878c61d3
Defer deletion of expressions that are optimized out by the AND optimizer
...
in the sqlite3ExprAnd() routine until the corresponding Parse object is
deleted. This avoids a dangling pointer in AggInfo if sqlite3ExprAnd()
is invoked by the push-down optimization. The dangling pointer appears
to be harmless in release builds, only showing up in debug builds.
Problem found by dbsqlfuzz.
FossilOrigin-Name: 77a30f3f7a4094cf43d24f062f6fd5c5981268899f809ba068bb28287fc87839
2021-03-31 13:51:07 +00:00
drh
199077fb70
Ensure that negative numbers may not be used in frame offset clauses even if they are initially text value. e.g. (RANGE BETWEEN '-1' PRECEDING ...).
...
FossilOrigin-Name: 2d179f58bfe21454bc1b11d5a9ae4e86148180f714076047824e145add5ca522
2021-03-31 13:41:10 +00:00
drh
dafde4b7de
Raise an error if a term of the form "TABLE.*" appears in the RETURNING clause,
...
as SQLite does not (yet) know how to handle that.
Ticket [132994c8b1063bfb].
FossilOrigin-Name: 257e16f7b34e6b6f00811562adc2bb74968cedd418dc568cec30d9f7d18c5a80
2021-03-30 01:57:51 +00:00
dan
1703ac81c7
Do not do the EXISTS-to-IN transformation if the sub-select has LIMIT clause.
...
FossilOrigin-Name: 3bf8a35716899c9c8046e8aefc5be1dc480eec9481a2fa8767db9e27978e6d84
2021-03-29 21:16:32 +00:00
drh
d01206ffc2
Fix an assert() that in preupdate-hook logic (not normally built) that
...
can be false when running VACUUM on a corrupt database file under
PRAGMA writable_schema=ON.
FossilOrigin-Name: 6bb2134027a12801de8e0c73482d94682f902024800a7e426614f65a2fe4f64c
2021-03-21 18:23:48 +00:00
drh
97060e5aa2
Add a better comment and an assert() on the code inside sqlite3CreateIndex()
...
that REPLACE indexes come at the end of the index list.
[forum:/forumpost/ceb51d83f7|forum post ceb51d83f7]
FossilOrigin-Name: 71e4da136bd1b5b75a699d69fbaaaec0f9dd1a87e2a9d049a55154892b06647b
2021-03-21 17:52:47 +00:00
drh
01a8ad231a
Fix the "box" output mode in the shell when statement returns zero-column
...
rows (for example from "PRAGMA incremental_vacuum").
FossilOrigin-Name: 34439fe3aeea7cbbc817245d39c345a7f5df7a82ac15ee4d71bb9a4d818198ed
2021-03-20 23:15:52 +00:00
drh
3c48ee9e0e
Fix a faulty assert() in the OP_SkipScan opcode.
...
dbsqlfuzz a15a9b2ca82e812ad52f62c86cc93dca0dc72f01.
Test cases in TH3.
FossilOrigin-Name: 1805b9aaf1172e36e08271f78ebb7676bba9f3c4c28e077ee94cc31b8e7ec741
2021-03-20 01:00:26 +00:00
drh
340fd0bc23
Dbsqlfuzz found a new way to make that branch in codeVectorCompare
...
reachable.
FossilOrigin-Name: 959272c27555e39f180d46257afe45d41da1f5df38ea269196c06741ff6a278e
2021-03-19 16:29:40 +00:00
larrybr
4cf34a5e73
Fix tokenizer's classification of EBCDIC newline.
...
FossilOrigin-Name: 8680f6a8fb34b9c0ea9b4286888b4df5df427d2df10c782d198bc3f2fdcd0704
2021-03-19 15:02:59 +00:00
drh
66f9655599
Restore the NEVER() that was taken out by [f481636f1a0333c6] because that
...
case is no longer reachable after the previous check-in.
FossilOrigin-Name: e3a78b2a237a2e101faf01dde913f63641da8854720a9daa4b45a9c5dfe30b1b
2021-03-19 14:51:15 +00:00
dan
93eb906488
Fix a crash that could occur when an INSERT has more than one ON CONFLICT clause, at least one of which contains an unresolvable symbol.
...
FossilOrigin-Name: 74208386508012326a0e88ec5b4a995d1b99607720bb05785a01c2d89ea03543
2021-03-19 14:26:24 +00:00
drh
d685dd6be6
Correlated CTEs should not generate a materialization subroutine. If they
...
need to be materialized, each use case must be materialized separately.
dbsqlfuzz 01b8355086998f0a452cb31208e80b9d29ca739a.
FossilOrigin-Name: d72d865d3e8503a545603038eb26044bee42e4e8725522be678059ce6517fc8d
2021-03-19 13:53:34 +00:00
drh
080fe6dec9
Add a NEVER() on a branch that was made unreachable by the
...
"circular reference" fix.
FossilOrigin-Name: 114d9780aecdd9f03f235fc1f2ab81ef89cb00b3bafa61cff612e939595ff5f0
2021-03-18 20:04:46 +00:00
dan
ca237a8b7b
Fix a problem causing spurious "<cte>: circular reference" errors to be reported when there is actually a different error in the SQL statement.
...
FossilOrigin-Name: 9981223618782bf867dfc8988d0c634a42f569228880c5c5e00aa4ae762cfff2
2021-03-18 18:25:43 +00:00
drh
8d81aac13f
Fix the OP_OpenDup opcode so that it is able to duplicate a cursor that
...
was itself opened by OP_OpenDup. Add additional verification of
ephemeral tables. Fix for ticket [bb8a9fd4a9b7fce5].
FossilOrigin-Name: bcbe5308f3a3b94f965b0f5627cb29cce2e09343b86d757e2de889f7773576e7
2021-03-18 16:47:24 +00:00
drh
76f7b16f1e
Remove unnecessary code from sqlite3BtreeClose() and add test cases.
...
FossilOrigin-Name: edbfdcaefae1e9a42c046c058341bf5b0f533c0b0cbd39543fcaa2a83d67561d
2021-03-18 16:36:31 +00:00
drh
5a4a15fd2e
Further sanity checking of the OpenDup cursors.
...
FossilOrigin-Name: 0ec71cf16983697f68ab8d921d80a5f39611e4cb5e6e19cbc4a9ad6d49bfc835
2021-03-18 15:42:59 +00:00
dan
eeee8a5f01
Automatically close ephemeral b-trees when their last cursor is closed.
...
FossilOrigin-Name: 39b5af18c0580c8e92516d410f8c465bfec31b2d0be9df1cfd6a1d1a19b4fc14
2021-03-18 14:31:37 +00:00
drh
8e7c82ca3f
Fix a problem with the filename normalizer in unix, discovered by dbsqlfuzz.
...
FossilOrigin-Name: ff1eca7fcdcbc550a5f23db9d85281e5373500912699a7c7ae54bc0df0547e26
2021-03-18 13:55:25 +00:00
dan
918232aadb
Allow instruction OP_OpenDup to duplicate cursors created by OP_OpenDup, as well as by OP_OpenEphemeral.
...
FossilOrigin-Name: b8de980b2fb78088ef74e053cb987bb84319d13dc96ce1e89baaaa3fe8cf1efc
2021-03-18 13:42:53 +00:00
drh
e44ac3858c
New assert statements associated with Ephemeral cursors in the bytecode engine.
...
FossilOrigin-Name: a8ce73e2573b271d5d45838802ed1905ce5e18d5fafe0078700e79fab85457e2
2021-03-18 13:19:41 +00:00
drh
2b994ce5d3
Change the name of the iDataVersion field of Btree to iBDataVersion to make
...
it distinct from Pager.iDataVersion.
FossilOrigin-Name: e4c44c0bca317c03f8e6d3aa7cc88e5f96159a3d91c07257d408f7db028fd151
2021-03-18 12:36:09 +00:00
dan
51ddfef74d
If there are already 500 or more simple SELECTs in a query, do not add more by flattening UNION ALL sub-queries into parent join queries.
...
FossilOrigin-Name: 9520bed2bd87dc56543ee58123323d293e960ecd84707b77f15f41669a2c9c3d
2021-03-17 14:29:37 +00:00
drh
a7d8d4a07a
Date/time functions with no arguments (ex: date() or time()) should be
...
non-deterministic. Fix for ticket [2c6c8689fb5f3d2f].
FossilOrigin-Name: 1734c332e7f609769fc30f82cf7af097c2964e08900ee3e297f6a25e6df60555
2021-03-16 18:41:20 +00:00
dan
776a578c21
Fix a problem with ALTER TABLE RENAME COLUMN when used on a schema that features generated columns.
...
FossilOrigin-Name: 0e255b26872b50581d470952dd98e21dd82d081885006f58d49daa4b4576b35d
2021-03-16 11:11:07 +00:00
drh
67c4ce131b
Improvements to the built-in ".dump" documentation in the CLI.
...
FossilOrigin-Name: 0915f969f429a8d0b594e937e0128d5476774d9bbe4a24081dbc60273cb5bb9a
2021-03-15 15:12:10 +00:00
larrybr
7bdbe59829
Make shell's .help output for .dump more accurate as to what can be dumped.
...
FossilOrigin-Name: f91d8c09a02f7a7ab354c49cd193d422074daa5eb908f17d1907a8c2b38f96a5
2021-03-15 12:56:00 +00:00
drh
44d441313a
An alternative approach for fixing ticket [1c24a659e6d7f3a1].
...
FossilOrigin-Name: a2adae907a28e169e64cfe69d97d7b68cb94e6ba07d2dfa995e3fbc6672fafdd
2021-03-14 19:55:40 +00:00
drh
9d59e3b1bf
Fix the ".read" command in the CLI so that SQLITE_OMIT_POPEN disables
...
reading from a pipeline.
FossilOrigin-Name: cea34f3cc35ad6dc67691799a219a30739f2296945d624d232bf76150c598ec0
2021-03-12 01:49:08 +00:00
drh
662a1426cb
Improved testcase() related the SQLITE_MAX_ATTACHED vs. SQLITE_MAX_DB problem.
...
FossilOrigin-Name: 27d3c00efef66ad48ed94228474dbea3ad81ea5c19425028c42cf4220920a645
2021-03-10 18:21:18 +00:00
drh
099b385d17
Do not confuse the constant SQLITE_MAX_ATTACHED with the maximum number of
...
schemas. Add the new SQLITE_MAX_DB constant for the maximum number of
schemas. [forum:/forumpost/a006d86f72|Forum post a006d86f72].
FossilOrigin-Name: 7b65fb9f7bd616f834633afd64b3448bf9ca2b6e4cc6d6c01e75d1d877c88a79
2021-03-10 16:35:37 +00:00
dan
4049ede97d
Update a comment in btree.h.
...
FossilOrigin-Name: 9645fe1a050e8b61aea1fba2f142819c387ecb043741392c5719bf7ad303bf8b
2021-03-09 21:20:12 +00:00
drh
0db20c490a
Fix a bad comment (copy-paste error) in the byte code engine. No code changes.
...
FossilOrigin-Name: 1c01745734c7b62a8c792f743aae08dfbb9e047dc92fef8da067fec152b20fd5
2021-03-09 20:58:21 +00:00
drh
45e4cb8e77
Improved comments on the NOT NULL strength reduction optimization.
...
FossilOrigin-Name: a85d72293914b48edbb39171fd591d37ffb09570d8103140a052203ec71d49ee
2021-03-09 19:52:15 +00:00
drh
6d0053cfa7
Extra comments and testcase() macros associated with the new
...
sqlite3ParserAddCleanup() mechanism. No changes to release builds.
FossilOrigin-Name: c3c8691121e6cb7bfc326212cc81a7472c0e6f22e655ab024bd4bd885e1cd878
2021-03-09 19:32:37 +00:00
drh
e58b2b4a80
Fix a bad assert in RENAME COLUMN.
...
dbsqlfuzz 3f0a7245b69cd08617d7d7781ebaedb0fe765a93.
FossilOrigin-Name: f13e0d12f137cd6b4e83e92bd36652431d8416e6eed4797313e061f2e390d39b
2021-03-08 17:17:38 +00:00
larrybr
b2e9640155
Merge from trunk.
...
FossilOrigin-Name: 729117cdfa2d6ff24b66656e9ccc380199606b830fc338286e4dd10e8e787597
2021-03-06 23:49:18 +00:00
larrybr
1b22ad8ae6
Create initial tests for appendvfs, and make it available as a statically loaded extension.
...
FossilOrigin-Name: 9f33d45179f5985bd4c4f7582e94f5833a63f853c8cdc19f39cf7e3ee70177d0
2021-03-06 23:36:47 +00:00
dan
7f8653a257
Ensure the correct collation sequence is used for comparisons when delimiting a RANGE window.
...
FossilOrigin-Name: 01eae68e85b31b7a9f08733459765bbd9bf9dad592bf64f10fc2fa32e02a89c2
2021-03-06 14:46:24 +00:00
drh
747cc9425d
Fix a possible NULL pointer dereference when applying a DROP COLUMN to a
...
corrupt database schema. dbsqlfuzz 419aa525df93db6e463772c686ac6da27b46da9e
FossilOrigin-Name: 349ccf58ae4bb770805066102fc8e9e478d4da1f7a6a728223bd74eabf7b7843
2021-03-06 13:02:12 +00:00
drh
70149ba47e
Modify the SQLITE_DBCONFIG_ENABLE_VIEW option so that it always permits
...
TEMP views, just as SQLITE_DBCONFIG_ENABLE_TRIGGER always permits TEMP
triggers.
FossilOrigin-Name: 83dab8b358b6832a221a58e74dd5e99b9cdea4eee65124bb6799881e867d989c
2021-03-05 18:33:01 +00:00
dan
0d08072b68
Fix another problem with RETURNING clauses in UPDATEs against tables with virtual columns.
...
FossilOrigin-Name: f0ef5c76ab1a6568b9148b928277bf589d4cb7033c0acf3e6323879b656d8bd1
2021-03-05 15:29:22 +00:00
dan
a7e16a2f05
Fix an assert() failure that could be triggered by a correlated sub-query in a RETURNING clause.
...
FossilOrigin-Name: 551260c8625828262809b1ef7acf5343a3527b7e167ca0cfd13b81e5ece0e66c
2021-03-05 15:10:33 +00:00