drh
24846bc0bf
Fix an overzealous assert() statement discovered by OSSFuzz.
...
FossilOrigin-Name: d9c9fe9f5ad3fc9123ad29ebafcb7f40dcecd448fb7a928bb31bea8181d81ec1
2018-08-06 01:21:53 +00:00
drh
dda7e66d7d
Remove the column-cache from the code generator. The column-cache has been
...
a persistent source of bugs for years and with recent improvements
in the performance of OP_Column, it no longer provides a benefit. After
the column cache is removed, the binary is almost 2KB smaller and the
speed-check.sh performance test is over 3 million cycles faster.
FossilOrigin-Name: cdff3af7bedc5ebea04bd9b5e2112d3db451a475c18c9a9ebd45f6f3a89a43cb
2018-08-04 20:30:55 +00:00
drh
bb9c45b49a
Add test cases for the constant expression fix of the previous check-in.
...
FossilOrigin-Name: 95db5bd9fea86a10c9528dd24841e1370dfdc0bbb5c98b7cbd808a8bc59dd48f
2018-08-04 15:28:12 +00:00
drh
02ceed058a
Completely remove the column cache logic, which has been a persistent source
...
of bugs for many years. We recent enhancements to the performance of the
OP_Column opcode, the removing the column cache actually makes speed-check.sh
run faster. It also saves about 1,800 bytes of code space.
FossilOrigin-Name: 3f5f60cd7529330209027fdae8129cca420cec1050eae50a7750d0b715b56972
2018-08-03 23:04:16 +00:00
dan
a4b5fb55f3
Fix the handling of sub-queries with LIMIT clauses by the optimization
...
activated by compile-time symbol SQLITE_COUNTOFVIEW_OPTIMIZATION.
FossilOrigin-Name: 21235d9a41567897418aa12f7bd6dd8d6ee363147527e1d8fbca14fc83e0f2c9
2018-08-03 20:19:52 +00:00
drh
f559ed3400
Add a small cost penalty to sorting to bias the query planner in favor of
...
plans that do not require a final sorting pass.
FossilOrigin-Name: 85b9beb4605eb0cfe2ed063c2a1925186c9e37031f78c875e60a347cce891638
2018-07-28 21:01:55 +00:00
drh
07aded63f4
Do not allow a column reference that is converted into a constant by the
...
WHERE-clause constant propagation optimization to be moved to the init-time
constant expression list, as the table reference will not work there.
This fixes a problem found by OSSFuzz.
FossilOrigin-Name: d30b2a947313b146f29e2b53f0fd471409fda7938151241d3fb5863614f88999
2018-07-28 16:24:08 +00:00
drh
1fd4e7bb0c
Fix an assert() statement that was made obsolete by the constant
...
propagation enhancement. Problem discovered by OSSFuzz.
FossilOrigin-Name: e4b4737e348235e196a45e1b71876b82e0cc836e1c5c16ea5f9333b7509b59b8
2018-07-28 14:56:56 +00:00
drh
cf8e0861a2
When doing a DROP VIEW do not try to delete entries from the sqlite_stat1
...
table as there are none.
FossilOrigin-Name: 7efdba2bbc8547ee9292a1bbd1e61d38b40d7aabc0860ceba188bdec539f5114
2018-07-27 22:55:58 +00:00
drh
7de7602eb7
Add a test case demonstrating the collation problem with constant propagation.
...
FossilOrigin-Name: 50add839fd95665bd67a6ae5de8346fd09e83904bbcbad26fad280dff86d9e93
2018-07-26 23:54:19 +00:00
drh
24e1116e0f
Generalize the constant propagation optimization so that it applies on every
...
WHERE close, not just those that contain a subquery. This then demonstrates
that the current implementation is inadequate since it does not take into
account collating sequences.
FossilOrigin-Name: 57eb2abd5b270d65be5e0f138f0d46899fa6091df3ba20b0ea7ef04244a15d48
2018-07-26 23:47:11 +00:00
drh
660ee55663
Initial implementation of the WHERE-clause constant propagation optimization.
...
FossilOrigin-Name: 2fb82ad8ebb6434438c0d235b1239444fb08c8711cea2c5a9ed955fedd0acdec
2018-07-26 21:16:53 +00:00
drh
ba968dbfe7
Do not abort running queries due to a CREATE INDEX statement. Allow them
...
to run to completion before being reprepared. Fix for ticket
[c694113e50321afdf9].
FossilOrigin-Name: 2bd593332da0aade467e7a4ee89e966aa6302f37540a2c5e23671f98a6cb599c
2018-07-24 22:02:12 +00:00
mistachkin
8417863fe1
Another minor revision to the 'fulltestonly' set of tests.
...
FossilOrigin-Name: 61f8e2a4c6c146ffba498c8bb40f2b5627fdc14020057eab63b7e900bf88a9ed
2018-07-22 21:08:35 +00:00
mistachkin
1e8487db29
In the Win32 VFS, when truncating a file, unmap it first.
...
FossilOrigin-Name: 21510a66dce4d0843ccfe20f092a01f5a52563ef244a94f1d5d2563305cab925
2018-07-22 06:25:35 +00:00
mistachkin
9676e611b6
In 'resetdb.test', close a database prior to trying to delete it.
...
FossilOrigin-Name: 45137053a511b976f5447b0668e3f3a636785d242f44b110a1107898e847e95e
2018-07-21 23:15:55 +00:00
mistachkin
0fc2da3f79
When dropping a view, skip trying to delete from 'sqlite_stat*'.
...
FossilOrigin-Name: 2f5be3a2ddf469bd1b37b9e357545ce872b90c479a07094de2101d0a43ad70a4
2018-07-20 20:56:22 +00:00
drh
91d5866eb6
Enhanced detection of problems on the freelist and on overflow list in
...
PRAGMA integrity_check.
FossilOrigin-Name: 11e58f5b37d99848978007d834d187c262d904eb9d58924742e028d7cb324e64
2018-07-20 13:39:28 +00:00
dan
ea933f07b0
Experimental fix for resetting databases that have been deemed read-only due
...
to a corrupt "read-version" header field.
FossilOrigin-Name: e2394002d02754bb45d56e805df9bc5a2ef0d14e5d94262c1f8ab7643bc27c8f
2018-07-19 11:44:02 +00:00
drh
ea99a31c59
Add the SQLITE_FCNTL_DATA_VERSION file control
...
FossilOrigin-Name: a5087c5c87ad65f92e3bc96bbc84afb43faf10ab6b9ed3ba16304b5c60ad069f
2018-07-18 19:09:07 +00:00
dan
140a59874b
If an SQLITE_IOERR error is encountered as part of an atomic commit on an F2FS
...
file-system, retry the commit in legacy journal mode.
FossilOrigin-Name: 1c41250f67ac5de423b0426ef2ab8fe3303278a270225920033933ca9609592a
2018-07-14 20:25:13 +00:00
dan
e882551935
Add a test-control to disable the skip-scan optimization.
...
FossilOrigin-Name: 650a3fe03d61068e06f3097878a777ca8ed713a769444cdb3f8be7d1e19a0b83
2018-07-12 19:14:39 +00:00
dan
7490128240
Add a test case to check that SQLITE_DBCONFIG_RESET_DATABASE can be used with
...
wal mode databases even if there are active readers.
FossilOrigin-Name: 6145f5b3bacdee8f377892ac8b885941336c4cc543052f6373e21c1f99e1eca8
2018-07-12 11:28:42 +00:00
drh
222a384a06
On an UPSERT when the order of constraint checks is rearranged, make sure
...
that the affinity transformations on the inserted content occur before
any of the constraint checks. Fix for ticket [79cad5e4b2e219dd197242e9e5f4e].
FossilOrigin-Name: d120c45f3dc79f67afed0e44e5133569f784bc6792b15f5d79529deac2d13072
2018-07-11 13:34:24 +00:00
drh
fef37760da
Identify Select objects within a single statement using small sequential
...
integers rather than "0x%p". This is more readable and yields the same result
on successive runs.
FossilOrigin-Name: a7cdc5bc85e0edfcc38f920c2ce91599bcbfdb49522d88b08c64596546d13881
2018-07-10 19:48:35 +00:00
dan
fd908888d3
Modify tests in window3.test to be tolerant of rounding errors when comparing
...
floating point values.
FossilOrigin-Name: 7c26c443e7f6455ca7f11f640e42285b42d95c9ae5f2e19e9c066d6d9cdcceb2
2018-07-10 18:50:01 +00:00
dan
b556f26145
Fix a problem with using scalar sub-selects in window function queries.
...
FossilOrigin-Name: 687fe532c274265ca77451f97829743fcb8a714d0f6b1ceb9a147ab9babdc5b5
2018-07-10 17:26:12 +00:00
dan
77f3f40292
Avoid leaving view-definitions with an incomplete set of column names/types in
...
the in-memory schema if an OOM strikes while allocating the same.
FossilOrigin-Name: 1ddbb5372e7ea8407369b88698b3fb922b62dcac72be633a17bd0e41baa369f4
2018-07-09 18:55:44 +00:00
dan
e6fcd1d5de
Add a couple of OOM tests.
...
FossilOrigin-Name: 50de2a0d2d96b6b5b8de7ac6277d60859a8d9a56f6a792950734386bb9f10b79
2018-07-09 18:11:52 +00:00
dan
a1a7e112fe
Throw an error if the second argument passed to nth_value() is not a positive
...
integer.
FossilOrigin-Name: 1a06e57a0b4279fa580c7ff4f152645f005794aaf86eeabf694637b7da11f763
2018-07-09 13:31:18 +00:00
dan
f5e8e31399
Fix a bad assert() in window.c.
...
FossilOrigin-Name: fe8aaf0c806413965f50a03e34b5fdfaaa8b09dc0af73f41e830f7b664bd1ced
2018-07-09 06:51:36 +00:00
dan
d4fc49f735
Fix a problem with the handling of NULL values in the min() window function.
...
FossilOrigin-Name: b76f35b09235d44dc3d176377bbb9c18b7cdc9392800103ff53c54730a427a5c
2018-07-07 17:30:44 +00:00
drh
e4984a2bf4
Try to improve the error messages for misformed frame specifications in
...
window definitions.
FossilOrigin-Name: 927b95a0812787bcb3c28d1a0ea94717dc2cc60f6d480623f0c7cbce0c546fc9
2018-07-06 17:19:20 +00:00
dan
bfead59b3b
Also disallow non-constant expressions in "<expr> PRECEDING" or "<expr>
...
FOLLOWING" clauses.
FossilOrigin-Name: a6dffecc6b35c618cc5e5a06892765bdbec587dcd0ae8686c231a21516e38eab
2018-07-06 14:31:26 +00:00
dan
5d764ac9e6
Ensure an error is returned if the user specifies an unsupported frame type.
...
FossilOrigin-Name: 0f3f8fcde1a535bcf93e23a68d2411c21785d8c0cac1f9481a06e7225755cdbc
2018-07-06 14:15:49 +00:00
dan
287fa17b78
Prevent "UNBOUNDED FOLLOWING" from being used as the starting boundary of a
...
window-frame. And "UNBOUNDED PRECEDING" from being used as the ending
boundary.
FossilOrigin-Name: e51fdf66a24c27ba6491391fffcc88fc5ca2ae79cfc4ab769a149b19c394e308
2018-07-06 13:48:09 +00:00
dan
cf0343b699
Remove some bad assert() statements from the implementations of window
...
functions percent_rank() and cume_dist().
FossilOrigin-Name: 443f0c286f1659937fd61b4ef2de17d0d015369e5ff5249a9e0c3d0ee4925158
2018-07-06 13:25:02 +00:00
dan
e33f6e7c91
Return an error if DISTINCT is used with a window-function (.i.e.
...
"count(DISTINCT <expr>) OVER (...)".
FossilOrigin-Name: d59bcc8eea4fcf0ee3c2263d31ee42f9f26c28434d2f0045f2d3329f18791d1c
2018-07-06 07:42:42 +00:00
dan
6ea9a7282a
Update the recipe for resetting a database using
...
SQLITE_DBCONFIG_RESET_DATABASE.
FossilOrigin-Name: c43dd23fb00f7e0b6274de435d8e31f6a4cb74c3e86e8313a5098ff089e27574
2018-07-05 20:33:06 +00:00
drh
8be47a7e86
Get the json_group_array() and json_group_object() SQL functions working
...
as window functions.
FossilOrigin-Name: 916cdc83f5a45e0b6f61c52ff5fde70d54bcd0dfaa4a32f9ac709fe0ddbb480b
2018-07-05 20:05:29 +00:00
dan
7a606e1ab2
Return an error if a "RANGE" window-frame uses "<expr> PRECEDING" or "<expr>
...
FOLLOWING".
FossilOrigin-Name: 786c87ba4150509e141baab32c51e64bbd3ce323735e0f47d65ed54d14215bc4
2018-07-05 18:34:53 +00:00
dan
683b0fffee
Fix a problem in the xInverse method of window-function group_concat(1).
...
FossilOrigin-Name: 73391283101288251fe5d030ba12bcdabe8a781d41086afe3564c58c05d0fd5c
2018-07-05 18:19:29 +00:00
dan
b07db116e7
In wal mode, if a "BEGIN EXCLUSIVE" command (or any other command that
...
upgrades from no transaction directly to a write transaction) hits an
SQLITE_BUSY_SNAPSHOT error, change the error code to SQLITE_BUSY to indicate
to the caller that the condition may be transient.
FossilOrigin-Name: 221ff63e7902226ebf728bb7442727420636831163708f360724506ce9487ab6
2018-07-05 15:46:55 +00:00
dan
7fee0bfad2
Test that a race condition can cause a "BEGIN EXCLUSIVE" to return
...
SQLITE_BUSY_SNAPSHOT in wal mode.
FossilOrigin-Name: 5a12db75d1da65daa92413a6b5892309e9d9479bb3610764e1015abe5bf28dbe
2018-07-03 20:17:27 +00:00
dan
d736829e8b
Fix a problem in the xInverse callback for the built-in sum() window function.
...
FossilOrigin-Name: b6563647382634588ebe5c6a3c35c65a321dc1b3732c809d48ce46759b9dd80f
2018-07-02 17:45:59 +00:00
dan
f607bec749
Fix a segfault caused by having identical window functions in the select-list
...
and ORDER BY clause of a SELECT statement.
FossilOrigin-Name: 693b4350d741391226a33ab6a05eaad61e8ef1590176f01e8aed2a212e2d6419
2018-07-02 17:14:37 +00:00
dan
6b4b88208e
Fix a crash caused by a LIKE pattern that consists of a single escape
...
character.
FossilOrigin-Name: bb9bfc3a12dfb89b1c58f5551cdc89ab7b0fbe03f285f2ed86611786ed02ffd9
2018-07-02 15:03:50 +00:00
dan
7262ca94cb
Fix a segfault caused by invoking a regular aggregate as a window-function.
...
And some problems with count(*) when used as a window-function.
FossilOrigin-Name: 4f3c8a82fd1c5b14d84f2301e34cfc8d52fe4b3a60840c39e895c11f2da529d9
2018-07-02 12:07:32 +00:00
dan
6e2210e0a1
Have the tokenizer handle fallback for tokens "OVER" and "FILTER" in the same
...
way as it does for "WINDOW".
FossilOrigin-Name: 12d819e1c17d8036900352b0989c4bfcbc34193c3735bb9af7ab051f0f129d3d
2018-06-30 18:54:56 +00:00
dan
59ff42516c
Instead of using a lemon %fallback directive, have the tokenizer try to figure
...
out whether an instance of "WINDOW" should be TK_WINDOW or TK_ID.
FossilOrigin-Name: 022079cb0d67be5ac0a50dd9a4d41ee55ce8df681ecd0a544170d75fc8649978
2018-06-29 17:44:52 +00:00