-C Rationalize\ssome\sduplicated\scode\sin\salter.c.\sAlso\simprove\serror\smessages\sfor\nALTER\sTABLE\sRENAME\sCOLUMN\sin\ssome\scases.
-D 2018-08-21T15:06:59.702
+C Rename\sinternal\sfunction\ssqlite3RenameToken()\sto\ssqlite3RenameTokenMap()\sand\nsqlite3MoveRenameToken()\sto\ssqlite3RenameTokenRemap().
+D 2018-08-21T16:32:53.653
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F Makefile.in 0a3a6c81e6fcb969ff9106e882f0a08547014ba463cb6beca4c4efaecc924ee6
F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b
F sqlite3.1 fc7ad8990fc8409983309bb80de8c811a7506786
F sqlite3.pc.in 48fed132e7cb71ab676105d2a4dc77127d8c1f3a
-F src/alter.c 0c27d981c6f5197da4bc446b0aa5a81dfcabe81face35ad808bb9c1987dc6ca7
+F src/alter.c 54c347c1f64829334fd86ae51d56eb4eca9452460cfa45c281346b24ed40595c
F src/analyze.c 3dc6b98cf007b005af89df165c966baaa48e8124f38c87b4d2b276fe7f0b9eb9
F src/attach.c 4bd5b92633671d3e8ce431153ebb1893b50335818423b5373f3f27969f79769a
F src/auth.c 32a5bbe3b755169ab6c66311c5225a3cd4f75a46c041f7fb117e0cbb68055114
F src/btree.c 3f5e1a03db871e627bf5da21092bf7434ecfc5c5980bbd7d45eba13341340173
F src/btree.h febb2e817be499570b7a2e32a9bbb4b607a9234f6b84bb9ae84916d4806e96f2
F src/btreeInt.h 620ab4c7235f43572cf3ac2ac8723cbdf68073be4d29da24897c7b77dda5fd96
-F src/build.c a2e61e716e7d90e382d71818404472207024ecb94a44431ac9fcf1ac3b8c3066
+F src/build.c b49367a942fb67b74b20927ef6a30a335d29a466c441a7f309fdf35cf0967ecc
F src/callback.c 36caff1e7eb7deb58572d59c41cee8f064a11d00297616995c5050ea0cfc1288
F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
F src/ctime.c b157b01081f92442f8b0218ddb93ddce8ebddad36dbddeecfdd771561dd4f387
F src/dbpage.c 4aa7f26198934dbd002e69418220eae3dbc71b010bbac32bd78faf86b52ce6c3
F src/dbstat.c edabb82611143727511a45ca0859b8cd037851ebe756ae3db289859dd18b6f91
F src/delete.c 107e28d3ef8bd72fd11953374ca9107cd74e8b09c3ded076a6048742d26ce7d2
-F src/expr.c f44978812baf70d6abd5c727e354dc32d031ab981d36c3d58aec228ed68d84c6
+F src/expr.c 665eafd45010fe6aeb8952c07e44d913ac25aec72e9a0c8784c84aeb3cc14efe
F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
F src/fkey.c f59253c0be4b1e9dfcb073b6d6d6ab83090ae50c08b5c113b76013c4b157cd6a
F src/func.c 7c288b4ce309b5a8b8473514b88e1f8e69a80134509a8c0db8e39c858e367e7f
F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
F src/pager.c 705de01dff9c3df9739c37a6d3b58cd2b1734fdabcef829b16cdc7721a9eeaa4
F src/pager.h ecc554a55bc55d1c4ba5e17137b72e238e00bd81e72ff2662d8b9c8c10ae3963
-F src/parse.y d13912c969acd5b3d8e004d02e0ebfbff24bba8b9daec7ac0863a3357830ddc9
+F src/parse.y 0182e56ea4c1c94a7a561ea29cc6c8321b2dc710156c42dfd9a8e1651fddf1a7
F src/pcache.c 135ef0bc6fb2e3b7178d49ab5c9176254c8a691832c1bceb1156b2fbdd0869bd
F src/pcache.h 072f94d29281cffd99e46c1539849f248c4b56ae7684c1f36626797fee375170
F src/pcache1.c 716975564c15eb6679e97f734cec1bfd6c16ac3d4010f05f1f8e509fc7d19880
F src/prepare.c 117e27c6826a83f461986c0cfbb09c31fe004922ce23a61bf78d82a46b0958d9
F src/printf.c 7f6f3cba8e0c49c19e30a1ff4e9aeda6e06814dcbad4b664a69e1b6cb6e7e365
F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
-F src/resolve.c c58793195eaf2989b8d0688355cca15024cc792da155dffc44b85afae426c2d5
+F src/resolve.c 246af8a493f787a23a1a80a280958260677941b504da4c25118db3fbc0c5cbae
F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac
F src/select.c ae7396a314cc1bb1d767947cd57094e3a9ffcbb155ebc1b1c391e028c44a9a04
F src/shell.c.in 6e0aad854be738a5d0368940459399be211e9ac43aebe92bb9ed46cfe38d0e1f
F src/sqlite.h.in 82b5768e36ce796ecf93c73bd88bad99def831ce7d470138e213ac693bf4ceab
F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
F src/sqlite3ext.h 9887b27e69c01e79c2cbe74ef73bf01af5b5703d6a7f0a4371e386d7249cb1c7
-F src/sqliteInt.h df6ea00a587c97dc82a6cdacb14051c91692c7f97b707a0f8ae3ae4e199b2a55
+F src/sqliteInt.h 679196cdd2f753ff21144198aeafa3e69d69acd3c226855584ef9b3551d85471
F src/sqliteLimit.h 1513bfb7b20378aa0041e7022d04acb73525de35b80b252f1b83fedb4de6a76b
F src/status.c 46e7aec11f79dad50965a5ca5fa9de009f7d6bde08be2156f1538a0a296d4d0e
F src/table.c b46ad567748f24a326d9de40e5b9659f96ffff34
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 479976955ecb27c3e77a280187eaf23722178549e072b34f3183354a27a4e5c3
-R ba8facb735c34812b84f12e5c76d07aa
+P 5d2163c734aea8c0e1611af1161734bf141e7bd02c08f0b5f2e7bac3c7dfd2a5
+R 42bc3958f1fefc0add2225e418b37855
U dan
-Z e3db04a783de4387487388ddf12b9d3c
+Z 8643fbc3884226529a9296370b01a251
-5d2163c734aea8c0e1611af1161734bf141e7bd02c08f0b5f2e7bac3c7dfd2a5
\ No newline at end of file
+b9ae9a0a188b82d7066f6ef7d21592889df0a61559e9a0e01819e9d5a92c3f36
\ No newline at end of file
** * The name of a table column in Column.zName
**
** A list of RenameToken objects can be constructed during parsing.
-** Each new object is created by sqlite3RenameToken().
-** As the parse tree is transformed, the sqlite3MoveRenameToken()
+** Each new object is created by sqlite3RenameTokenMap().
+** As the parse tree is transformed, the sqlite3RenameTokenRemap()
** routine is used to keep the mapping current.
**
** After the parse finishes, renameTokenFind() routine can be used
/*
** Add a new RenameToken object mapping parse tree element pPtr into
** token *pToken to the Parse object currently under construction.
+**
+** Return a copy of pPtr.
*/
-void *sqlite3RenameToken(Parse *pParse, void *pPtr, Token *pToken){
+void *sqlite3RenameTokenMap(Parse *pParse, void *pPtr, Token *pToken){
RenameToken *pNew;
pNew = sqlite3DbMallocZero(pParse->db, sizeof(RenameToken));
if( pNew ){
}
/*
-** If there is a RenameToken object associated with parse tree element
-** pFrom, then remap that object over to pTo due to a transformation
-** in the parse tree.
+** It is assumed that there is already a RenameToken object associated
+** with parse tree element pFrom. This function remaps the associated token
+** to parse tree element pTo.
*/
-void sqlite3MoveRenameToken(Parse *pParse, void *pTo, void *pFrom){
+void sqlite3RenameTokenRemap(Parse *pParse, void *pTo, void *pFrom){
RenameToken *p;
for(p=pParse->pRename; ALWAYS(p); p=p->pNext){
if( p->p==pFrom ){
}
z = sqlite3DbMallocRaw(db, pName->n + pType->n + 2);
if( z==0 ) return;
- if( IN_RENAME_COLUMN ) sqlite3RenameToken(pParse, (void*)z, pName);
+ if( IN_RENAME_COLUMN ) sqlite3RenameTokenMap(pParse, (void*)z, pName);
memcpy(z, pName->z, pName->n);
z[pName->n] = 0;
sqlite3Dequote(z);
&& sortOrder!=SQLITE_SO_DESC
){
if( IN_RENAME_COLUMN && pList ){
- sqlite3MoveRenameToken(pParse, &pTab->iPKey, pList->a[0].pExpr);
+ sqlite3RenameTokenRemap(pParse, &pTab->iPKey, pList->a[0].pExpr);
}
pTab->iPKey = iCol;
pTab->keyConf = (u8)onError;
goto fk_end;
}
if( IN_RENAME_COLUMN ){
- sqlite3MoveRenameToken(pParse, &pFKey->aCol[i], pFromCol->a[i].zName);
+ sqlite3RenameTokenRemap(pParse, &pFKey->aCol[i], pFromCol->a[i].zName);
}
}
}
int n = sqlite3Strlen30(pToCol->a[i].zName);
pFKey->aCol[i].zCol = z;
if( IN_RENAME_COLUMN ){
- sqlite3MoveRenameToken(pParse, z, pToCol->a[i].zName);
+ sqlite3RenameTokenRemap(pParse, z, pToCol->a[i].zName);
}
memcpy(z, pToCol->a[i].zName, n);
z[n] = 0;
}
pList->a[i].zName = sqlite3NameFromToken(db, pToken);
if( IN_RENAME_COLUMN && pList->a[i].zName ){
- sqlite3RenameToken(pParse, (void*)pList->a[i].zName, pToken);
+ sqlite3RenameTokenMap(pParse, (void*)pList->a[i].zName, pToken);
}
return pList;
}
pItem->zName = sqlite3DbStrNDup(pParse->db, pName->z, pName->n);
if( dequote ) sqlite3Dequote(pItem->zName);
if( IN_RENAME_COLUMN ){
- sqlite3RenameToken(pParse, (void*)pItem->zName, pName);
+ sqlite3RenameTokenMap(pParse, (void*)pItem->zName, pName);
}
}
}
p->nHeight = 1;
#endif
if( IN_RENAME_COLUMN ){
- return (Expr*)sqlite3RenameToken(pParse, (void*)p, &t);
+ return (Expr*)sqlite3RenameTokenMap(pParse, (void*)p, &t);
}
}
return p;
expr(A) ::= nm(X) DOT nm(Y). {
Expr *temp1 = sqlite3ExprAlloc(pParse->db, TK_ID, &X, 1);
Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &Y, 1);
- if( IN_RENAME_COLUMN ) sqlite3RenameToken(pParse, (void*)temp2, &Y);
+ if( IN_RENAME_COLUMN ) sqlite3RenameTokenMap(pParse, (void*)temp2, &Y);
A = sqlite3PExpr(pParse, TK_DOT, temp1, temp2);
}
expr(A) ::= nm(X) DOT nm(Y) DOT nm(Z). {
Expr *temp2 = sqlite3ExprAlloc(pParse->db, TK_ID, &Y, 1);
Expr *temp3 = sqlite3ExprAlloc(pParse->db, TK_ID, &Z, 1);
Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3);
- if( IN_RENAME_COLUMN ) sqlite3RenameToken(pParse, (void*)temp3, &Z);
+ if( IN_RENAME_COLUMN ) sqlite3RenameTokenMap(pParse, (void*)temp3, &Z);
A = sqlite3PExpr(pParse, TK_DOT, temp1, temp4);
}
term(A) ::= NULL|FLOAT|BLOB(X). {A=tokenExpr(pParse,@X,X); /*A-overwrites-X*/}
}
sqlite3ExprListSetName(pParse, p, pIdToken, 1);
if( IN_RENAME_COLUMN && p ){
- sqlite3RenameToken(pParse, (void*)(p->a[p->nExpr-1].zName), pIdToken);
+ sqlite3RenameTokenMap(pParse, (void*)(p->a[p->nExpr-1].zName), pIdToken);
}
return p;
}
}
zColumn = pRight->u.zToken;
if( IN_RENAME_COLUMN ){
- sqlite3MoveRenameToken(pParse, (void*)pExpr, (void*)pRight);
+ sqlite3RenameTokenRemap(pParse, (void*)pExpr, (void*)pRight);
}
}
return lookupName(pParse, zDb, zTable, zColumn, pNC, pExpr);
void sqlite3ColumnDefault(Vdbe *, Table *, int, int);
void sqlite3AlterFinishAddColumn(Parse *, Token *);
void sqlite3AlterBeginAddColumn(Parse *, SrcList *);
-void *sqlite3RenameToken(Parse*, void*, Token*);
-void sqlite3MoveRenameToken(Parse*, void *pTo, void *pFrom);
+void *sqlite3RenameTokenMap(Parse*, void*, Token*);
+void sqlite3RenameTokenRemap(Parse*, void *pTo, void *pFrom);
CollSeq *sqlite3GetCollSeq(Parse*, u8, CollSeq *, const char*);
char sqlite3AffinityType(const char*, Column*);
void sqlite3Analyze(Parse*, Token*, Token*);