1
0
mirror of https://github.com/sqlite/sqlite.git synced 2026-10-25 09:59:22 +03:00
Commit Graph

316 Commits

Author SHA1 Message Date
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
dan
8099ce6f4a Add missing comments to fkey.c. Also, change the terminology used for comments and names in fkey.c from "referenced/referencing" to "parent/child". This is arguably less correct, but is easier to follow.
FossilOrigin-Name: 540c2d18e14c277b55f95729fbafc04ca66466b2
2009-09-23 08:43:35 +00:00
drh
6a2fe09387 Generalize the IS and IS NOT operators so that their right-hand side can be
an arbitrary expression and not simple the constant NULL.  They work like
= and <> except that NULL values compare equal to one another an unequal to
everything else.

FossilOrigin-Name: 98853f6104076c50ea92175e17a3254bfbbd4619
2009-09-23 02:29:36 +00:00
drh
7ba5bc5bf2 Factor the UMINUS and UPLUS tokens out of the parser so that the parser
tables can go back to using 8-bit values instead of 16-bit values.

FossilOrigin-Name: 3fc938c961fd7810594224b91a2d6e1ac9e48084
2009-09-22 20:08:34 +00:00
drh
9c8abf2b14 The NO ACTION action really should be no-action and not RESTRICT.
FossilOrigin-Name: 55b263fa2b2fed8c721154e3c48f4226be95065c
2009-09-22 19:53:41 +00:00
dan
75cbd984f7 Fix compilation with OMIT_TRIGGER defined. Ticket [1ff6d29030e9757d052af0f394e56bea96b8b59b|1ff6d29030].
FossilOrigin-Name: fb6ceed388f6d75bdc2ac2f43e5c98da74e2a448
2009-09-21 16:06:03 +00:00
dan
1da40a381f Check in implementation of foreign key constraints.
FossilOrigin-Name: d5d399811876391642937edeb9e8434dd9e356f5
2009-09-19 17:00:31 +00:00
shane
5eff7cf0c9 Removed some warnings from the MSVC compile. (CVS 6965)
FossilOrigin-Name: ee034cfc71425745dda8d5fee58ae95f937c86cd
2009-08-10 03:57:58 +00:00
drh
b1819a0b95 Make explicit the restrictions on UPDATE, DELETE, and INSERT statement syntax
within triggers.  Ticket #3947. (CVS 6840)

FossilOrigin-Name: c8bf40df7be728b11bb633516d1988c6064a9d70
2009-07-03 15:37:27 +00:00
danielk1977
9b87d7b904 Do not ignore alias "a" in a query of the form "SELECT ... FROM (...) AS a" Fix for #3935. Also expand upon (6751) to fix some similar obscure memory leaks. (CVS 6831)
FossilOrigin-Name: 42f9d1e56483a59353bff57d75f09ed67e1d9c3c
2009-07-01 14:56:39 +00:00
drh
8bfdf72136 Reorganize and cleanup the prepared statement object. Remove code that has
been commented out for ages and is no longer relevant to anything. (CVS 6786)

FossilOrigin-Name: 37ae5f5e8feb34a8e6e8b34aa18df1e9a1ce55cb
2009-06-19 14:06:03 +00:00
drh
8a415d3743 The lemon parser generator now inserts yytestcase() macros on reduce action
and on each destructor, to verify that all have been executed.  yytestcase()
is a no-op by default but can be set to something more useful inside
of %include. (CVS 6755)

FossilOrigin-Name: fe9c9177340a3dc372ffa1b851030d005e0c46db
2009-06-12 13:53:51 +00:00
drh
994704d1cb Enable the SQLITE_LIMIT_FUNCTION_ARG limiter. (CVS 6753)
FossilOrigin-Name: a17e3317176772446abdc8ebe6fb6f0d3b7ac018
2009-06-12 12:04:16 +00:00
drh
13d32d196e An additional memory leak in the parser fixed. Ticket #3911. (CVS 6751)
FossilOrigin-Name: 6197b492714e16396941ae6ba61f90f708d54728
2009-06-12 03:47:36 +00:00
drh
d3ec02d38e Modifications to the parser to eliminate unreachable code. (CVS 6749)
FossilOrigin-Name: 457e0b245b1833c0d297bc6f4ff9785e6a2cee02
2009-06-12 02:27:14 +00:00
drh
33e619fc1c Additional refinements to Expr handling. Restore compression of trigger
expressions.  Change Expr.zToken to Expr.u.zToken and added Expr.u.iValue.
Remove an unnecessary ExprDup from CHECK constraint processing.  And so forth. (CVS 6682)

