]>
git.ipfire.org Git - thirdparty/sqlite.git/log
drh [Tue, 10 Jul 2018 07:39:23 +0000 (07:39 +0000)]
Fix a harmless warning about comment formatting in the previous
check-in. Simplify the ORDER BY dereferencing logic so that it avoids
unreachable branches.
FossilOrigin-Name:
0f6ec605e131ab3d53b9df32af0a3207146a9abbd22dcabd6ef050b92f96735d
drh [Tue, 10 Jul 2018 07:25:42 +0000 (07:25 +0000)]
Assert that if two functions compare equal in every other way, then they
must both have OVER clauses, or neither has an OVER clause. Use this fact
to simplify expression comparison.
FossilOrigin-Name:
52559ad58ce412af40f1f34e80bfe9fadc6a93f3ca0cfaf69f94d615bbb99831
drh [Tue, 10 Jul 2018 06:47:07 +0000 (06:47 +0000)]
Enhance the sqlite3ExprCompare() routine so that it knows to compare the
OVER clause of window functions.
FossilOrigin-Name:
0a7649afebc9349bf44a0e3588e81ab595ea85be1c70de08859ea76a7b271f62
drh [Tue, 10 Jul 2018 06:32:53 +0000 (06:32 +0000)]
Enhance the TreeView mechanism so that it shows the window function
data structures as part of the abstract syntax tree.
FossilOrigin-Name:
a2c0e1bec0d8a6f982572c4c5a8166319b8db0fe586057f7900f0ab72af6554e
drh [Tue, 10 Jul 2018 05:11:03 +0000 (05:11 +0000)]
drh [Mon, 9 Jul 2018 22:49:01 +0000 (22:49 +0000)]
Fixes for various harmless compiler warnings.
FossilOrigin-Name:
5023b1b85b883a716a5da673740b6effe214ee0490f4ca45f161bb8b04784366
drh [Mon, 9 Jul 2018 20:58:43 +0000 (20:58 +0000)]
Add a comment to restriction (6) of the push-down optimization. No changes
to code.
FossilOrigin-Name:
0c8a2f257fb71b2b053c4a2028db063e92dd9ff585a17fa22a70f9223fb11e75
drh [Mon, 9 Jul 2018 20:41:39 +0000 (20:41 +0000)]
Add an ALWAYS() around a branch in sqlite3BtreeSkipNext() that we believe
must always be true.
FossilOrigin-Name:
12be361a532df0c22a7e4d97658b82a69b1a205d4cca8d092b9e6b7790c1ee40
dan [Mon, 9 Jul 2018 18:55:44 +0000 (18:55 +0000)]
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
dan [Mon, 9 Jul 2018 18:11:52 +0000 (18:11 +0000)]
drh [Mon, 9 Jul 2018 17:33:24 +0000 (17:33 +0000)]
Remove redundant branches in window function processing.
FossilOrigin-Name:
8fdaf3f37e5ddac9b7337a50f32f5d2bcdd64780797f08cfd3fccfa95819edfe
drh [Mon, 9 Jul 2018 16:24:00 +0000 (16:24 +0000)]
Simplification to the grammar rules for window functions. Fix a memory
leak that can follow an OOM while parsing a comma-separated list of
window definitions.
FossilOrigin-Name:
a568f9c9db594f3b194c6e870305c9d6f2392ce6bc8ac00e9688883e97560fff
dan [Mon, 9 Jul 2018 13:31:18 +0000 (13:31 +0000)]
Throw an error if the second argument passed to nth_value() is not a positive
integer.
FossilOrigin-Name:
1a06e57a0b4279fa580c7ff4f152645f005794aaf86eeabf694637b7da11f763
dan [Mon, 9 Jul 2018 06:51:36 +0000 (06:51 +0000)]
drh [Mon, 9 Jul 2018 02:37:12 +0000 (02:37 +0000)]
Simplification to the logic that detects misuse of the application-defined
function creation interfaces.
FossilOrigin-Name:
8f21d778450e1e5d2bc7f109d614fe018eb3d228b0bfc91cd3c6a5204415998f
drh [Mon, 9 Jul 2018 02:02:09 +0000 (02:02 +0000)]
During WITHOUT ROWID table creation, if the sqlite3CreateTable() call fails
due to an authorizer denying the INSERT into the sqlite_master table, then
detect this fact and abort the CREATE TABLE early, to avoid an assertion
fault.
FossilOrigin-Name:
164b1641e346994f0b9f91261c3cbc86b68e1c96cc401b78e48e186e26916abe
drh [Sun, 8 Jul 2018 01:02:26 +0000 (01:02 +0000)]
Identify specific FuncDef objects for window functions using the pointer to
the function name (FuncDef.zName) rather than the pointer to the xStep method.
This allows xStep method pointer to be replaced with a single noopStepFunc()
procedure, and thus save having lots of different no-op step functions.
FossilOrigin-Name:
410e13b0e0fb6e040808f076014d55ecf2b541c5439b4fd53c5bdcb8d800098e
drh [Sat, 7 Jul 2018 20:55:16 +0000 (20:55 +0000)]
Simplifications to the implementation of the sum() SQL function.
FossilOrigin-Name:
a8b13002378fc4ef0b41c367b44b67bf2b28b6624303c087a3c6d657b5bfe32e
dan [Sat, 7 Jul 2018 20:26:30 +0000 (20:26 +0000)]
Fix another problem with reusing LSM cursors for range scans.
FossilOrigin-Name:
ae3fc7652f27ba0a86f4c26f64c2e148d9496a5edb7f54dc9980edd91c326e4f
drh [Sat, 7 Jul 2018 20:23:46 +0000 (20:23 +0000)]
Fix the JSON extension so that it can be compiled separately from the
amalgamation.
FossilOrigin-Name:
4b8cfe7bfe5f049eb4607fd480429fcd2060e691891d8bffc9917f13fa373988
dan [Sat, 7 Jul 2018 20:13:32 +0000 (20:13 +0000)]
Fix an LSM problem caused by using the same cursor for equality and range
scans.
FossilOrigin-Name:
f05bead371d41ca5beef1f82e4c920c90e2eb9cd9fd537a5c91973bf9bd4eedb
drh [Sat, 7 Jul 2018 19:47:21 +0000 (19:47 +0000)]
Add ALWAYS() macros on results of sqlite3_aggregate_context() calls in
xInverse() implements, since they can never fail.
FossilOrigin-Name:
fdef2a921d451c66ca535021d08af3ec1ab53283da2d2979378a799fd8731ef9
drh [Sat, 7 Jul 2018 19:36:04 +0000 (19:36 +0000)]
Add an assert() to help verify that OP_AggInverse is never called on an
accumulator that has not previously been processed by OP_AggStep.
FossilOrigin-Name:
4213889103fa37f3f11802aea81989522048a0752820603dd556f612128ddfee
dan [Sat, 7 Jul 2018 17:38:49 +0000 (17:38 +0000)]
Add missing VdbeCoverage() macro to window.c.
FossilOrigin-Name:
63f4d306ba19f6ba900a7d7480ccaa3d1e4a204e7c82bf5eb2e4bd849ef3a22f
dan [Sat, 7 Jul 2018 17:30:44 +0000 (17:30 +0000)]
Fix a problem with the handling of NULL values in the min() window function.
FossilOrigin-Name:
b76f35b09235d44dc3d176377bbb9c18b7cdc9392800103ff53c54730a427a5c
drh [Fri, 6 Jul 2018 17:19:20 +0000 (17:19 +0000)]
Try to improve the error messages for misformed frame specifications in
window definitions.
FossilOrigin-Name:
927b95a0812787bcb3c28d1a0ea94717dc2cc60f6d480623f0c7cbce0c546fc9
dan [Fri, 6 Jul 2018 14:31:26 +0000 (14:31 +0000)]
Also disallow non-constant expressions in "<expr> PRECEDING" or "<expr>
FOLLOWING" clauses.
FossilOrigin-Name:
a6dffecc6b35c618cc5e5a06892765bdbec587dcd0ae8686c231a21516e38eab
dan [Fri, 6 Jul 2018 14:15:49 +0000 (14:15 +0000)]
Ensure an error is returned if the user specifies an unsupported frame type.
FossilOrigin-Name:
0f3f8fcde1a535bcf93e23a68d2411c21785d8c0cac1f9481a06e7225755cdbc
dan [Fri, 6 Jul 2018 13:48:09 +0000 (13:48 +0000)]
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
dan [Fri, 6 Jul 2018 13:25:02 +0000 (13:25 +0000)]
Remove some bad assert() statements from the implementations of window
functions percent_rank() and cume_dist().
FossilOrigin-Name:
443f0c286f1659937fd61b4ef2de17d0d015369e5ff5249a9e0c3d0ee4925158
dan [Fri, 6 Jul 2018 07:42:42 +0000 (07:42 +0000)]
Return an error if DISTINCT is used with a window-function (.i.e.
"count(DISTINCT <expr>) OVER (...)".
FossilOrigin-Name:
d59bcc8eea4fcf0ee3c2263d31ee42f9f26c28434d2f0045f2d3329f18791d1c
drh [Thu, 5 Jul 2018 21:22:57 +0000 (21:22 +0000)]
Use separate opcodes, OP_AggValue and OP_AggInverse, for the new callbacks
associated with Window Functions, for improved readability of EXPLAIN
output.
FossilOrigin-Name:
fa6538050938ffeb042fbee31512514d6d3ace514b2a3dfd8365bbeb13f35a78
dan [Thu, 5 Jul 2018 20:33:06 +0000 (20:33 +0000)]
Update the recipe for resetting a database using
SQLITE_DBCONFIG_RESET_DATABASE.
FossilOrigin-Name:
c43dd23fb00f7e0b6274de435d8e31f6a4cb74c3e86e8313a5098ff089e27574
drh [Thu, 5 Jul 2018 20:05:29 +0000 (20:05 +0000)]
Get the json_group_array() and json_group_object() SQL functions working
as window functions.
FossilOrigin-Name:
916cdc83f5a45e0b6f61c52ff5fde70d54bcd0dfaa4a32f9ac709fe0ddbb480b
dan [Thu, 5 Jul 2018 18:34:53 +0000 (18:34 +0000)]
Return an error if a "RANGE" window-frame uses "<expr> PRECEDING" or "<expr>
FOLLOWING".
FossilOrigin-Name:
786c87ba4150509e141baab32c51e64bbd3ce323735e0f47d65ed54d14215bc4
dan [Thu, 5 Jul 2018 18:19:29 +0000 (18:19 +0000)]
Fix a problem in the xInverse method of window-function group_concat(1).
FossilOrigin-Name:
73391283101288251fe5d030ba12bcdabe8a781d41086afe3564c58c05d0fd5c
drh [Thu, 5 Jul 2018 17:35:46 +0000 (17:35 +0000)]
Fix the .dump command in the command-line shell so that it does not show
extraneous SELECT statements when ".echo on" is enabled.
FossilOrigin-Name:
11763cac33fa809bcf0294d1a381394fcf860b020b51fff81217ee709ba99272
dan [Thu, 5 Jul 2018 17:16:55 +0000 (17:16 +0000)]
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:
e6108047cb136119d8ed19af010a669ed9750b4e7f991ccabc9e3d15774eda31
dan [Thu, 5 Jul 2018 17:03:43 +0000 (17:03 +0000)]
Fix a typo inside an assert() statement introduced by the previous commit.
FossilOrigin-Name:
e3357728472d5e57db6d7eef0ce008bdee071b5b07b60e242f383440eebe85bd
dan [Thu, 5 Jul 2018 15:46:55 +0000 (15:46 +0000)]
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
dan [Tue, 3 Jul 2018 20:17:27 +0000 (20:17 +0000)]
Test that a race condition can cause a "BEGIN EXCLUSIVE" to return
SQLITE_BUSY_SNAPSHOT in wal mode.
FossilOrigin-Name:
5a12db75d1da65daa92413a6b5892309e9d9479bb3610764e1015abe5bf28dbe
dan [Mon, 2 Jul 2018 17:45:59 +0000 (17:45 +0000)]
Fix a problem in the xInverse callback for the built-in sum() window function.
FossilOrigin-Name:
b6563647382634588ebe5c6a3c35c65a321dc1b3732c809d48ce46759b9dd80f
dan [Mon, 2 Jul 2018 17:14:37 +0000 (17:14 +0000)]
Fix a segfault caused by having identical window functions in the select-list
and ORDER BY clause of a SELECT statement.
FossilOrigin-Name:
693b4350d741391226a33ab6a05eaad61e8ef1590176f01e8aed2a212e2d6419
dan [Mon, 2 Jul 2018 15:03:50 +0000 (15:03 +0000)]
Fix a crash caused by a LIKE pattern that consists of a single escape
character.
FossilOrigin-Name:
bb9bfc3a12dfb89b1c58f5551cdc89ab7b0fbe03f285f2ed86611786ed02ffd9
dan [Mon, 2 Jul 2018 12:07:32 +0000 (12:07 +0000)]
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
drh [Sun, 1 Jul 2018 16:05:40 +0000 (16:05 +0000)]
Quick patch to the Lemon parser template to avoid an array overread reported
by OSSFuzz. A proper fix involves enhancements to the table generators in
Lemon to make the overread impossible. That fix will take longer to
implement. The current check-in is a stop-gap.
FossilOrigin-Name:
3f6730be4cb712a28401be6d96e56ccb3f2e98dd8961b477befec3f363715178
dan [Sat, 30 Jun 2018 20:26:52 +0000 (20:26 +0000)]
Avoid a warning in fts5.c due to not using generated routine
sqlite3Fts5ParserFallback().
FossilOrigin-Name:
65ff5144a55f1ba2b2ef812a0c988fa2522441177038b8d686eb1d0c558c75d5
dan [Sat, 30 Jun 2018 20:15:58 +0000 (20:15 +0000)]
Merge implementation of SQL window functions from the exp-window-functions
into trunk.
FossilOrigin-Name:
17198a1206e2fbc9e555881468e8c6980b00e25b5b78a6798a6264ca7384f1ca
dan [Sat, 30 Jun 2018 20:00:35 +0000 (20:00 +0000)]
Fix a minor problem in the code for determining whether or not an SQL
statement is SQLITE_TOOBIG.
FossilOrigin-Name:
763e6c9e2bbc0a6ef8d8361069bf7160790c9064f24f0e336b7ed85668735da9
dan [Sat, 30 Jun 2018 19:12:36 +0000 (19:12 +0000)]
Merge all changes from the weak-fallback branch except those related to the
weak-fallback feature itself.
FossilOrigin-Name:
aad718fb1afacf1c921966796ab1e149207c31b16409c5672f0371f4fb9d6565
dan [Sat, 30 Jun 2018 18:54:56 +0000 (18:54 +0000)]
Have the tokenizer handle fallback for tokens "OVER" and "FILTER" in the same
way as it does for "WINDOW".
FossilOrigin-Name:
12d819e1c17d8036900352b0989c4bfcbc34193c3735bb9af7ab051f0f129d3d
dan [Fri, 29 Jun 2018 20:43:33 +0000 (20:43 +0000)]
Further performance related tweaks for sqlite3RunParser().
FossilOrigin-Name:
5eb4776598f5bba7ef21a2c58c03105544da73d642d7ffc146f84eff1993d71e
dan [Fri, 29 Jun 2018 20:21:24 +0000 (20:21 +0000)]
dan [Fri, 29 Jun 2018 19:54:51 +0000 (19:54 +0000)]
Improve on the previous checkin. Still a bit slow.
FossilOrigin-Name:
c1fb41aa7b7207b81ee1d5d32da3380b36d694033b87a2873981e0c6437ba956
dan [Fri, 29 Jun 2018 17:44:52 +0000 (17:44 +0000)]
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
dan [Thu, 28 Jun 2018 20:05:04 +0000 (20:05 +0000)]
Modifications to parse.y to better support backwards compatibility for the
"window" keyword.
FossilOrigin-Name:
7c4b879bdb10f30260f0fb28fcb559ab0949865d10f4ff2cf13834a326198998
drh [Thu, 28 Jun 2018 03:38:49 +0000 (03:38 +0000)]
Introduce the concept of "weak fallback" in the parser. A weak fallback
only occurs if a syntax error would result otherwise.
FossilOrigin-Name:
c41d7079fb63831bd2f009b64cbf5a423e8119e6b841bfd9bd5a2d85fba3b142
dan [Wed, 27 Jun 2018 20:24:59 +0000 (20:24 +0000)]
Add missing VdbeCoverage() and VdbeCoverageNeverTaken() macros to window.c.
FossilOrigin-Name:
4383cb68a1241768ddb3f180f8cbb9ea1638f8806210b10aac1384b8a7ecdca2
dan [Wed, 27 Jun 2018 19:48:50 +0000 (19:48 +0000)]
Avoid redundant ORDER BY operations when rewriting SELECT statements that
contain window functions.
FossilOrigin-Name:
336de43a47e206fe7629072e5b8c80d4ede17ead8ef4dcf5d8da6833ff22d2f9
dan [Tue, 26 Jun 2018 20:19:44 +0000 (20:19 +0000)]
dan [Mon, 25 Jun 2018 20:34:28 +0000 (20:34 +0000)]
Add documentation comment for sqlite3_create_window_function(). And further
tests.
FossilOrigin-Name:
3f2705b93368f7b0dfd2e03387c3d0b55eddb04940ec83e226e420d8ab10c77f
dan [Mon, 25 Jun 2018 11:42:08 +0000 (11:42 +0000)]
Fix another problem that could cause a crash when a window function was used
in a view.
FossilOrigin-Name:
e954145a3addf60247954b9161473cd02ae2400f469840523093e25e23fbc54d
dan [Sat, 23 Jun 2018 19:29:56 +0000 (19:29 +0000)]
Fix problems with using window-functions in correlated sub-queries.
FossilOrigin-Name:
3e23cfc8133342a4de6813afdc33d726f06d625424b16d0999fb22be51bf8913
dan [Sat, 23 Jun 2018 16:26:20 +0000 (16:26 +0000)]
Fix a problem with using LIMIT in window-function queries.
FossilOrigin-Name:
c1abd2dda4154cb573bdf627cdef794d3697f874c3b70357aaf5e4ed95ad1d5c
dan [Sat, 23 Jun 2018 07:59:39 +0000 (07:59 +0000)]
Fix a problem with using a window-function SELECT as a FROM clause sub-query
in some circumstances.
FossilOrigin-Name:
11d733396f75ef1f206cd6f35630ff176484279861772918b9ea69412c13c62d
dan [Fri, 22 Jun 2018 20:51:35 +0000 (20:51 +0000)]
Omit all window-function related code when building with SQLITE_OMIT_WINDOWFUNC.
FossilOrigin-Name:
5f04b016467342b5a796bf702ed25b621eb86f2961c1e703d276c93f2cb6aa89
dan [Fri, 22 Jun 2018 17:57:10 +0000 (17:57 +0000)]
drh [Thu, 21 Jun 2018 23:53:54 +0000 (23:53 +0000)]
Improved context for error_log message coming from sqlite3_prepare().
FossilOrigin-Name:
fea7ade649ae72303078782f7bc510e0a17f082ffde10e769f1aeb1cf37b5554
dan [Thu, 21 Jun 2018 19:20:39 +0000 (19:20 +0000)]
Fix a problem with handling single row partitions in the percent_rank() window
function.
FossilOrigin-Name:
b84fbf16eac718c151731e2b2dcc73f2f2a144e3670f8566a30793f1e4e6a3ec
dan [Wed, 20 Jun 2018 09:23:49 +0000 (09:23 +0000)]
Add tests to improve coverage of code in window.c. Fix a problem with "SELECT
row_number() OVER ()".
FossilOrigin-Name:
f41b6b7317e2b5ac5721a3adff49f298ded29f9e0f887af98faeb0cb7e865ab6
dan [Tue, 19 Jun 2018 19:15:25 +0000 (19:15 +0000)]
Merge latest trunk changes with this branch.
FossilOrigin-Name:
6ad0e64b465959c50d4c895c053b15ee7efed11b6427604d2eab88635d9f7319
dan [Tue, 19 Jun 2018 18:11:05 +0000 (18:11 +0000)]
Fix a problem caused by a sub-query containing a window function in the FROM
clause of a query that itself uses a window function.
FossilOrigin-Name:
f4b1b6f85b53d72e735a1382f7c3de75af405a7878dd8cdcb10394e859ea3d69
dan [Tue, 19 Jun 2018 17:13:11 +0000 (17:13 +0000)]
Fix a problem with using min() or max() as a window function.
FossilOrigin-Name:
801074ce63d3f4825cc9fa508c42629a9f74e7f9e35c5f238343bb1cff4fbae1
drh [Tue, 19 Jun 2018 11:15:19 +0000 (11:15 +0000)]
Minor change to the input grammar to make the parser tables slightly smaller.
FossilOrigin-Name:
320fa69e6aa2a7d67f6444d6c13de9893e27b85c36a933b06da113d753b6aafc
dan [Mon, 18 Jun 2018 20:34:43 +0000 (20:34 +0000)]
Fix problems with using window functions in CREATE VIEW statements.
FossilOrigin-Name:
943bccd2a6bd4cf3e0534c1fa46885bfa2ba7b780ddcdff9f1ea4cbb3f04e786
dan [Mon, 18 Jun 2018 20:08:08 +0000 (20:08 +0000)]
Add test case for the fix in the previous commit.
FossilOrigin-Name:
39434262d5cf1af197ce0abb1f1ee84ee0797823e290a493c5bf8376fbe287a6
mistachkin [Mon, 18 Jun 2018 19:09:30 +0000 (19:09 +0000)]
dan [Mon, 18 Jun 2018 17:36:41 +0000 (17:36 +0000)]
Ensure that all four callbacks are provided when registering a window function
(otherwise SQLITE_MISUSE is returned).
FossilOrigin-Name:
5720dcd8b111b1f8712c8fb4b441ccb129e838db8c26a6e9e0f095dc6a851f6b
dan [Mon, 18 Jun 2018 16:55:22 +0000 (16:55 +0000)]
Add new API function sqlite3_create_window_function(), for creating new
aggregate window functions.
FossilOrigin-Name:
da03fb4318fd2613ec5c5b109a3974ac1120c19ed16bed4ca85bbdc4b35c998c
dan [Fri, 15 Jun 2018 20:46:12 +0000 (20:46 +0000)]
dan [Fri, 15 Jun 2018 19:01:35 +0000 (19:01 +0000)]
Fix another problem in lead()/lag(). And some errors that could occur
following OOM faults.
FossilOrigin-Name:
fadd4dc119d8df0d871f4d839b7a11070e2ffb8927e84b3e7a94f34196db3de3
dan [Fri, 15 Jun 2018 16:10:44 +0000 (16:10 +0000)]
Fix a bug in the lead() and lag() window functions causing them to fail when
used in queries featuring multiple window functions.
FossilOrigin-Name:
3839fb18f917e4f705821198d624b19d84eb07f1ee29ad23314ab7cec6bf6a2b
dan [Thu, 14 Jun 2018 20:52:08 +0000 (20:52 +0000)]
Fix a problem with handling of statements containing two or more different
windows.
FossilOrigin-Name:
567e09ef2a8cd84a2481117e52595bed0f3b588745a9e441aae0f87680f3a2e8
dan [Thu, 14 Jun 2018 19:06:36 +0000 (19:06 +0000)]
Fix problem with window functions min() and max() when used with a PARTITION
clause and a frame starting point other than "UNBOUNDED PRECEDING".
FossilOrigin-Name:
43eb1e75a4d7ac0973ed8589bbaf379c24cdc8eacc4e613610d2d4c24d385dc1
dan [Thu, 14 Jun 2018 14:30:51 +0000 (14:30 +0000)]
Merge latest trunk changes into this branch.
FossilOrigin-Name:
5cf5f1808a51f9c2cfc98dd49b4f1ce860b53e935287f89868ce2fdbace8eb06
dan [Thu, 14 Jun 2018 14:27:05 +0000 (14:27 +0000)]
Improve comments and code legibility in new file window.c.
FossilOrigin-Name:
bb915854d435bdd78f141d70e23527e97922ec176acd3ed8060c78dffc96bab8
dan [Wed, 13 Jun 2018 20:29:38 +0000 (20:29 +0000)]
Fix problems with "RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING" window
frames.
FossilOrigin-Name:
c34f31dbd79891249ee9485e91f6ea558ee1db62e04fb0fff2c051612b8fa5e7
drh [Wed, 13 Jun 2018 17:19:20 +0000 (17:19 +0000)]
Output infinity as 1e999 in the ".dump" command of the command-line shell.
FossilOrigin-Name:
ee431d55eba618cfba414c3946b3162bc205a70dd4e43d74a7623be332b94c92
drh [Wed, 13 Jun 2018 16:52:38 +0000 (16:52 +0000)]
Pad out the sqlite3_value structure to be a multiple of 8 bytes.
FossilOrigin-Name:
f76dc33bde4b2180b935d1261492d9535772ed37e54489c1a33e9f11c7c90433
dan [Wed, 13 Jun 2018 16:08:22 +0000 (16:08 +0000)]
dan [Wed, 13 Jun 2018 11:41:54 +0000 (11:41 +0000)]
Unless SQLITE_OMIT_AUTOINIT is defined, allow sqlite3_vfs_unregister() to be called before sqlite3_initialize().
FossilOrigin-Name:
ab6c1ae46d992f91ce0995274f48d545eb02ba92544aee89b188f2fc92b66f2a
dan [Wed, 13 Jun 2018 11:11:13 +0000 (11:11 +0000)]
Check that malloc() has not already failed when invoking the xUpdate() method
of a virtual table implementation. This fixes an assert() failure in FTS5 that
could occur following an OOM condition.
FossilOrigin-Name:
e9a7e4d58f3716991309ca0e3f080717e473c7c231685954aceee36172f19cf2
drh [Wed, 13 Jun 2018 02:20:34 +0000 (02:20 +0000)]
Add the unused SQLITE_CANTOPEN_DIRTYWAL result code. This code was used
in some historical versions on the apple-osx branch but was removed
by check-in [
27e20d699872b2b8 ]. Restore it so that old code that actually
references that result code will still compile.
FossilOrigin-Name:
9f40383eed936a6921ef8dc94775eb55d03a761f36eda7be1b9cdd0a0d30fa80
dan [Tue, 12 Jun 2018 20:53:38 +0000 (20:53 +0000)]
Fix another issue to do with window-functions in aggregate queries.
FossilOrigin-Name:
6413e38a174044c28fa9b8b937e6c972d144547a246e6f2882e782538300d042
drh [Tue, 12 Jun 2018 19:35:51 +0000 (19:35 +0000)]
Documentation update: clarify that sqlite3_errcode() and related interfaces
do not themselves modify the error code.
FossilOrigin-Name:
858fc52b237702b5e0381eebf5c158bffd7371ff0053a8583b8c175f8f691c82
drh [Tue, 12 Jun 2018 19:22:30 +0000 (19:22 +0000)]
Documentation updates: clarify the behavior of sqlite3_column and
sqlite3_value interfaces following an OOM error.
FossilOrigin-Name:
428c581e4bed1d140cfb670633c9c61b36be7bb30a862d2e1ae7eaee26dccb4f
dan [Tue, 12 Jun 2018 18:40:17 +0000 (18:40 +0000)]
Fix some problems with using window-functions in aggregate queries.
FossilOrigin-Name:
fe7081e0952950f577234fcbb58f3c1efa4579267654fd2f713dc4804e470e7e
drh [Tue, 12 Jun 2018 13:52:23 +0000 (13:52 +0000)]
Improvements to SCopy correctness tracking when SQLITE_DEBUG is enabled.
FossilOrigin-Name:
b2973f2357a2c5e22e0d612c970adbc6d51cbc5e4ff7ac6d2b678722e553e8ec
drh [Tue, 12 Jun 2018 13:16:57 +0000 (13:16 +0000)]
drh [Mon, 11 Jun 2018 21:33:08 +0000 (21:33 +0000)]
Improvements to the --enable and --disable options for the
amalgamation tarball.
FossilOrigin-Name:
02e337e0808947c7ef376b5a300cd3c461f1a368c9fe7ffd7ca5744f102641c2