diff options
author | drh <drh@noemail.net> | 2016-04-11 19:01:08 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2016-04-11 19:01:08 +0000 |
commit | 244b9d6ec67e84815d2f473b222b0dcb3ca657b3 (patch) | |
tree | e80c6c82bdbacd0fc401a1d3d6a936bcd47becaa /src/expr.c | |
parent | affa855c94167e78b10d8b3bdbc1950aa30e695d (diff) | |
download | sqlite-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.c | 8 |
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); } } |