drh
5b1420e046
Remove a testcase() that is now always true due to the "x IN (?)" optimization.
...
Add an ALWAYS() around a conditional in the parser that cannot be false.
FossilOrigin-Name: d5a1530bdc7ace053d05d1a037551110021d3758
2014-03-20 19:04:56 +00:00
drh
fbb24d1092
The "x IN (?)" optimization in check-ins [2ff3b25f40] and [e68b427afb] is
...
incorrect, as demonstrated by the in4-5.1 test case in this check-in.
The "COLLATE binary" that was being added to the RHS of IN was overriding
the implicit collating sequence of the LHS. This change defines the EP_Generic
expression node property that blocks all affinity or collating sequence
information in the expression subtree and adds that property to the expression
taken from RHS of the IN operator.
FossilOrigin-Name: 2ea4a9f75f46eaa928ba17e9e91bc0432750d46d
2014-03-20 17:03:30 +00:00
drh
4ef7efad5e
Fix harmless compiler warnings.
...
FossilOrigin-Name: b1435f26b07b2208cfcca557f96342a5bd0d5328
2014-03-20 15:14:08 +00:00
drh
0a8d14261c
Previous check-in is not quite correct. "x IN (?)" is not exactly the same
...
as "x==?" do to collation and affinity issues. The correct converstion should
be to "x==(+? COLLATE binary)". The current check-in fixes this problem and
provides test cases. Ticket [e39d032577df69]
FossilOrigin-Name: 2ff3b25f40fd117c8a2da1d1a3625f6b167b7b16
2014-03-20 14:56:47 +00:00
drh
2b59b3a4c8
Convert expressions of the form "X IN (?)" with exactly one value on the
...
RHS of the IN into equality tests: "X=?". Add test cases to verify that
statements work correctly on this corner case.
Fix for ticket [e39d032577df6942].
FossilOrigin-Name: e68b427afbc82e201c64474117851aa4c9eb0c92
2014-03-20 13:26:47 +00:00
drh
c0bf493ea5
Make sure a multi-row VALUES clause works correctly in a compound SELECT.
...
FossilOrigin-Name: 85b355cfb40e8dbeb171980204ffad897184063f
2014-02-19 01:31:02 +00:00
drh
d227a291b2
Use the WITH clause to help resolve names for SELECT statements on the left
...
of a compound query. Proposed fix for ticket [31a19d11b97088296a].
FossilOrigin-Name: 67bfd59d9087a987f15f6148efa1ff104983e1fb
2014-02-09 18:02:09 +00:00
drh
edf83d1e3d
Fix harmless compiler warnings.
...
FossilOrigin-Name: dea2ca6a159d5dcfd8deceedf1c2a73fb4ac1cfc
2014-01-22 18:31:27 +00:00
dan
b290f11775
Fix some problems to do with WITH clauses and name resolution.
...
FossilOrigin-Name: 6a549187ed8b5ed50daefa676ff666ae2ed43346
2014-01-17 14:59:27 +00:00
dan
bfe31e7f80
Disable the flattening optimization if the sub-query is a recursive CTE.
...
FossilOrigin-Name: 9472f6d820a7fb233936d9b8f7a39c9d4c4d6d73
2014-01-15 14:17:31 +00:00
dan
a9f5c13d0c
Fix some memory leaks and crashes that could follow an OOM condition during WITH clause parsing.
...
FossilOrigin-Name: 8839850c44a8938883e493eacd752fa686e542df
2014-01-13 16:36:40 +00:00
dan
4e9119d9e8
Add code to handle non-recursive CTEs in the same way as SQL views.
...
FossilOrigin-Name: a26f399ba485e8127c276c5f103ec6c555e11734
2014-01-13 15:12:23 +00:00
dan
7d562dbe02
Update the parser so that sub-queries and CTEs may have WITH clauses.
...
FossilOrigin-Name: 704d3931b855562a619769955969d439c42ca406
2014-01-11 19:19:36 +00:00
drh
8b4718636c
Parse common table expressions. But do not do anything with them (yet).
...
FossilOrigin-Name: da98b7205eb3d7ec2ddbf8a8e24eee0b2ff499a5
2014-01-11 13:22:17 +00:00
drh
f59b12fbc1
Optimizations to the SQL language grammar that result in a small size
...
reduction and speed increase.
FossilOrigin-Name: cb5d1f83e0a33d546d4c0cb817ef1f8440d1f738
2014-01-11 03:54:05 +00:00
drh
144ffe7bfb
Remove unused structure definition from parse.y.
...
FossilOrigin-Name: 7f1e7ae313c7625ef2623d78883dce776eecca30
2014-01-10 20:51:16 +00:00
drh
75593d96be
Allow a VALUES clause to be used any place that a SELECT statement can be
...
used.
FossilOrigin-Name: c9ea7d199f06a7801ab639e7ac98ebeb98706f24
2014-01-10 20:46:55 +00:00
drh
10f468f37a
Remove the obsolete TK_CONST_FUNC token type.
...
FossilOrigin-Name: 9b4217f055e9bced186b4c56a5753bd6da7115b5
2013-11-21 14:44:38 +00:00
drh
5969da4a2c
Simplification of the syntax: Merely append "WITHOUT rowid" to the end of
...
the table definition.
FossilOrigin-Name: 131cc6e152abe1a2d48e6d8d40d2c2f8dbe723e7
2013-10-21 02:14:45 +00:00
drh
81eba73ebf
Experimental changes toward "index only" tables. Add the ability to specify
...
options on CREATE TABLE statements using the WITH clause modeled after
PostgreSQL and SQL Server. Only the "omit_rowid" option is currently
recognized and that option is currently a no-op.
FossilOrigin-Name: 0248ec5e6e3797575388f046d8c27f7445fe2a39
2013-10-19 23:31:56 +00:00
drh
c5cd124900
Increase the number of bits available in Expr.flags. Other tweaks aimed at
...
making expression processing more robust.
FossilOrigin-Name: 579a512538528cf4bb4381ba393c5d9e7310086b
2013-09-12 16:50:49 +00:00
drh
d58d3278cb
Performance optimization: Avoid calling convertCompoundSelecctToSubquery()
...
on queries that do not use the UNION, EXCEPT, or INTERSECT operators.
FossilOrigin-Name: c589b2fed7beabc2337d701094c22635914d9c23
2013-08-05 22:05:02 +00:00
drh
8a9789b6c1
Test cases and bug fixes for the partial index logic.
...
FossilOrigin-Name: 6b73ae7c123801787c8994113cbeb87ee96ba653
2013-08-01 03:36:59 +00:00
drh
1fe0537e51
Here begins an experimental branch for exploring the idea of a partial index.
...
This check-in is able to parse a WHERE clause on a CREATE INDEX statement, but
does not actually do anythingn with that WHERE clause yet.
FossilOrigin-Name: 6794b2dcb48b3507caccfc7867fc185818cf8291
2013-07-31 18:12:26 +00:00
drh
f7b5496e8e
Many small harmless comment changes. Removal of obsolete comments and
...
fixing misspelled words. No changes to code.
FossilOrigin-Name: a0d5cc9315dc6e9ef7dee4c3dfabf4e562d64376
2013-05-28 12:11:54 +00:00
drh
3c449c6b6b
Make sure extra parentheses around subqueries in the FROM clause are harmless.
...
Ticket [28c6e830f239ea5].
FossilOrigin-Name: 1c79569226db3d5a73e65a35877635ea8b478866
2013-04-30 14:06:57 +00:00
drh
832ee3d4cc
Optimize the degenerate case of a FROM clause table name enclosed all by
...
itself inside parentheses. Generate code as if the parentheses did not
exist, rather than the old behavior of manifesting the parenthesized table
into a transient table. Also, tag every FROM-clause SELECT subquery that is
generated by a parenthesized FROM-clause expression using the SF_NestedFrom
flag. The new SF_NestedFrom flag is not yet used for anything.
FossilOrigin-Name: 7fecced466d86a66b0b751c5b5608141e134fe2d
2012-12-18 19:36:11 +00:00
drh
e924041846
Remove old commented-out code from parse.y. Fix some over-length source lines
...
in parse.y. No logical changes.
FossilOrigin-Name: 7e30c021abe5a559918efaa5fc0b21db8ca782ad
2012-12-18 13:12:03 +00:00
drh
0a8a406e9b
Some errors in veryquick resolved. Many more to go.
...
FossilOrigin-Name: 972443b4eb282d45507da06c75e2cd46dd72326b
2012-12-07 18:38:16 +00:00
drh
ab35eaed1f
Parser bug fix: Make sure the table constraints allowed by prior releases
...
can still be parsed, even if they are technically not allowed by the
syntax diagram.
FossilOrigin-Name: e536ac041815b118c461ceee798f9b7283269f58
2012-05-12 18:29:53 +00:00
drh
aeb281c2ea
Further changes to constraint parsing to support legacy syntax.
...
FossilOrigin-Name: 38bf90af1ede6ee64ef7be66392e895e60c9126e
2012-05-08 11:17:33 +00:00
drh
4dc330dd33
Adjust the parser so that certain legacy schema constructs (that are not
...
valid according to the syntax diagram) continue to be accepted, so that
older databases that happen to use those constructs are still readable.
This fixes an issue introduced by check-in [1b75f301affac6]
FossilOrigin-Name: a1c014d8a87c8940b3a037d8d8cc4d5678809802
2012-05-07 19:21:36 +00:00
drh
f68686ae52
When a named CHECK constraint fails, include the name of the constraint
...
in the error message.
FossilOrigin-Name: 1b75f301affac654bee24fa247046ea0782d3c4d
2012-03-30 15:48:48 +00:00
drh
f9df449809
Change the name of a local variable from "not" to "bNot" to lessen the
...
chances of it colliding with some prior #define in the appliation.
FossilOrigin-Name: cbdd86387630600b309de4aaeaa131ec7b053ce2
2012-03-30 12:10:38 +00:00
drh
2938f924cc
If a CHECK constraint is named, report that name on the error message when
...
the constraint fails.
FossilOrigin-Name: 9a0f90d9deb335ac71044b8afa81538d85cc7ccf
2012-03-07 19:13:29 +00:00
drh
76aad0d1df
Disable the ability to have multiple values in the VALUES clause of an
...
INSERT statement when SQLITE_OMIT_COMPOUND_SELECT is used.
FossilOrigin-Name: 92131195d0c24c0116992db51ed5d8316626ba57
2012-02-10 17:38:58 +00:00
drh
8395b7b6cb
Remove a couple of unnecessary nonterminals from the grammar.
...
FossilOrigin-Name: 2b2a7d8d736d1e72f847f443b9957e41da6149c9
2012-01-28 19:44:22 +00:00
drh
b421b894e0
Add support for IF NOT EXISTS on CREATE VIRTUAL TABLE.
...
FossilOrigin-Name: 230983e86a897caa91a487ef2d4c1c7fb7c79f10
2012-01-28 19:41:53 +00:00
drh
7b113bab79
Add support for multiple rows of VALUES in an INSERT statement.
...
FossilOrigin-Name: eb3b6a0ceb8bfb9fd59ff5fec420f863a9b5c4e4
2012-01-28 15:22:22 +00:00
drh
7e02e5e6b5
Begin adding the data-structure explaining subsystem. All is contained within
...
FossilOrigin-Name: 79ae51c5b1b20ed0a425a87e65a32a096a80b7e1
2011-12-06 19:44:51 +00:00
drh
d4e244ad56
Remove unused fields from the Parse object. Documentation and formatting
...
improvements on data structure definitions.
FossilOrigin-Name: 431556cac0b2c86d7f6a60412ff1023feeaafedf
2011-11-29 15:40:32 +00:00
drh
8342e49f62
Enhance the LIKE/GLOB query optimization so that it works as long as there
...
is an index with the appropriate collating sequence and even if the default
collating sequence of the column is different.
Ticket [4711020446da7d93d99].
FossilOrigin-Name: 9f932655f9eb9fdab16d7deed98b7cad414e0ca6
2010-07-22 17:49:52 +00:00
drh
1dca1458cc
Fix a parser bug that was causing the relative precedence of LIKE and <
...
operators to be incorrect.
FossilOrigin-Name: 3e5975aa3bb9df9e1f954bcce99384e0f13cb453
2010-07-19 02:30:33 +00:00
dan
473c1bf241
Change a comment inside a block of code in parse.y from C++ to C style.
...
FossilOrigin-Name: dea7d33b2d7d25280a31a2b9c1573f4292b81187
2010-07-15 11:14:21 +00:00
drh
094430eb71
Make the result of an IN or NOT IN expression with an empty set on the
...
right-hand side always either false or true, respectively, even if the
left-hand side is NULL. Ticket [80e031a00f45dc]
FossilOrigin-Name: c288ac644d0bfda2b9bc204dc86df8e74d4f6843
2010-07-14 18:24:06 +00:00
drh
c29c5aa1fd
Restore the incorrect legacy ON INSERT syntax to the parser as a no-op.
...
That way, older databases that actually use this meaningless syntax will
still be readable.
FossilOrigin-Name: 54b955c36ba5c139a63c6031855305b764d3fa6c
2009-12-09 21:43:36 +00:00
shaneh
5e17e8b7dd
Fix a couple of compiler warnings under MSVC.
...
FossilOrigin-Name: e3aa0870fce0666bf8c67ad6ec23e135d03b604a
2009-12-03 04:40:47 +00:00
drh
6a51741d46
Suppress excess OP_Null opcodes caused by binary IS or IS NOT operators
...
that are converted into unary ISNULL or NOTNULL operators.
FossilOrigin-Name: cff1b36ab2c417611f59e96694005c03762788d2
2009-11-12 03:46:34 +00:00
drh
c81c11f62c
Remove the obsolete "$Id:$" RCS identifier strings from the source code.
...
FossilOrigin-Name: f6c045f649036958078cb15cd9d5453680c82b0c
2009-11-10 01:30:52 +00:00
drh
fcf486c3b4
Add evidence marks to parse.y. Fix a broken evidence link in e_fkey.tcl.
...
FossilOrigin-Name: 0441d28e84af20e3a98a07a43471784ac09c78db
2009-10-21 13:48:24 +00:00