dan
3f49c321e8
Fix a couple of problems with "RANGE BETWEEN <expr> PRECEDING AND <expr> PRECEDING" frames.
...
FossilOrigin-Name: 39225cc77579896214dceb93b7f224b4b3bc95b3505a2e19b41b0b18b184fbc4
2019-04-03 16:27:44 +00:00
drh
0f134f0267
Small optimizations to the grammar for window functions save about 120 bytes
...
of space in the parser tables.
FossilOrigin-Name: bce01d9584e52b23d7c07c2e832d5fa5d6e6235711c856b903a296725f61ed6e
2019-04-02 18:12:20 +00:00
drh
94809086e5
Use a separate bit on db->dbOptFlags to disable the xInverse optimization on
...
window functions, rather than reusing the query-flattener disable bit.
FossilOrigin-Name: bc0fb1c324be2fd668bc4398c7d364b7e3c5a98537fe5fb58a125b66f3e6d041
2019-04-02 17:45:56 +00:00
drh
3de52e8fa0
Including the phrase EXCLUDE NO OTHERS in the frame-spec of a window function
...
(which is the default setting for EXCLUDE) silently disables the xInverse
optimization. This is a feature, but we will keep it undocumented for now
in case we later decide it is a bad idea.
FossilOrigin-Name: 10aedce3dd2c0c9f0ee9e0aefd0b4d2c2eb17c4ca72003c4db9768ea5cdafcf4
2019-04-02 17:45:01 +00:00
drh
860d2b08c6
Make sure the MEM_FromBind bit inthe Mem.flags field is not included in
...
the MEM_TypeMask. This critical changes was omitted from the previous two
check-ins by mistake, and so those check-ins are not fully functional.
FossilOrigin-Name: f7ba2daf91c96ba16958188d6084a0ff129310d348932de493d326f1d24679cd
2019-04-02 00:56:20 +00:00
drh
e8975ac9e1
Add new APIs to the extension loading mechanism.
...
FossilOrigin-Name: 6f122faf8a34b986e58ba4622cff918c6d133d6f91d4b723b50bd086d5bed8e1
2019-04-02 00:48:29 +00:00
drh
29ddbbbf36
Add the sqlite3_value_frombind() interface. Use that interface to
...
improve fts3_tokenizer().
FossilOrigin-Name: b3f2c3205a28dc21ea7080e5e1ba246ce9c9b90c1309262ca11d8e40943ed677
2019-04-02 00:28:54 +00:00
drh
e0f20b46fb
Performance improvement on the OP_Variable opcode.
...
FossilOrigin-Name: 1dc7993bb6957587a6c63142e97b8e4137c3d81bbfd724f86048e0894bcb429b
2019-04-01 20:57:11 +00:00
drh
d6db6598ca
Improvements to the sqlite3ExprImpliesNonNullRow() theorem prover.
...
FossilOrigin-Name: 3fde627616030ca0de87169467e2e453fdc91154942e3a3a92a221df5923b2d2
2019-04-01 19:42:42 +00:00
dan
afb3f3c72c
Add a test case to cover a missed VDBE branch generated by window.c.
...
FossilOrigin-Name: b36813d6467c82159bd3bb69d34ac28fc161a13052ca67d7cf9ad75e2aaea9d5
2019-04-01 18:43:09 +00:00
dan
1d07f1d8c7
If the library is built with SQLITE_VDBE_COVERAGE defined, have the Tcl tests generate a vdbe coverage report in file testdir/vdbe_coverage.txt.
...
FossilOrigin-Name: f0ed714637bf30443d0551d9b6fececa00fc9dfe9669fe720c4598ef71c61e2c
2019-04-01 17:24:20 +00:00
drh
495ed62e85
Frame range comparisons can never be NULL because the values will have
...
been checked for NULL prior to the test.
FossilOrigin-Name: fa37cf9a6aa3e4325674cb6af68f617d25e349c3f694d0117a19a36fc42daf15
2019-04-01 16:23:21 +00:00
drh
83c5bb997a
Mark rowid-comparison opcodes as never-null for VDBE coverage tracking
...
purposes.
FossilOrigin-Name: a69bb4f257500e40ef4056d5628ef25266def5bcef07eebdb471a79fffe80237
2019-04-01 15:55:38 +00:00
drh
21826f44bf
Improved VDBE branch coverage in the run-time frame-spec error detection
...
logic of window functions.
FossilOrigin-Name: f56d305a7bad6608d51d8c8cef417ddb66cff50f0a75d28554ea669e47f3d90d
2019-04-01 14:30:30 +00:00
drh
c906533650
Improved comments on the VDBE branch coverage testing logic. Fix the
...
VDBE branch coverage measurement on the OP_MustBeInt opcode.
FossilOrigin-Name: 8681750e855a020ee374cb9f973f701a72068e33f97d0101a4fab3a228e5ebda
2019-04-01 14:01:21 +00:00
drh
6cbbcd8ad6
Fix a defect in the VDBE branch coverage testing logic.
...
FossilOrigin-Name: 1fcf3307d37f0e8e0c8c54491c609b73c7add6eaa38409a41c7cd6614a877a19
2019-04-01 13:06:19 +00:00
mistachkin
4e2d3d40dc
Fix harmless compiler warnings seen with MSVC.
...
FossilOrigin-Name: 6cf8b18ec20f11c25ff7396f29c742404d3a88d5e97a5fd53ccfaff51dec3f33
2019-04-01 03:07:21 +00:00
drh
8fe25c64f1
Early detection of too many columns in an index avoid a possible 16-bit
...
signed integer overflow.
FossilOrigin-Name: 8af0caeb6d1e55f66ad2f12af94845dccfe1d0420faf326f5917fc07f8aa6050
2019-03-31 21:09:33 +00:00
drh
ce5752cd1f
Add some missing VdbeCoverage() macros.
...
FossilOrigin-Name: d03b611302f68483770d49b113b4ed685ba03526d2007647c306f8ec7ae697d2
2019-03-31 18:17:00 +00:00
drh
6f88359df6
Fix issues with the previous check-in and add more VDBE branch coverage
...
testing macros.
FossilOrigin-Name: b5f72f10f2dfdbee9fe98c63ffb933e841203790746a920b99df14ca5c14127c
2019-03-30 20:37:04 +00:00
drh
bf00f6d7ec
Enhanced VdbeCoverage() macros in the new windows function code.
...
FossilOrigin-Name: f24066f8dd847dfb656f26c4a8142e7fb6a412ffe325aea6254cb122cfbb3e1c
2019-03-30 20:10:11 +00:00
drh
b336d1ab83
Add a call to sqlite3FaultSim(410) inside of btreeRestoreCursorPosition()
...
to simplify testing of error scenarios.
FossilOrigin-Name: bb643bac535ac7d5fb4c13edb8782cd13540bbc7d2b2deb689f4ca8d1914f422
2019-03-30 19:17:35 +00:00
drh
119e1ffc5e
The defragmentPage() routine detects corruption in the first-free-slot fields
...
at offset 1 in the header and throws an error, rather than asserting.
FossilOrigin-Name: fb125bd338ab32b33d02fe61b76497b6d4a2a160056d6e759e15c94903e61a41
2019-03-30 18:39:13 +00:00
drh
038ebf6875
Remove the unused P5 flag from the OP_Rewind opcode.
...
FossilOrigin-Name: c2edbf3b8c643edcd5823eb907fd7531cf5be8a8b6a014fa1b123eb0ea3231cf
2019-03-29 15:21:22 +00:00
dan
3580843595
Fix a fairly obscure problem causing the planner to sometimes choose sub-optimal plans for a query with a single virtual table in the FROM clause, and at least one IN(...) constraint in the WHERE clause.
...
FossilOrigin-Name: f5752517f590b37bfc0267650f5800320e22a8ecaba34aa6893281ce8d268026
2019-03-29 13:17:50 +00:00
drh
57b1a3e303
Initial implementation of the sqlite3_value_frombind() interface.
...
FossilOrigin-Name: 98da62dfdacc6b3c490c387d1f8a74cc5daa978776967e264ad4800c380b0ddf
2019-03-29 11:13:37 +00:00
drh
d137f4e6e5
Recover a some of the performance lost by window function alias fix two
...
check-ins back.
FossilOrigin-Name: 965cbcea117835d2c6d2ec58c8025b227f491c35805e282cb31228436bc6bec1
2019-03-29 01:15:11 +00:00
dan
4ded26a53c
Prevent aliases of window functions expressions from being used as arguments to aggregate or other window functions.
...
FossilOrigin-Name: 1e16d3e8fc60d39ca3899759ff15d355fdd7d3e23b325d8d2b0f954e11ce8dce
2019-03-28 16:15:05 +00:00
drh
6f1644c0f9
Show the pointer address for Window objects in the TreeView display.
...
FossilOrigin-Name: 1ae70ad2ffd36c27b154940126c5e3ed00c05c0d8761d9320a65a03b1b4e4dc6
2019-03-28 13:53:12 +00:00
drh
0dc0e9c2af
More improvements to TreeView output for Window objects:
...
(1) Show when the frame-spec is implied rather than explicit.
(2) Move the FILTER clause out from within the OVER clause, making it
a sibling of the OVER clause, to match syntax.
FossilOrigin-Name: d6a07433421ac9a475ff0014587f0beefdf88ce89aef9443f8a20cd26083731f
2019-03-28 13:35:28 +00:00
drh
fc15f4c528
Improved TreeView display of Window objects.
...
Change the Window.eType field to Window.eFrmType to avoid confusion with
other "eType" values.
FossilOrigin-Name: ec2f207dedb223077bbd3e4584499250eb12219712c917e930acccfa2c46e23b
2019-03-28 13:03:41 +00:00
drh
a2b6806b3e
If the string formatter in sqlite3NestedParse() fails due to an over-length
...
string, make sure this error is recorded by the parser so that it knows to
fail.
FossilOrigin-Name: 85e53ff13300132250221de769a2aa7d92d81bb48d60f6e99000bc69a5b1e6fb
2019-03-28 04:03:17 +00:00
mistachkin
ba9ee09598
Fix harmless compiler warnings seen with MSVC.
...
FossilOrigin-Name: 5be64ea8e33f632f9c337feac9b0663d8e6e59fc9a71e5d832d9fd905c06458e
2019-03-27 14:58:18 +00:00
dan
725b1cfc53
Fix a problem with window frames that use "BETWEEN <start> AND 0 PRECEDING".
...
FossilOrigin-Name: 7927b6b023502e990d23f30251b5b0918b547726b863bfb6747dcd7f1f71d19a
2019-03-26 16:47:17 +00:00
drh
d4a591dd6b
Fix harmless compiler warnings.
...
FossilOrigin-Name: a063f7c426d1ac066bf05cc03288f49b1c92e06a8cb2bc271cce9bd3022a74ea
2019-03-26 16:21:11 +00:00
dan
b60c3b01cc
Add support for new window functions related features - GROUPS frames, RANGE frames with logical start and end points, the EXCLUDE clause and window chaining.
...
FossilOrigin-Name: c6da39115d3e2b0fd3a03c4bcae8ee8b05a6bbd6b11f8c54712fbff6387f610d
2019-03-26 13:08:34 +00:00
drh
1cb0263bcd
Fix an obsolete comment in the CLI. No code changes.
...
FossilOrigin-Name: fade103cbac1b067f9544935b767f36dc266aceb3269cc84a3ae3b04ad9a4823
2019-03-25 22:05:22 +00:00
drh
65c29fd3eb
In the CLI, code the "sqlite_parameters" name directly rather than using a
...
macro, for clarity of presentation for users who are reading the code for
the purpose of seeing how the CLI implements parameter binding.
FossilOrigin-Name: e775ef002dd33e6bcbeec8d4b6ad7f59749e35548c7a59c9fa3bcfdc5cc50730
2019-03-25 21:56:26 +00:00
drh
ccf6e7d0f0
Remove a test from the index build logic which is no longer needed and is
...
in fact unreachable.
FossilOrigin-Name: 9b20ee10ff86c1f79706180310e02b6f78863e02b179062d8966573ae33a252f
2019-03-25 21:55:44 +00:00
drh
346f4e264a
Change the name of the parameter table in the CLI to "sqlite_parameters".
...
Doing so involves adding SQLITE_DBCONFIG_WRITABLE_SCHEMA and allowing the
creation of tables whose names begin with "sqlite_" and that are indexed
while writable_schema is on.
FossilOrigin-Name: 24ef3844692debc2db7b1d427f5dcf4050481a8c7f71c3b516766b819ecab587
2019-03-25 21:35:41 +00:00
drh
58b42ad131
Earlier detection of corruption while added to the freelist.
...
FossilOrigin-Name: 8c80b004cae71aaf820a31dba80c100ed162ef5bae845fb4535ff4d3be407500
2019-03-25 19:50:19 +00:00
drh
1c960269dd
Fix a faulty assert() statement in balance_nonroot() - the assert() should use
...
get2byteNotZero() instead of get2byte() for the corner case where the
number cells is zero on a 65536-byte page.
FossilOrigin-Name: bcbe7d96df3c9515f679ccf671ca9ba89d081b53501495d4218eb5126196838b
2019-03-25 18:44:08 +00:00
drh
af5a2e166d
Improvements to the help text in the CLI.
...
FossilOrigin-Name: 919fec91dac4cb0d5f67404d4f47a65f353d752f5da0aa7b071bf3caf19e0522
2019-03-25 15:09:19 +00:00
drh
b17ea91230
For the ".archive --update" command in the CLI, only update files if their
...
mtime or mode has changed. To force an update, use the new --insert instead.
FossilOrigin-Name: 191a023ae708490eca61b3a42a3df41bb6709079f3905881abb82ebd46182607
2019-03-25 14:24:19 +00:00
dan
781b7ac3f6
Fix a problem with a window function in a correlated sub-query where at least one reference to the outer SELECT appears in a FROM clause sub-select.
...
FossilOrigin-Name: 9aca86f98388ff66b2bccb3fbfc486a3931398d2a8da139f905826ae2cdbb205
2019-03-22 13:56:49 +00:00
drh
ed26483346
We learn that readdir_r() is deprecated in favor of plain old readdir(), which
...
is now suppose to be threadsafe using thread-local storage. So remove the
use of readdir_r() from the test code. (SQLite itself never calls readdir()
or readdir_r()).
FossilOrigin-Name: 7a0a26ed380dd0bdda50b0204b30b53bbbbc70f278eba02f91541ac6c691aef2
2019-03-22 13:53:25 +00:00
dan
dcc427cf19
Add an extra test for database corruption to defragmentPage().
...
FossilOrigin-Name: 80e951fce3e5aaa224c8dba6449832d2efabcdc24e86eb6b7833f85cf08ecc00
2019-03-21 21:18:36 +00:00
dan
c7694a6d1d
Remove assert() statements based on the counter-factual proposition that 0 is not a valid cursor number.
...
FossilOrigin-Name: c7b336181aac6785a515f275c0f50ad4bf2dee20abde959b56d968a7fdce3e5b
2019-03-21 13:51:09 +00:00
drh
87c889cfa5
In the CLI, give better error messages if something goes wrong
...
with the ".dbinfo" command.
FossilOrigin-Name: 3649a77b79001ea6c5defe882f9934521b20b9d36aab26d03b5d42006c7fa228
2019-03-20 18:22:51 +00:00
dan
2381f6d7e5
Fix a potential dangling pointer deference in an ALTER TABLE run on a schema that contains constructs of the form "PRIMARY KEY(column COLLATE collation)".
...
FossilOrigin-Name: b9e2393cf201e3fc24519c5ae65d0a5953147d78884e53d44a7958747b4a7e13
2019-03-20 16:58:21 +00:00