Index: third_party/sqlite/src/tool/mkkeywordhash.c |
diff --git a/third_party/sqlite/src/tool/mkkeywordhash.c b/third_party/sqlite/src/tool/mkkeywordhash.c |
index 58e10c8246756b4a67ef9a1754d4a52a5036ea0c..509aeef9ea0a4e3b579e9bcf45004f8fbda9807f 100644 |
--- a/third_party/sqlite/src/tool/mkkeywordhash.c |
+++ b/third_party/sqlite/src/tool/mkkeywordhash.c |
@@ -16,7 +16,7 @@ static const char zHdr[] = |
"**\n" |
"** The code in this file has been automatically generated by\n" |
"**\n" |
- "** $Header: /home/drh/sqlite/trans/cvs/sqlite/sqlite/tool/mkkeywordhash.c,v 1.38 2009/06/09 14:27:41 drh Exp $\n" |
+ "** sqlite/tool/mkkeywordhash.c\n" |
"**\n" |
"** The code in this file implements a function that determines whether\n" |
"** or not a given identifier is really an SQL keyword. The same thing\n" |
@@ -144,6 +144,7 @@ struct Keyword { |
*/ |
static Keyword aKeywordTable[] = { |
{ "ABORT", "TK_ABORT", CONFLICT|TRIGGER }, |
+ { "ACTION", "TK_ACTION", FKEY }, |
{ "ADD", "TK_ADD", ALTER }, |
{ "AFTER", "TK_AFTER", TRIGGER }, |
{ "ALL", "TK_ALL", ALWAYS }, |
@@ -218,6 +219,7 @@ static Keyword aKeywordTable[] = { |
{ "LIMIT", "TK_LIMIT", ALWAYS }, |
{ "MATCH", "TK_MATCH", ALWAYS }, |
{ "NATURAL", "TK_JOIN_KW", ALWAYS }, |
+ { "NO", "TK_NO", FKEY }, |
{ "NOT", "TK_NOT", ALWAYS }, |
{ "NOTNULL", "TK_NOTNULL", ALWAYS }, |
{ "NULL", "TK_NULL", ALWAYS }, |
@@ -299,6 +301,7 @@ static int keywordCompare1(const void *a, const void *b){ |
if( n==0 ){ |
n = strcmp(pA->zName, pB->zName); |
} |
+ assert( n!=0 ); |
return n; |
} |
static int keywordCompare2(const void *a, const void *b){ |
@@ -308,12 +311,15 @@ static int keywordCompare2(const void *a, const void *b){ |
if( n==0 ){ |
n = strcmp(pA->zName, pB->zName); |
} |
+ assert( n!=0 ); |
return n; |
} |
static int keywordCompare3(const void *a, const void *b){ |
const Keyword *pA = (Keyword*)a; |
const Keyword *pB = (Keyword*)b; |
int n = pA->offset - pB->offset; |
+ if( n==0 ) n = pB->id - pA->id; |
+ assert( n!=0 ); |
return n; |
} |
@@ -590,6 +596,7 @@ int main(int argc, char **argv){ |
printf("int sqlite3KeywordCode(const unsigned char *z, int n){\n"); |
printf(" return keywordCode((char*)z, n);\n"); |
printf("}\n"); |
+ printf("#define SQLITE_N_KEYWORD %d\n", nKeyword); |
return 0; |
} |