SHA256
1
0
forked from pool/sqlite3
sqlite3/548082dfab-Improvements-to-the-LEFT-JOIN.patch

24 lines
607 B
Diff

Index: src/expr.c
==================================================================
--- src/expr.c
+++ src/expr.c
@@ -5229,12 +5229,16 @@
** ordinary join.
*/
int sqlite3ExprImpliesNonNullRow(Expr *p, int iTab){
Walker w;
p = sqlite3ExprSkipCollateAndLikely(p);
- if( p && p->op==TK_NOTNULL ){
+ if( p==0 ) return 0;
+ if( p->op==TK_NOTNULL ){
p = p->pLeft;
+ }else if( p->op==TK_AND ){
+ if( sqlite3ExprImpliesNonNullRow(p->pLeft, iTab) ) return 1;
+ p = p->pRight;
}
w.xExprCallback = impliesNotNullRow;
w.xSelectCallback = 0;
w.xSelectCallback2 = 0;
w.eCode = 0;