diff options
Diffstat (limited to 'ext/pdo_sqlite/sqlite/tool/mkkeywordhash.c')
| -rw-r--r-- | ext/pdo_sqlite/sqlite/tool/mkkeywordhash.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/ext/pdo_sqlite/sqlite/tool/mkkeywordhash.c b/ext/pdo_sqlite/sqlite/tool/mkkeywordhash.c index 58d4b9cb7..3301a40e9 100644 --- a/ext/pdo_sqlite/sqlite/tool/mkkeywordhash.c +++ b/ext/pdo_sqlite/sqlite/tool/mkkeywordhash.c @@ -105,7 +105,11 @@ struct Keyword { #else # define VIEW 0x00008000 #endif - +#ifdef SQLITE_OMIT_VIRTUALTABLE +# define VTAB 0 +#else +# define VTAB 0x00010000 +#endif /* ** These are the keywords @@ -155,7 +159,7 @@ static Keyword aKeywordTable[] = { { "ESCAPE", "TK_ESCAPE", ALWAYS }, { "EXCEPT", "TK_EXCEPT", COMPOUND }, { "EXCLUSIVE", "TK_EXCLUSIVE", ALWAYS }, - { "EXISTS", "TK_EXISTS", SUBQUERY }, + { "EXISTS", "TK_EXISTS", ALWAYS }, { "EXPLAIN", "TK_EXPLAIN", EXPLAIN }, { "FAIL", "TK_FAIL", CONFLICT|TRIGGER }, { "FOR", "TK_FOR", TRIGGER }, @@ -165,6 +169,7 @@ static Keyword aKeywordTable[] = { { "GLOB", "TK_LIKE_KW", ALWAYS }, { "GROUP", "TK_GROUP", ALWAYS }, { "HAVING", "TK_HAVING", ALWAYS }, + { "IF", "TK_IF", ALWAYS }, { "IGNORE", "TK_IGNORE", CONFLICT|TRIGGER }, { "IMMEDIATE", "TK_IMMEDIATE", ALWAYS }, { "IN", "TK_IN", ALWAYS }, @@ -222,6 +227,7 @@ static Keyword aKeywordTable[] = { { "VACUUM", "TK_VACUUM", VACUUM }, { "VALUES", "TK_VALUES", ALWAYS }, { "VIEW", "TK_VIEW", VIEW }, + { "VIRTUAL", "TK_VIRTUAL", VTAB }, { "WHEN", "TK_WHEN", ALWAYS }, { "WHERE", "TK_WHERE", ALWAYS }, }; @@ -482,8 +488,8 @@ int main(int argc, char **argv){ printf(" int h, i;\n"); printf(" if( n<2 ) return TK_ID;\n"); - printf(" h = ((sqlite3UpperToLower[((unsigned char*)z)[0]]*4) ^\n" - " (sqlite3UpperToLower[((unsigned char*)z)[n-1]]*3) ^\n" + printf(" h = ((charMap(z[0])*4) ^\n" + " (charMap(z[n-1])*3) ^\n" " n) %% %d;\n", bestSize); printf(" for(i=((int)aHash[h])-1; i>=0; i=((int)aNext[i])-1){\n"); printf(" if( aLen[i]==n &&" @@ -493,8 +499,8 @@ int main(int argc, char **argv){ printf(" }\n"); printf(" return TK_ID;\n"); printf("}\n"); - printf("int sqlite3KeywordCode(const char *z, int n){\n"); - printf(" return keywordCode(z, n);\n"); + printf("int sqlite3KeywordCode(const unsigned char *z, int n){\n"); + printf(" return keywordCode((char*)z, n);\n"); printf("}\n"); return 0; |
