diff options
author | dan <dan@noemail.net> | 2020-04-06 16:37:05 +0000 |
---|---|---|
committer | dan <dan@noemail.net> | 2020-04-06 16:37:05 +0000 |
commit | 85f2c76cf9eeae30fb410c73c7427724dbb02182 (patch) | |
tree | 698df768a98249cc114c91e492c1b5e1f6687724 /src/expr.c | |
parent | 47f8ef32a0d1629440eef02bbf0788b07f6e2c67 (diff) | |
download | sqlite-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.c | 11 |
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); + } } } } |