mirror of
https://github.com/sqlitebrowser/sqlitebrowser.git
synced 2026-01-20 02:50:46 -06:00
Grammar: Support ON INSERT in foreign key clauses
Allow ON INSERT in foreign key clauses like this: CREATE TABLE x ( y INTEGER REFERENCES ref(id) ON INSERT CASCADE ) Note that ON INSERT is allowed by SQLite but missing in the SQLite documentation. This partially fixes EoD's problem in issue #63.
This commit is contained in:
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@@ -78,10 +78,10 @@ protected:
|
||||
private:
|
||||
static const char* tokenNames[];
|
||||
#ifndef NO_STATIC_CONSTS
|
||||
static const int NUM_TOKENS = 106;
|
||||
static const int NUM_TOKENS = 107;
|
||||
#else
|
||||
enum {
|
||||
NUM_TOKENS = 106
|
||||
NUM_TOKENS = 107
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -50,6 +50,7 @@ tokens {
|
||||
IGNORE="IGNORE";
|
||||
IN="IN";
|
||||
INITIALLY="INITIALLY";
|
||||
INSERT="INSERT";
|
||||
IMMEDIATE="IMMEDIATE";
|
||||
IS="IS";
|
||||
NO="NO";
|
||||
@@ -377,7 +378,7 @@ conflictclause
|
||||
foreignkeyclause
|
||||
:
|
||||
REFERENCES tablename (LPAREN columnname (COMMA columnname)* RPAREN)?
|
||||
( ON (DELETE | UPDATE)
|
||||
( ON (DELETE | UPDATE | INSERT)
|
||||
( SET (NULL_T | DEFAULT)
|
||||
| CASCADE
|
||||
| RESTRICT
|
||||
|
||||
@@ -49,71 +49,72 @@ struct CUSTOM_API sqlite3TokenTypes {
|
||||
IGNORE = 38,
|
||||
IN = 39,
|
||||
INITIALLY = 40,
|
||||
IMMEDIATE = 41,
|
||||
IS = 42,
|
||||
NO = 43,
|
||||
NOT = 44,
|
||||
NULL_T = 45,
|
||||
MATCH = 46,
|
||||
EXISTS = 47,
|
||||
ON = 48,
|
||||
PRIMARY = 49,
|
||||
RAISE = 50,
|
||||
REFERENCES = 51,
|
||||
REGEXP = 52,
|
||||
REPLACE = 53,
|
||||
RESTRICT = 54,
|
||||
ROLLBACK = 55,
|
||||
ROWID = 56,
|
||||
SET = 57,
|
||||
TEMPORARY = 58,
|
||||
TEMP = 59,
|
||||
THEN = 60,
|
||||
UNIQUE = 61,
|
||||
UPDATE = 62,
|
||||
WHEN = 63,
|
||||
WITHOUT = 64,
|
||||
TYPE_NAME = 65,
|
||||
COLUMNDEF = 66,
|
||||
COLUMNCONSTRAINT = 67,
|
||||
TABLECONSTRAINT = 68,
|
||||
CREATETABLE = 69,
|
||||
KEYWORDASTABLENAME = 70,
|
||||
KEYWORDASCOLUMNNAME = 71,
|
||||
DIGIT = 72,
|
||||
DOT = 73,
|
||||
ID = 74,
|
||||
QUOTEDID = 75,
|
||||
QUOTEDLITERAL = 76,
|
||||
NUMERIC = 77,
|
||||
NL = 78,
|
||||
COMMENT = 79,
|
||||
WS = 80,
|
||||
STRINGLITERAL = 81,
|
||||
LPAREN = 82,
|
||||
RPAREN = 83,
|
||||
COMMA = 84,
|
||||
SEMI = 85,
|
||||
PLUS = 86,
|
||||
MINUS = 87,
|
||||
STAR = 88,
|
||||
TILDE = 89,
|
||||
AMPERSAND = 90,
|
||||
BITOR = 91,
|
||||
OROP = 92,
|
||||
EQUAL = 93,
|
||||
EQUAL2 = 94,
|
||||
GREATER = 95,
|
||||
GREATEREQUAL = 96,
|
||||
LOWER = 97,
|
||||
LOWEREQUAL = 98,
|
||||
UNEQUAL = 99,
|
||||
UNEQUAL2 = 100,
|
||||
BITWISELEFT = 101,
|
||||
BITWISERIGHT = 102,
|
||||
SELECT = 103,
|
||||
SLASH = 104,
|
||||
PERCENT = 105,
|
||||
INSERT = 41,
|
||||
IMMEDIATE = 42,
|
||||
IS = 43,
|
||||
NO = 44,
|
||||
NOT = 45,
|
||||
NULL_T = 46,
|
||||
MATCH = 47,
|
||||
EXISTS = 48,
|
||||
ON = 49,
|
||||
PRIMARY = 50,
|
||||
RAISE = 51,
|
||||
REFERENCES = 52,
|
||||
REGEXP = 53,
|
||||
REPLACE = 54,
|
||||
RESTRICT = 55,
|
||||
ROLLBACK = 56,
|
||||
ROWID = 57,
|
||||
SET = 58,
|
||||
TEMPORARY = 59,
|
||||
TEMP = 60,
|
||||
THEN = 61,
|
||||
UNIQUE = 62,
|
||||
UPDATE = 63,
|
||||
WHEN = 64,
|
||||
WITHOUT = 65,
|
||||
TYPE_NAME = 66,
|
||||
COLUMNDEF = 67,
|
||||
COLUMNCONSTRAINT = 68,
|
||||
TABLECONSTRAINT = 69,
|
||||
CREATETABLE = 70,
|
||||
KEYWORDASTABLENAME = 71,
|
||||
KEYWORDASCOLUMNNAME = 72,
|
||||
DIGIT = 73,
|
||||
DOT = 74,
|
||||
ID = 75,
|
||||
QUOTEDID = 76,
|
||||
QUOTEDLITERAL = 77,
|
||||
NUMERIC = 78,
|
||||
NL = 79,
|
||||
COMMENT = 80,
|
||||
WS = 81,
|
||||
STRINGLITERAL = 82,
|
||||
LPAREN = 83,
|
||||
RPAREN = 84,
|
||||
COMMA = 85,
|
||||
SEMI = 86,
|
||||
PLUS = 87,
|
||||
MINUS = 88,
|
||||
STAR = 89,
|
||||
TILDE = 90,
|
||||
AMPERSAND = 91,
|
||||
BITOR = 92,
|
||||
OROP = 93,
|
||||
EQUAL = 94,
|
||||
EQUAL2 = 95,
|
||||
GREATER = 96,
|
||||
GREATEREQUAL = 97,
|
||||
LOWER = 98,
|
||||
LOWEREQUAL = 99,
|
||||
UNEQUAL = 100,
|
||||
UNEQUAL2 = 101,
|
||||
BITWISELEFT = 102,
|
||||
BITWISERIGHT = 103,
|
||||
SELECT = 104,
|
||||
SLASH = 105,
|
||||
PERCENT = 106,
|
||||
NULL_TREE_LOOKAHEAD = 3
|
||||
};
|
||||
#ifdef __cplusplus
|
||||
|
||||
Reference in New Issue
Block a user