aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
diff options
context:
space:
mode:
authordan <dan@noemail.net>2015-03-20 08:43:59 +0000
committerdan <dan@noemail.net>2015-03-20 08:43:59 +0000
commit80103fc614e42c8fb20c39a5b3091ab680c9cd00 (patch)
tree8e92fdd3fb08df7b69f32f6512905c12eafe1c7c /src/expr.c
parent17ba562025ed7f59652fba83e04840c18fd7c339 (diff)
downloadsqlite-80103fc614e42c8fb20c39a5b3091ab680c9cd00.tar.gz
sqlite-80103fc614e42c8fb20c39a5b3091ab680c9cd00.zip
Fix a problem causing collation sequence names to be dequoted multiple times under some circumstances.
FossilOrigin-Name: eddc05e7bb31fae74daa86e0504a3478b99fa0f2
Diffstat (limited to 'src/expr.c')
-rw-r--r--src/expr.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/expr.c b/src/expr.c
index 5457a9c06..fe09b4b50 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -69,10 +69,11 @@ char sqlite3ExprAffinity(Expr *pExpr){
Expr *sqlite3ExprAddCollateToken(
Parse *pParse, /* Parsing context */
Expr *pExpr, /* Add the "COLLATE" clause to this expression */
- const Token *pCollName /* Name of collating sequence */
+ const Token *pCollName, /* Name of collating sequence */
+ int dequote /* True to dequote pCollName */
){
if( pCollName->n>0 ){
- Expr *pNew = sqlite3ExprAlloc(pParse->db, TK_COLLATE, pCollName, 1);
+ Expr *pNew = sqlite3ExprAlloc(pParse->db, TK_COLLATE, pCollName, dequote);
if( pNew ){
pNew->pLeft = pExpr;
pNew->flags |= EP_Collate|EP_Skip;
@@ -86,7 +87,7 @@ Expr *sqlite3ExprAddCollateString(Parse *pParse, Expr *pExpr, const char *zC){
assert( zC!=0 );
s.z = zC;
s.n = sqlite3Strlen30(s.z);
- return sqlite3ExprAddCollateToken(pParse, pExpr, &s);
+ return sqlite3ExprAddCollateToken(pParse, pExpr, &s, 0);
}
/*