diff --git a/addopcodes.awk b/addopcodes.awk index b806b1d96c..f6f8927e24 100644 --- a/addopcodes.awk +++ b/addopcodes.awk @@ -23,10 +23,9 @@ END { printf "#define TK_%-29s %4d\n", "ILLEGAL", max+7 printf "#define TK_%-29s %4d\n", "SPACE", max+8 printf "#define TK_%-29s %4d\n", "UNCLOSED_STRING", max+9 - printf "#define TK_%-29s %4d\n", "COMMENT", max+10 - printf "#define TK_%-29s %4d\n", "FUNCTION", max+11 - printf "#define TK_%-29s %4d\n", "COLUMN", max+12 - printf "#define TK_%-29s %4d\n", "AGG_FUNCTION", max+13 - printf "#define TK_%-29s %4d\n", "AGG_COLUMN", max+14 - printf "#define TK_%-29s %4d\n", "CONST_FUNC", max+15 + printf "#define TK_%-29s %4d\n", "FUNCTION", max+10 + printf "#define TK_%-29s %4d\n", "COLUMN", max+11 + printf "#define TK_%-29s %4d\n", "AGG_FUNCTION", max+12 + printf "#define TK_%-29s %4d\n", "AGG_COLUMN", max+13 + printf "#define TK_%-29s %4d\n", "CONST_FUNC", max+14 } diff --git a/manifest b/manifest index d3372aa7be..7796057869 100644 --- a/manifest +++ b/manifest @@ -1,12 +1,12 @@ -C Improved\sclarity\sof\spresentation\sin\sthe\stokenizer.\s(CVS\s5545) -D 2008-08-07T13:05:35 +C Disallow\sthe\sON\sCONFLICT\sclause\son\sCHECK\sconstraints.\s\sThe\ssyntax\sused\sto\sbe\nallowed\sbut\snever\sworked,\sso\sthis\sshould\snot\spresent\scompatibility\sproblems.\nOther\sinternal\sgrammar\ssimplifications.\s(CVS\s5546) +D 2008-08-08T14:19:41 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.in 2713ea64947be3b35f35d9a3158bb8299c90b019 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 F README b974cdc3f9f12b87e851b04e75996d720ebf81ac F VERSION 1d5b2c9192236ed2c6bad659a7c2d1662e39e7b9 F aclocal.m4 7d02b11fed45174e11156144227278deb6236eea -F addopcodes.awk 701697fae48376375ec8532c3d04e910cfeef352 +F addopcodes.awk 48a2ffae0a6fb191ae9e42e69a90b15d973e0339 F art/2005osaward.gif 0d1851b2a7c1c9d0ccce545f3e14bca42d7fd248 F art/SQLite.eps 9b43cc99cfd2be687d386faea6862ea68d6a72b2 F art/SQLite.gif 1bbb94484963f1382e27e1c5e86dd0c1061eba2b @@ -90,7 +90,7 @@ F sqlite.pc.in c322c6244c6395955dca34d87955aabde7df7623 F sqlite3.1 6be1ad09113570e1fc8dcaff84c9b0b337db5ffc F sqlite3.def a1be7b9a4b8b51ac41c6ff6e8e44a14ef66b338b F sqlite3.pc.in 32b8a014799c2028c8e0c9cc5659718262fc493f -F src/alter.c 2c541aaa88d720301253f181799d4af7bb9ddf1c +F src/alter.c f462b637bac6c6576a9b7bc6da59c7a82ed5aab2 F src/analyze.c 747ce8cb6b318bb0d0576cfb5277aed98cbbeb5c F src/attach.c a85c14612e7e3410e0c3d2e0241832fa9688bd14 F src/auth.c c8b2ab5c8bad4bd90ed7c294694f48269162c627 @@ -137,7 +137,7 @@ F src/os_unix.c fe0dbc35bcd3de49e46b132abfc0f45d6dd6a864 F src/os_win.c aefe9ee26430678a19a058a874e4e2bd91398142 F src/pager.c b6a366f2343e7f127d7e70dbe76cd664336143cd F src/pager.h 588c1ac195228b2da45c4e5f7ab6c2fd253d1751 -F src/parse.y d962e544d9953289db23c1d4cc2dab514c7136fa +F src/parse.y 3bd91b936a247dbb89a6fb1824cb18c6987f16b0 F src/pragma.c 6e207b4f69901089758c02c02e0bf86ed12a4d8f F src/prepare.c d9f420808f7d2802258f0bf64103271311e2d87f F src/printf.c 2e984b2507291a7e16d89dc9bb60582904f6247d @@ -177,7 +177,7 @@ F src/test_schema.c 4b4bf7bb329326458c491b0e6facd4c8c4c5b479 F src/test_server.c f0a403b5f699c09bd2b1236b6f69830fd6221f6b F src/test_tclvar.c 73530070df8378571c8ce6bbbbb993236ae3ad0b F src/test_thread.c e297dd41db0b249646e69f97d36ec13e56e8b730 -F src/tokenize.c 0b8f3e1dc928cef15857fd59a61e76afcf7a39b4 +F src/tokenize.c d16ca0e9944161c76d2e4c11dc379ec88189b93b F src/trigger.c b61aaf7bff8e3763b234dbf46a1a64fb88a34e64 F src/update.c 79b77a3cc8ed5f8903a7f37055fcedd69388dcae F src/utf.c a7004436a6ef2aee012ace93de274dd0f3c7624e @@ -617,7 +617,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81 F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 1dbced29de5f59ba2ebf877edcadf171540374d1 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e -P ce8cbeea51442ea963bcdf5ddc71f021fb996a37 -R d3ffb4267b8bb3f4ad51b066b9b3e92c +P 732657c6a639bdf71a3341f6747d19298d442ddb +R a8dbe9c0297be9af2808d9fc7cbb821d U drh -Z 7539001bbb09229cb83d06a8b023aae5 +Z c51d96114f2cd9514587cda1bec559ff diff --git a/manifest.uuid b/manifest.uuid index d6c704253a..ab8e704957 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -732657c6a639bdf71a3341f6747d19298d442ddb \ No newline at end of file +4cedc641ed39982ae8cbb9200aa1e2f37c878b73 \ No newline at end of file diff --git a/src/alter.c b/src/alter.c index ba929beddc..ec315da487 100644 --- a/src/alter.c +++ b/src/alter.c @@ -12,7 +12,7 @@ ** This file contains C code routines that used to generate VDBE code ** that implements the ALTER TABLE command. ** -** $Id: alter.c,v 1.47 2008/07/28 19:34:53 drh Exp $ +** $Id: alter.c,v 1.48 2008/08/08 14:19:41 drh Exp $ */ #include "sqliteInt.h" #include @@ -74,7 +74,7 @@ static void renameTableFunc( do { zCsr += len; len = sqlite3GetToken(zCsr, &token); - } while( token==TK_SPACE || token==TK_COMMENT ); + } while( token==TK_SPACE ); assert( len>0 ); } while( token!=TK_LP && token!=TK_USING ); diff --git a/src/parse.y b/src/parse.y index b2cbe9bcab..8b6d1632e8 100644 --- a/src/parse.y +++ b/src/parse.y @@ -14,7 +14,7 @@ ** the parser. Lemon will also generate a header file containing ** numeric codes for all of the tokens. ** -** @(#) $Id: parse.y,v 1.248 2008/07/31 01:40:42 shane Exp $ +** @(#) $Id: parse.y,v 1.249 2008/08/08 14:19:41 drh Exp $ */ // All token codes are small integers with #defines that begin with "TK_" @@ -91,7 +91,6 @@ struct AttachKey { int type; Token key; }; input ::= cmdlist. cmdlist ::= cmdlist ecmd. cmdlist ::= ecmd. -cmdx ::= cmd. { sqlite3FinishCoding(pParse); } ecmd ::= SEMI. ecmd ::= explain cmdx SEMI. explain ::= . { sqlite3BeginParse(pParse, 0); } @@ -99,6 +98,7 @@ explain ::= . { sqlite3BeginParse(pParse, 0); } explain ::= EXPLAIN. { sqlite3BeginParse(pParse, 1); } explain ::= EXPLAIN QUERY PLAN. { sqlite3BeginParse(pParse, 2); } %endif SQLITE_OMIT_EXPLAIN +cmdx ::= cmd. { sqlite3FinishCoding(pParse); } ///////////////////// Begin and end transactions. //////////////////////////// // @@ -313,7 +313,7 @@ tcons ::= PRIMARY KEY LP idxlist(X) autoinc(I) RP onconf(R). {sqlite3AddPrimaryKey(pParse,X,R,I,0);} tcons ::= UNIQUE LP idxlist(X) RP onconf(R). {sqlite3CreateIndex(pParse,0,0,0,X,R,0,0,0,0);} -tcons ::= CHECK LP expr(E) RP onconf. {sqlite3AddCheckConstraint(pParse,E);} +tcons ::= CHECK LP expr(E) RP. {sqlite3AddCheckConstraint(pParse,E);} tcons ::= FOREIGN KEY LP idxlist(FA) RP REFERENCES nm(T) idxlist_opt(TA) refargs(R) defer_subclause_opt(D). { sqlite3CreateForeignKey(pParse, FA, &T, TA, R); @@ -885,11 +885,10 @@ uniqueflag(A) ::= . {A = OE_None;} %destructor idxlist {sqlite3ExprListDelete(pParse->db, $$);} %type idxlist_opt {ExprList*} %destructor idxlist_opt {sqlite3ExprListDelete(pParse->db, $$);} -%type idxitem {Token} idxlist_opt(A) ::= . {A = 0;} idxlist_opt(A) ::= LP idxlist(X) RP. {A = X;} -idxlist(A) ::= idxlist(X) COMMA idxitem(Y) collate(C) sortorder(Z). { +idxlist(A) ::= idxlist(X) COMMA nm(Y) collate(C) sortorder(Z). { Expr *p = 0; if( C.n>0 ){ p = sqlite3PExpr(pParse, TK_COLUMN, 0, 0, 0); @@ -899,7 +898,7 @@ idxlist(A) ::= idxlist(X) COMMA idxitem(Y) collate(C) sortorder(Z). { sqlite3ExprListCheckLength(pParse, A, "index"); if( A ) A->a[A->nExpr-1].sortOrder = Z; } -idxlist(A) ::= idxitem(Y) collate(C) sortorder(Z). { +idxlist(A) ::= nm(Y) collate(C) sortorder(Z). { Expr *p = 0; if( C.n>0 ){ p = sqlite3PExpr(pParse, TK_COLUMN, 0, 0, 0); @@ -909,7 +908,6 @@ idxlist(A) ::= idxitem(Y) collate(C) sortorder(Z). { sqlite3ExprListCheckLength(pParse, A, "index"); if( A ) A->a[A->nExpr-1].sortOrder = Z; } -idxitem(A) ::= nm(X). {A = X;} %type collate {Token} collate(C) ::= . {C.z = 0; C.n = 0;} diff --git a/src/tokenize.c b/src/tokenize.c index eaca6b53b7..3e5bd9de94 100644 --- a/src/tokenize.c +++ b/src/tokenize.c @@ -15,7 +15,7 @@ ** individual tokens and sends those tokens one-by-one over to the ** parser for analysis. ** -** $Id: tokenize.c,v 1.149 2008/08/07 13:05:36 drh Exp $ +** $Id: tokenize.c,v 1.150 2008/08/08 14:19:41 drh Exp $ */ #include "sqliteInt.h" #include @@ -131,7 +131,7 @@ int sqlite3GetToken(const unsigned char *z, int *tokenType){ case '-': { if( z[1]=='-' ){ for(i=2; (c=z[i])!=0 && c!='\n'; i++){} - *tokenType = TK_COMMENT; + *tokenType = TK_SPACE; return i; } *tokenType = TK_MINUS; @@ -164,7 +164,7 @@ int sqlite3GetToken(const unsigned char *z, int *tokenType){ } for(i=3, c=z[2]; (c!='*' || z[i]!='/') && (c=z[i])!=0; i++){} if( c ) i++; - *tokenType = TK_COMMENT; + *tokenType = TK_SPACE; return i; } case '%': { @@ -420,8 +420,7 @@ int sqlite3RunParser(Parse *pParse, const char *zSql, char **pzErrMsg){ break; } switch( tokenType ){ - case TK_SPACE: - case TK_COMMENT: { + case TK_SPACE: { if( db->u1.isInterrupted ){ pParse->rc = SQLITE_INTERRUPT; sqlite3SetString(pzErrMsg, db, "interrupt");