]>
git.ipfire.org Git - thirdparty/sqlite.git/log
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
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
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
dan [Mon, 11 Jun 2018 20:50:25 +0000 (20:50 +0000)]
Clarify the relationship between a Window object and its associated Expr.
FossilOrigin-Name:
0cd55e98a478740032f5569ddc00fa5b0e063e90db6e00ac7598c9b7c2fffeee
dan [Mon, 11 Jun 2018 18:16:51 +0000 (18:16 +0000)]
Fix handling of window frames containing negative number of rows. e.g. "ROWS x
PRECEDING AND y PRECEDING" where (x<y).
FossilOrigin-Name:
b6d9c7eda853420ae46a05bd432711e8bf9ebaa448c7d90ccfc0bcc338a87706
dan [Mon, 11 Jun 2018 11:19:35 +0000 (11:19 +0000)]
dan [Sun, 10 Jun 2018 07:42:35 +0000 (07:42 +0000)]
Update Makefile.msc to include window.c in the build.
FossilOrigin-Name:
16db73842ade5eb0fe02f257b91d1c7b41d830d3f17f8638b8fbaed309d9a852
dan [Sat, 9 Jun 2018 18:09:44 +0000 (18:09 +0000)]
Merge recent trunk changes with this branch.
FossilOrigin-Name:
c71f23590c25b4cecd27722e6c0fc8e3bf320d399c7d9398b7016dd5cf5b05eb
dan [Sat, 9 Jun 2018 17:58:51 +0000 (17:58 +0000)]
Update the amalgamation build script to include window.c.
FossilOrigin-Name:
21d2f4a62eceab0de0b4669bf3e81eb71512211ed710ce0eb525695fb7309d6b
dan [Sat, 9 Jun 2018 17:43:45 +0000 (17:43 +0000)]
Add support for FILTER clause on aggregate window functions.
FossilOrigin-Name:
ceaf798ea09184bc0e7d3dcf3ad4d909d2e4e7018754a8417a813f33010140a7
drh [Sat, 9 Jun 2018 16:49:00 +0000 (16:49 +0000)]
Slightly smaller and faster code by encapsulating wal-index hash table
location information in a separate WalHashLoc object rather than passing
around the various elements as separate variables.
FossilOrigin-Name:
538a365b7a32ab7fa84f59d7556242cfb59b76d287b6417eb3a823197a354e8e
drh [Sat, 9 Jun 2018 14:13:46 +0000 (14:13 +0000)]
Improved comments an presentation for the recent IN operator decision
improvement.
FossilOrigin-Name:
31e480f68dfd887cfd9114f9f9fec53d751d3ecc27e36f55c0166b51b2fbb08c
drh [Sat, 9 Jun 2018 02:49:11 +0000 (02:49 +0000)]
Performance improvement to sqlite3WhereExprUsage().
FossilOrigin-Name:
fd0934139076848f2f2edfd3d74d54608531031a05a60ca6ac1d7016dcd538df
drh [Sat, 9 Jun 2018 01:12:08 +0000 (01:12 +0000)]
Compute the bitmask of indexed columns for each index once when the Index
objecct is constructed, instead of recomputing it every time it is needed.
FossilOrigin-Name:
d735872ec383bbd220b08c61d25db9ff3675d2542b9e7867e7d6323a12e0cc23
drh [Sat, 9 Jun 2018 00:09:58 +0000 (00:09 +0000)]
Avoid invoking the whereLoopAddOr() routine in the query planner if there
are no OR operators in the WHERE clause, thus speeding up query planning
slightly.
FossilOrigin-Name:
292724ffc4bfca435fff309383d488ffdbe1e314e5eb26da21cf2f621b64bce5
drh [Fri, 8 Jun 2018 23:23:53 +0000 (23:23 +0000)]
When the query planner has the opportunity to use an IN operater constraint
on a term of an index other than the left-most term, use the estimated number
of elements on the right-hand side of the IN operator to determine if makes
sense to use the IN operator with index looks, or to just do a scan over the
range of the table identified by the index terms to the left. Only do this
if sqlite_stat1 measurements are available as otherwise the performance
estimates will not be accurate enough to discern the best plan. Bias the
decision slightly in favor of using index lookups on each element of the IN
operator.
FossilOrigin-Name:
2cbbabdf5ef624d809fbb40d2d312a29e0b5f02756fc0dbf6985fc8b0c8d1ade
drh [Fri, 8 Jun 2018 21:21:01 +0000 (21:21 +0000)]
Only choose to scan an IN operator rather than use an index if we have
real STAT1 data to suggest it is advantageous.
FossilOrigin-Name:
30e874661dcc1a2ecb40df2ef74582151d85bb36c754a38548829a3b6285f18d
dan [Fri, 8 Jun 2018 20:58:27 +0000 (20:58 +0000)]
drh [Fri, 8 Jun 2018 19:54:07 +0000 (19:54 +0000)]
Merge the btreeNext() assertion bug fix from trunk.
FossilOrigin-Name:
11bd66e09035039fbfc4c5631196962dd3f2e6634f5123a7b2fec17aeaaab07b
drh [Fri, 8 Jun 2018 19:13:57 +0000 (19:13 +0000)]
Fix an assert() that can be false for a corrupt database and a strange query
that uses a recursive SQL function to delete content from a corrupt database
file while it is being queried.
FossilOrigin-Name:
99057383acc8f92093530e216c621d40386a06fe98131ff0af6df524d80a6410
drh [Fri, 8 Jun 2018 18:22:10 +0000 (18:22 +0000)]
Consider doing a partial table scan to fulfill an IN operator rather
than using an index. Try to pick the plan with the lowest cost.
FossilOrigin-Name:
1fa40a78fef4516c39b217bff67efe7e7d2077cca00aae0ef5c2c9cff94f008b
dan [Fri, 8 Jun 2018 16:11:55 +0000 (16:11 +0000)]
Do not flatten sub-queries that contain window functions.
FossilOrigin-Name:
236cb75bd1f0d5eb86aa5f52d8d548e7263c34633833dcea9dfc934f142113b8
dan [Fri, 8 Jun 2018 11:45:28 +0000 (11:45 +0000)]
Fixes to allow group_concat() to be used as a window function.
FossilOrigin-Name:
89bbc9ba8f66853a7530453f146c9df1baacd8558468016cefa7602911f7578a
dan [Thu, 7 Jun 2018 20:35:28 +0000 (20:35 +0000)]
Merge latest trunk changes with this branch.
FossilOrigin-Name:
251022034219819a1dc356542770ff46e3147a080f072eb20af6106771dadd92
dan [Thu, 7 Jun 2018 20:08:59 +0000 (20:08 +0000)]
drh [Thu, 7 Jun 2018 18:13:49 +0000 (18:13 +0000)]
The IN-early-out optimization: When doing a look-up on a multi-column index
and an IN operator is used on a column other than the left-most column, then
if no rows match against the first IN value, check to make sure there exist
rows that match the columns to the right before continuing with the next IN
value.
FossilOrigin-Name:
09fffbdf9f2f6ce31a22d5a6df7a45f19a16628da622f12d6e33171cce09fb21
drh [Thu, 7 Jun 2018 18:01:21 +0000 (18:01 +0000)]
Fix the assert()s in the byte-code engine that prove that cursors
are unidirectional.
FossilOrigin-Name:
4b0b4e14039469b656662312a5f80f086ede293e9ad04c7bc99a202b683a1e55
dan [Thu, 7 Jun 2018 17:45:22 +0000 (17:45 +0000)]
Add support for window function first_value().
FossilOrigin-Name:
060b26402880daab085ad01f5f0dbde957c7a22cd219be5b8ec94fba883051a0
drh [Thu, 7 Jun 2018 17:32:59 +0000 (17:32 +0000)]
Remove the NextIfOpen and PrevIfOpen opcodes which are no longer needed
when the IN-early-out optimization is working.
FossilOrigin-Name:
439c8162272795b422a0e01b01b832fbc12b39914c9632a674162af8bdecff98
drh [Thu, 7 Jun 2018 16:07:00 +0000 (16:07 +0000)]
dan [Thu, 7 Jun 2018 15:54:26 +0000 (15:54 +0000)]
drh [Thu, 7 Jun 2018 15:28:40 +0000 (15:28 +0000)]
drh [Thu, 7 Jun 2018 15:23:43 +0000 (15:23 +0000)]
Avoid using a prepared statement for ".stats on" after it has been closed
by the ".eqp full" logic. Fix for ticket [
7be932dfa60a8a6b3b26bcf76 ].
FossilOrigin-Name:
bb87c054b1b76959e46258ac66b24027f468b390a4148ac67f208a1fbeda4060
drh [Thu, 7 Jun 2018 14:59:22 +0000 (14:59 +0000)]
Add the WHERE_IN_EARLYOUT flag and use it to clarify the logic of this
optimization.
FossilOrigin-Name:
522f1eacc20f11002cad58232a7c2610f369568653510e54f46088f579f778dc
drh [Thu, 7 Jun 2018 14:32:16 +0000 (14:32 +0000)]
drh [Wed, 6 Jun 2018 23:31:26 +0000 (23:31 +0000)]
Change a comma into a logically equivalent but semantically clearer semicolon.
FossilOrigin-Name:
71f97f0f82b3abfb07feb78d64a182fc50ff396e85d6f5aac479dbf58ba4d00a
drh [Wed, 6 Jun 2018 20:55:10 +0000 (20:55 +0000)]
More space and performance enhancements to sqlite3VdbeRecordCompare().
FossilOrigin-Name:
83a60ff056a63f18479030e9dfb10926fbb0d906d51f2cf88233098e15c75534
dan [Wed, 6 Jun 2018 20:51:02 +0000 (20:51 +0000)]
Add implementation of nth_value() window function.
FossilOrigin-Name:
eb1fb420ac70857e7ca4cbad78be15a27bee8f915ba2da080c7efa1879c06c31
drh [Wed, 6 Jun 2018 20:29:19 +0000 (20:29 +0000)]
Small performance optimization in sqlite3VdbeRecordCompareWithSkip() for
the common case where the comparison is equal.
FossilOrigin-Name:
1e616e256a4fb1b64271706fdfa77dc5790eba0a2f0e619544e169bc61d7c805
drh [Wed, 6 Jun 2018 19:48:19 +0000 (19:48 +0000)]
Rearrange the order of some checks in the integrity_check pragma for a very
slight performance gain.
FossilOrigin-Name:
4b853f020570bf4af1b14e03f35764c7d7a03a40af58efc783e06f2b883cef78
drh [Wed, 6 Jun 2018 18:50:50 +0000 (18:50 +0000)]
Fix the sqlite3BeginTrans() calls within the snapshot extension.
FossilOrigin-Name:
1fef7ad25b6a8e59163ac57f5cf0412bfc5b0e9446fd782f5f0a7d7ee11741fc
drh [Wed, 6 Jun 2018 17:45:51 +0000 (17:45 +0000)]
Another minor optimization to OP_Transaction.
FossilOrigin-Name:
d80077aee3904e5d93164b342cae14d813de8e84e567462412751e06c7487d41
drh [Wed, 6 Jun 2018 16:28:40 +0000 (16:28 +0000)]
Change sqlite3BtreeBeginTrans() to return the BTREE_SCHEMA_COOKIE, for a
small speed improvement when starting new transactions.
FossilOrigin-Name:
a10662aa915ae2b5a78b3e10920350d32255b2d6b1a8aac0aba1ad173b07ed2b
drh [Wed, 6 Jun 2018 01:18:01 +0000 (01:18 +0000)]
Fix the ".archive" command in the CLI (and the corresponding -A command-line
option) so that it silently ignores filenames that contain "../" in their
names. This prevents the "Zip Slip" attack.
FossilOrigin-Name:
27291f2d7fd4dadf2ee9b9a7d1373158cadfbaf83c3654b00d7030dc921770c6
drh [Tue, 5 Jun 2018 23:51:52 +0000 (23:51 +0000)]
Update the version number to 3.25.0 for the next development cycle.
FossilOrigin-Name:
7598236c356cdb548c6188d69dfef99f7a08b89e512a3addfe1433ccd85e7b68
drh [Tue, 5 Jun 2018 23:21:11 +0000 (23:21 +0000)]
Avoid unnecessary loads of columns in an aggregate query that are not
within an aggregate function and that are not part of the GROUP BY clause.
FossilOrigin-Name:
e15e100660d290249ef235e7a8927b88296e56ec0f80ec626eecbd542adc7633
drh [Tue, 5 Jun 2018 20:45:20 +0000 (20:45 +0000)]
Add the OP_IfNoHope and OP_SeekHit opcodes used to reduce the number of
unnecessary sqlite3BtreeMovetoUnpacked() calls when checking for an early
exit on IN-operator loops. Futher optimizations are likely possible here.
FossilOrigin-Name:
6bf251af4347165a470d39457d61ab6d2a06c206db8f30bd8be5dbb388ae8a5b
dan [Tue, 5 Jun 2018 20:04:28 +0000 (20:04 +0000)]
Calculate non-aggregate expressions in the SELECT list of an aggregate query
that does not use min() or max() once per group, instead of once per row
visited.
FossilOrigin-Name:
dce2dfbe1590deb3ef5661230ae2d232bd492441195defbf698ac56f9629211c
dan [Tue, 5 Jun 2018 16:16:17 +0000 (16:16 +0000)]
Add implementation of last_value() window function.
FossilOrigin-Name:
2493ce1a402888f6a8f25e03052c25a4e9bca740639e98cb614f5e5160ac25d3
drh [Tue, 5 Jun 2018 15:16:25 +0000 (15:16 +0000)]
Use an OP_NotFound opcode to cancel futile IN operators early. The current
implementation is suboptimal because it always runs teh OP_NotFound. This
still needs to be enhanced to only do the OP_NotFound if no results have been
seen on the current loop.
FossilOrigin-Name:
87a9fc504f9a78caf7a7949cc7ada0a19d61bfab51bb49a00a1607194c116212
drh [Tue, 5 Jun 2018 13:54:06 +0000 (13:54 +0000)]
drh [Tue, 5 Jun 2018 13:43:02 +0000 (13:43 +0000)]
Update and correct the documentation on the OP_OpenRead, OP_OpenWrite,
and OP_ReopenIdx opcodes. No code changes other than the addition of
an assert().
FossilOrigin-Name:
8a0b730d0ea640d5cf75febe39b2162411a12eb5275765a85882158b5a085681
drh [Mon, 4 Jun 2018 19:24:41 +0000 (19:24 +0000)]
dan [Mon, 4 Jun 2018 18:55:11 +0000 (18:55 +0000)]
Add implementation of window function ntile().
FossilOrigin-Name:
3f093f608c6cc193aac77e7eafa8006c27a7776682d9d7b6e743710dff41ae42
drh [Mon, 4 Jun 2018 13:27:39 +0000 (13:27 +0000)]
dan [Mon, 4 Jun 2018 08:28:18 +0000 (08:28 +0000)]
Merge latest trunk changes into this branch.
FossilOrigin-Name:
83d6416a868fac81a78c9507185a48d00920e4322276245e285946f760915f4a
dan [Mon, 4 Jun 2018 08:22:09 +0000 (08:22 +0000)]
Add support for window function cume_dist(). Improve tests for percent_rank().
FossilOrigin-Name:
76543f7dd3a2310f6e81a1bae17db9bb5d2cf10c1b87ed3f8394b3e75576078b
dan [Sat, 2 Jun 2018 21:04:28 +0000 (21:04 +0000)]
Add support for window functions row_number(), rank(), dense_rank() and
percent_rank().
FossilOrigin-Name:
91c1cb7a217d0991a08256269f6c55ef185c25362d57b36bfbd2d85dab38e58f
drh [Sat, 2 Jun 2018 19:14:58 +0000 (19:14 +0000)]
drh [Sat, 2 Jun 2018 19:01:54 +0000 (19:01 +0000)]
Fix the usage of posix_fallocate() so that it correctly responds to
EINVAL returns.
FossilOrigin-Name:
ce2c3e7a875ede4366c48660ae8239d2b74e5f690ad5059844a45f1164f41e61
dan [Sat, 2 Jun 2018 17:00:57 +0000 (17:00 +0000)]
Update a test case in malloc5.test to take into account that malloc()
sometimes returns slightly more space than requested.
FossilOrigin-Name:
3d5eae1c26353cdee89f31f1293b05c0edb494c775ba0912d9b4fda9ab0ef304
drh [Sat, 2 Jun 2018 16:32:04 +0000 (16:32 +0000)]
Work around a sanitizer warning about a pointer being only 4-byte aligned
instead of 8-byte aligned.
FossilOrigin-Name:
1b807b51cdf455b4f54216b73fd22bbc90f94e24222401e045f88cfd27f487e3
drh [Sat, 2 Jun 2018 14:37:39 +0000 (14:37 +0000)]
Proposed fix for the use of posix_fallocate() so that it handles EINVAL
returns correctly.
FossilOrigin-Name:
ab3a5539db82814cafb832cdaebd1e14566139306453ef9cdba6b244a994fe0b
drh [Sat, 2 Jun 2018 12:05:18 +0000 (12:05 +0000)]
Fix the CSV extension so that it works with single-column CSV files.
FossilOrigin-Name:
e336cf00486bdc0ec04ecded2b7c874d73a87e6aba3544e3678bedfb9a4af3b6
drh [Sat, 2 Jun 2018 11:31:15 +0000 (11:31 +0000)]
Ensure that sqlite3AuthRead() is only call for TK_COLUMN and TK_TRIGGER
expression nodes. This fixes a harmless assert() identified by OSSFuzz.
Move the assert() into a position where it is tested even if the authorizer
is disabled.
FossilOrigin-Name:
d0c3beef7cdc680c0768ddd18f766a4ca7be822c1eb1776b2f73b7433d9962dc
dan [Fri, 1 Jun 2018 21:00:08 +0000 (21:00 +0000)]
Allow an entire partition to be cached in a temp table for all types of window
frames. This is required by nth_value() and others.
FossilOrigin-Name:
b5b18f661341d8d450147e62d321791c706f16c0550bcd98eec3e0220c039189
dan [Fri, 1 Jun 2018 13:30:45 +0000 (13:30 +0000)]
Fix a bug in the SQLITE_ENABLE_SORTER_REFERENCES code causing an out-of-bounds
array reference.
FossilOrigin-Name:
8cadaf587dc96370f9c8a1dccc366b93021e8cfe4526da9368a088828fd14faf
drh [Thu, 31 May 2018 19:14:52 +0000 (19:14 +0000)]
More documentation typo fixes. No code changes.
FossilOrigin-Name:
66c24513c2f6de98bd888c3e4c07bbb39fabf30ea9dd01eb255460054055347d
drh [Thu, 31 May 2018 19:00:20 +0000 (19:00 +0000)]
Fix a harmless typo in a comment used to generate documentation.
FossilOrigin-Name:
5a2a88cb01ef4b299f9a5b2963f392a3bae90e8a7f84b190e67f86090f891e23
dan [Wed, 30 May 2018 20:44:58 +0000 (20:44 +0000)]
Allow min() and max() to be used as window functions.
FossilOrigin-Name:
c16125a884a9131b707ac20033968c4c3177ea79625a15efb64d754568c6c7a0
drh [Wed, 30 May 2018 14:17:09 +0000 (14:17 +0000)]
Add the Makefile.fallback makefile to the amalgamation tarball.
FossilOrigin-Name:
ce3d04563337c9556d66e55acfb454789b0baa49a1be8fcc349251ce88236d62
drh [Wed, 30 May 2018 07:36:55 +0000 (07:36 +0000)]
Do not use the codec on the resetdb.test script.
FossilOrigin-Name:
fe55cea0c80ab29120574c5c4a8473b83fc80f79d7e11bc7c326bfdb32aa3902
drh [Wed, 30 May 2018 07:24:41 +0000 (07:24 +0000)]
drh [Wed, 30 May 2018 01:14:20 +0000 (01:14 +0000)]
Fix the parser so that it builds with -DSQLITE_OMIT_CTE.
FossilOrigin-Name:
86ee267ee86f5264774a9f215b1158aeaa2d605e77c205731b5ee3945d7de4c2
drh [Wed, 30 May 2018 00:59:09 +0000 (00:59 +0000)]
drh [Wed, 30 May 2018 00:54:23 +0000 (00:54 +0000)]
Demonstration code on a possible technique for optimizing the use of IN
operator on columns to the right of multicolumn indexes. If the OP_Noop
generated where were really a new opcode that checked to see if there existed
any entries in the index with a matching prefix, it might prevent unnecessary
iterations of the IN operator.
FossilOrigin-Name:
92f0fe155d5546fc7f4a443d0630613dabe149061966308e5420fad652278f16
dan [Tue, 29 May 2018 19:12:58 +0000 (19:12 +0000)]
Increase the number of database handles opened by test script oserror.test to
provoke an "out of file-descriptors" error to 20000 (from 2000).
FossilOrigin-Name:
3b00f73456c65dfc1827fdada9afb49245f9addfa684d5ae35e69a07f39164bf
dan [Tue, 29 May 2018 16:37:12 +0000 (16:37 +0000)]
Fix autoinc.test and resetdb.test so that they work with all permutations.
FossilOrigin-Name:
89f56d6b0a6847b042a1556cdf79c598c9bfdbdd5f9529d508ca7b4d26a6ed38
drh [Tue, 29 May 2018 15:18:31 +0000 (15:18 +0000)]
Add a comment to justify a goto statement. No code changes.
FossilOrigin-Name:
f141d806476aabe592a15d83b72c9409d2cd6bd7f9cced1ea2513c134191430a
dan [Tue, 29 May 2018 14:29:28 +0000 (14:29 +0000)]
dan [Tue, 29 May 2018 14:06:55 +0000 (14:06 +0000)]
Fix some test script issues caused by recent EXPLAIN QUERY PLAN enhancements.
FossilOrigin-Name:
f808e22831c33bfe3d0dd44e209f64d527c23ca7c72be7c694736535afee1317
dan [Tue, 29 May 2018 13:25:14 +0000 (13:25 +0000)]
Do not run test file "resetdb.test" as part of permutation "inmemory_journal".
FossilOrigin-Name:
4921e5bae4c12c3413cc0b2e58766cf2ac117ad95f92fcd1c2457db6cfabb054
dan [Mon, 28 May 2018 18:30:45 +0000 (18:30 +0000)]
dan [Mon, 28 May 2018 18:29:46 +0000 (18:29 +0000)]
Do not require a statement journal in cases where REPLACE conflict handling is
used to insert a single row, so long as the REPLACE operation cannot fire any
triggers or foreign key actions.
FossilOrigin-Name:
469a62ca33081854e54f3af6d93ab5a350484b149c8c8c4ee8be0ae5418382d9
drh [Mon, 28 May 2018 18:25:19 +0000 (18:25 +0000)]
When compiling with SQLITE_DEBUG, add run-time checks to ensure that no statement aborts unless either there have been no writes or else there is a statement journal.
FossilOrigin-Name:
ce99c7724460b9cf4ccaf7f6bc1a522b5c34d5ad0683d465f7926b10f31f7d05
drh [Mon, 28 May 2018 17:43:28 +0000 (17:43 +0000)]
Fix the build so that it works with -DSQLITE_TEST_REALLOC_STRESS
FossilOrigin-Name:
90ba2b2e5ce2619e68879eb325b43639159f27eb462b9fb6795534c91200a3d2
drh [Mon, 28 May 2018 17:31:20 +0000 (17:31 +0000)]
When compiling with SQLITE_DEBUG, add run-time checks to ensure that no
statement aborts unless either there have been no writes or else there is
a statement journal.
FossilOrigin-Name:
5a4542dbcf17a9f7fed600897555c271e1651fd50eb41d0b126725b486e1d14c
dan [Sat, 26 May 2018 21:17:29 +0000 (21:17 +0000)]
More fixes for different window frame types.
FossilOrigin-Name:
2c85668a0f86bcfd3de4c65847ac252e136ce97409a2249c5f4f58e3756e9a69
drh [Sat, 26 May 2018 16:00:26 +0000 (16:00 +0000)]
Store application-defined function names as lower-case to avoid the need
for case conversions before calling xFindFunction on virtual tables.
Avoid using lookaside to store the destructors for application defined
functions, as lookaside should be reserved for transient allocations.
FossilOrigin-Name:
777189ce88799f93f393fd14fd716111c85bcdcb23690fd561f78ea2bd2ce5da
drh [Sat, 26 May 2018 13:55:04 +0000 (13:55 +0000)]
Add a single sentence of documentation about the virtual table
scan flags. No changes to code.
FossilOrigin-Name:
27b4fa5dd0defc6ddaf5d8cde6a1e1162b70d99bfdc69c1d2290621a6d23ed91
dan [Fri, 25 May 2018 20:30:17 +0000 (20:30 +0000)]
Fix "RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING" window frame
processing.
FossilOrigin-Name:
b4e9c686697a5211a3bfa47e63f0684e3d4241d8c292cffe1a967bc39ad7cd8f
dan [Fri, 25 May 2018 09:36:27 +0000 (09:36 +0000)]
Merge latest trunk changes into this branch.
FossilOrigin-Name:
6232519899efc568465d8fcc9fcd79d46a2ce4ec05109d26d5eb1ebd239cd596
dan [Fri, 25 May 2018 09:29:11 +0000 (09:29 +0000)]
Fixes for "ROWS BETWEEN <expr> FOLLOWING AND <expr> FOLLOWING" and "ROWS
BETWEEN <expr> FOLLOWING AND UNBOUNDED FOLLOWING"
FossilOrigin-Name:
5ac44872fd5c4f92851e7bf57d7207bb4d67de88ea2b5c746ff97f20bd6352e1
drh [Thu, 24 May 2018 23:51:57 +0000 (23:51 +0000)]
When doing a one-pass UPDATE or DELETE on virtual tables, close the cursor
prior to running VUpdate. This allows one-pass to work on virtual tables
that do not allow concurrent reads and writes. Enhance rtree to take
advantage of this new capability.
FossilOrigin-Name:
b816023ce07d01024d5769e16db924374a49bf909edd12dc1344a0a1ef693db5
drh [Thu, 24 May 2018 22:42:27 +0000 (22:42 +0000)]
New test case for reading and writing the same rtree concurrently.
FossilOrigin-Name:
3ba08e53d54165f5541756ad13a4c2f0b18516cb612a256e056ed1ff76c1fa83
drh [Thu, 24 May 2018 22:31:01 +0000 (22:31 +0000)]
Do not allow RTree writes when a read cursor is active on the same virtual
table, as the writes might rebalance and disrupt the read cursors. Return
the new SQLITE_LOCKED_VTAB error code if this happens.
FossilOrigin-Name:
d4ce66610851c825cb712f985216b63e015c753fdd5521f929c67ad18bfd7664
dan [Thu, 24 May 2018 21:10:57 +0000 (21:10 +0000)]
Allow "<expr> PRECEDING" to be used to specify the end of a window frame.
FossilOrigin-Name:
7b709a989c188dbcf429989a0785294b36c8a7e89b5de8cefc25decf1f5b7f5a
dan [Thu, 24 May 2018 17:49:14 +0000 (17:49 +0000)]
Support other frame types that use "<expr> PRECEDING" or "<expr> FOLLOWING" as
start or end conditions.
FossilOrigin-Name:
ec7b648c7f0ee266653561bbb9daa45b9be0d8a1a14f11dc93bce467c35154e6
drh [Thu, 24 May 2018 17:38:00 +0000 (17:38 +0000)]
In the OOM testing logic, add the sqlite3FirstFault() routine as a place to
set a breakpoint the first time any simulated OOM fault occurs for a single
test case.
FossilOrigin-Name:
b4d80bd287ca7f3a6d182ba2435273266035b94fdf6a44047a64a4eff931c571
drh [Thu, 24 May 2018 17:25:35 +0000 (17:25 +0000)]
Fix a typo in a comment used to generate VDBE opcode documentation. No
code changes.
FossilOrigin-Name:
36cdfbf2ce1811691c790fde3eaeed0238c03b4dc97dc3a20d1e0397520145d1