| Index: third_party/sqlite/amalgamation/sqlite3.c
|
| diff --git a/third_party/sqlite/amalgamation/sqlite3.c b/third_party/sqlite/amalgamation/sqlite3.c
|
| index 7d748a5cd6b2c3435d6bee05c6bb623c178a8945..82dc78033a0bc2a9e852e1dac761c877d5c1f7e5 100644
|
| --- a/third_party/sqlite/amalgamation/sqlite3.c
|
| +++ b/third_party/sqlite/amalgamation/sqlite3.c
|
| @@ -12996,7 +12996,7 @@ SQLITE_PRIVATE int sqlite3ReadSchema(Parse *pParse);
|
| SQLITE_PRIVATE CollSeq *sqlite3FindCollSeq(sqlite3*,u8 enc, const char*,int);
|
| SQLITE_PRIVATE CollSeq *sqlite3LocateCollSeq(Parse *pParse, const char*zName);
|
| SQLITE_PRIVATE CollSeq *sqlite3ExprCollSeq(Parse *pParse, Expr *pExpr);
|
| -SQLITE_PRIVATE Expr *sqlite3ExprAddCollateToken(Parse *pParse, Expr*, const Token*);
|
| +SQLITE_PRIVATE Expr *sqlite3ExprAddCollateToken(Parse *pParse, Expr*, const Token*, int);
|
| SQLITE_PRIVATE Expr *sqlite3ExprAddCollateString(Parse*,Expr*,const char*);
|
| SQLITE_PRIVATE Expr *sqlite3ExprSkipCollate(Expr*);
|
| SQLITE_PRIVATE int sqlite3CheckCollSeq(Parse *, CollSeq *);
|
| @@ -80848,10 +80848,11 @@ SQLITE_PRIVATE char sqlite3ExprAffinity(Expr *pExpr){
|
| SQLITE_PRIVATE 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;
|
| @@ -80865,7 +80866,7 @@ SQLITE_PRIVATE Expr *sqlite3ExprAddCollateString(Parse *pParse, Expr *pExpr, con
|
| assert( zC!=0 );
|
| s.z = zC;
|
| s.n = sqlite3Strlen30(s.z);
|
| - return sqlite3ExprAddCollateToken(pParse, pExpr, &s);
|
| + return sqlite3ExprAddCollateToken(pParse, pExpr, &s, 0);
|
| }
|
|
|
| /*
|
| @@ -114998,7 +114999,7 @@ static void exprAnalyze(
|
| Expr *pNewExpr2;
|
| int idxNew1;
|
| int idxNew2;
|
| - Token sCollSeqName; /* Name of collating sequence */
|
| + const char *zCollSeqName; /* Name of collating sequence */
|
|
|
| pLeft = pExpr->x.pList->a[1].pExpr;
|
| pStr2 = sqlite3ExprDup(db, pStr1, 0);
|
| @@ -115018,11 +115019,10 @@ static void exprAnalyze(
|
| }
|
| *pC = c + 1;
|
| }
|
| - sCollSeqName.z = noCase ? "NOCASE" : "BINARY";
|
| - sCollSeqName.n = 6;
|
| + zCollSeqName = noCase ? "NOCASE" : "BINARY";
|
| pNewExpr1 = sqlite3ExprDup(db, pLeft, 0);
|
| pNewExpr1 = sqlite3PExpr(pParse, TK_GE,
|
| - sqlite3ExprAddCollateToken(pParse,pNewExpr1,&sCollSeqName),
|
| + sqlite3ExprAddCollateString(pParse,pNewExpr1,zCollSeqName),
|
| pStr1, 0);
|
| transferJoinMarkings(pNewExpr1, pExpr);
|
| idxNew1 = whereClauseInsert(pWC, pNewExpr1, TERM_VIRTUAL|TERM_DYNAMIC);
|
| @@ -115030,7 +115030,7 @@ static void exprAnalyze(
|
| exprAnalyze(pSrc, pWC, idxNew1);
|
| pNewExpr2 = sqlite3ExprDup(db, pLeft, 0);
|
| pNewExpr2 = sqlite3PExpr(pParse, TK_LT,
|
| - sqlite3ExprAddCollateToken(pParse,pNewExpr2,&sCollSeqName),
|
| + sqlite3ExprAddCollateString(pParse,pNewExpr2,zCollSeqName),
|
| pStr2, 0);
|
| transferJoinMarkings(pNewExpr2, pExpr);
|
| idxNew2 = whereClauseInsert(pWC, pNewExpr2, TERM_VIRTUAL|TERM_DYNAMIC);
|
| @@ -123107,7 +123107,7 @@ static void yy_reduce(
|
| break;
|
| case 193: /* expr ::= expr COLLATE ID|STRING */
|
| {
|
| - yygotominor.yy346.pExpr = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy346.pExpr, &yymsp[0].minor.yy0);
|
| + yygotominor.yy346.pExpr = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy346.pExpr, &yymsp[0].minor.yy0, 1);
|
| yygotominor.yy346.zStart = yymsp[-2].minor.yy346.zStart;
|
| yygotominor.yy346.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
|
| }
|
| @@ -123387,7 +123387,7 @@ static void yy_reduce(
|
| break;
|
| case 244: /* idxlist ::= idxlist COMMA nm collate sortorder */
|
| {
|
| - Expr *p = sqlite3ExprAddCollateToken(pParse, 0, &yymsp[-1].minor.yy0);
|
| + Expr *p = sqlite3ExprAddCollateToken(pParse, 0, &yymsp[-1].minor.yy0, 1);
|
| yygotominor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy14, p);
|
| sqlite3ExprListSetName(pParse,yygotominor.yy14,&yymsp[-2].minor.yy0,1);
|
| sqlite3ExprListCheckLength(pParse, yygotominor.yy14, "index");
|
| @@ -123396,7 +123396,7 @@ static void yy_reduce(
|
| break;
|
| case 245: /* idxlist ::= nm collate sortorder */
|
| {
|
| - Expr *p = sqlite3ExprAddCollateToken(pParse, 0, &yymsp[-1].minor.yy0);
|
| + Expr *p = sqlite3ExprAddCollateToken(pParse, 0, &yymsp[-1].minor.yy0, 1);
|
| yygotominor.yy14 = sqlite3ExprListAppend(pParse,0, p);
|
| sqlite3ExprListSetName(pParse, yygotominor.yy14, &yymsp[-2].minor.yy0, 1);
|
| sqlite3ExprListCheckLength(pParse, yygotominor.yy14, "index");
|
|
|