From: drh Date: Mon, 23 Apr 2018 19:30:04 +0000 (+0000) Subject: Disable the OR optimization based on expressions in the ON clause of a X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fheads%2Fbegin-concurrent-pnu-tempfix;p=thirdparty%2Fsqlite.git Disable the OR optimization based on expressions in the ON clause of a LEFT JOIN. This is a temporary measure until we can devise a better fix. FossilOrigin-Name: 4df5ea935efe2ed8056c1fc12f446c91b47fa72a3e79fbaf669b5e6b4e295304 --- diff --git a/manifest b/manifest index f830fea1c5..d7df95af1a 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Merge\sall\srecent\strunk\senchancements,\sand\sespecially\sthe\sautoincrement\nwrite\sreduction\sfix. -D 2018-03-20T14:00:25.431 +C Disable\sthe\sOR\soptimization\sbased\son\sexpressions\sin\sthe\sON\sclause\sof\sa\nLEFT\sJOIN.\s\sThis\sis\sa\stemporary\smeasure\suntil\swe\scan\sdevise\sa\sbetter\sfix. +D 2018-04-23T19:30:04.280 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F Makefile.in 7016fc56c6b9bfe5daac4f34be8be38d8c0b5fab79ccbfb764d3b23bf1c6fff3 @@ -576,7 +576,7 @@ F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9 F src/wal.c 05d9364fefacdff639b7fb63b1113317e045e2ae5c7908fa50157f9f24883257 F src/wal.h 1713fefe4587678c295bbeb91c4e7442998ad74f19249869ce49dda9e8ce5d53 F src/walker.c da987a20d40145c0a03c07d8fefcb2ed363becc7680d0500d9c79915591f5b1f -F src/where.c 7cae47e813393d70c6d327fdf000fcb30f76b1b0b5a5b52ff6402e0c658de32c +F src/where.c 2e8d9899e73a453da055fab91538a88ce8ec79166baf41db85b8c9df5a9b3809 F src/whereInt.h 82c04c5075308abbac59180c8bad5ecb45b07453981f60a53f3c7dee21e1e971 F src/wherecode.c e1aaadd8fec650037cfbf27d1b3470338fb3b58fec34d11082df16fe9a08fbd7 F src/whereexpr.c 53532be687e12f3cd314f1e204cd4fbdac7ad250e918a182b048121e16e828ae @@ -1725,7 +1725,10 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 8ade94ba6712827c672ddad8436f8b97cc520ced122e7d0043ad3c3ba94f1ed6 13b4975681f249831a22562d1c26958f841ea77ca779858b0bee735dd30b710e -R 3496717f98c30105b611bd77a7a10642 +P 257900494f9aac7e4181b65d0eddc9cf2e9a52dc794ad68284f085d1c402addb +R 74cc9c776194c09a1da05e4dd3f5040c +T *branch * begin-concurrent-pnu-tempfix +T *sym-begin-concurrent-pnu-tempfix * +T -sym-begin-concurrent-pnu * U drh -Z 9eae5f07fed934d79f94f2ff334fa0f5 +Z e083d3ae2d9b37daaf471638ab99a71c diff --git a/manifest.uuid b/manifest.uuid index 9294af4947..a265d107b0 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -257900494f9aac7e4181b65d0eddc9cf2e9a52dc794ad68284f085d1c402addb \ No newline at end of file +4df5ea935efe2ed8056c1fc12f446c91b47fa72a3e79fbaf669b5e6b4e295304 \ No newline at end of file diff --git a/src/where.c b/src/where.c index 8c1e3cd01f..68c5a253b1 100644 --- a/src/where.c +++ b/src/where.c @@ -3353,6 +3353,7 @@ static int whereLoopAddOr( for(pTerm=pWC->a; pTermeOperator & WO_OR)!=0 && (pTerm->u.pOrInfo->indexable & pNew->maskSelf)!=0 + && !ExprHasProperty(pTerm->pExpr, EP_FromJoin) ){ WhereClause * const pOrWC = &pTerm->u.pOrInfo->wc; WhereTerm * const pOrWCEnd = &pOrWC->a[pOrWC->nTerm];