aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
diff options
context:
space:
mode:
authordan <dan@noemail.net>2020-04-06 16:37:05 +0000
committerdan <dan@noemail.net>2020-04-06 16:37:05 +0000
commit85f2c76cf9eeae30fb410c73c7427724dbb02182 (patch)
tree698df768a98249cc114c91e492c1b5e1f6687724 /src/expr.c
parent47f8ef32a0d1629440eef02bbf0788b07f6e2c67 (diff)
downloadsqlite-85f2c76cf9eeae30fb410c73c7427724dbb02182.tar.gz
sqlite-85f2c76cf9eeae30fb410c73c7427724dbb02182.zip
When running ALTER TABLE, avoid adding some internally generated tokens to the token map to improve performance on schemas with nested views.
FossilOrigin-Name: 4cf8721f5ceb1fdaefdc355b3211f75c53c4cdf9d2582ca70fc96777a9b057c2
Diffstat (limited to 'src/expr.c')
-rw-r--r--src/expr.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/expr.c b/src/expr.c
index bcabc38b6..b9b3b9ee6 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -1794,9 +1794,14 @@ void sqlite3ExprListSetName(
assert( pItem->zEName==0 );
assert( pItem->eEName==ENAME_NAME );
pItem->zEName = sqlite3DbStrNDup(pParse->db, pName->z, pName->n);
- if( dequote ) sqlite3Dequote(pItem->zEName);
- if( IN_RENAME_OBJECT ){
- sqlite3RenameTokenMap(pParse, (void*)pItem->zEName, pName);
+ if( dequote ){
+ /* If dequote==0, then pName->z does not point to part of a DDL
+ ** statement handled by the parser. And so no token need be added
+ ** to the token-map. */
+ sqlite3Dequote(pItem->zEName);
+ if( IN_RENAME_OBJECT ){
+ sqlite3RenameTokenMap(pParse, (void*)pItem->zEName, pName);
+ }
}
}
}