1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-07 02:42:48 +03:00

Add the sqlite3TokenInit() utility function.

FossilOrigin-Name: 7323175337b7ba85ac932ca892b28860f6a5b688
This commit is contained in:
drh
2016-01-22 17:48:09 +00:00
parent b5c557b87e
commit 40aced5c65
10 changed files with 35 additions and 35 deletions

View File

@@ -1,5 +1,5 @@
C Have\sthe\sdbstat\smodule\sdequote\sany\sargument\spassed\sto\sthe\sCREATE\sVIRTUAL\sTABLE\sstatement\sbefore\sattempting\sto\smatch\sit\sagainst\sthe\snames\sof\sattached\sdatabases. C Add\sthe\ssqlite3TokenInit()\sutility\sfunction.
D 2016-01-22T15:44:07.317 D 2016-01-22T17:48:09.470
F Makefile.in 027c1603f255390c43a426671055a31c0a65fdb4 F Makefile.in 027c1603f255390c43a426671055a31c0a65fdb4
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
F Makefile.msc d2b93511a969c0c8fcf52aeb5e426571e8c610d2 F Makefile.msc d2b93511a969c0c8fcf52aeb5e426571e8c610d2
@@ -291,16 +291,16 @@ F src/btmutex.c bc87dd3b062cc26edfe79918de2200ccb8d41e73
F src/btree.c f224ae877fde69d1a9d430f502edaf8502752dbe F src/btree.c f224ae877fde69d1a9d430f502edaf8502752dbe
F src/btree.h 526137361963e746949ab966a910c7f455ac6b04 F src/btree.h 526137361963e746949ab966a910c7f455ac6b04
F src/btreeInt.h c18b7d2a3494695133e4e60ee36061d37f45d9a5 F src/btreeInt.h c18b7d2a3494695133e4e60ee36061d37f45d9a5
F src/build.c 31af80bba31ac159967951ef58f3144cc7db9d70 F src/build.c b4eba1e84752ec9cae7ff3dacd5a8b6d1ab8deb9
F src/callback.c 29ae4faba226c7ebb9aee93016b5ce8a8f071261 F src/callback.c 29ae4faba226c7ebb9aee93016b5ce8a8f071261
F src/complete.c addcd8160b081131005d5bc2d34adf20c1c5c92f F src/complete.c addcd8160b081131005d5bc2d34adf20c1c5c92f
F src/ctime.c 60e135af364d777a9ab41c97e5e89cd224da6198 F src/ctime.c 60e135af364d777a9ab41c97e5e89cd224da6198
F src/date.c 997651e3ee6c2818fbf7fcdb7156cef9eb3ece20 F src/date.c 997651e3ee6c2818fbf7fcdb7156cef9eb3ece20
F src/dbstat.c d33af6b426449d7bfd5b3d9f77911c20d1c8abdc F src/dbstat.c b2ec6793eef97aebb4d171d490a4ffdfa9f2475c
F src/delete.c 00af9f08a15ddc5cba5962d3d3e5bf2d67b2e7da F src/delete.c 00af9f08a15ddc5cba5962d3d3e5bf2d67b2e7da
F src/expr.c df0d7c3230d59abd679da22ff5ce4cfd0e3a0e63 F src/expr.c d10c1cdef5810cdbf73adc9f9b383684230b360a
F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
F src/fkey.c e18b3dff7d47c7bcac5ac4fc178a89b9fd322b44 F src/fkey.c c66d3e5b35d4d95b5c1e2ee6c12f5df13a7f9ad6
F src/func.c ba6c03f9e440f5693086c08ee88e6e60212b3504 F src/func.c ba6c03f9e440f5693086c08ee88e6e60212b3504
F src/global.c bd5a0af3f30b0c01be6db756c626cd3c33a3d260 F src/global.c bd5a0af3f30b0c01be6db756c626cd3c33a3d260
F src/hash.c 4263fbc955f26c2e8cdc0cf214bc42435aa4e4f5 F src/hash.c 4263fbc955f26c2e8cdc0cf214bc42435aa4e4f5
@@ -345,12 +345,12 @@ F src/printf.c af589a27b7d40f6f4f704e9eea99f02f18ad6d32
F src/random.c ba2679f80ec82c4190062d756f22d0c358180696 F src/random.c ba2679f80ec82c4190062d756f22d0c358180696
F src/resolve.c 9f7ce3a3c087afb7597b7c916c99126ff3f12f0c F src/resolve.c 9f7ce3a3c087afb7597b7c916c99126ff3f12f0c
F src/rowset.c eccf6af6d620aaa4579bd3b72c1b6395d9e9fa1e F src/rowset.c eccf6af6d620aaa4579bd3b72c1b6395d9e9fa1e
F src/select.c 718954db86277d696c520fe671148db1e9c4ed3c F src/select.c 1db9a902e89201a0ae3ff5243a7a3f37842a3937
F src/shell.c dcd7a83645ef2a58ee9c6d0ea4714d877d7835c4 F src/shell.c dcd7a83645ef2a58ee9c6d0ea4714d877d7835c4
F src/sqlite.h.in 214476a62012e578f42133a9a3b4f97a9aa421a3 F src/sqlite.h.in 214476a62012e578f42133a9a3b4f97a9aa421a3
F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad
F src/sqlite3ext.h dfbe62ffd95b99afe2140d8c35b180d11924072d F src/sqlite3ext.h dfbe62ffd95b99afe2140d8c35b180d11924072d
F src/sqliteInt.h 0403328581127bc8ad2f9cc7af2c3bb23d5316da F src/sqliteInt.h 74e10a74116df0aec9d4a3e134f1a86cc34c2f14
F src/sqliteLimit.h 216557999cb45f2e3578ed53ebefe228d779cb46 F src/sqliteLimit.h 216557999cb45f2e3578ed53ebefe228d779cb46
F src/status.c 70912d7be68e9e2dbc4010c93d344af61d4c59ba F src/status.c 70912d7be68e9e2dbc4010c93d344af61d4c59ba
F src/table.c 51b46b2a62d1b3a959633d593b89bab5e2c9155e F src/table.c 51b46b2a62d1b3a959633d593b89bab5e2c9155e
@@ -405,10 +405,10 @@ F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9
F src/threads.c bbfb74450643cb5372a43ad4f6cffd7e9dfcecb0 F src/threads.c bbfb74450643cb5372a43ad4f6cffd7e9dfcecb0
F src/tokenize.c 5606871a377f390af7040ec3c12e0d183512d785 F src/tokenize.c 5606871a377f390af7040ec3c12e0d183512d785
F src/treeview.c 78842e90c1f71269e7a73a1d4221b6fe360bab66 F src/treeview.c 78842e90c1f71269e7a73a1d4221b6fe360bab66
F src/trigger.c 056e51182a3677434423e3be0c74e61b90b4a663 F src/trigger.c 72d876b2d0c66604a112362bdae07dae9b104816
F src/update.c 17332f9fe818cbc0444c36a811800af8498af4c3 F src/update.c 17332f9fe818cbc0444c36a811800af8498af4c3
F src/utf.c 32d7f82aa921322f3e1c956f4b58f019ebd2c6b3 F src/utf.c 32d7f82aa921322f3e1c956f4b58f019ebd2c6b3
F src/util.c e802e8e311a0d6c48cd1b3e89db164f6f0248d70 F src/util.c 72d40df0a52d3f30b462a15f0e094fcbade6dc82
F src/vacuum.c 2ddd5cad2a7b9cef7f9e431b8c7771634c6b1701 F src/vacuum.c 2ddd5cad2a7b9cef7f9e431b8c7771634c6b1701
F src/vdbe.c b90d9d38e5e0260c2eafa3cb4c2274d8ea94da27 F src/vdbe.c b90d9d38e5e0260c2eafa3cb4c2274d8ea94da27
F src/vdbe.h 7a733ea8aac1b77305a67698e784fa3484ee3337 F src/vdbe.h 7a733ea8aac1b77305a67698e784fa3484ee3337
@@ -1419,7 +1419,7 @@ F tool/vdbe_profile.tcl 246d0da094856d72d2c12efec03250d71639d19f
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
P e4c07df557cd50786b05eecf011bf94708e6e31b P e60461e984b8df09256bb0d733dbfae52568a145
R ccbd95b5668f9b5a41b204404932d800 R 03ab6310cefadc63b5c7c7da966c2348
U dan U drh
Z ad5fc4f27f7e976928da8b4460d48d82 Z 0c42ba520d71deaa3e0a21b23ff67f9d

