drh
feef447271
Add ALWAYS() to branches that are no longer reachable due to recent
...
enhancements.
FossilOrigin-Name: 63c50fbdeed831ba450d1dce67e968a7daa2b69ac1270eb271fb1e1873d4a07e
2021-04-26 21:00:51 +00:00
drh
3c6edc8a11
More aggressive detection of OOM errors in resolveAlias().
...
dbsqlfuzz 7f96832c2ef7ee472022ed805b064e55e41094b2
FossilOrigin-Name: e99faf4f82746761c389e24db1b00ee94b9f849e7bcb29517fa0ca10290afc41
2021-04-26 15:28:06 +00:00
drh
de0e1b150c
Performance optimizations in the code generator, especially in name
...
resolution.
FossilOrigin-Name: ab83a99899ceae931b43e0c4b3f8f8b83bc832f1568de5692c0d038c968f8a87
2021-04-16 22:53:57 +00:00
drh
9920bf975b
Add an assert() to show that the SF_Resolved flag does not get set if
...
errors are being suppressed.
FossilOrigin-Name: f455c5b0bda3d303f9269db37efaa8ff0b356622b2df0a7544f83bb334118180
2021-04-12 17:34:03 +00:00
dan
d487e37367
Fix a segfault that could occur if the ORDER BY clause of a compound SELECT contains a sub-select that uses one or more window functions.
...
FossilOrigin-Name: 5ba15ebb34c3af85ef6c54bbb3acb57176d629cda83774881b2a6467e138e904
2021-04-12 16:59:28 +00:00
drh
050611a79b
Refactor NameContext.nErr into nNcErr to avoid confusion with Parse.nErr.
...
Do not abandon sqlite3ResolveExprList() on nNcErr if nErr is still zero
as we might have hit a problem with ORDER BY resolution that should be a
suppressed error. dbsqlfuzz 41b9dad40919d3549ca7e52d893da81a6dded4ad
FossilOrigin-Name: 7d674970741bd9b228b818c701c1ae010b90cc287a4c60a872f18b66353d164d
2021-04-10 13:37:04 +00:00
drh
22af584e3e
When resolving names in the RETURNING clause, do not accept trigger names
...
even within subquires. See
[forum:/info/34c81d83c9177f46|forum post 34c81d83c9177f46] for context.
FossilOrigin-Name: fd4ea3f626b6e4957d56c2369be711895735cfc37cfde65650a6682ad5a3eb1a
2021-03-31 23:56:55 +00:00
drh
d75aeee535
When resolving column names in the RETURNING clause, do not ignore an
...
incorrect table name qualifier. Raise an error instead.
See [forum:forumpost/85aef8bc01|forum post 85aef8bc01] for context.
FossilOrigin-Name: 51d5c50b2fb373e4c7ddb7e26657c26ad39dc9c2fc629bba5c2522b4150d8fac
2021-03-31 17:42:24 +00:00
drh
45e4cb8e77
Improved comments on the NOT NULL strength reduction optimization.
...
FossilOrigin-Name: a85d72293914b48edbb39171fd591d37ffb09570d8103140a052203ec71d49ee
2021-03-09 19:52:15 +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
drh
91be05a910
Put ALWAYS() on a branch that is now always true because of changes
...
in OOM behavior due to check-in [9adf6e2469d18bc3].
FossilOrigin-Name: 8a1bb9c3e92085fb71d75eb36f64eb85053a4730fd314acd401e7ad32c274748
2021-03-04 18:34:54 +00:00
dan
e8dd6a4e77
Fix a segfault that could occur following an OOM condition.
...
FossilOrigin-Name: 9adf6e2469d18bc3bfc0c804cfcaa692e23ab6b3e13465dcfc51c4b111b05cb4
2021-03-04 16:10:23 +00:00
dan
3083d5f5ea
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
2021-03-03 11:00:31 +00:00
drh
2d7a691fba
Add #ifndef macros so that the build works again with
...
-DSQLITE_OMIT_AUTHORIZATION and -DSQLITE_OMIT_WINDOWFUNC.
FossilOrigin-Name: 9400bdc60294be6a938025d481e50aad9af246e64f38fafecc6ca4f24112a98c
2021-03-01 21:43:25 +00:00
dan
8ddf686267
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
2021-02-26 20:14:32 +00:00
dan
4b17455ab2
Minor simplification in resolve.c.
...
FossilOrigin-Name: 310dac342e7b1f9b5a5df6a9d598e85d5fef59bba9307d9230baf77c8f2351a2
2021-02-26 15:20:17 +00:00
drh
7601294ad3
Rename the "struct SrcList_item" object to the more succinct "SrcItem".
...
This is a symbolic change only. The logic is unmodified.
FossilOrigin-Name: bfd5bf2c73110fcb36db9ba2a949ff516131fbd3e89325f88fe9f5c2b4ed87b2
2021-02-21 21:04:54 +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
6b37b762ed
Simplification to the resolveAlias() routine.
...
FossilOrigin-Name: 00bead3931135af80475c22f08cbb26c914518e8f2c7e73c2b8be1cee4ac4d5e
2021-02-16 20:32:17 +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
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
552562c48f
Snapshot. New design appears to work on a simple test case.
...
FossilOrigin-Name: 8a65fbeecf3597e30853c5f0ccd9b8b46c508854fa521e58e0db279deebca7d4
2021-02-04 20:52:20 +00:00
drh
1832f2921d
Add an ALWAYS() to an unreachable branch.
...
FossilOrigin-Name: 6bb6de42b62acd35ade6c95a11bb4c9b35e7e9a24620731ae36364c4d5c3bc31
2021-01-30 16:16:42 +00:00
drh
b835247954
Working prototype.
...
FossilOrigin-Name: b7ef4dc21f187ff4ff679e823782535188c3814aa6ce720b3a01c6d3ba4ef9f5
2021-01-29 19:32:17 +00:00
drh
235667a858
Use NEVER and ALWAYS macros to confirm that the return value from
...
sqlite3ExprSkipCollateAndLikely() is never NULL in some of its use cases.
FossilOrigin-Name: 76d2eb86e109fc3cbdba2e8175c22ed7660b59bb9315f6c55c565587f33ad43b
2020-11-08 20:44:30 +00:00
dan
599456f0ab
Correctly handle expressions like "x IS (not) true/false" within the rhs of IN() expressions. Fix for [f3ff1472].
...
FossilOrigin-Name: 493a25949b9a6d0be82169b597133e491d8be4f4147b6eae135b06c1d810abd3
2020-08-24 10:52:52 +00:00
drh
08b9208660
Fix harmless compiler warnings that surface in newer versions of GCC.
...
FossilOrigin-Name: 9d670a318381f219b467653f5f9539097808b887ae37291ce13be462dedfb18d
2020-08-10 14:18:00 +00:00
dan
576d5a8634
Fix problems that could occur if a table with the same name as the table being updated appeared in the FROM clause of an UPDATE statement.
...
FossilOrigin-Name: 13224cbd75990615088f3e30ccba05d31b3099fae4300c9ab8f7663bc5f0eb6f
2020-07-15 18:30:01 +00:00
dan
be952c11dc
Add test cases and fixes for UPDATE...FROM statements that modify primary key columns.
...
FossilOrigin-Name: 47c87af3e52bce10fbcc2cbe832d659b0c204bfb3368d9314fa1b01120129254
2020-07-13 20:10:29 +00:00
dan
a7f82d9f47
Merge latest trunk changes with this branch.
...
FossilOrigin-Name: 5ee3c27e20d12a126fb773b428bb864102b949a5b26a8d5c523753dcedf4be10
2020-07-13 18:04:27 +00:00
drh
b8fec21983
Fix generated columns so that they play well with upsert.
...
See the [https://sqlite.org/forum/forumpost/73b9a8ccfb |forum post]
by "iffycan" for details.
FossilOrigin-Name: fa9d93cf32fac4b86044acf5d1b9ea2f36e964ed7142cf1d270986c9ef3fb766
2020-06-29 20:26:50 +00:00
drh
ec43d8040a
Change the magic number used to identify the "excluded" pseudo-table in
...
an UPSERT statement into a #define constant.
FossilOrigin-Name: e96c2ac9ab1a1c51b1498f4b91fb71d2987c30579d072b2f0297da9eb945cb97
2020-06-29 20:20:40 +00:00
drh
c37577bb2d
When rewriting a query for window functions, if the rewrite changes the
...
depth of TK_AGG_FUNCTION nodes, be sure to adjust the Expr.op2 field
appropriately. Fix for ticket [7a5279a25c57adf1]
FossilOrigin-Name: ad7bb70af9bb68d192137188bb2528f1e9e43ad164c925174ca1dafc9e1f5339
2020-05-24 03:38:37 +00:00
dan
f2972b6083
Fix problems with using LIMIT and FROM clauses as part of single UPDATE statement.
...
FossilOrigin-Name: b717dc3c5fafb9b86a141e7ecffc030fd9b36aa57a0b3e5200d64ad23a0aa13d
2020-04-29 20:11:01 +00:00
drh
4047bdfd2c
Performance improvement in sqlite3ResolveExprNameList().
...
FossilOrigin-Name: 7e170e67f24c7cdef7e7ceac4e0b81a75382618e4abe9e604f3d7f6db9dc6396
2020-04-06 20:35:52 +00:00
drh
d44390c8c5
Performance improvement for column name lookup.
...
FossilOrigin-Name: 1e4b6a93987cdfbf829e2ff35ef417c290625f2894ad11949e301af518f1fb44
2020-04-06 18:16:31 +00:00
drh
47f8ef32a0
Remove a NEVER() that could be true in sqlite3MatchEName().
...
FossilOrigin-Name: 921448f0e24a3753374b32be9d7bf36a9ca5d8522eff9f0b51dc243f08652419
2020-04-04 11:58:22 +00:00
dan
4db7ab53f9
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
2020-04-03 11:52:59 +00:00
drh
74a07986ce
Fix to the recomputation of the colUsed field added by check-in
...
[a9bb71ba708ba722]. This fixes ticket [5829597ac43811e3].
FossilOrigin-Name: 5d14a1c4f2fc17de98ad685ad1422cdfda89dfccb00afcaf32ee416b6f84f525
2020-03-21 23:10:38 +00:00
dan
465c2b8964
Consolidate some code on this branch.
...
FossilOrigin-Name: a85c63daa640e02fdfd891a05a1a09e848c9621a5dd6e112338451008623ecbb
2020-03-21 15:10:40 +00:00
dan
00bd55e1ae
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
2020-03-20 20:54:28 +00:00
drh
1cfee74a28
Fix a potential NULL pointer dereference following OOM. Problem discovered
...
by dbsqlfuzz. Test case in TH3.
FossilOrigin-Name: 5aeb5a2d295e10d5fc1d456b3acaf8ac13c04cb5bb71a8c4571541d366e95887
2020-02-19 15:39:46 +00:00
drh
fe7046044c
Allow non-deterministic function in CHECK constraints. It turns out that
...
PostgreSQL, MySQL, and SQLServer all allow this. We should be the the
exception. Ticket [830277d9db6c3ba1]
FossilOrigin-Name: 8c8ce526adb60b8061e55151599ca8b11f1ec2e968d3bacc73a2a249e9e95ee1
2020-01-18 21:34:31 +00:00
drh
05b32ee3c0
Fix a problem that restricted edgy functions in TEMP tables.
...
New test cases added.
FossilOrigin-Name: 8878c40753566a8c4ccd1d413019cabde7569b947f730527d13bfc3db384e97d
2020-01-09 01:20:03 +00:00
drh
2eeca2046e
Performance improvements and test cases added. Allow "PRAGMA trusted_schema=ON"
...
FossilOrigin-Name: 30882ca80f6c51f6bb7b2692c1ac3f19a7c61a23aa8730be79aec0ae3ef08d54
2020-01-08 20:37:45 +00:00
drh
0dfa5255bc
Check for whether or not it is safe to use non-innocuous functions as the
...
function is being coded, not when its name is resolved.
FossilOrigin-Name: 1da802d54b689a462e1fe899c6ffa08ef14d34f36728b14b055b5a76b1edc274
2020-01-08 17:28:19 +00:00