FossilOrigin-Name: 4ac2bdfbb4230b6ceaae87e738fa61036bbe03cb
2009-05-28 01:00:55 +00:00
drh
b7916a78ff Simplifications to the Expr object: Remove Expr.span completely and convert
Expr.token into a char* Expr.zToken.  Also simplify the Token object by
removing the Token.dyn and Token.quoted fields. (CVS 6681)

FossilOrigin-Name: 7cb1c3ba0759539cb035978fdaff6316775986f3
2009-05-27 10:31:29 +00:00
drh
aaac8b4e1b Enhance the parser to allow nested parentheses in the module argument of
a CREATE VIRTUAL TABLE statement. (CVS 6625)

FossilOrigin-Name: 93772bd7f56a5158eb46a992ba932f4695cb219f
2009-05-11 18:22:30 +00:00
drh
24fb627afa Record within the Token structure itself whether or not the token has
been dequoted.  This steals one bit from the length of a token and
thus limits the size of tokens to 1GiB. (CVS 6589)

FossilOrigin-Name: 12bcb03d9b9e1a31c1a3c67cbb4263cc0af2f3d0
2009-05-01 21:13:36 +00:00
drh
6da861be0e Allow "default" to be a keyword used by PRAGMA statements. (CVS 6454)
FossilOrigin-Name: ed99d2d97f11784dda0f61f8e7d0eb5ca1bca371
2009-04-06 14:16:43 +00:00
drh
ada2ee0d8b Fix the PRAGMA parser so that it can accept negative numbers in parentheses,
like the syntax diagrams say it should be able to. (CVS 6444)

FossilOrigin-Name: 286e83178ddcd2efe2888697bcf8cc95ccdef880
2009-04-03 01:43:57 +00:00
drh
d9da78a2c8 Changes to insure that lookaside memory allocations are never used to hold
schema content.
Ticket #3743. (CVS 6377)

FossilOrigin-Name: ea74d8dc62f5784089aa8ef098e97c505a79b176
2009-03-24 15:08:09 +00:00
drh
296a483c2e Allow the keyword INDEXED to be used as the name of a table or index or
column - for backwards compatibility. (CVS 6370)

FossilOrigin-Name: 53149c9f5d5cfaba3374703cd3af92a9d4cf8718
2009-03-22 20:36:18 +00:00
shane
c0688ea172 Removed compiler warnings from MSVC builds. Ticket #3701. (CVS 6335)
FossilOrigin-Name: 5477833ec7f707ea9937d3fd6a6d8ab49f2016f1
2009-03-05 03:48:06 +00:00
danielk1977
6ab3a2ec8a Changes to reduce the heap space consumed by triggers, views and tables in the in-memory representation of the schema. Also to reduce the space used by prepared statements slightly. (CVS 6305)
FossilOrigin-Name: d9f6ffbc5ea090ba0daac571fc9a6c68b9c864e4
2009-02-19 14:39:25 +00:00
drh
db15bcd550 Add test cases to make sure that keywords that we say can be used as
identifiers really can be used as identifiers.  These tests were
inspired by ticket #3612, but they do not directly address ticket #3612. (CVS 6214)

FossilOrigin-Name: 6041ca87a16858f047727bc01f10b0bbc83609ed
2009-01-29 19:27:46 +00:00
danielk1977
78c2e6d837 Allow recently added keywords 'savepoint' and 'release' to be used as database object names. Just as they could be prior to 3.6.8. Ticket #3590. (CVS 6186)
FossilOrigin-Name: 54ab8326a1ea574b183f84c8465315e989a23ca4
2009-01-16 11:04:58 +00:00