diff --git a/manifest b/manifest index 472fdaea3a..221fc04ec8 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Minor\sbug\sfixes\sand\sperformance\senhancement. -D 2017-05-01T16:37:20.261 +C Futher\sbug\sfixes\sto\sthe\sfunction\sthat\sdetermines\swhen\sa\smaterialized\sview\ncan\sbe\sreused. +D 2017-05-01T17:04:35.162 F Makefile.in 1cc758ce3374a32425e4d130c2fe7b026b20de5b8843243de75f087c0a2661fb F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.msc 6a8c838220f7c00820e1fc0ac1bccaaa8e5676067e1dbfa1bafa7a4ffecf8ae6 @@ -402,7 +402,7 @@ F src/printf.c 8757834f1b54dae512fb25eb1acc8e94a0d15dd2290b58f2563f65973265adb2 F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384 F src/resolve.c 3e518b962d932a997fae373366880fc028c75706 F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac -F src/select.c c9aa9575ccdb85e92167e00cd7b955221533df47679828c4fa6765f11f5dcd12 +F src/select.c 2546672c84240e9b9870d93fdccd7f2de98392fd6836d9bf6611aa60a5ace85f F src/shell.c 21b79c0e1b93f8e35fd7b4087d6ba438326c3d7e285d0dd51dfd741475f858a1 F src/sqlite.h.in 40233103e3e4e10f8a63523498d0259d232e42aba478e2d3fb914799185aced6 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 @@ -1577,7 +1577,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 478c34b9a8b5127d13024e10307aa832f160b89720c46424dd17555bd36f590d -R 2a2ab9e2643c70c79e0d330bc99dce06 +P b2aae559581d05e4e8caaddfbd137cb275d582e82d58872c6f42e462dc859b1c +R fb2a58136338dea6025ffd0d391dd6d5 U drh -Z cc122146d9fb91e0d9a08125d9d2cc46 +Z 522d6c582c8e206ece3fcf0a3e5fff13 diff --git a/manifest.uuid b/manifest.uuid index 61b372a2ad..ac2289d07e 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -b2aae559581d05e4e8caaddfbd137cb275d582e82d58872c6f42e462dc859b1c \ No newline at end of file +c64fe3a1695925693385d313e9ad2a1d8cb37ddaa8cc19920ae0978c91bc4c2c \ No newline at end of file diff --git a/src/select.c b/src/select.c index df1fd7ed14..e7a448343f 100644 --- a/src/select.c +++ b/src/select.c @@ -4894,7 +4894,13 @@ static struct SrcList_item *isSelfJoinView( if( pItem->fg.viaCoroutine ) continue; if( pItem->zName==0 ) continue; if( sqlite3_stricmp(pItem->zDatabase, pThis->zDatabase)!=0 ) continue; - if( sqlite3_stricmp(pItem->zName, pThis->zName)==0 ) return pItem; + if( sqlite3_stricmp(pItem->zName, pThis->zName)!=0 ) continue; + if( sqlite3ExprCompare(pThis->pSelect->pWhere, pItem->pSelect->pWhere, -1) ){ + /* The view was modified by some other optimization such as + ** pushDownWhereTerms() */ + continue; + } + return pItem; } return 0; }