Commit Graph

54 Commits

Author SHA1 Message Date
drh
0a6259f539 Remove the MySQL upsert syntax. As an optional alias to the insert table
name in order to finish out PostgreSQL upsert syntax emulation.

FossilOrigin-Name: 810d9f63be46c1452718b05e51c519fb64e9fabf2f1813b5e07b1041dbb71880
2018-04-16 13:26:53 +00:00
drh
6cd7d489db Update the upsert parsing so that it accepts conflict-target labels using
the PostgreSQL syntax, and also accepts the MySQL "ON DUPLICATE KEY"
syntax.

FossilOrigin-Name: c48f64d8ae2625a19267b02e4a173a07766934235ad3052cd9d38f5ecbcbfbc3
2018-04-12 15:43:05 +00:00
drh
2c2e844a36 More complete parsing of UPSERT, including UPSERT within a trigger.
The sqlite3Insert() logic to actually perform the UPSERT is not yet
implemented, however.

FossilOrigin-Name: 5cc2a5a315a2f26b392811de45b3dc352873a173c2c6c65f37ce2e5f88a71cd2
2018-04-07 15:04:05 +00:00
drh
a0c3927510 Change the (machine-generated) keywordhash.h file to increase the scope of the
tables used for keyword matching, so that the tables are accessible to
functions other then keywordCode().

FossilOrigin-Name: c5ed5ebdf660501fde7cc8aefaaaeae2a68e5899a64ac93f26684842a235281d
2017-07-06 16:33:14 +00:00
drh
34dcee6544 Add code to get the tokenizer character-class logic working for EBCDIC.
FossilOrigin-Name: 04f7da77c13925c1f1e287f4579bb85518297d81
2016-02-08 19:15:48 +00:00
drh
41aab89b31 Faster keywordCode() implementation by taking advantage of the fact that
the input is always pure ASCII alphabetic and underscore and that the keyword
table is always upper-case.

FossilOrigin-Name: ff406b9701ebe3a01834837f380641c6f0c495bc
2016-02-08 03:23:46 +00:00
mistachkin
81c7811fe7 Fix harmless compiler warning.
FossilOrigin-Name: eea26b6caea37422c9b46a7a3a538b0c9575f392
2015-11-17 19:16:39 +00:00
drh
54bb56d82a Performance enhancement to the tokenizer.
FossilOrigin-Name: 6ea2df86c95c226052f528424e9bee367a2e765a
2015-11-10 03:30:51 +00:00
drh
7ef4d1c403 Fix a compile of harmless static analyzer warnings.
FossilOrigin-Name: 7e287f2055dcd82c92d1711aec97cb6552a354bb
2014-05-31 15:39:53 +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
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
3a2d08e599 Fix a harmless compiler warning in the mkkeywordhash.c utility program.
FossilOrigin-Name: 6015200beb3be7ec141ce36de694278e3ba11a02
2012-04-18 10:13:20 +00:00
drh
0e857739c4 Add a new sqlite3_test_control() verb that facilitates testing that all
keywords are shown in the documentation.  (Two keywords were found to
be missing while testing the change.)

FossilOrigin-Name: d3cdc4b12be7f1ed2249ad210482200868956d12
2010-01-02 03:21:35 +00:00
drh
9a5f4d64f3 Force all qsort() calls in mkkeywordhash.c to be stable so that we get
predictable results on different platforms.

FossilOrigin-Name: 3b02df27ab63936226a90098d88535ed19c2b782
2009-11-03 13:08:16 +00:00
dan
75cbd984f7 Fix compilation with OMIT_TRIGGER defined. Ticket [1ff6d29030e9757d052af0f394e56bea96b8b59b|1ff6d29030].
FossilOrigin-Name: fb6ceed388f6d75bdc2ac2f43e5c98da74e2a448
2009-09-21 16:06:03 +00:00
drh
9bb6697ac6 Modify mkkeywordhash.c so that it puts the original text of each token in
a comment beside the "testcase()" macros. (CVS 6736)

FossilOrigin-Name: a7d0817c176832a88788cc973c0aae8dcab57364
2009-06-09 14:27:41 +00:00
drh
565911e912 Make the TO keyword available even if SQLITE_OMIT_ALTERTABLE is defined.
Ticket #3622. (CVS 6223)

FossilOrigin-Name: 3890985ca6750584876596fd0a124f47ee032075
2009-02-01 00:00:45 +00:00
drh
f3d20c04a2 Avoid surplus bytes at the end of the keyword string table.
Add testcase() macros to make sure all keywords are used during
testing. (CVS 6090)

