From: dan Date: Tue, 29 Sep 2009 06:33:23 +0000 (+0000) Subject: Various fixes so that "make test" works with OMIT_FOREIGN_KEY, OMIT_TRIGGER and OMIT_... X-Git-Tag: fts3-refactor~140 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=856ef1a5f9fed9b55d5dcfa968f8d1026199a303;p=thirdparty%2Fsqlite.git Various fixes so that "make test" works with OMIT_FOREIGN_KEY, OMIT_TRIGGER and OMIT_ALTER_TABLE. FossilOrigin-Name: e4eb227b14e4bfcb9f7f284692a391b7355f0204 --- diff --git a/manifest b/manifest index a50bfe89c2..d28272855a 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Ignore\sforeign\skey\smismatch\serrors\swhile\scompiling\sDROP\sTABLE\scommands. -D 2009-09-28T18:52:12 +C Various\sfixes\sso\sthat\s"make\stest"\sworks\swith\sOMIT_FOREIGN_KEY,\sOMIT_TRIGGER\sand\sOMIT_ALTER_TABLE. +D 2009-09-29T06:33:24 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.in 4ca3f1dd6efa2075bcb27f4dc43eef749877740d F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -99,7 +99,7 @@ F spec.template 86a4a43b99ebb3e75e6b9a735d5fd293a24e90ca F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b F sqlite3.1 6be1ad09113570e1fc8dcaff84c9b0b337db5ffc F sqlite3.pc.in ae6f59a76e862f5c561eb32a380228a02afc3cad -F src/alter.c 082657ce3a584a512ed472e3163c09ed399e17f4 +F src/alter.c 1b63d4f2a6e76af9e2964d4d86ccc8e74c3fae4a F src/analyze.c 5a8b8aa3d170eac5e71af45458cec61f83c623ee F src/attach.c 13995348fc5a26cdd136a50806faf292aabc173f F src/auth.c d6a88bf8e81e6a079ccb8881002b327e42ec46b9 @@ -260,8 +260,8 @@ F test/boundary2.tcl e34ef4e930cf1083150d4d2c603e146bd3b76bcb F test/boundary2.test 9ae758d7dab7e882c8b6cc4a6a10278385bff8fa F test/boundary3.tcl 8901d6a503d0bf64251dd81cc74e5ad3add4b119 F test/boundary3.test 56ef82096b4329aca2be74fa1e2b0f762ea0eb45 -F test/boundary4.tcl bf068a95bed74cffd5829766b836479fcebeb18b -F test/boundary4.test 940bd509e34ae93c14ae62aeb8cf9afcf178b863 +F test/boundary4.tcl 0bb4b1a94f4fc5ae59b79b9a2b7a140c405e2983 +F test/boundary4.test 89e02fa66397b8a325d5eb102b5806f961f8ec4b F test/busy.test 76b4887f8b9160ba903c1ac22e8ff406ad6ae2f0 F test/cache.test 3ff445c445742a7b6b9ba6e1d62a25263f9424b9 F test/capi2.test 172c717ed101e78e0798dd21b9896a22366f35b4 @@ -330,8 +330,8 @@ F test/expr.test 9f521ae22f00e074959f72ce2e55d46b9ed23f68 F test/filectrl.test 8923a6dc7630f31c8a9dd3d3d740aa0922df7bf8 F test/filefmt.test 84e3d0fe9f12d0d2ac852465c6f8450aea0d6f43 F test/fkey1.test 01c7de578e11747e720c2d9aeef27f239853c4da -F test/fkey2.test a041806ef603f8dbae139ad99e57ed1e6cadebf2 -F test/fkey3.test 4d8d87a72e0dee5b5411cf10dc05ad9edebbeac8 +F test/fkey2.test 3efd8c692e480205cc46026ff2430977e032133a +F test/fkey3.test c17565b40c97a0dd5102610183c744611171b5ec F test/fkey_malloc.test da912d000bb6ceb1cd11b655de1989762fa71ceb F test/format4.test 1f0cac8ff3895e9359ed87e41aaabee982a812eb F test/fts1a.test 46090311f85da51bb33bd5ce84f7948359c6d8d7 @@ -659,7 +659,7 @@ F test/tkt3793.test 754b73f0e6a9349c70dc57e522cf3247272ecd5d F test/tkt3810.test 90fa0635dfa7da9680c8cd3513350a49b3a8ae12 F test/tkt3824.test 3da2f5c81b057e3ff355f5dfc9aa0cf0a92e0206 F test/tkt3832.test 2300d10d57562b89875b72148338ac3e14f8847d -F test/tkt3838.test 2a1525946bc9d3751e1d49ce95f3a2472f2b7408 +F test/tkt3838.test f956f0719b5f805b12dd1dbf19f19d298bacebc3 F test/tkt3841.test 4659845bc53f809a5932c61c6ce8c5bb9d6b947f F test/tkt3871.test 43ecbc8d90dc83908e2a454aef345acc9d160c6f F test/tkt3879.test 2ad5bef2c87e9991ce941e054c31abe26ef7fb90 @@ -668,7 +668,7 @@ F test/tkt3918.test e6cdf6bfcfe9ba939d86a4238a9dc55d6eec5d42 F test/tkt3922.test 022ace32c049e3964f68492c12eb803e8e4856d8 F test/tkt3929.test 75a862e45bcb39e9a7944c89b92afa531304afca F test/tkt3935.test e15261fedb9e30a4305a311da614a5d8e693c767 -F test/tkt3992.test 12e5f884524379ec05b0649eda8f2dc9c15f5395 +F test/tkt3992.test f3e7d548ac26f763b47bc0f750da3d03c81071da F test/tkt3997.test a335fa41ca3985660a139df7b734a26ef53284bd F test/tkt4018.test 7c2c9ba4df489c676a0a7a0e809a1fb9b2185bd1 F test/tokenize.test ce430a7aed48fc98301611429595883fdfcab5d7 @@ -700,11 +700,11 @@ F test/vacuum3.test f39ad1428347c5808cd2da7578c470f186a4d0ce F test/varint.test ab7b110089a08b9926ed7390e7e97bdefeb74102 F test/veryquick.test e265401afefa994cdf2fe4b6f286b1e87c2f9b9d F test/view.test 45f518205ecdb6dd23a86dd4a99bb4ae945e625d -F test/vtab1.test e321e3c80434fe8de97fa4ad815882d2c7838d21 +F test/vtab1.test 9bc4a349a1989bcd064eb3b8fac2f06aca64297a F test/vtab2.test 7bcffc050da5c68f4f312e49e443063e2d391c0d F test/vtab3.test baad99fd27217f5d6db10660522e0b7192446de1 F test/vtab4.test 942f8b8280b3ea8a41dae20e7822d065ca1cb275 -F test/vtab5.test a0a84a89c622f4e2e816ebf39883dc319b4a1024 +F test/vtab5.test 889f444970393c73f1e077e2bdc5d845e157a391 F test/vtab6.test c7f290d172609d636fbfc58166eadcb55d5c117c F test/vtab7.test a8c3c3cb3eb60be364991bd714e4927e26c4cd85 F test/vtab8.test e19fa4a538fcd1bb66c22825fa8f71618fb13583 @@ -713,9 +713,9 @@ F test/vtabA.test 0dcd4c81ffb56649f47d1b5fb9c5ae807ccf41f7 F test/vtabB.test 04df5dc531b9f44d9ca65b9c1b79f12b5922a796 F test/vtabC.test 1cf7896ab6859bfe3074244b2b0e12de5cbdd766 F test/vtabD.test 74167b1578e5886fe4c886d6bef2fd1406444c42 -F test/vtab_alter.test 3a299749fee97ca3d53bd55717f536e4a2284856 +F test/vtab_alter.test 9e374885248f69e251bdaacf480b04a197f125e5 F test/vtab_err.test 0d4d8eb4def1d053ac7c5050df3024fd47a3fbd8 -F test/vtab_shared.test 561305eff0bb574a983c29029ef294a4a895a14c +F test/vtab_shared.test 0eff9ce4f19facbe0a3e693f6c14b80711a4222d F test/where.test de337a3fe0a459ec7c93db16a519657a90552330 F test/where2.test 45eacc126aabb37959a387aa83e59ce1f1f03820 F test/where3.test 97d3936e6a443b968f1a61cdcc0f673252000e94 @@ -755,7 +755,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f -P 8353808c9e70412fdee31bfda7810e948f1c7485 -R d0e9896e0ec532c989c7902d96591d81 +P 5b4d46374a8e808246a1813c12c36c4a75371898 +R 32675a16ccbf8ba9a57d02ab929283d4 U dan -Z c982a4c0e50b77ad87726fbdb4e6d971 +Z 3978b535f562bf4c0abfd653652139fb diff --git a/manifest.uuid b/manifest.uuid index bc5950d77f..0bcc7d5f1d 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -5b4d46374a8e808246a1813c12c36c4a75371898 \ No newline at end of file +e4eb227b14e4bfcb9f7f284692a391b7355f0204 \ No newline at end of file diff --git a/src/alter.c b/src/alter.c index 875a448c95..c7ba3026f5 100644 --- a/src/alter.c +++ b/src/alter.c @@ -266,6 +266,7 @@ static char *whereOrName(sqlite3 *db, char *zWhere, char *zConstant){ return zNew; } +#if !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER) /* ** Generate the text of a WHERE expression which can be used to select all ** tables that have foreign key constraints that refer to table pTab (i.e. @@ -280,6 +281,7 @@ static char *whereForeignKeys(Parse *pParse, Table *pTab){ } return zWhere; } +#endif /* ** Generate the text of a WHERE expression which can be used to select all @@ -470,7 +472,7 @@ void sqlite3AlterRenameTable( zTabName = pTab->zName; nTabName = sqlite3Utf8CharLen(zTabName, -1); -#ifndef SQLITE_OMIT_FOREIGN_KEY +#if !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER) if( db->flags&SQLITE_ForeignKeys ){ /* If foreign-key support is enabled, rewrite the CREATE TABLE ** statements corresponding to all child tables of foreign key constraints @@ -536,7 +538,7 @@ void sqlite3AlterRenameTable( } #endif -#ifndef SQLITE_OMIT_FOREIGN_KEY +#if !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER) if( db->flags&SQLITE_ForeignKeys ){ FKey *p; for(p=sqlite3FkReferences(pTab); p; p=p->pNextTo){ diff --git a/test/boundary4.tcl b/test/boundary4.tcl index 8fcde63c94..20f5c9680f 100644 --- a/test/boundary4.tcl +++ b/test/boundary4.tcl @@ -20,6 +20,7 @@ source $testdir/tester.tcl # Many of the boundary tests depend on a working 64-bit implementation. if {![working_64bit_int]} { finish_test; return } +ifcapable !altertable { finish_test; return } } expr srand(0) diff --git a/test/boundary4.test b/test/boundary4.test index 5a30a175c9..b77ac3acf0 100644 --- a/test/boundary4.test +++ b/test/boundary4.test @@ -20,6 +20,7 @@ source $testdir/tester.tcl # Many of the boundary tests depend on a working 64-bit implementation. if {![working_64bit_int]} { finish_test; return } +ifcapable !altertable { finish_test; return } do_test boundary4-1.1 { db eval { diff --git a/test/fkey2.test b/test/fkey2.test index 375b4da8a7..abf52a93fe 100644 --- a/test/fkey2.test +++ b/test/fkey2.test @@ -780,89 +780,91 @@ do_test fkey2-13.1.4 { # fkey2-14.3*: DROP TABLE # drop_all_tables -do_test fkey2-14.1.1 { - # Adding a column with a REFERENCES clause is not supported. - execsql { - CREATE TABLE t1(a PRIMARY KEY); - CREATE TABLE t2(a, b); - } - catchsql { ALTER TABLE t2 ADD COLUMN c REFERENCES t1 } -} {0 {}} -do_test fkey2-14.1.2 { - catchsql { ALTER TABLE t2 ADD COLUMN d DEFAULT NULL REFERENCES t1 } -} {0 {}} -do_test fkey2-14.1.3 { - catchsql { ALTER TABLE t2 ADD COLUMN e REFERENCES t1 DEFAULT NULL} -} {0 {}} -do_test fkey2-14.1.4 { - catchsql { ALTER TABLE t2 ADD COLUMN f REFERENCES t1 DEFAULT 'text'} -} {1 {Cannot add a REFERENCES column with non-NULL default value}} -do_test fkey2-14.1.5 { - catchsql { ALTER TABLE t2 ADD COLUMN g DEFAULT CURRENT_TIME REFERENCES t1 } -} {1 {Cannot add a REFERENCES column with non-NULL default value}} -do_test fkey2-14.1.6 { - execsql { - PRAGMA foreign_keys = off; - ALTER TABLE t2 ADD COLUMN h DEFAULT 'text' REFERENCES t1; - PRAGMA foreign_keys = on; - SELECT sql FROM sqlite_master WHERE name='t2'; +ifcapable altertable { + do_test fkey2-14.1.1 { + # Adding a column with a REFERENCES clause is not supported. + execsql { + CREATE TABLE t1(a PRIMARY KEY); + CREATE TABLE t2(a, b); + } + catchsql { ALTER TABLE t2 ADD COLUMN c REFERENCES t1 } + } {0 {}} + do_test fkey2-14.1.2 { + catchsql { ALTER TABLE t2 ADD COLUMN d DEFAULT NULL REFERENCES t1 } + } {0 {}} + do_test fkey2-14.1.3 { + catchsql { ALTER TABLE t2 ADD COLUMN e REFERENCES t1 DEFAULT NULL} + } {0 {}} + do_test fkey2-14.1.4 { + catchsql { ALTER TABLE t2 ADD COLUMN f REFERENCES t1 DEFAULT 'text'} + } {1 {Cannot add a REFERENCES column with non-NULL default value}} + do_test fkey2-14.1.5 { + catchsql { ALTER TABLE t2 ADD COLUMN g DEFAULT CURRENT_TIME REFERENCES t1 } + } {1 {Cannot add a REFERENCES column with non-NULL default value}} + do_test fkey2-14.1.6 { + execsql { + PRAGMA foreign_keys = off; + ALTER TABLE t2 ADD COLUMN h DEFAULT 'text' REFERENCES t1; + PRAGMA foreign_keys = on; + SELECT sql FROM sqlite_master WHERE name='t2'; + } + } {{CREATE TABLE t2(a, b, c REFERENCES t1, d DEFAULT NULL REFERENCES t1, e REFERENCES t1 DEFAULT NULL, h DEFAULT 'text' REFERENCES t1)}} + + + # Test the sqlite_rename_parent() function directly. + # + proc test_rename_parent {zCreate zOld zNew} { + db eval {SELECT sqlite_rename_parent($zCreate, $zOld, $zNew)} } -} {{CREATE TABLE t2(a, b, c REFERENCES t1, d DEFAULT NULL REFERENCES t1, e REFERENCES t1 DEFAULT NULL, h DEFAULT 'text' REFERENCES t1)}} - - -# Test the sqlite_rename_parent() function directly. -# -proc test_rename_parent {zCreate zOld zNew} { - db eval {SELECT sqlite_rename_parent($zCreate, $zOld, $zNew)} + do_test fkey2-14.2.1.1 { + test_rename_parent {CREATE TABLE t1(a REFERENCES t2)} t2 t3 + } {{CREATE TABLE t1(a REFERENCES "t3")}} + do_test fkey2-14.2.1.2 { + test_rename_parent {CREATE TABLE t1(a REFERENCES t2)} t4 t3 + } {{CREATE TABLE t1(a REFERENCES t2)}} + do_test fkey2-14.2.1.3 { + test_rename_parent {CREATE TABLE t1(a REFERENCES "t2")} t2 t3 + } {{CREATE TABLE t1(a REFERENCES "t3")}} + + # Test ALTER TABLE RENAME TABLE a bit. + # + do_test fkey2-14.2.2.1 { + drop_all_tables + execsql { + CREATE TABLE t1(a PRIMARY KEY, b REFERENCES t1); + CREATE TABLE t2(a PRIMARY KEY, b REFERENCES t1, c REFERENCES t2); + CREATE TABLE t3(a REFERENCES t1, b REFERENCES t2, c REFERENCES t1); + } + execsql { SELECT sql FROM sqlite_master WHERE type = 'table'} + } [list \ + {CREATE TABLE t1(a PRIMARY KEY, b REFERENCES t1)} \ + {CREATE TABLE t2(a PRIMARY KEY, b REFERENCES t1, c REFERENCES t2)} \ + {CREATE TABLE t3(a REFERENCES t1, b REFERENCES t2, c REFERENCES t1)} \ + ] + do_test fkey2-14.2.2.2 { + execsql { ALTER TABLE t1 RENAME TO t4 } + execsql { SELECT sql FROM sqlite_master WHERE type = 'table'} + } [list \ + {CREATE TABLE "t4"(a PRIMARY KEY, b REFERENCES "t4")} \ + {CREATE TABLE t2(a PRIMARY KEY, b REFERENCES "t4", c REFERENCES t2)} \ + {CREATE TABLE t3(a REFERENCES "t4", b REFERENCES t2, c REFERENCES "t4")} \ + ] + do_test fkey2-14.2.2.3 { + catchsql { INSERT INTO t3 VALUES(1, 2, 3) } + } {1 {foreign key constraint failed}} + do_test fkey2-14.2.2.4 { + execsql { INSERT INTO t4 VALUES(1, NULL) } + } {} + do_test fkey2-14.2.2.5 { + catchsql { UPDATE t4 SET b = 5 } + } {1 {foreign key constraint failed}} + do_test fkey2-14.2.2.6 { + catchsql { UPDATE t4 SET b = 1 } + } {0 {}} + do_test fkey2-14.2.2.7 { + execsql { INSERT INTO t3 VALUES(1, NULL, 1) } + } {} } -do_test fkey2-14.2.1.1 { - test_rename_parent {CREATE TABLE t1(a REFERENCES t2)} t2 t3 -} {{CREATE TABLE t1(a REFERENCES "t3")}} -do_test fkey2-14.2.1.2 { - test_rename_parent {CREATE TABLE t1(a REFERENCES t2)} t4 t3 -} {{CREATE TABLE t1(a REFERENCES t2)}} -do_test fkey2-14.2.1.3 { - test_rename_parent {CREATE TABLE t1(a REFERENCES "t2")} t2 t3 -} {{CREATE TABLE t1(a REFERENCES "t3")}} - -# Test ALTER TABLE RENAME TABLE a bit. -# -do_test fkey2-14.2.2.1 { - drop_all_tables - execsql { - CREATE TABLE t1(a PRIMARY KEY, b REFERENCES t1); - CREATE TABLE t2(a PRIMARY KEY, b REFERENCES t1, c REFERENCES t2); - CREATE TABLE t3(a REFERENCES t1, b REFERENCES t2, c REFERENCES t1); - } - execsql { SELECT sql FROM sqlite_master WHERE type = 'table'} -} [list \ - {CREATE TABLE t1(a PRIMARY KEY, b REFERENCES t1)} \ - {CREATE TABLE t2(a PRIMARY KEY, b REFERENCES t1, c REFERENCES t2)} \ - {CREATE TABLE t3(a REFERENCES t1, b REFERENCES t2, c REFERENCES t1)} \ -] -do_test fkey2-14.2.2.2 { - execsql { ALTER TABLE t1 RENAME TO t4 } - execsql { SELECT sql FROM sqlite_master WHERE type = 'table'} -} [list \ - {CREATE TABLE "t4"(a PRIMARY KEY, b REFERENCES "t4")} \ - {CREATE TABLE t2(a PRIMARY KEY, b REFERENCES "t4", c REFERENCES t2)} \ - {CREATE TABLE t3(a REFERENCES "t4", b REFERENCES t2, c REFERENCES "t4")} \ -] -do_test fkey2-14.2.2.3 { - catchsql { INSERT INTO t3 VALUES(1, 2, 3) } -} {1 {foreign key constraint failed}} -do_test fkey2-14.2.2.4 { - execsql { INSERT INTO t4 VALUES(1, NULL) } -} {} -do_test fkey2-14.2.2.5 { - catchsql { UPDATE t4 SET b = 5 } -} {1 {foreign key constraint failed}} -do_test fkey2-14.2.2.6 { - catchsql { UPDATE t4 SET b = 1 } -} {0 {}} -do_test fkey2-14.2.2.7 { - execsql { INSERT INTO t3 VALUES(1, NULL, 1) } -} {} do_test fkey-2.14.3.1 { drop_all_tables diff --git a/test/fkey3.test b/test/fkey3.test index 010a750477..2f3e8cf3b0 100644 --- a/test/fkey3.test +++ b/test/fkey3.test @@ -16,7 +16,7 @@ set testdir [file dirname $argv0] source $testdir/tester.tcl -ifcapable {!foreignkey} { +ifcapable {!foreignkey||!trigger} { finish_test return } diff --git a/test/tkt3838.test b/test/tkt3838.test index f56b7058a2..4fb5c55a8a 100644 --- a/test/tkt3838.test +++ b/test/tkt3838.test @@ -20,6 +20,10 @@ set testdir [file dirname $argv0] source $testdir/tester.tcl +ifcapable !altertable { + finish_test + return +} do_test tkt3838-1.1 { db eval { diff --git a/test/tkt3992.test b/test/tkt3992.test index be7e50d709..0d8a30f94d 100644 --- a/test/tkt3992.test +++ b/test/tkt3992.test @@ -44,20 +44,22 @@ do_test tkt3992-1.3 { } } {2 1.0} -do_test tkt3992-2.1 { - execsql { - CREATE TABLE t1(a, b); - INSERT INTO t1 VALUES(1, 2); - ALTER TABLE t1 ADD COLUMN c DEFAULT 3; - SELECT * FROM t1; - } -} {1 2 3} -do_test tkt3992-2.2 { - execsql { - UPDATE t1 SET a = 'one'; - SELECT * FROM t1; - } -} {one 2 3} +ifcapable altertable { + do_test tkt3992-2.1 { + execsql { + CREATE TABLE t1(a, b); + INSERT INTO t1 VALUES(1, 2); + ALTER TABLE t1 ADD COLUMN c DEFAULT 3; + SELECT * FROM t1; + } + } {1 2 3} + do_test tkt3992-2.2 { + execsql { + UPDATE t1 SET a = 'one'; + SELECT * FROM t1; + } + } {one 2 3} +} ifcapable trigger { db function tcl eval diff --git a/test/vtab1.test b/test/vtab1.test index 3bf7286ce3..bafd29ae2d 100644 --- a/test/vtab1.test +++ b/test/vtab1.test @@ -1154,12 +1154,14 @@ foreach method [list \ incr tn } -do_test vtab1-16.$tn { - set echo_module_fail(xRename,t2) "the xRename method has failed" - catchsql { ALTER TABLE echo_t2 RENAME TO another_name } -} "1 {echo-vtab-error: the xRename method has failed}" -unset echo_module_fail(xRename,t2) -incr tn +ifcapable altertable { + do_test vtab1-16.$tn { + set echo_module_fail(xRename,t2) "the xRename method has failed" + catchsql { ALTER TABLE echo_t2 RENAME TO another_name } + } "1 {echo-vtab-error: the xRename method has failed}" + unset echo_module_fail(xRename,t2) + incr tn +} unset -nocomplain echo_module_begin_fail finish_test diff --git a/test/vtab5.test b/test/vtab5.test index 7fd7e0e129..bb84a5ceec 100644 --- a/test/vtab5.test +++ b/test/vtab5.test @@ -134,11 +134,13 @@ do_test vtab5.4.1 { # Test that it is impossible to add a column to a virtual table. # -do_test vtab5.4.2 { - catchsql { - ALTER TABLE echo_strings ADD COLUMN col2; - } -} {1 {virtual tables may not be altered}} +ifcapable altertable { + do_test vtab5.4.2 { + catchsql { + ALTER TABLE echo_strings ADD COLUMN col2; + } + } {1 {virtual tables may not be altered}} +} # Test that it is impossible to rename a virtual table. # UPDATE: It is now possible. diff --git a/test/vtab_alter.test b/test/vtab_alter.test index cf28822ad9..eb50a28a5e 100644 --- a/test/vtab_alter.test +++ b/test/vtab_alter.test @@ -17,7 +17,7 @@ set testdir [file dirname $argv0] source $testdir/tester.tcl -ifcapable !vtab { +ifcapable !vtab||!altertable { finish_test return } diff --git a/test/vtab_shared.test b/test/vtab_shared.test index e195ef232b..ce2e432fcf 100644 --- a/test/vtab_shared.test +++ b/test/vtab_shared.test @@ -144,17 +144,19 @@ do_test vtab_shared-1.12.2 { # Try a rename or two. # -do_test vtab_shared-1.13.1 { - execsql { ALTER TABLE t1 RENAME TO t4 } - execsql { SELECT * FROM t4 } db -} {1 2 3 4 5 6} -do_test vtab_shared-1.13.2 { - execsql { SELECT * FROM t4 } db2 -} {1 2 3 4 5 6} -do_test vtab_shared-1.13.3 { - execsql { ALTER TABLE t2 RENAME TO t5 } - execsql { SELECT * FROM t4 } db2 -} {1 2 3 4 5 6} +ifcapable altertable { + do_test vtab_shared-1.13.1 { + execsql { ALTER TABLE t1 RENAME TO t4 } + execsql { SELECT * FROM t4 } db + } {1 2 3 4 5 6} + do_test vtab_shared-1.13.2 { + execsql { SELECT * FROM t4 } db2 + } {1 2 3 4 5 6} + do_test vtab_shared-1.13.3 { + execsql { ALTER TABLE t2 RENAME TO t5 } + execsql { SELECT * FROM t4 } db2 + } {1 2 3 4 5 6} +} # Try an UPDATE/INSERT/DELETE on a shared vtab as the first statement after a # schema is loaded.