diff options
author | drh <drh@noemail.net> | 2020-08-19 23:32:06 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2020-08-19 23:32:06 +0000 |
commit | 46fe138d98664b30ada114b1f76b52e95d00575c (patch) | |
tree | 6e171ad2837c7407d96fc3d20d1d5dac0c1eb9a0 /src/expr.c | |
parent | 1d42e619acb77717cbf318e6fb473b6a756e9160 (diff) | |
download | sqlite-46fe138d98664b30ada114b1f76b52e95d00575c.tar.gz sqlite-46fe138d98664b30ada114b1f76b52e95d00575c.zip |
Do not skip over TK_IF_NULL_ROW operators when bypassing TK_COLLATE operators.
Fix to check-in [ac31edd3eeafcef4] which was itself a fix for ticket
[45f4bf4eb4ffd788].
FossilOrigin-Name: 871f2ddcfbb9196dbd851a350e3471ee6d242d86bbd755201f7e2406fce3ac55
Diffstat (limited to 'src/expr.c')
-rw-r--r-- | src/expr.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/expr.c b/src/expr.c index b64ea28bf..244412b38 100644 --- a/src/expr.c +++ b/src/expr.c @@ -44,7 +44,7 @@ char sqlite3TableColumnAffinity(Table *pTab, int iCol){ */ char sqlite3ExprAffinity(const Expr *pExpr){ int op; - while( ExprHasProperty(pExpr, EP_Skip) ){ + while( ExprHasProperty(pExpr, EP_Skip|EP_IfNullRow) ){ assert( pExpr->op==TK_COLLATE || pExpr->op==TK_IF_NULL_ROW ); pExpr = pExpr->pLeft; assert( pExpr!=0 ); @@ -115,7 +115,7 @@ Expr *sqlite3ExprAddCollateString(Parse *pParse, Expr *pExpr, const char *zC){ */ Expr *sqlite3ExprSkipCollate(Expr *pExpr){ while( pExpr && ExprHasProperty(pExpr, EP_Skip) ){ - assert( pExpr->op==TK_COLLATE || pExpr->op==TK_IF_NULL_ROW ); + assert( pExpr->op==TK_COLLATE ); pExpr = pExpr->pLeft; } return pExpr; @@ -134,7 +134,7 @@ Expr *sqlite3ExprSkipCollateAndLikely(Expr *pExpr){ assert( pExpr->op==TK_FUNCTION ); pExpr = pExpr->x.pList->a[0].pExpr; }else{ - assert( pExpr->op==TK_COLLATE || pExpr->op==TK_IF_NULL_ROW ); + assert( pExpr->op==TK_COLLATE ); pExpr = pExpr->pLeft; } } |