drh
c415d91007
In the event of a semantic error in an aggregate query, early-out the
...
resetAccumulator() function to prevent problems due to incomplete or
incorrect initialization of the AggInfo object.
Fix for ticket [af4556bb5c285c08].
FossilOrigin-Name: 4a302b42c7bf5e11ddb5522ca999f74aba397d3a7eb91b1844bb02852f772441
2020-04-03 13:19:03 +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
drh
2aee514b4c
Recompute the set of columns used for each table when the table is
...
involved in query flattening.
FossilOrigin-Name: a9bb71ba708ba72255ba8d18c9856e38ddf53eae2d61c8435149354fb2b2459e
2020-03-21 00:05:53 +00:00
dan
553948e514
Fix handling of window functions in aggregate queries that have no GROUP BY clause. Also remove a faulty assert causing the error reported in [618156e3].
...
FossilOrigin-Name: 38e3dd389d142e520c71139ec84aa3c7722992af28a5f93a7f16e0ea176b74bb
2020-03-16 18:52:53 +00:00
drh
be284e4ece
Fix harmless compiler warnings from MSVC.
...
FossilOrigin-Name: 951b39ca74c9bd933139e099d5555283278db475f410f202c162e5d1e6aef933
2020-02-27 16:21:39 +00:00
dan
67e2bb92df
Optimization for "SELECT min(x) FROM tbl" where "x" is indexed and NOT NULL. This also allows similar queries on NOT NULL virtual table columns to be optimized.
...
FossilOrigin-Name: 59726777934e201d94e99ca693f0fda4ebfb1c7883d0258ce542f63f9924c28c
2020-02-27 15:07:16 +00:00
drh
0990c415f6
Fix a problem with ALTER TABLE for views that have a nested FROM clause.
...
Ticket [f50af3e8a565776b].
FossilOrigin-Name: c431b3fd8fd0f6a6974bba3e9366b0430ec003d570e7ce70ceefbcff5fe4b6fa
2020-02-23 17:34:45 +00:00
drh
5f69512404
Early-out on the INTERSECT query processing following an error.
...
FossilOrigin-Name: a67cf5b7d37d5b1484be32092635faafd8f76e5881898cd9435517c4b287d663
2020-02-20 14:08:51 +00:00
drh
fdfd45aef3
Fix problems in the constant propagation optimization that were introduced
...
by check-in [1c3e5c20a9e6f501]. Fix for ticket [1dcb4d44964846ad]
FossilOrigin-Name: c9a8defcef35a1fee6bcbb88252a2d0076dabe8381b0128b2257b5b5cc494e0f
2020-02-13 22:12:35 +00:00
drh
dc4f6fc099
During byte-code generation, strive to avoid jumps that merely jump to the
...
following instruction.
FossilOrigin-Name: bcf876e67e75f6709f2b25683a3952bbbb87c672bb9d7af456feebc0ab9f6c31
2020-02-07 19:44:13 +00:00
dan
8c812f98a3
Fix a problem with using views in SQLITE_OMIT_VIRTUAL_TABLE builds. Also some test case fixes required for the same builds.
...
FossilOrigin-Name: 934ee8bdb481a5cbd3d9c5f53028073129d3bca4fee14fe4a49bbf9c0c9d74f7
2020-01-21 16:23:17 +00:00
dan
70a32703ac
Fix an assert() that could fail in SQLITE_MUTATION_TEST builds following an error in a query that uses CTEs.
...
FossilOrigin-Name: c7e29458a73bbe73a1429477d0c01d5a7b870ab75d3cb08a703be21714e439b7
2020-01-21 14:42:48 +00:00
drh
ef9f719d0b
Fix #ifdefs so it compiles cleanly with all SQLITE_OMIT compile-time options.
...
Update compile-time option testing.
FossilOrigin-Name: 7584e4b649d57767aac3906da6b06549d5b772aaa69f469c623ae5da834d54d5
2020-01-17 19:14:08 +00:00
drh
be0330e853
New testcase() macros in select.c, for coverage of the change from two
...
check-ins ago.
FossilOrigin-Name: 52206488f315803df73f964774270ef4783923407a2567936f56b0a1a88b4400
2020-01-16 17:53:24 +00:00
drh
39df24a3f0
Do not allow the constant-propagation optimization to apple to ON/USING clause
...
terms as it does not help and it might cause downstream problems.
FossilOrigin-Name: 1bc783da63d58b05c690468b569cb2787846357b63c1100d11777666c5787bf4
2020-01-16 16:12:07 +00:00
drh
bebce86cde
Merge in the untrusted-schema enhancements.
...
See [/doc/87aea3ab1cdda453/doc/trusted-schema.md|doc/trusted-schema.md]
for details.
FossilOrigin-Name: 5720924cb07766cd54fb042da58f4b4acf12b60029fba86a23a606ad0d0f7c68
2020-01-09 20:44:37 +00:00
drh
7be5e3dd4c
Fix a harmless compiler warning.
...
FossilOrigin-Name: edbf911fdeda14bd63cd752f6237896400eb5a65ef486abe7b91433621d21b5c
2020-01-09 20:33:13 +00:00
drh
32266a1072
Simplified error message for the unsafe use of a virtual table.
...
FossilOrigin-Name: d662129a601e05e8fca5717a890b5bc920b80a750d061f3c2494788d32b917a5
2020-01-09 13:08:28 +00:00
drh
19ca76af38
Merge recent changes from trunk.
...
FossilOrigin-Name: 5962921fceaf2ec645379a5f1d18e2c2c13abbf92cf64606caee69f45a21c500
2020-01-08 13:08:52 +00:00
drh
f8f76d672b
Simplification of the logic in the constant-propagation optimization.
...
FossilOrigin-Name: 1c3e5c20a9e6f501befa2bf6241a1b5190872bd83b765dac67065d252d04ea4f
2020-01-08 04:36:01 +00:00
drh
c9301e6e7c
Fix the constant propagation optimization so that it does not try to
...
propagate constant expressions that have affinity. Ticket [82ac75ba0093e5dc]
FossilOrigin-Name: 6db1c3498f6bfa01bb460e62b802b63ec4bf43577a17a94e1e2fa0ecc1e64960
2020-01-08 01:43:47 +00:00
drh
97bffe674f
Fix a misworded comment. No code changes.
...
FossilOrigin-Name: ee0bc7ede0fbf3e54bb934c0d580c62d7393c984cbc374ece6d57fe9211dac26
2020-01-08 00:39:37 +00:00
drh
3f68142b82
Enforce SQLITE_VTABRISK restrictions.
...
FossilOrigin-Name: 3d87ff312e617a26846d482b423163cad9c222513f33e128f0fe348dda27c7c9
2020-01-07 18:10:56 +00:00
dan
9e10f9ab05
Ensure the SF_Aggregate flag on a SELECT statement is set if a DISTINCT is transformed to a GROUP BY. Ticket [9c944882].
...
FossilOrigin-Name: 1409758f72c0206cc48f9f7e789382472949523b7056ea46f8dcb93fd3ea60c6
2020-01-06 17:06:12 +00:00
dan
aa328b6ab1
Ensure that when a Select object is reset a new, empty, SrcList is allocated.
...
FossilOrigin-Name: 4889cbf898d7ec54f061b21b6d3621b22fc482cbeaa7115d40995a4cc30e41db
2020-01-03 13:55:14 +00:00
drh
0cbec59c8b
When generating the name of a view (or common table expression) because the
...
SQL does not specify a name, avoid the names "true" and "false" which might
be confused for the boolean literals of the same name, leading to an
inconsistent abstract syntax tree.
FossilOrigin-Name: ff9492d3ff733c222ea67f23d478df1547641b5e2e6dd870b0b29e25c13f3739
2020-01-03 02:20:37 +00:00
drh
378ca1eab3
Merge the latest enhancements from trunk.
...
FossilOrigin-Name: bd57e6d923d3b04f0a07aaf18bf389d2b2b7efc7c57e8cb37e6ef910662d8397
2020-01-02 21:41:59 +00:00
dan
4ea562ee70
Ensure that when code for a scalar SELECT featuring window functions is generated more than once by the planner, separate ephemeral tables are opened for each instance.
...
FossilOrigin-Name: ce1417325273aba866767349b55d9bbfb61a08e716bebda2122918a9657ee38c
2020-01-01 20:17:15 +00:00
drh
5f6a2ed7f2
Merge recent enhancements from trunk.
...
FossilOrigin-Name: 39d55579376906f212271ce9b2d367e3ad029fb173f22c7253312b467970208a
2019-12-31 14:49:10 +00:00
drh
8d95ed789e
Fix a typo in a comment. No changes to code.
...
FossilOrigin-Name: d4813a8d813f234e819f8ebefbd3ff96d3d69593cc7d716cf0ad6c1a126da827
2019-12-30 20:42:17 +00:00
dan
9d41af23a4
Do not use HIDDEN columns for NATURAL joins. Fix for [7c0e06b16].
...
FossilOrigin-Name: ab09ef427181130be09a087b7e572ad4cfb6b3e1b459769ee5ebf046b3ead682
2019-12-30 14:32:27 +00:00
dan
997d7434b7
Do not attempt to flatten compound sub-queries in a FROM clause into the parent if any component of the sub-query uses a window function.
...
FossilOrigin-Name: eeb76f621de2f930a548db0fbb9fe25b4479b73581826b8dfa2e63cd1f1ab783
2019-12-28 18:25:51 +00:00
dan
a6c1a71cde
Do not attempt to unwind the WITH stack in the Parse object following an error. This fixes a separate case to [de6e6d68].
...
FossilOrigin-Name: d29edef93451cc67a5d69c1cce1b1832d9ca8fff1f600afdd51338b74d077b92
2019-12-27 20:54:42 +00:00
drh
aaa5ba0609
Fix an incorrect assert() added by check-in [fa58aad48a788802].
...
Problem found by dbsqlfuzz.
FossilOrigin-Name: a17b29f08c888301911c35096899f10d24192c8ecec467cddde5401b6bd1903f
2019-12-26 00:53:43 +00:00
drh
a9ebfe2030
When the sqlite3WindowRewrite() routine detects and error, have it convert
...
the SELECT statement into just "SELECT null" so that it does not leave the
parse tree in a goofy state that can cause problems with subsequent code
before the stack has a chance to unwind and report the error.
Ticket [d87336c81c7d0873]
FossilOrigin-Name: fa58aad48a788802b13a819e49f9b8787f713bbe395c46c7295e821c52c81738
2019-12-25 23:54:21 +00:00
drh
8428b3b437
Continuation of [e2bddcd4c55ba3cb]: Add another spot where it is necessary
...
to abort early due to prior errors in sqlite3WindowRewrite().
FossilOrigin-Name: cba2a2a44cdf138a629109bb0ad088ed4ef67fc66bed3e0373554681a39615d2
2019-12-19 22:08:19 +00:00
drh
396afe6f6a
Continue to back away from the LEFT JOIN optimization of check-in [41c27bc0ff1d3135]
...
by disallowing query flattening if the outer query is DISTINCT. Without this fix,
if an index scan is run on the table within the view on the right-hand side of the
LEFT JOIN, stale result registers might be accessed yielding incorrect results,
and/or an OP_IfNullRow opcode might be invoked on the un-opened table, resulting
in a NULL-pointer dereference. This problem was found by the Yongheng and Rui fuzzer.
FossilOrigin-Name: 862974312edf00e9d1068115d1a39b7235b7db68b6d86b81d38a12f025a4748e
2019-12-18 20:51:58 +00:00
drh
c4938ea2ba
Tie up the loose ends in the ExprList size reduction.
...
FossilOrigin-Name: 59d0f3afe5249a2a6453fe7bc810c2c7beb896d3800174c7c90f9304c0b1ad88
2019-12-13 00:49:42 +00:00
drh
cbb9da337e
Work toward reducing the incremental size of an ExprList object to 24-byte
...
per entry, from 32-bytes (on a 64-bit machine). This helps the new
mini-lookaside allocator to run better by avoiding excessive reallocs.
The current change mostly works, but still has a few loose ends to tie up.
This check-in is merely a snapshot to save my work.
FossilOrigin-Name: fdda76cfb01bf2b19522ac4558b443634d28a69b0828677c42682b645eae1f3b
2019-12-12 22:11:33 +00:00
drh
41cee66848
Change the name of the Expr.a.zName field to zEName, so that it has a name
...
that is distinct from other fields and variables and is hence easier to
grep for.
FossilOrigin-Name: d3783357f8fa76c42a86f12b214522f0388c37773c36ab8c5ce0623abbc4436a
2019-12-12 20:22:34 +00:00
drh
29cdbadf8a
Correctly deal with multi-row VALUES clauses that contain window functions.
...
FossilOrigin-Name: 26d991f214db143976e2593d3564b5003eb3539a2728d1a0ccae2a2accece76f
2019-12-07 13:42:47 +00:00
dan
fcc057db25
Fix a double-free that could occur when a component of a compound SELECT with an ORDER BY clause uses named window definitions.
...
FossilOrigin-Name: 92893b7980cbb0c6e26bc0b21390a717193205c9897fea5f26476462928897f9
2019-12-04 01:42:07 +00:00
dan
e59c562b3f
Fix a crash that could occur if a sub-select that uses both DISTINCT and window functions also used an ORDER BY that is the same as its select list.
...
FossilOrigin-Name: bcdd66c1691955c697f3d756c2b035acfe98f6aad72e90b0021bab6e9023b3ba
2019-11-22 10:14:01 +00:00
drh
8103a03607
Fix table-valued functions so that they will work as the right table
...
in a LEFT JOIN. Ticket [2ae0c599b735d59e]
FossilOrigin-Name: 2c35d3f67b67a53ead08b1c395e7ca8e5bf65f94a5a962a0562994a3c66c95d9
2019-11-15 00:52:13 +00:00
drh
46a31cdf6b
Make sure the WITH stack in the Parse object is disabled following an error.
...
FossilOrigin-Name: de6e6d6846d6a41c4821454dfdc042096234df753be08c5567b79fe535d9b6ea
2019-11-09 14:38:58 +00:00
drh
166bc383e2
Minor changes to help ensure the pointer returned by sqlite3VdbeGetOp() is
...
not used after it becomes invalid.
FossilOrigin-Name: 346bdd49fb93aa58e8bd14250974d8c0c32cc7e8317c8b12da1fa44db10d8a3a
2019-10-26 15:40:17 +00:00
drh
898c527eaf
When flipping ("commuting") a comparison operator, set the new EP_Commuted
...
bit rather than adding extra EP_Collate bits, to single later processing that
the order of precedence for COLLATE operators is inverted.
Fix for ticket [b47e3627ecaadbde]
FossilOrigin-Name: 90f7c477354d67d22d5eb0da22dac579f384ab44743fdc19887220e32203ebc2
2019-10-22 00:03:41 +00:00
drh
a0fe5fe54f
When Select-Trace is enabled (in debugging builds only) do not show the
...
result of Window function tree rewrites if there are no window functions.
FossilOrigin-Name: d1acf72ae1ea7484bb9c3a8630094f1a3a9597578c7b9d6e02fc0a4e3f59c57d
2019-10-12 23:38:00 +00:00
dan
3703edf110
Be sure to rewrite column references inside FILTER clauses and window frame definitions when flattening queries. Fix for [1079ad19].
...
FossilOrigin-Name: ccba7202b69d239724c3b589439c9c3b0e1bba237accfeb11c39d492522b8719
2019-10-10 15:17:09 +00:00
drh
5776ee5cf5
Omit the sqlite3IntTokens array constant for a code simplification.
...
FossilOrigin-Name: f907395ef5a2dc1d084b6a286af00de4c742cf12d4f347c21e1b757786508f57
2019-09-23 12:38:10 +00:00