FossilOrigin-Name: 73958060aaf641d93bede3a42851e5b3451f5432
2008-12-31 21:52:40 +00:00
danielk1977
fd7f045225 Add the savepoint feature. This feature is largely untested at this point. (CVS 6036)
FossilOrigin-Name: 34b56600ec0c5cd7b5faab265750252bc9850e3e
2008-12-17 17:30:26 +00:00
shane
00c586a238 Fixed typo in comment in mkkeywordhash.c. (CVS 6009)
FossilOrigin-Name: b7dd05b403e69caca814ccd8824130f176160cd5
2008-12-10 20:11:01 +00:00
drh
1875f7a3db The amalgamation now compiles cleanly on GCC with options
-pedantic-errors -Wno-long-long. (CVS 5991)

FossilOrigin-Name: 73c7302c5f76a2f61ecd75f8bda69bb500d3119c
2008-12-08 18:19:17 +00:00
danielk1977
85574e31cb Allow INDEXED BY and NOT INDEXED clauses in SELECT statements. (CVS 5766)
FossilOrigin-Name: 98ca5580f5acd2e7b3ce512520ec0527f221505e
2008-10-06 05:32:18 +00:00
rse
43e47c8ec1 Get rid of the following compile-time warnings:
tool/mkkeywordhash.c:353: warning: array subscript has type 'char'
tool/mkkeywordhash.c:354: warning: array subscript has type 'char' (CVS 4189)

FossilOrigin-Name: c01d7944799d8a96a29f8d4f6d2bb7c4bb0e14bb
2007-07-30 18:26:19 +00:00
drh
ca5557f91d Change incremental vacuum to be triggered by a pragma rather than a command.
We have a lot to learn about this yet and we do not want to paint ourselves
into a corner by commiting to specific syntax too early. (CVS 3921)

FossilOrigin-Name: b13e497a326697ab42b429993a1eee7df3c0c3eb
2007-05-04 18:30:40 +00:00
drh
744f2f4658 Tighter compression of the keyword hash table. (CVS 3920)
FossilOrigin-Name: 681216767d7fabfccb0b12f6a81b18b6d1c252bf
2007-05-04 17:07:52 +00:00
danielk1977
dddbcdcc68 Add largely untested code for the incremental vacuum function. (CVS 3876)
FossilOrigin-Name: f6a6d2b8872c05089810b1e095f39011f3035408
2007-04-26 14:42:34 +00:00
drh
60218d2a0e The FOR EACH STATEMENT clause in a trigger is now a syntax error. It used
to be silently ignored.  STATEMENT is no longer a keyword. (CVS 3821)

FossilOrigin-Name: 8e2559b4da6329d7c21925d0850f7f91a3731975
2007-04-06 11:26:00 +00:00
drh
fdbcdee5ff The -DSQLITE_OMIT_ATTACH=1 option now omits both the ATTACH and VACUUM
commands. Ticket #2268.
 The regression test suite depends on both of these commands
and will not run if compiled with this option. (CVS 3727)

FossilOrigin-Name: cbebfb89603044e48b3a87b79d1eefbbc5b4c8a5
2007-03-27 14:44:50 +00:00
drh
0d5359b9d8 Add comments to the top of keywordhash.h. (CVS 3651)
FossilOrigin-Name: 0aa9ed5bbfb756967a6f761c5fc2f274a5466e2d
2007-02-21 16:44:33 +00:00
drh
e09daa90ac Basic parsing of CREATE VIRTUAL TABLE statements. (CVS 3210)
FossilOrigin-Name: 66370cb99bd93abb33e1e8433672da45e1795f78
2006-06-10 13:29:31 +00:00
drh
9b8f447b36 Changes to get SQLite running on machines that use the EBCDIC character set. (CVS 3161)
FossilOrigin-Name: 4342b4997199241cafd6120c6abda665770e270c
2006-04-04 01:54:55 +00:00
danielk1977
1576cd9251 Fixes for OMIT_SUBQUERY builds: Disable where clause OR->IN optimization. Include EXISTS keyword (for new CREATE TABLE syntax). Test file fixes. (CVS 2943)
FossilOrigin-Name: 8e79a0c24a03ccf960d6ccfb7c6b9b0f7c614e9b
2006-01-14 08:02:28 +00:00
drh
a073384f08 Add support for DROP TABLE IF EXISTS. (CVS 2843)
FossilOrigin-Name: a4c547de83d8b27f06a58f9e530a7c983ec1dc3a
2005-12-29 01:11:36 +00:00
drh
2646da7e52 Clean up annoying (and pointless) compiler warnings about differing signedness. (CVS 2810)
FossilOrigin-Name: 83a59151559d9496d4f546e03e65087ea974717d
2005-12-09 20:02:05 +00:00
drh
ecc9242f6f Add the experimental EXPLAIN QUERY PLAN diagnostic capability. (CVS 2685)
FossilOrigin-Name: 986efb7b12643800805ad4b1f1e90e30fcf6d38a
2005-09-10 16:46:12 +00:00
drh
9f18e8a0c4 Add infrastructure for the ANALYZE command. Does not yet actually
do anything. (CVS 2537)

