diff options
author | drh <> | 2021-01-27 20:35:22 +0000 |
---|---|---|
committer | drh <> | 2021-01-27 20:35:22 +0000 |
commit | 55d4c84b61488fcfcd5df645bba6dde41eeb308e (patch) | |
tree | 4c02394b30b8de02eb172c1d3e9c8b2c5a3701d1 /src/expr.c | |
parent | 2053f313bfc498262f13c04793b93867f58544ba (diff) | |
parent | 16cd8b96d3e2cb80e169beee529307d0f0fdf51c (diff) | |
download | sqlite-55d4c84b61488fcfcd5df645bba6dde41eeb308e.tar.gz sqlite-55d4c84b61488fcfcd5df645bba6dde41eeb308e.zip |
Merge recent enhancements from trunk.
FossilOrigin-Name: 5fbcb208d24d45169fc53ad8738dd3545d9bbd26b7434e31afc7f6419cd4e958
Diffstat (limited to 'src/expr.c')
-rw-r--r-- | src/expr.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/expr.c b/src/expr.c index 685f04175..f225b59bc 100644 --- a/src/expr.c +++ b/src/expr.c @@ -95,7 +95,18 @@ Expr *sqlite3ExprAddCollateToken( const Token *pCollName, /* Name of collating sequence */ int dequote /* True to dequote pCollName */ ){ - if( pCollName->n>0 ){ + assert( pExpr!=0 || pParse->db->mallocFailed ); + if( pExpr==0 ) return 0; + if( pExpr->op==TK_VECTOR ){ + ExprList *pList = pExpr->x.pList; + if( ALWAYS(pList!=0) ){ + int i; + for(i=0; i<pList->nExpr; i++){ + pList->a[i].pExpr = sqlite3ExprAddCollateToken(pParse,pList->a[i].pExpr, + pCollName, dequote); + } + } + }else if( pCollName->n>0 ){ Expr *pNew = sqlite3ExprAlloc(pParse->db, TK_COLLATE, pCollName, dequote); if( pNew ){ pNew->pLeft = pExpr; |