View File

@@ -1 +1 @@
e60461e984b8df09256bb0d733dbfae52568a145 7323175337b7ba85ac932ca892b28860f6a5b688

View File

@@ -1708,8 +1708,7 @@ static void convertToWithoutRowidTable(Parse *pParse, Table *pTab){
if( pTab->iPKey>=0 ){ if( pTab->iPKey>=0 ){
ExprList *pList; ExprList *pList;
Token ipkToken; Token ipkToken;
ipkToken.z = pTab->aCol[pTab->iPKey].zName; sqlite3TokenInit(&ipkToken, pTab->aCol[pTab->iPKey].zName);
ipkToken.n = sqlite3Strlen30(ipkToken.z);
pList = sqlite3ExprListAppend(pParse, 0, pList = sqlite3ExprListAppend(pParse, 0,
sqlite3ExprAlloc(db, TK_ID, &ipkToken, 0)); sqlite3ExprAlloc(db, TK_ID, &ipkToken, 0));
if( pList==0 ) return; if( pList==0 ) return;
@@ -3057,8 +3056,7 @@ Index *sqlite3CreateIndex(
*/ */
if( pList==0 ){ if( pList==0 ){
Token prevCol; Token prevCol;
prevCol.z = pTab->aCol[pTab->nCol-1].zName; sqlite3TokenInit(&prevCol, pTab->aCol[pTab->nCol-1].zName);
prevCol.n = sqlite3Strlen30(prevCol.z);
pList = sqlite3ExprListAppend(pParse, 0, pList = sqlite3ExprListAppend(pParse, 0,
sqlite3ExprAlloc(db, TK_ID, &prevCol, 0)); sqlite3ExprAlloc(db, TK_ID, &prevCol, 0));
if( pList==0 ) goto exit_create_index; if( pList==0 ) goto exit_create_index;

View File

@@ -149,11 +149,9 @@ static int statConnect(
int iDb; int iDb;
if( argc>=4 ){ if( argc>=4 ){
char *zDb = sqlite3DbStrDup(db, argv[3]); Token nm;
if( zDb==0 ) return SQLITE_NOMEM; sqlite3TokenInit(&nm, (char*)argv[3]);
sqlite3Dequote(zDb); iDb = sqlite3FindDb(db, &nm);
iDb = sqlite3FindDbName(db, zDb);
sqlite3DbFree(db, zDb);
if( iDb<0 ){ if( iDb<0 ){
*pzErr = sqlite3_mprintf("no such database: %s", argv[3]); *pzErr = sqlite3_mprintf("no such database: %s", argv[3]);
return SQLITE_ERROR; return SQLITE_ERROR;

View File

@@ -85,8 +85,7 @@ Expr *sqlite3ExprAddCollateToken(
Expr *sqlite3ExprAddCollateString(Parse *pParse, Expr *pExpr, const char *zC){ Expr *sqlite3ExprAddCollateString(Parse *pParse, Expr *pExpr, const char *zC){
Token s; Token s;
assert( zC!=0 ); assert( zC!=0 );
s.z = zC; sqlite3TokenInit(&s, (char*)zC);
s.n = sqlite3Strlen30(s.z);
return sqlite3ExprAddCollateToken(pParse, pExpr, &s, 0); return sqlite3ExprAddCollateToken(pParse, pExpr, &s, 0);
} }

View File

@@ -1192,11 +1192,9 @@ static Trigger *fkActionTrigger(
assert( iFromCol>=0 ); assert( iFromCol>=0 );
assert( pIdx!=0 || (pTab->iPKey>=0 && pTab->iPKey<pTab->nCol) ); assert( pIdx!=0 || (pTab->iPKey>=0 && pTab->iPKey<pTab->nCol) );
assert( pIdx==0 || pIdx->aiColumn[i]>=0 ); assert( pIdx==0 || pIdx->aiColumn[i]>=0 );
tToCol.z = pTab->aCol[pIdx ? pIdx->aiColumn[i] : pTab->iPKey].zName; sqlite3TokenInit(&tToCol,
tFromCol.z = pFKey->pFrom->aCol[iFromCol].zName; pTab->aCol[pIdx ? pIdx->aiColumn[i] : pTab->iPKey].zName);
sqlite3TokenInit(&tFromCol, pFKey->pFrom->aCol[iFromCol].zName);
tToCol.n = sqlite3Strlen30(tToCol.z);
tFromCol.n = sqlite3Strlen30(tFromCol.z);
/* Create the expression "OLD.zToCol = zFromCol". It is important /* Create the expression "OLD.zToCol = zFromCol". It is important
** that the "OLD.zToCol" term is on the LHS of the = operator, so ** that the "OLD.zToCol" term is on the LHS of the = operator, so

View File

@@ -4438,8 +4438,7 @@ static int selectExpander(Walker *pWalker, Select *p){
pExpr = pRight; pExpr = pRight;
} }
pNew = sqlite3ExprListAppend(pParse, pNew, pExpr); pNew = sqlite3ExprListAppend(pParse, pNew, pExpr);
sColname.z = zColname; sqlite3TokenInit(&sColname, zColname);
sColname.n = sqlite3Strlen30(zColname);
sqlite3ExprListSetName(pParse, pNew, &sColname, 0); sqlite3ExprListSetName(pParse, pNew, &sColname, 0);
if( pNew && (p->selFlags & SF_NestedFrom)!=0 ){ if( pNew && (p->selFlags & SF_NestedFrom)!=0 ){
struct ExprList_item *pX = &pNew->a[pNew->nExpr-1]; struct ExprList_item *pX = &pNew->a[pNew->nExpr-1];

View File

@@ -3322,6 +3322,7 @@ char *sqlite3VMPrintf(sqlite3*,const char*, va_list);
void sqlite3SetString(char **, sqlite3*, const char*); void sqlite3SetString(char **, sqlite3*, const char*);
void sqlite3ErrorMsg(Parse*, const char*, ...); void sqlite3ErrorMsg(Parse*, const char*, ...);
int sqlite3Dequote(char*); int sqlite3Dequote(char*);
void sqlite3TokenInit(Token*,char*);
int sqlite3KeywordCode(const unsigned char*, int); int sqlite3KeywordCode(const unsigned char*, int);
int sqlite3RunParser(Parse*, const char*, char **); int sqlite3RunParser(Parse*, const char*, char **);
void sqlite3FinishCoding(Parse*); void sqlite3FinishCoding(Parse*);

View File

@@ -287,8 +287,7 @@ void sqlite3FinishTrigger(
pStepList->pTrig = pTrig; pStepList->pTrig = pTrig;
pStepList = pStepList->pNext; pStepList = pStepList->pNext;
} }
nameToken.z = pTrig->zName; sqlite3TokenInit(&nameToken, pTrig->zName);
nameToken.n = sqlite3Strlen30(nameToken.z);
sqlite3FixInit(&sFix, pParse, iDb, "trigger", &nameToken); sqlite3FixInit(&sFix, pParse, iDb, "trigger", &nameToken);
if( sqlite3FixTriggerStep(&sFix, pTrig->step_list) if( sqlite3FixTriggerStep(&sFix, pTrig->step_list)
|| sqlite3FixExpr(&sFix, pTrig->pWhen) || sqlite3FixExpr(&sFix, pTrig->pWhen)

View File

@@ -234,6 +234,14 @@ int sqlite3Dequote(char *z){
return j; return j;
} }
/*
** Generate a Token object from a string
*/
void sqlite3TokenInit(Token *p, char *z){
p->z = z;
p->n = sqlite3Strlen30(z);
}
/* Convenient short-hand */ /* Convenient short-hand */
#define UpperToLower sqlite3UpperToLower #define UpperToLower sqlite3UpperToLower