diff --git a/manifest b/manifest index 0905616d4a..e298f1e67f 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Add\sretry\slogic\sfor\sAV\sdefense\sto\swinOpen.\s\sAlso,\srefactor\stest\ssuite\sto\sallow\sthe\skey\sTcl\sfile\soperations\s(e.g.\scopy\sand\sdelete)\sto\sbe\sretried. -D 2011-08-02T00:57:34.578 +C Merge\sthe\slatest\strunk\schanges\sinto\sthe\swinopen-retry-logic\sbranch. +D 2011-08-02T19:42:38.461 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in 1e6988b3c11dee9bd5edc0c804bd4468d74a9cdc F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -250,7 +250,7 @@ F src/vtab.c 901791a47318c0562cd0c676a2c6ff1bc530e582 F src/wal.c 3154756177d6219e233d84291d5b05f4e06ff5e9 F src/wal.h 66b40bd91bc29a5be1c88ddd1f5ade8f3f48728a F src/walker.c 3112bb3afe1d85dc52317cb1d752055e9a781f8f -F src/where.c 106cd9ab3eb410dfa7d0598194c277664bb2e9a3 +F src/where.c 7d09f4c1512affb60cc1190a4b33d121d4ce039a F test/8_3_names.test 631ea964a3edb091cf73c3b540f6bcfdb36ce823 F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2 F test/alias.test 4529fbc152f190268a15f9384a5651bbbabc9d87 @@ -616,7 +616,7 @@ F test/pageropt.test 8146bf448cf09e87bb1867c2217b921fb5857806 F test/pagesize.test 1dd51367e752e742f58e861e65ed7390603827a0 F test/pcache.test 065aa286e722ab24f2e51792c1f093bf60656b16 F test/pcache2.test 9f9357bb0f463b87bdf695646024ed2031a0c85a -F test/permutations.test aae89941ca0968b53633c97b5dd0d6f9f9899d27 +F test/permutations.test 434b3c91168969cee1385663748106f5f13b2f9c F test/pragma.test c8108e01da04f16e67e5754e610bc62c1b993f6c F test/pragma2.test 3a55f82b954242c642f8342b17dffc8b47472947 F test/printf.test 05970cde31b1a9f54bd75af60597be75a5c54fea @@ -874,6 +874,7 @@ F test/vtabB.test 04df5dc531b9f44d9ca65b9c1b79f12b5922a796 F test/vtabC.test 4528f459a13136f982e75614d120aef165f17292 F test/vtabD.test 74167b1578e5886fe4c886d6bef2fd1406444c42 F test/vtabE.test 7c4693638d7797ce2eda17af74292b97e705cc61 +F test/vtabF.test fd5ad376f5a34fe0891df1f3cddb4fe7c3eb077e F test/vtab_alter.test 9e374885248f69e251bdaacf480b04a197f125e5 F test/vtab_err.test 0d4d8eb4def1d053ac7c5050df3024fd47a3fbd8 F test/vtab_shared.test 0eff9ce4f19facbe0a3e693f6c14b80711a4222d @@ -953,10 +954,7 @@ F tool/symbols.sh caaf6ccc7300fd43353318b44524853e222557d5 F tool/tostr.awk 11760e1b94a5d3dcd42378f3cc18544c06cfa576 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f F tool/warnings.sh 2ebae31e1eb352696f3c2f7706a34c084b28c262 -P ed630b012f468d6779b83dd8c4dbf3a8dafee573 -R 735027666e11a1bb5deb1c9d66f6a810 -T *branch * winopen-retry-logic -T *sym-winopen-retry-logic * -T -sym-trunk * -U mistachkin -Z 48ff1b46b7d2b6052641cde313ef9900 +P 9007586fdabed8dbcc78581ea9821cfd1f9a4c8c 2bbf3150a4b7108e88ed81c1d40af6f06089e148 +R ed676f9c5b5c5c1cb85f45ddea5340b8 +U drh +Z a5575159f660bba167a59a6dccad64eb diff --git a/manifest.uuid b/manifest.uuid index 04c96eaa22..04d765101d 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -9007586fdabed8dbcc78581ea9821cfd1f9a4c8c \ No newline at end of file +8bef97a0eb2f56d0ac374d97e97e0a44c7f99aee \ No newline at end of file diff --git a/src/where.c b/src/where.c index d312232868..21fb7f45f4 100644 --- a/src/where.c +++ b/src/where.c @@ -2142,6 +2142,7 @@ static sqlite3_index_info *allocateIndexInfo( testcase( pTerm->eOperator==WO_IN ); testcase( pTerm->eOperator==WO_ISNULL ); if( pTerm->eOperator & (WO_IN|WO_ISNULL) ) continue; + if( pTerm->wtFlags & TERM_VNULL ) continue; nTerm++; } @@ -2192,6 +2193,7 @@ static sqlite3_index_info *allocateIndexInfo( testcase( pTerm->eOperator==WO_IN ); testcase( pTerm->eOperator==WO_ISNULL ); if( pTerm->eOperator & (WO_IN|WO_ISNULL) ) continue; + if( pTerm->wtFlags & TERM_VNULL ) continue; pIdxCons[j].iColumn = pTerm->u.leftColumn; pIdxCons[j].iTermOffset = i; pIdxCons[j].op = (u8)pTerm->eOperator; diff --git a/test/permutations.test b/test/permutations.test index 57f69462a5..f9414263d1 100644 --- a/test/permutations.test +++ b/test/permutations.test @@ -726,7 +726,7 @@ test_suite "journaltest" -description { unregister_jt_vfs } -files [test_set $::allquicktests -exclude { wal* incrvacuum.test ioerr.test corrupt4.test io.test crash8.test - async4.test bigfile.test + async4.test bigfile.test backcompat.test }] if {[info commands register_demovfs] != ""} { @@ -865,4 +865,3 @@ if {[info script] == $argv0} { main $argv finish_test } - diff --git a/test/vtabF.test b/test/vtabF.test new file mode 100644 index 0000000000..b9341ea597 --- /dev/null +++ b/test/vtabF.test @@ -0,0 +1,45 @@ +# 2011 Aug 1 +# +# The author disclaims copyright to this source code. In place of +# a legal notice, here is a blessing: +# +# May you do good and not evil. +# May you find forgiveness for yourself and forgive others. +# May you share freely, never taking more than you give. +# +#*********************************************************************** +# This file implements regression tests for SQLite library. +# This file checks to make sure IS NOT NULL constraints work on +# virtual tables. +# + +set testdir [file dirname $argv0] +source $testdir/tester.tcl + +ifcapable !vtab||!schema_pragmas { finish_test ; return } + +# Register the echo module +register_echo_module [sqlite3_connection_pointer db] + +do_test vtabE-1.1 { + execsql { + CREATE TABLE t1(a, b); + CREATE INDEX i1 ON t1(a); + CREATE INDEX i2 ON t1(b); + INSERT INTO t1 VALUES(10,110); + INSERT INTO t1 VALUES(11,111); + INSERT INTO t1 SELECT a+2, b+2 FROM t1; + INSERT INTO t1 SELECT null, b+4 FROM t1; + INSERT INTO t1 SELECT null, b+8 FROM t1; + INSERT INTO t1 SELECT null, b+16 FROM t1; + ANALYZE; + CREATE VIRTUAL TABLE tv1 USING echo(t1); + SELECT b FROM t1 WHERE a IS NOT NULL; + } +} {110 111 112 113} +do_test vtabE-1.2 { + execsql {SELECT b FROM tv1 WHERE a IS NOT NULL} +} {110 111 112 113} + + +finish_test