FossilOrigin-Name: 05b6ac9a76fd5765c50e81588f8e71c59fe35ce4
2005-07-08 12:13:04 +00:00
drh
487e262f44 Remove the blob(), text() and numeric() functions added in (2524) and
replace them with the standard CAST operator.
Ticket #1287. (CVS 2527)

FossilOrigin-Name: 17631785f9ee8ab280c82677eb53886912e085bc
2005-06-25 18:42:14 +00:00
drh
b71090fdfb The REGEXP operator is recognized. It tries to invoke a function named
regexp() which does not exist in the native build.  But users who want to
can add an appropriate regexp() function using sqlite3_create_function(). (CVS 2478)

FossilOrigin-Name: 42a626ace126f730f33ecb6c41ac5679d6766a31
2005-05-23 17:26:51 +00:00
danielk1977
c4a41b12f4 Update to keyword list for ALTER TABLE ... ADD COLUMN command. (CVS 2394)
FossilOrigin-Name: 173e26961faec434cd4e4abc1dcb238ab9a942b8
2005-03-17 05:06:28 +00:00
danielk1977
6a67fe8edf Remove code for SQL cursors. (CVS 2312)
FossilOrigin-Name: 2eb90870556c90b8d85da3d5eb7554f74ec922c2
2005-02-04 04:07:16 +00:00
drh
74bf02858b Tweaks to the keyword hash generator. Tried to make it a little faster.
If nothing else, the keyword hash table is now a little smaller. (CVS 2297)

FossilOrigin-Name: 4eca6c05abdf3955c5fd7bd3a22c87cd4741d656
2005-02-01 01:40:44 +00:00
danielk1977
c60e9b82db Assorted minor changes to speed up loading the database schema. (CVS 2293)
FossilOrigin-Name: dfbd684a913022ad43ce59c3422d3d94f776d547
2005-01-31 12:42:29 +00:00
drh
7bf5661068 Final preparations for the 3.1.0 alpha release. (CVS 2255)
FossilOrigin-Name: 17122c7e8e9cae36f1ffa7b42bd69d702980ac6a
2005-01-21 15:52:32 +00:00
drh
51522cd34a Added the SQLITE_OMIT_SUBQUERY compile-time option and the EXISTS operator.
Regression tests are currently failing with an assertion fault. (CVS 2245)

FossilOrigin-Name: d30fdf0f2c24cb74b48fab9b83fba4e4b2fe878a
2005-01-20 13:36:19 +00:00
danielk1977
78583d2440 Include the 'FOR' keyword in builds that include cursors but not triggers. (CVS 2147)
FossilOrigin-Name: 3053d82d7192ff77ff5f1fee143d784d5d51772a
2004-11-23 12:24:13 +00:00
drh
b6c29897eb Add initial infrastructure for cursors. In where.c, optimize out clauses
of the form "ORDER BY rowid" if a table scan is being performed.  Do a
reverse table scan if "ORDER BY rowid DESC" is present. (CVS 2141)

FossilOrigin-Name: fc8c1393c86017a816beb52725b68af3b973f979
2004-11-22 19:12:19 +00:00
danielk1977
7c6303c042 Add the ESCAPE clause to the LIKE operator. Not fully tested yet. (CVS 2107)
FossilOrigin-Name: 49268c2b7a84c4c618214dac8bef0f541440fe6b
2004-11-17 16:41:29 +00:00
drh
8040bc8b57 Fix the keyword generator so that it works with SQLITE_OMIT_ALTERTABLE. (CVS 2096)
FossilOrigin-Name: 60ace9985d4ea2ef0fd245027fab2fffc32014b6
2004-11-13 03:59:25 +00:00
danielk1977
9fd2a9a028 Add the "ALTER TABLE xxx RENAME TO yyy" command. (CVS 2092)
FossilOrigin-Name: a1b2cc63e604785bd51e358ff72c485d858752e3
2004-11-12 13:42:30 +00:00