aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2016-04-11 19:01:08 +0000
committerdrh <drh@noemail.net>2016-04-11 19:01:08 +0000
commit244b9d6ec67e84815d2f473b222b0dcb3ca657b3 (patch)
treee80c6c82bdbacd0fc401a1d3d6a936bcd47becaa /src/expr.c
parentaffa855c94167e78b10d8b3bdbc1950aa30e695d (diff)
downloadsqlite-244b9d6ec67e84815d2f473b222b0dcb3ca657b3.tar.gz
sqlite-244b9d6ec67e84815d2f473b222b0dcb3ca657b3.zip
Performance optimization to sqlite3Dequote() and its callers.
FossilOrigin-Name: 9efe2265b1e70172778d333c5b9d9a76095427ab
Diffstat (limited to 'src/expr.c')
-rw-r--r--src/expr.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/expr.c b/src/expr.c
index 0de6378c0..094a454ab 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -471,15 +471,13 @@ Expr *sqlite3ExprAlloc(
pNew->flags |= EP_IntValue;
pNew->u.iValue = iValue;
}else{
- int c;
pNew->u.zToken = (char*)&pNew[1];
assert( pToken->z!=0 || pToken->n==0 );
if( pToken->n ) memcpy(pNew->u.zToken, pToken->z, pToken->n);
pNew->u.zToken[pToken->n] = 0;
- if( dequote && nExtra>=3
- && ((c = pToken->z[0])=='\'' || c=='"' || c=='[' || c=='`') ){
+ if( dequote && sqlite3Isquote(pNew->u.zToken[0]) ){
+ if( pNew->u.zToken[0]=='"' ) pNew->flags |= EP_DblQuoted;
sqlite3Dequote(pNew->u.zToken);
- if( c=='"' ) pNew->flags |= EP_DblQuoted;
}
}
}
@@ -1229,7 +1227,7 @@ void sqlite3ExprListSetName(
pItem = &pList->a[pList->nExpr-1];
assert( pItem->zName==0 );
pItem->zName = sqlite3DbStrNDup(pParse->db, pName->z, pName->n);
- if( dequote && pItem->zName ) sqlite3Dequote(pItem->zName);
+ if( dequote ) sqlite3Dequote(pItem->zName);
}
}