drh
b745cccfd9
Merge changes from trunk.
...
FossilOrigin-Name: 7a90571e0a0e43017cf5b9636ff111e0d0f7f9e9a4678d39b0e4f9c176ae232e
2021-02-20 12:47:54 +00:00
dan
578277c257
Fix another problem handling corrupt database files in the ALTER TABLE DROP COLUMN code.
...
FossilOrigin-Name: 9edf2ddc4799c8830c4b7b91d7aacee50029a4b9db329fd4c5674fbedea33034
2021-02-19 18:39:32 +00:00
dan
f4a72788a4
Fix a crash that could occur in ALTER TABLE DROP COLUMN if the sqlite_schema table was corrupt.
...
FossilOrigin-Name: 126ee1ec4f3565c0cccca98885fa3665a641ea3df251511de16eed2a1c396124
2021-02-19 14:13:40 +00:00
drh
60fe2352f5
Omit an branch made unreachable by the improved error message from dropping
...
the last column of a table.
FossilOrigin-Name: c5719fc5aa04c50bb01533f1cedb73dc80c4bf5315ff6a7206c8a10504afca8b
2021-02-19 09:46:52 +00:00
drh
329cb9eb88
The COLUMN keyword in ALTER TABLE DROP COLUMN is optional.
...
FossilOrigin-Name: a22f87fb6c43dd6217691c8dd1cdcd7880068024fb779ca8a5def068d72c3e6b
2021-02-19 09:36:50 +00:00
drh
239c84fc62
Give a better error message on DROP COLUMN when attempting to drop
...
the last column of a table.
FossilOrigin-Name: 5e1f362bc3e53c60f9e6f771346d10c6e6a6cb3ff1eec5608101f9c5d6d2a5a4
2021-02-19 09:09:07 +00:00
drh
c90fa01dbf
Add a NEVER() to an unreachable branch in the DROP COLUMN logic.
...
FossilOrigin-Name: 963f498ae64cf7530fb7a405fa476c411ad66523f62f5eefa5a16596cd19a481
2021-02-19 02:30:02 +00:00
drh
0336140cd9
Add missing VdbeCoverage() macros.
...
FossilOrigin-Name: 9bb720e6590482bc9c2fbb273738808209e9651710dbee7572b0348cadf87e68
2021-02-18 23:53:47 +00:00
drh
dcc29e0d1d
Enhance renameParseSql() to better handle OOMs.
...
FossilOrigin-Name: 68bcde7ab57b2d4bdcfb2f6c7134a0b01a504b2e7cdf6ee5bf0df70fb4a517b0
2021-02-18 23:03:50 +00:00
drh
a7da40f377
Merge changes from trunk into the alter-table-drop-column branch.
...
FossilOrigin-Name: 9ea640073f8809dfe2612ae1ea384a938b433f884c54d9e5aa3712de79397ac1
2021-02-18 22:47:34 +00:00
dan
678f3b33cc
Fix DROP COLUMN so that it works even if the user has registered an authorizer callback.
...
FossilOrigin-Name: e5f144182bbb3ba10c77151cf63c8bddf86374049fb6866387f85e335df298cb
2021-02-18 20:27:46 +00:00
dan
16953469a6
Fix a problem with schema error detection when processing ALTER TABLE DROP COLUMN commands.
...
FossilOrigin-Name: 565a6fd0c95b438fea7bf84913b38de1718117e16e0d685534a8650e1dc8421b
2021-02-18 19:25:44 +00:00
dan
a55a839ab3
Avoid invoking the update or pre-update hooks during VACUUM operations.
...
FossilOrigin-Name: 3c25cb4ab8885a50e2a485fe76f5ffd5dd8ebe1306aca8c0989e0b7fd7dd18d2
2021-02-18 15:59:37 +00:00
drh
6f6e60ddb1
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
2021-02-18 15:45:34 +00:00
drh
39065807dd
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
2021-02-18 14:27:43 +00:00
dan
fadc0e34be
Ensure that the pre-update hook is invoked for INSERT operations on WITHOUT ROWID tables that use the xfer optimization.
...
FossilOrigin-Name: 66bbad239b4527ac8ae8b487a0c71d88b1861a8dfe1edc25109600dc447c60c4
2021-02-18 12:18:10 +00:00
drh
6859d3245a
Add missing VdbeCoverage() macros to some of the new RETURNING code.
...
FossilOrigin-Name: 53a5390909822b3aef8c5f522144bc2e86cc31318b2d3e310a064ae7202b4a15
2021-02-18 01:02:03 +00:00
drh
7b7a9cf263
Performance optimization in the resolver.
...
FossilOrigin-Name: 1aafb94d4e3f28a8322e5e43be737d84b1a09f0063408f4a466a6071fa95b39b
2021-02-18 00:59:16 +00:00
drh
c7e93f58d5
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
2021-02-18 00:26:11 +00:00
drh
c54246ffdf
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
2021-02-17 21:13:14 +00:00
dan
c2a878ed0a
Fix a problem with OOM error handling in the new code on this branch.
...
FossilOrigin-Name: ea999c9db59e4193b306a2e1b15fc94f8f04cb05e852bb0d068b7d5243a0849b
2021-02-17 20:46:44 +00:00
dan
c16592cd1b
Merge trunk changes into this branch.
...
FossilOrigin-Name: 0cd5e2f9ce181f2c940ffca6fe69fda84f452613e66463d0d7c7413fc11b9772
2021-02-17 20:19:13 +00:00
dan
6a5a13df97
Fix various issues with the changes on this branch. Add test cases for the same.
...
FossilOrigin-Name: 10538ec6fc1642dfc2ca6cef06ce6cb9e124847b421ccf01f5842064fad379ab
2021-02-17 20:08:22 +00:00
drh
4b0229ae1f
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
2021-02-17 13:19:22 +00:00
dan
6e6d9833cc
Add experimental implementation of ALTER TABLE DROP COLUMN. Only some cases work so far.
...
FossilOrigin-Name: f0217937d7306fb595727e61e871e8b03d8c881d339a0865bfd0117d90d42e4e
2021-02-16 20:43:36 +00:00
drh
6b37b762ed
Simplification to the resolveAlias() routine.
...
FossilOrigin-Name: 00bead3931135af80475c22f08cbb26c914518e8f2c7e73c2b8be1cee4ac4d5e
2021-02-16 20:32:17 +00:00
drh
13162ef975
New SELECTTRACE macros more clearly deliniate when the query planner is
...
invoked in the middle of PRAGMA vdbe_addoptrace output.
FossilOrigin-Name: 7c03ce49b74f72b63dd75c3a02625e671bfd771f71b24e808994322b00d97677
2021-02-16 20:01:08 +00:00
drh
e076d6bc14
Remove unnecessarily complexity from sqlite3WithReleaseByParse(). Improved
...
TreeView output for the enhanced CTE structures. This code still does not
work 100%. I'm saving my place in order to (maybe) come back to it later.
FossilOrigin-Name: 30bb18b45013bf2ac214863c97f64544511cae62029b9762c97cbb69ca658887
2021-02-16 19:29:44 +00:00
drh
aee35d7509
Trying to get the new AS MATERIALIZE syntax of CTEs to work. There are
...
still performance and memory management issues. This is a WIP check-in.
FossilOrigin-Name: bf0fd9b23a77a8fc1be5f8f8f9f7dce62b924d2f4eecaf13f0b21cc58bfd3a61
2021-02-16 16:32:07 +00:00
drh
68097b4e93
Change the syntax from "GENERATED AS" to "AS MATERIALIZED" so as to match
...
the syntax of PostgreSQL 12+.
FossilOrigin-Name: 78dcddd9697d95629c18131ab0842aa4d08bc3c7451cd0e7a8d83e4dde277bda
2021-02-16 00:48:51 +00:00
drh
1b6cc73096
Merge the LIKE operator fix from trunk.
...
FossilOrigin-Name: 8c8618780a2cb80c0c1f244fa8555ce36501ad7e435a2cfee1030bbdc8d644db
2021-02-15 17:51:32 +00:00
drh
33941691a5
Fix an issue with the LIKE operator when it includes the "ESCAPE '_'" clause.
...
Ticket [c0aeea67d58ae0fd].
FossilOrigin-Name: 27d4117980d125975b5e70eeea58a6ab07bcf066e71b5fcb81b822e05afdbab0
2021-02-15 17:02:01 +00:00
drh
478583bbd6
Merge minor fixes from trunk.
...
FossilOrigin-Name: d876b287e1d1fdc1db083fb9786889fb82117ec77defdaa078858e1092068166
2021-02-15 14:55:04 +00:00
drh
351ae772a3
Ensure that the ALTER TABLE statements return 0 for
...
sqlite3_column_count().
FossilOrigin-Name: 29c1932a47cd46c2585ebbf937c03544a8a355014776129662789e15db9ed4de
2021-02-15 13:17:19 +00:00
drh
bd4dfa9071
If the GENERATED keyword occurs before the AS keyword in a common table
...
expression (CTE) definition, then that CTE becomes an "optimization barrier".
For now, that means the CTE is always materialized. It also means that
query flattener or pushdown optimizations that cross the CTE boundary are
omitted.
FossilOrigin-Name: 186ec18b24d16c5d4d7a5b5e98c7504892950a1018774cb7bb214fc011ec09f4
2021-02-13 23:46:26 +00:00
drh
8794c68a35
Avoid manifesting a CTE (or other view) multiple times when it is possible to
...
reuse the first manifestation.
FossilOrigin-Name: 9692f510803c9b9725abb687d7c10fbc0d5ed784479ec6f3fcc55925a87fe16d
2021-02-13 16:39:24 +00:00
dan
e8f1490f55
Fix a problem in the unreleased union-all flattening code.
...
FossilOrigin-Name: e4f8a79fd8b3be9bf8add5f5e1c66bc2fe78da4e50ea500ab0b8370d30e31ba5
2021-02-13 14:26:25 +00:00
drh
879746ca63
Parsing of DML statements in a WITH clause. But at this point, it just
...
generates an error about "not yet supported".
FossilOrigin-Name: 964ff68d8fa4d72b1b4d510f1ec62a9674b75d4ebae4ba254bc2f99432857628
2021-02-12 21:07:58 +00:00
drh
82ab4f6b1a
Correctly detect correlated subqueries when resolving names in RETURNING
...
clauses.
FossilOrigin-Name: b43cfa04922a401442b9d1708e3e4a88d3cfa2c591f9a6b253d99ba83f4b280a
2021-02-08 15:56:01 +00:00
drh
d510197276
Improved name resolution for references to a table begin modified from
...
within a subquery in the RETURNING clause.
FossilOrigin-Name: 799d205bfa7945ee4a92dfec5fbf90a00b9a535e3171aab2ec46404f7efb0f78
2021-02-08 13:41:17 +00:00
drh
e1c9a4ebf9
Do not allow RETURNING in the DML statements of a trigger.
...
FossilOrigin-Name: 7a8fe6463a9728bc4e34465688a059afb74f3c373cde8fdf570d5d148fdde04d
2021-02-07 23:28:20 +00:00
drh
8729642112
Fix harmless compiler warnings.
...
FossilOrigin-Name: 5f8bf99579e6663fc701cdc94f685584a86398c4687e25e7e241de755398f17d
2021-02-07 12:59:43 +00:00
drh
5f323787bd
Remove an ALWAYS() and NEVER() in the authorizer that become reachable
...
as of [078dbff04a95a001]. Test case for coverage in TH3.
FossilOrigin-Name: b469327e2949352325d3db815bd4782f9734239c378f08afd2f00ffa54bef924
2021-02-06 14:56:30 +00:00
drh
8873aea390
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
2021-02-06 14:37:36 +00:00
drh
29f6a365cc
Remove unreachable code. Fix a shift UB problem introduced yesterday
...
and discovered by OSSFuzz.
FossilOrigin-Name: 078dbff04a95a001bbd8690ab08038fbb5506899df8290991b53fd1122a4c30c
2021-02-05 17:34:47 +00:00
drh
7dec804d42
Remove dead code. Fix RETURNING for INSERT into a virtual table.
...
FossilOrigin-Name: dbfa38699c87ab4bf390666e411dda8d375c7b53b9b4fb131adacbf575867a72
2021-02-04 22:59:19 +00:00
drh
e1db9343d5
Fix an issue with RETURNING from UPSERT.
...
FossilOrigin-Name: 757b74ba0fd64634a365bd73955181191767ad8816a33a362e32ece250299a51
2021-02-04 21:17:12 +00:00
drh
552562c48f
Snapshot. New design appears to work on a simple test case.
...
FossilOrigin-Name: 8a65fbeecf3597e30853c5f0ccd9b8b46c508854fa521e58e0db279deebca7d4
2021-02-04 20:52:20 +00:00
drh
381bdacc8f
Preliminary changes for a new implementation of RETURNING that captures all
...
results in a buffer and plays them all back after the DML statement
completes. This avoids problems with interleaved DML statements.
This particular check-in is a non-functional work in progress.
FossilOrigin-Name: 04b77d63216ce11b4e797946953bcde504fc005807c7a5ac757fbf47d78698dc
2021-02-04 17:29:04 +00:00
drh
8ab79d6135
Add NEVER() to a branch that check-in [5d54d9fd40638138] apparently made
...
unreachable.
FossilOrigin-Name: 5c8e6296aa9f69a092364524b716ba894f113f7f1e6024b9a2eaa01c239e65c1
2021-02-04 13:52:34 +00:00