drh
d5c851c1cb
Streamline the processing of the AND operator. Slightly smaller and faster.
...
FossilOrigin-Name: 7713996aa99ce6dd35b5a2db74dd26658fb8d9817169b2a7531cdef6edb41403
2019-04-19 13:38:34 +00:00
drh
7bbdc3c597
Remove some stale references to the addopcodes.tcl script from documentation.
...
FossilOrigin-Name: c0381b0bc90aa3c2415c4b3ac338cfe6d308bb5d4247bc6f2b6e919f549c254c
2019-04-05 21:17:11 +00:00
drh
f1722baaf8
Eliminate the tool/addopcodes.tcl script. The purpose of that script was to
...
keep the number of parser codes below 256 in order to save parser table space.
But we have long since blown through that ceiling so the addopcodes.tcl script
was just needless complexity. There is no longer any reason to keep it around.
FossilOrigin-Name: d272819298083ebbde57962a2938925b1aaa1caf03e48bb3ea26ad91e0461d84
2019-04-05 20:56:46 +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
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
dan
ced89124d8
Ensure that all the new window-function keywords can still be used as SQL identifiers.
...
FossilOrigin-Name: a6d61dfd4780eccfce5f7a5ead6c04e3b78bc4a461551fd7dd602550e0d51084
2019-03-19 06:40:29 +00:00
dan
1e7cb19be3
Fix problems with RANGE windows and string, blob and NULL values.
...
FossilOrigin-Name: cebe09e11cc91d9776f259dd9b87e9c760a460f53ba6fa36481dfe58f77ad417
2019-03-16 20:29:54 +00:00
dan
d35300f9b6
Parse EXCLUDE clauses in window frames. They do not yet work.
...
FossilOrigin-Name: d03c7533a1e993f1b12392a5193b2127484307b27072236a1255e7a30849a381
2019-03-14 20:53:21 +00:00
dan
6c75b39614
Finish consolidation of window frame code. Add untested support for GROUPS frames.
...
FossilOrigin-Name: 954bf369935083c188c3b14e77ed89fc5ec4323cc5b0c67e4a2e48fcc278df45
2019-03-08 20:02:52 +00:00
dan
e7c9ca41b2
Add support for chaining of WINDOW definitions.
...
FossilOrigin-Name: c155125fd5dddb438c09d40f5137c47d88defb7a6ede4261f09d7bdaad250d37
2019-02-16 17:27:51 +00:00
drh
6a0db87a2f
If the amalgamation file "sqlite3.c" is generated using the
...
SQLITE_ENABLE_UPDATE_DELETE_LIMIT option, but then subsequently (mis-)compiled
without that option, and then a particular syntax error could cause
a memory leak, but for this fix.
FossilOrigin-Name: 1bb17c863a269ab8b28df94b9fdaac3ee70777ccd0a30300131bf67df6722052
2019-01-31 02:42:47 +00:00
dan
f467744d5f
Fix a problem with running ALTER TABLE on a schema that contains expressions of the type "col IN ()" (empty set on RHS of IN operator).
...
FossilOrigin-Name: 2d9cd06715092c312c8c0ec392696a0e90ed090b074e2082e0b830f1399aa941
2019-01-24 16:27:10 +00:00
drh
29c992cb04
Revamp the SrcList allocator routines to be methods of Parse instead of
...
being methods of the "sqlite3" object, so that they can leave better error
messages when the SrcList object grows too large.
FossilOrigin-Name: df08d472b090b212fb77ce2aae0e1ffe79ae5db4b1accf55e6fdb18e8b0a7098
2019-01-17 15:40:41 +00:00
drh
51d35b0fa9
The keywords TRUE and FALSE should only act as boolean literal values if
...
unquoted.
FossilOrigin-Name: 5547f39de993c708f72301ef25df190a2f007e0c4253799bdd9e86bb1ae41777
2019-01-11 13:32:23 +00:00
drh
2f6239ed4e
Allow the INTO clause of VACUUM to be a text-valued expression.
...
FossilOrigin-Name: af172b53b46759f491f522356e14c5e2374d3f25ec70fbc1e100cadded8f9b22
2018-12-08 00:43:08 +00:00
drh
b0b7db91b8
Prototype implementation for the VACUUM INTO command.
...
FossilOrigin-Name: 036e3320a4af36c1311b25b2e504b0079c8b33df8ad7b7e5fddad07150e6f87d
2018-12-07 17:28:28 +00:00
drh
4a5cff73a7
Fix a parser bug in the use of parentheses around table-valued functions.
...
FossilOrigin-Name: 58a51123d1a6381cc67d3c64ba3468ec5a92c299ad6fd86de0b843d0ffafb846
2018-12-03 01:47:41 +00:00
drh
eda079cd2c
Combine the Expr.pTab and Expr.pWin fields into a union named "y". Add a new
...
EP_WinFunc property that is only true if Expr.y.pWin is a valid pointer.
This reduces the size of the Expr object by 8 bytes, reduces the overall
amount of code, and shaves over 1 million cycles off of the speed test.
FossilOrigin-Name: ad130bb86e74e6ce165fdbdce3a19699510f0e62071c1c7923b5a4538d888c7c
2018-09-20 19:02:15 +00:00
dan
c50f75df96
Fix a problem with ALTER TABLE when there are views or triggers in the schema
...
that contain "<expr> IS NULL" expressions.
FossilOrigin-Name: 91aab32e71fcb924e24c02d5f0901f7a474760fc993a7e7436e667512cf5d3c3
2018-09-06 18:56:36 +00:00
dan
c9461ecc28
Extend RENAME TABLE to edit triggers and views. Still buggy.
...
FossilOrigin-Name: 01308bae3acf33f78b5bb90892085eab340df093aafc17e6ccf6a7d6cf324897
2018-08-29 21:00:16 +00:00
drh
d3130dab92
The Expr.iColumn field must also be initialized in tokenExpr().
...
FossilOrigin-Name: 772985f18b2ab8fa04a0c29593fc6d9b74c1361260cb59e566606dd56f326535
2018-08-23 18:50:19 +00:00
drh
4fe759b2cc
Make sure the Expr.iTable field is initialized by tokenExpr().
...
FossilOrigin-Name: 02a05a3b3c6440432fc15daa14678a6eba40759e17e43ae8d63d19a0842de56a
2018-08-23 18:22:00 +00:00
dan
07e9523364
Rename internal function sqlite3RenameToken() to sqlite3RenameTokenMap() and
...
sqlite3MoveRenameToken() to sqlite3RenameTokenRemap().
FossilOrigin-Name: b9ae9a0a188b82d7066f6ef7d21592889df0a61559e9a0e01819e9d5a92c3f36
2018-08-21 16:32:53 +00:00
dan
d145e5f46f
Minor changes to function tokenExpr() in order to claw back cycles lost to the
...
rename-column change.
FossilOrigin-Name: 479976955ecb27c3e77a280187eaf23722178549e072b34f3183354a27a4e5c3
2018-08-21 08:29:48 +00:00
dan
5be60c55e8
(no comment)
...
FossilOrigin-Name: e272dc2b1c0edab59a40f32c77c81a3e636937280524161eff5669cb0046ad84
2018-08-15 20:28:39 +00:00
dan
5496d6a25a
Edit the WHEN and UPDATE OF clauses of trigger programs as part of ALTER TABLE
...
RENAME COLUMN.
FossilOrigin-Name: 5fdb6b0aafba727139e1937ef5950e4434a77f95a10fc46f8010ca2de3922326
2018-08-13 17:14:26 +00:00
drh
5fc22cdfde
Fix issues with ALTER TABLE RENAME COLUMN associated with OOM errors.
...
FossilOrigin-Name: 0b28dd5c2e4908d5e49eaedd359492e46de8af3bf84120f4683b3ea906882fbf
2018-08-13 13:43:11 +00:00
dan
e9a2fa3182
Fix a problem with renaming columns on tables with REFERENCES clauses that
...
specify a large number of columns.
FossilOrigin-Name: d48f7bbdf4a1686c25e634a8dec6ead88bf2866fee94ed8e5058f830363424a8
2018-08-10 14:23:41 +00:00
dan
cf8f289542
Experimental implementation of ALTER TABLE ... RENAME COLUMN. Still buggy.
...
FossilOrigin-Name: fa0fc01eb48a864f0a3d43f9b805d5ed2e530846ee0c34fcbc2eabd9e5696277
2018-08-09 20:47:01 +00:00
drh
954733b386
Improvements to the parser to increase coverage. Fix the parser so that
...
at least one expresssion is required after PARTITION BY and within the
list of expressions on VALUES().
FossilOrigin-Name: 02204f8b246c868846f39bd44f2e3bc0fab0275aa09ef3a0e5a8e3d58f484ca8
2018-07-27 23:33:16 +00:00
drh
550a33091b
Minor grammar changes that help the parser run faster by reducing the
...
number of NUL rule reductions.
FossilOrigin-Name: cfd1b00592bd550e444dfc7b6a6a93c77c07b835729c6cc69a4b6361038964ba
2018-07-27 22:14:50 +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
drh
c7bf57168a
Fixes for various harmless compiler warnings.
...
FossilOrigin-Name: 5023b1b85b883a716a5da673740b6effe214ee0490f4ca45f161bb8b04784366
2018-07-09 22:49:01 +00:00
drh
a57aac262f
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
2018-07-09 16:24:00 +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
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
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
34a7d790ba
Further performance related tweaks for sqlite3RunParser().
...
FossilOrigin-Name: 5eb4776598f5bba7ef21a2c58c03105544da73d642d7ffc146f84eff1993d71e
2018-06-29 20:43:33 +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
dan
04a8e0cd54
Modifications to parse.y to better support backwards compatibility for the
...
"window" keyword.
FossilOrigin-Name: 7c4b879bdb10f30260f0fb28fcb559ab0949865d10f4ff2cf13834a326198998
2018-06-28 20:05:04 +00:00
drh
3773c25f16
Introduce the concept of "weak fallback" in the parser. A weak fallback
...
only occurs if a syntax error would result otherwise.
FossilOrigin-Name: c41d7079fb63831bd2f009b64cbf5a423e8119e6b841bfd9bd5a2d85fba3b142
2018-06-28 03:38:49 +00:00
dan
67a9b8eded
Omit all window-function related code when building with SQLITE_OMIT_WINDOWFUNC.
...
FossilOrigin-Name: 5f04b016467342b5a796bf702ed25b621eb86f2961c1e703d276c93f2cb6aa89
2018-06-22 20:51:35 +00:00
dan
85b9a1c2fb
Merge latest trunk changes with this branch.
...
FossilOrigin-Name: 6ad0e64b465959c50d4c895c053b15ee7efed11b6427604d2eab88635d9f7319
2018-06-19 19:15:25 +00:00
drh
ca5aa59453
Minor change to the input grammar to make the parser tables slightly smaller.
...
FossilOrigin-Name: 320fa69e6aa2a7d67f6444d6c13de9893e27b85c36a933b06da113d753b6aafc
2018-06-19 11:15:19 +00:00
dan
6fde1799f8
Fix another problem in lead()/lag(). And some errors that could occur
...
following OOM faults.
FossilOrigin-Name: fadd4dc119d8df0d871f4d839b7a11070e2ffb8927e84b3e7a94f34196db3de3
2018-06-15 19:01:35 +00:00
dan
e3bf632cc2
Add support for the WINDOW clause.
...
FossilOrigin-Name: 19c983b511f1c823fdfb051713681b4c779f02fa83b41189afca0a9b8b72048d
2018-06-08 20:58:27 +00:00
dan
2b1287cf44
Merge latest trunk changes into this branch.
...
FossilOrigin-Name: 83d6416a868fac81a78c9507185a48d00920e4322276245e285946f760915f4a
2018-06-04 08:28:18 +00:00
drh
6a8b94e266
Fix the parser so that it builds with -DSQLITE_OMIT_CTE.
...
FossilOrigin-Name: 86ee267ee86f5264774a9f215b1158aeaa2d605e77c205731b5ee3945d7de4c2
2018-05-30 01:14:20 +00:00
dan
b6e9f7a4d1
Fix minor problems on this branch.
...
FossilOrigin-Name: 19c2e4b2f164521eab84cb0a0e12984be9431eaedd001dd3671e9ea1a6212353
2018-05-19 14:15:29 +00:00
dan
86fb6e1738
Start of experimental implementation of SQL window functions. Does not yet
...
work.
FossilOrigin-Name: 3781e520854808fe02ad3fe77dd11fc917448c58ff1fd79123289dd91937decd
2018-05-16 20:58:07 +00:00