From 62ba4e418d9105671599b7f9287aa0d3dce031bc Mon Sep 17 00:00:00 2001 From: dan Date: Wed, 15 Jan 2014 18:21:41 +0000 Subject: [PATCH] Disable automatic indices on recursive CTE references. FossilOrigin-Name: 28aa6db8c878655255dbfb618f8d65be78e3d7e5 --- manifest | 14 +++++++------- manifest.uuid | 2 +- src/where.c | 1 + test/with1.test | 4 ++-- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/manifest b/manifest index 7847f8e691..e2d4787ec4 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C When\sresolving\snames,\sconsider\sa\sreference\sto\sa\srecursive\sCTE\scolumn\sas\sequivalent\sto\sa\sreference\sto\sthe\soutermost\sname-context.\sThis\sensures\sthat\scorrelated\ssub-queries\sare\scorrectly\sidentified\sas\ssuch. -D 2014-01-15T18:12:00.359 +C Disable\sautomatic\sindices\son\srecursive\sCTE\sreferences. +D 2014-01-15T18:21:41.108 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in 2ef13430cd359f7b361bb863504e227b25cc7f81 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -293,7 +293,7 @@ F src/vtab.c 21b932841e51ebd7d075e2d0ad1415dce8d2d5fd F src/wal.c 7dc3966ef98b74422267e7e6e46e07ff6c6eb1b4 F src/wal.h df01efe09c5cb8c8e391ff1715cca294f89668a4 F src/walker.c e9e593d5bb798c3e67fc3893dfe7055c9e7d8d74 -F src/where.c 830b42f452cfbc4e17582f6c1d388e15b379b833 +F src/where.c 9448a176c10020a4446a8d5e2cdaecf7526e593d F src/whereInt.h 96a75c61f1d2b9d4a8e4bb17d89deb0cf7cba358 F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2 F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2 @@ -1091,7 +1091,7 @@ F test/wild001.test bca33f499866f04c24510d74baf1e578d4e44b1c F test/win32heap.test ea19770974795cff26e11575e12d422dbd16893c F test/win32lock.test 7a6bd73a5dcdee39b5bb93e92395e1773a194361 F test/win32longpath.test 169c75a3b2e43481f4a62122510210c67b08f26d -F test/with1.test 951807f7246215ec26cf5e9946f1b355ba892f89 +F test/with1.test fcd45b0128292d57f4435df873b51b7261edc9ba F test/withM.test ac3ec7ee0b33a02d0fa15da91214d97ddea64e34 F test/without_rowid1.test aaa26da19d543cd8d3d2d0e686dfa255556c15c8 F test/without_rowid2.test af260339f79d13cb220288b67cd287fbcf81ad99 @@ -1150,7 +1150,7 @@ F tool/vdbe-compress.tcl 0cf56e9263a152b84da86e75a5c0cdcdb7a47891 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01 F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff -P 9a514b50e4b01f109fbdb0aabcbfe1ddab129b44 -R 7a326e6d7d898da8a108f7b49c21709d +P 61be2da0ae623c1572819481508b044e9d32f294 +R 054a2146ee506f873fefb3d9cec1bd30 U dan -Z a1fae4bd21e81652e55bd538f546aecf +Z 902f9935ce7a37fa7329c31a191dfe9e diff --git a/manifest.uuid b/manifest.uuid index 7d2b8e9f8a..5d6578e47c 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -61be2da0ae623c1572819481508b044e9d32f294 \ No newline at end of file +28aa6db8c878655255dbfb618f8d65be78e3d7e5 \ No newline at end of file diff --git a/src/where.c b/src/where.c index 8827faa839..7ac8c57f23 100644 --- a/src/where.c +++ b/src/where.c @@ -4196,6 +4196,7 @@ static int whereLoopAddBtree( && !pSrc->notIndexed && HasRowid(pTab) && !pSrc->isCorrelated + && !pSrc->isRecursive ){ /* Generate auto-index WhereLoops */ WhereTerm *pTerm; diff --git a/test/with1.test b/test/with1.test index 1f227e8165..5c59755ce0 100644 --- a/test/with1.test +++ b/test/with1.test @@ -228,7 +228,7 @@ do_execsql_test 6.2 { WITH flat(fid, fpath) AS ( SELECT id, '' FROM f WHERE parentid IS NULL UNION ALL - SELECT id, fpath || '/' || name FROM f, flat WHERE +parentid=+fid + SELECT id, fpath || '/' || name FROM f, flat WHERE parentid=fid ) SELECT fpath FROM flat WHERE fpath!='' ORDER BY 1; } { @@ -248,7 +248,7 @@ do_execsql_test 6.3 { WITH flat(fid, fpath) AS ( SELECT id, '' FROM f WHERE parentid IS NULL UNION ALL - SELECT id, fpath || '/' || name FROM f, flat WHERE parentid=+fid + SELECT id, fpath || '/' || name FROM f, flat WHERE parentid=fid ) SELECT count(*) FROM flat; } {15}