]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Change things so that SQLITE_OMIT_VIRTUALTABLE implies SQLITE_OMIT_ALTER_TABLE.
authordan <Dan Kennedy>
Fri, 1 Oct 2021 20:39:50 +0000 (20:39 +0000)
committerdan <Dan Kennedy>
Fri, 1 Oct 2021 20:39:50 +0000 (20:39 +0000)
FossilOrigin-Name: 2f7c946c5f25a858167f5193ca06e53310394c8cff15426ab8a1327a1ec835fd

34 files changed:
ext/session/sessionat.test
manifest
manifest.uuid
src/parse.y
src/sqliteInt.h
test/altercorrupt.test
test/alterqf.test
test/analyze4.test
test/auth3.test
test/columncount.test
test/corruptL.test
test/e_changes.test
test/e_totalchanges.test
test/func.test
test/gencol1.test
test/hook.test
test/indexexpr1.test
test/istrue.test
test/pager1.test
test/pragma.test
test/quote.test
test/schema3.test
test/skipscan2.test
test/sorterref.test
test/strict1.test
test/tkt-8454a207b9.test
test/tkt-f67b41381a.test
test/update.test
test/view.test
test/whereE.test
test/window1.test
test/with2.test
test/without_rowid1.test
tool/mkkeywordhash.c

index 4a3f59a441506839ecc03e6ae67d221c36ce5d65..8141d9232268be10efdd28830eeea9df8b0ca926 100644 (file)
@@ -20,9 +20,14 @@ if {![info exists testdir]} {
 source [file join [file dirname [info script]] session_common.tcl]
 source $testdir/tester.tcl
 ifcapable !session {finish_test; return}
-
 set testprefix sessionat
 
+# If SQLITE_OMIT_ALTERTABLE is defined, omit this file.
+ifcapable !altertable {
+  finish_test
+  return
+}
+
 db close
 sqlite3_shutdown
 test_sqlite3_log log
index 01bfcd2db15b84ab51dc009a2096b88e3b4d8731..a50590d9422c8d8cbd77c4b25692bcd54f0811a7 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\spotential\swrite\soutside\sof\sarray\sbounds\sin\sthe\s--hexdb\sdecoder\sof\sthe\nCLI\swhen\sgiven\scorrupt\sinput.
-D 2021-10-01T17:06:44.476
+C Change\sthings\sso\sthat\sSQLITE_OMIT_VIRTUALTABLE\simplies\sSQLITE_OMIT_ALTER_TABLE.
+D 2021-10-01T20:39:50.837
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -450,7 +450,7 @@ F ext/session/sessionG.test 3828b944cd1285f4379340fd36f8b64c464fc84df6ff3ccbc955
 F ext/session/sessionH.test b17afdbd3b8f17e9bab91e235acf167cf35485db2ab2df0ea8893fbb914741a4
 F ext/session/session_common.tcl f613174665456b2d916ae8df3e5735092a1c1712f36f46840172e9a01e8cc53e
 F ext/session/session_speed_test.c dcf0ef58d76b70c8fbd9eab3be77cf9deb8bc1638fed8be518b62d6cbdef88b3
-F ext/session/sessionat.test efe88965e74ff1bc2af9c310b28358c02d420c1fb2705cc7a28f0c1cc142c3ec
+F ext/session/sessionat.test 52993535f1230a42f70886643574ba7ae60ef854f8add9c8e3fcc3eb5c564bd2
 F ext/session/sessionbig.test 890ade19e3f80f3d3a3e83821ff79c5e2af906a67ecb5450879f0015cadf101e
 F ext/session/sessiondiff.test ad13dd65664bae26744e1f18eb3cbd5588349b7e9118851d8f9364248d67bcec
 F ext/session/sessionfault.test da273f2712b6411e85e71465a1733b8501dbf6f7
@@ -538,7 +538,7 @@ F src/os_win.c 77d39873836f1831a9b0b91894fec45ab0e9ca8e067dc8c549e1d1eca1566fe9
 F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
 F src/pager.c 1ba6a843148282895d800aa69919553079946ef9a198a97e5d7c64442d10ed4c
 F src/pager.h 4bf9b3213a4b2bebbced5eaa8b219cf25d4a82f385d093cd64b7e93e5285f66f
-F src/parse.y 86aa016b281f61d7664dd8cb7808cab8114d14cfaf362a9b9fc9ead8f33546b7
+F src/parse.y 82bdd593c50bddcc285a173e9788a20296103217f5f5290c9122abf8af71af62
 F src/pcache.c 084e638432c610f95aea72b8509f0845d2791293f39d1b82f0c0a7e089c3bb6b
 F src/pcache.h 4f87acd914cef5016fae3030343540d75f5b85a1877eed1a2a19b9f284248586
 F src/pcache1.c 54881292a9a5db202b2c0ac541c5e3ef9a5e8c4f1c1383adb2601d5499a60e65
@@ -554,7 +554,7 @@ F src/shell.c.in f9a13edb4d4cdbdfc161b0d200296c1dd9c492ad86dd73f4768ee841fec6657
 F src/sqlite.h.in 4e977a5e2ed1a9e8987ff65a2cab5f99a4298ebf040ea5ff636e1753339ff45a
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
 F src/sqlite3ext.h e97f4e9b509408fea4c4e9bef5a41608dfac343b4d3c7a990dedde1e19af9510
-F src/sqliteInt.h 06a8f97a644388b28c0a9428a6b2cdf40e8b51b1cf38064f41baba5fd810be49
+F src/sqliteInt.h c481cd4864217bdff96fc2a7054cdaca0edabe0eb9f6cce8b012d1e014ccdc5f
 F src/sqliteLimit.h d7323ffea5208c6af2734574bae933ca8ed2ab728083caa117c9738581a31657
 F src/status.c 4b8bc2a6905163a38b739854a35b826c737333fab5b1f8e03fa7eb9a4799c4c1
 F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
@@ -655,21 +655,21 @@ F test/alter4.test 716caa071dd8a3c6d57225778d15d3c3cbf5e34b2e84ae44199aeb2bbf50a
 F test/alterauth.test 63442ba61ceb0c1eeb63aac1f4f5cebfa509d352276059d27106ae256bafc959
 F test/alterauth2.test 381b1ab603c9ef96314a3158528ea17f7964449385a28eeaf8191120b2e24a8d
 F test/altercol.test b11fa1b131e80ab5b6ecfb3b725fb0419c14ca6efba5adb57aeabfc9baa0c8f3
-F test/altercorrupt.test 584d707a80e106952d6382790c8919bcf9f0db678ed3a1c09fd98b7f9d1d3a10
+F test/altercorrupt.test 2e1d705342cf9d7de884518ddbb053fd52d7e60d2b8869b7b63b2fda68435c12
 F test/alterdropcol.test a653a3945f964d26845ec0cd0a8e74189f46de3119a984c5bc45457da392612e
 F test/alterdropcol2.test 527fce683b200d620f560f666c44ae33e22728e990a10a48a543280dfd4b4d41
 F test/alterlegacy.test f38c6d06cda39e1f7b955bbce57f2e3ef5b7cb566d3d1234502093e228c15811
 F test/altermalloc.test 167a47de41b5c638f5f5c6efb59784002b196fff70f98d9b4ed3cd74a3fb80c9
 F test/altermalloc2.test ca3ebc01670d9313953a2b7628d8cc00dc5ea9988f229b3cbbbe1cca506dae45
 F test/altermalloc3.test 4660ac6240a8c82ba3947b927612dcc7c05a8eec3fe3c9f38e047ca69a789a33
-F test/alterqf.test 67568ad152db8c1187b15633b801242cf960f1beafc51261a3d1725d910baeb2
+F test/alterqf.test 6b2482a957692606b23567ebd2cf80eb773e3c826086f5f151eee9c5a962623d
 F test/altertab.test a13e11cb1933575002367613b1094f0eeb31f493e4bd9ebeca73279fe00c85e7
 F test/altertab2.test b0d62f323ca5dab42b0bc028c52e310ebdd13e655e8fac070fe622bad7852c2b
 F test/altertab3.test 5929f522fd6fd708396ad9f317d4af9ff1a93e460df85bb1d54d4499eeb94960
 F test/amatch1.test b5ae7065f042b7f4c1c922933f4700add50cdb9f
 F test/analyze.test 547bb700f903107b38611b014ca645d6b5bb819f5210d7bf39c40802aafeb7d7
 F test/analyze3.test 4440c4932247adb2b4e0c838f657c19dc7af4f56859255436dc4e855f39b9324
-F test/analyze4.test 293ec8ea21525f3435beaf9d6b1efb29e719415f03a0cd2a70589d59098e8464
+F test/analyze4.test 68bd069f3ac7ac1e652ddd9f04f57d5606ddb4208450f5297005db7aa0dd707d
 F test/analyze5.test fa5131952303ac4146aba101b116b9c8cb89e2637531c334a6df7f7d19dddc0d
 F test/analyze6.test 028f5bdfc9e5b5294768fa9a7185b8cd1d019aa7aab5b2f8ee42d7271d9a3b28
 F test/analyze7.test 079d17c495e396bdbd6cc6a083112788a6fbfb3b95c42e760e4270a53c9ead8f
@@ -697,7 +697,7 @@ F test/attach4.test 00e754484859998d124d144de6d114d920f2ed6ca2f961e6a7f4183c714f
 F test/attachmalloc.test 12c4f028e570acf9e0a4b0b7fe6f536e21f3d5ebddcece423603d0569beaf438
 F test/auth.test 567d917e0baddb6d0026a251cff977a3ab2c805a3cef906ba8653aafe7ad7240
 F test/auth2.test 9eb7fce9f34bf1f50d3f366fb3e606be5a2000a1
-F test/auth3.test db21405b95257c24d29273b6b31d0efc59e1d337e3d5804ba2d1fd4897b1ae49
+F test/auth3.test 76d20a7fa136d63bcfcf8bcb65c0b1455ed71078d81f22bcd0550d3eb18594ab
 F test/autoanalyze1.test b9cc3f32a990fa56669b668d237c6d53e983554ae80c0604992e18869a0b2dec
 F test/autoinc.test 997d6f185f138229dc4251583a1d04816423dddc2fc034871a01aeb1d728cb39
 F test/autoindex1.test fe27af92eaf884bd9c38f94be3e8afa04ec494e5eefb189902026181a6175f5e
@@ -781,7 +781,7 @@ F test/collateA.test b8218ab90d1fa5c59dcf156efabb1b2599c580d6
 F test/collateB.test 1e68906951b846570f29f20102ed91d29e634854ee47454d725f2151ecac0b95
 F test/colmeta.test 2c765ea61ee37bc43bbe6d6047f89004e6508eb1
 F test/colname.test 87ad5458bb8709312dac0d6755fd30e8e4ca83298d0a9ef6e5c24277a3c3390e
-F test/columncount.test d86fb6307261186370698962790ad2088ed419e4a4e823512b502f17d443b1b7
+F test/columncount.test 6fe99c2f35738b0129357a1cf3fa483f76140f4cd8a89014c88c33c876d2638f
 F test/conflict.test ac0667090f66130ac77d5fb764655558ca6600dd6d88f670ca9123b61c448337
 F test/conflict2.test 5557909ce683b1073982f5d1b61dfb1d41e369533bfdaf003180c5bc87282dd1
 F test/conflict3.test 81865d9599609aca394fb3b9cd5f561d4729ea5b176bece3644f6ecb540f88ac
@@ -806,7 +806,7 @@ F test/corruptH.test 79801d97ec5c2f9f3c87739aa1ec2eb786f96454
 F test/corruptI.test a17bbf54fdde78d43cf3cc34b0057719fd4a173a3d824285b67dc5257c064c7b
 F test/corruptJ.test 4d5ccc4bf959464229a836d60142831ef76a5aa4
 F test/corruptK.test 5b4212fe346699831c5ad559a62c54e11c0611bdde1ea8423a091f9c01aa32af
-F test/corruptL.test df132ba9ffd6fa15038380b4154998b9904ab8f1ea78400d7da53c920cb3b13d
+F test/corruptL.test 7d3440831ca24ba64305583c4d4506d417d3f89f5775c0b7cc8102db078f8ff5
 F test/corruptM.test 7d574320e08c1b36caa3e47262061f186367d593a7e305d35f15289cc2c3e067
 F test/corruptN.test c2a96ff81386027f7d7e95858783aa36f82ba1532106969575e3c8f90903a5bb
 F test/cost.test b11cdbf9f11ffe8ef99c9881bf390e61fe92baf2182bad1dbe6de59a7295c576
@@ -858,7 +858,7 @@ F test/e_blobbytes.test 439a945953b35cb6948a552edaec4dc31fd70a05
 F test/e_blobclose.test 4b3c8c60c2171164d472059c73e9f3c1844bb66d
 F test/e_blobopen.test e95e1d40f995056f6f322cd5e1a1b83a27e1a145
 F test/e_blobwrite.test f87ff598b67af5b3ec002a8d83e804dc8d23808e88cf0080c176612fc9ffce14
-F test/e_changes.test 6ba336a796db32f890e50197ab6a8fe5e6017e431fc9082702c246120cd58d55
+F test/e_changes.test 0f8c3e6aab7335cb772d5a3ea34ca4c82f98d0eb896e2eb3add971c16984b405
 F test/e_createtable.test 7997c0106c181243e0ac7db7ba8b9ae7233d0bfb0188605650322a7a02ea326e
 F test/e_delete.test ab39084f26ae1f033c940b70ebdbbd523dc4962e
 F test/e_droptrigger.test 235c610f8bf8ec44513e222b9085c7e49fad65ad0c1975ac2577109dd06fd8fa
@@ -871,7 +871,7 @@ F test/e_reindex.test 2b0e29344497d9a8a999453a003cb476b6b1d2eef2d6c120f83c2d3a42
 F test/e_resolve.test a61751c368b109db73df0f20fc75fb47e166b1d8
 F test/e_select.test c5425a423da06d0494119db8361ebfc6de302929f7546ca596d56224137e0360
 F test/e_select2.test aceb80ab927d46fba5ce7586ebabf23e2bb0604f
-F test/e_totalchanges.test 1daded1db6867991c10b53a18436b2602f41ad82a2b8c2e1ed5eb7d1ad15edaf
+F test/e_totalchanges.test c927f7499dc3aa28b9b556b7d6d115a2f0fe41f012b128d16bf1f3b30e9b41e4
 F test/e_update.test f46c2554d915c9197548681e8d8c33a267e84528
 F test/e_uri.test 47eeb2960e74613f0f8722b2f13aef08fde69daa16e5380ac93df84dac8b1f72
 F test/e_vacuum.test 0d8832a2ce92350db0d0cff47b419465fd9772562e1f77ff7d9478c07a4980d2
@@ -1040,7 +1040,7 @@ F test/fts4umlaut.test fcaca4471de7e78c9d1f7e8976e3e8704d7d8ad979d57a739d00f3f75
 F test/fts4unicode.test 82a9c16b68ba2f358a856226bb2ee02f81583797bc4744061c54401bf1a0f4c9
 F test/fts4upfrom.test f25835162c989dffd5e2ef91ec24c4848cc9973093e2d492d1c7b32afac1b49d
 F test/full.test 6b3c8fb43c6beab6b95438c1675374b95fab245d
-F test/func.test 77f6ea02c97d9ea64074461d347276a75df22d2cf51045a40f90857569e985f0
+F test/func.test 3a65ddb6c1998f71aa86492501a6be87904197e62bfb5b70b2493552b558abd1
 F test/func2.test 772d66227e4e6684b86053302e2d74a2500e1e0f
 F test/func3.test 600a632c305a88f3946d38f9a51efe145c989b2e13bd2b2a488db47fe76bab6a
 F test/func4.test 2285fb5792d593fef442358763f0fd9de806eda47dbc7a5934df57ffdc484c31
@@ -1067,12 +1067,12 @@ F test/fuzzer1.test 3d4c4b7e547aba5e5511a2991e3e3d07166cfbb8
 F test/fuzzer2.test a85ef814ce071293bce1ad8dffa217cbbaad4c14
 F test/fuzzerfault.test f64c4aef4c9e9edf1d6dc0d3f1e65dcc81e67c996403c88d14f09b74807a42bc
 F test/gcfault.test dd28c228a38976d6336a3fc42d7e5f1ad060cb8c
-F test/gencol1.test 1b63f8c00154e58714b1a04554304ffdaae0bac71a23935fe308fb1715068b6c
+F test/gencol1.test cc0dbb0ee116e5602e18ea7d47f2a0f76b26e09a823b7c36ef254370c2b0f3c1
 F test/genesis.tcl 1e2e2e8e5cc4058549a154ff1892fe5c9de19f98
 F test/having.test a89236dd8d55aa50c4805f82ac9daf64d477a44d712d8209c118978d0ca21ec9
 F test/hexlit.test 4a6a5f46e3c65c4bf1fa06f5dd5a9507a5627751
 F test/hidden.test 23c1393a79e846d68fd902d72c85d5e5dcf98711
-F test/hook.test 55b6d605d06dadbb04416eae8ad79889aea3521d119c87f04353c25f9c1450a4
+F test/hook.test bb9e03b93fa4bc3bf0f164e455ddaee3603dee0501cb61119baed557c8f936be
 F test/hook2.test b9ff3b8c6519fb67f33192f1afe86e7782ee4ac8
 F test/icu.test 716a6b89fbabe5cc63e0cd4c260befb08fd7b9d761f04d43669233292f0753b1
 F test/ieee754.test b0945d12be7d255f3dfa18e2511b17ca37e0edd2b803231c52d05b86c04ab26e
@@ -1104,7 +1104,7 @@ F test/index7.test b238344318e0b4e42126717f6554f0e7dfd0b39cecad4b736039b43e1e3b6
 F test/index8.test caa097735c91dbc23d8a402f5e63a2a03c83840ba3928733ed7f9a03f8a912a3
 F test/index9.test 0aa3e509dddf81f93380396e40e9bb386904c1054924ba8fa9bcdfe85a8e7721
 F test/indexedby.test f21eca4f7a6ffe14c8500a7ad6cd53166666c99e5ccd311842a28bc94a195fe0
-F test/indexexpr1.test 7e0e7a33acb4d9b3524398e6ce90cc05c26603fabbaf3062083a036c8874bc12
+F test/indexexpr1.test 8f7241410e351679010f14cd7cd30357622d04a784508ff54ba5ce99f64a2228
 F test/indexexpr2.test 2c7abe3c48f8aaa5a448615ab4d13df3662185d28419c00999670834a3f0b484
 F test/indexfault.test 98d78a8ff1f5335628b62f886a1cb7c7dac1ef6d48fa39c51ec871c87dce9811
 F test/init.test 15c823093fdabbf7b531fe22cf037134d09587a7
@@ -1128,7 +1128,7 @@ F test/ioerr3.test d3cec5e1a11ad6d27527d0d38573fbff14c71bdd
 F test/ioerr4.test f130fe9e71008577b342b8874d52984bd04ede2c
 F test/ioerr5.test 2edfa4fb0f896f733071303b42224df8bedd9da4
 F test/ioerr6.test a395a6ab144b26a9e3e21059a1ab6a7149cca65b
-F test/istrue.test 9619a2d77580f676048aaff7a16a0bcfea2b96c6c660dfaded2e53c873418899
+F test/istrue.test e7f285bb70282625c258e866ce6337d4c762922f5a300e1b50f958aef6e7d9c9
 F test/join.test 25da4f53523a4aa17c893134b47fba6aa4799bb33350517b157785878290e238
 F test/join2.test 9bdc615841b91c97a16d68bad9508aea11fa0c6b34e5689847bcc4dac70e4990
 F test/join3.test 6f0c774ff1ba0489e6c88a3e77b9d3528fb4fda0
@@ -1260,7 +1260,7 @@ F test/oserror.test 1fc9746b83d778e70d115049747ba19c7fba154afce7cc165b09feb6ca6a
 F test/ossfuzz.c 9636dad2092a05a32110df0ca06713038dd0c43dd89a77dabe4b8b0d71096715
 F test/ossshell.c f125c5bd16e537a2549aa579b328dd1c59905e7ab1338dfc210e755bb7b69f17
 F test/ovfl.test 199c482696defceacee8c8e0e0ef36da62726b2f
-F test/pager1.test a4e438c344663ad7f0bf6e880cacae7531bdf7d960db15a3db4751273ecee06d
+F test/pager1.test 50df7826a03382ff508ed80a6b3c589c3e3ececc1d15239d67126be4b7c8b64b
 F test/pager2.test 67b8f40ae98112bcdba1f2b2d03ea83266418c71
 F test/pager3.test 4e9a83d6ca0838d7c602c9eb93d1357562d9059c1e02ffb138a8271020838370
 F test/pager4.test a122e9e6925d5b23b31e3dfef8c6a44bbf19590e
@@ -1275,7 +1275,7 @@ F test/pcache2.test af7f3deb1a819f77a6d0d81534e97d1cf62cd442
 F test/percentile.test 4243af26b8f3f4555abe166f723715a1f74c77ff
 F test/permutations.test dfdb3356ceb66e515193b12e3fd46706d28274142dc46fd37da63fda9cd4a68a
 F test/pg_common.tcl 3b27542224db1e713ae387459b5d117c836a5f6e328846922993b6d2b7640d9f
-F test/pragma.test 30d5bbebd5e9cb5383155cf3f3c81297b98f6642d152e9d4100cf6888630da2c
+F test/pragma.test cae534c12a033a5c319ccc94f50b32811acdef9f67bf19a82ff42697caccd69f
 F test/pragma2.test e5d5c176360c321344249354c0c16aec46214c9f
 F test/pragma3.test 92a46bbea12322dd94a404f49edcfbfc913a2c98115f0d030a7459bb4712ef31
 F test/pragma4.test ca5e4dfc46adfe490f75d73734f70349d95a199e6510973899e502eef2c8b1f8
@@ -1292,7 +1292,7 @@ F test/quick.test 1681febc928d686362d50057c642f77a02c62e57
 F test/quota-glob.test 32901e9eed6705d68ca3faee2a06b73b57cb3c26
 F test/quota.test bfb269ce81ea52f593f9648316cd5013d766dd2a
 F test/quota2.test 7dc12e08b11cbc4c16c9ba2aa2e040ea8d8ab4b8
-F test/quote.test b8ddaba6b81dcf63bb31243219e28a2f96e04396adc50108cc7e5593019c3eb5
+F test/quote.test f33f95990e4032d1227b98c0ef314c0a077d162f3f2e61b3039ed69e6f8adbbf
 F test/randexpr1.tcl 40dec52119ed3a2b8b2a773bce24b63a3a746459
 F test/randexpr1.test eda062a97e60f9c38ae8d806b03b0ddf23d796df
 F test/rbu.test 168573d353cd0fd10196b87b0caa322c144ef736
@@ -1337,7 +1337,7 @@ F test/savepointfault.test f044eac64b59f09746c7020ee261734de82bf9b2
 F test/scanstatus.test 9a0ed37ab6d57b50567282788fffdf832d9b16739ecc41bff9d77a8d767cf317
 F test/schema.test 5dd11c96ba64744de955315d2e4f8992e447533690153b93377dffb2a5ef5431
 F test/schema2.test 906408621ea881fdb496d878b1822572a34e32c5
-F test/schema3.test 1bc1008e1f8cb5654b248c55f27249366eb7ed38
+F test/schema3.test 8ed4ae66e082cdd8b1b1f22d8549e1e7a0db4527a8e6ee8b6193053ee1e5c9ce
 F test/schema4.test 3b26c9fa916abb6dadf894137adcf41b7796f7b9
 F test/schema5.test 29699b4421f183c8f0e88bd28ce7d75d13ea653e
 F test/schema6.test e4bd1f23d368695eb9e7b51ef6e02ca0642ea2ab4a52579959826b5e7dce1f9b
@@ -1390,7 +1390,7 @@ F test/show_speedtest1_rtree.tcl 32e6c5f073d7426148a6936a0408f4b5b169aba5
 F test/shrink.test 9521e5e0d74c0b6192794f3de3a3e5e3190d465527ae365d96763ef753c7229c
 F test/sidedelete.test f0ad71abe6233e3b153100f3b8d679b19a488329
 F test/skipscan1.test 1a9972e1dc15ca3887f306d3cd9a29679afb382eca0f3539f3b746f3c2ccaf68
-F test/skipscan2.test c588cb7ed947db724d300f2a0dc537dd2ad292b0f812641d8481bc0b95dd3f49
+F test/skipscan2.test b032ed3e0ba5caa4df6c43ef22c31566aac67783bc031869155989a7ccdb5bd5
 F test/skipscan3.test ec5bab3f81c7038b43450e7b3062e04a198bdbb5
 F test/skipscan5.test 0672103fd2c8f96bd114133f356192b35ece45c794fe3677e1d9e5e3104a608e
 F test/skipscan6.test bddbb35dd335e2d21b7791a61e3b2e1f3255dc307ce80aa6fe19cc298e6feb13
@@ -1407,7 +1407,7 @@ F test/sort2.test cc23b7c19d684657559e8a55b02f7fcee03851d0
 F test/sort3.test 1480ed7c4c157682542224e05e3b75faf4a149e5
 F test/sort4.test 5c34d9623a4ae5921d956dfa2b70e77ed0fc6e5c
 F test/sort5.test 6b43ae0e2169b5ceed441844492e55ba7f1ae0790528395ddf7888ab3094525d
-F test/sorterref.test a13ed207a0eea3c7898f308f979bfb518f68c598ec737d2c494dfd3deaa83506
+F test/sorterref.test 9a606c86a4c682db5eeaaefa0565b52102778db53e48ca7101cd4f9ebcc0ad94
 F test/sortfault.test d4ccf606a0c77498e2beb542764fd9394acb4d66
 F test/speed1.test f2974a91d79f58507ada01864c0e323093065452
 F test/speed1p.explain d841e650a04728b39e6740296b852dccdca9b2cb
@@ -1430,7 +1430,7 @@ F test/stat.test 15a3106eddedfc882f64bc09f237b4169be4b92dd57c93031b8ff8b13af3e7c
 F test/statfault.test 55f86055f9cd7b2d962a621b8a04215c1cebd4eaaecde92d279442327fe648a0
 F test/stmt.test 54ed2cc0764bf3e48a058331813c3dbd19fc1d0827c3d8369914a5d8f564ec75
 F test/stmtvtab1.test 6873dfb24f8e79cbb5b799b95c2e4349060eb7a3b811982749a84b359468e2d5
-F test/strict1.test ac29180be09313af1d5086420e8b7a832f9bf777653c4cbc64d7fd478000b3f0
+F test/strict1.test 2e590641b1f26f9ff0db5b785df07f932988af1ab6ccab792b792ebb8405d657
 F test/strict2.test e78cedd56eb1c3e0b09b16c594dbfcb7e95bc6d85f68f0fd6501c243be28e219
 F test/subjournal.test 8d4e2572c0ee9a15549f0d8e40863161295107e52f07a3e8012a2e1fdd093c49
 F test/subquery.test d7268d193dd33d5505df965399d3a594e76ae13f
@@ -1504,7 +1504,7 @@ F test/tkt-7a31705a7e6.test 9e9c057b6a9497c8f7ba7b16871029414ccf6550e7345d9085d6
 F test/tkt-7bbfb7d442.test 7b2cd79c7a17ae6750e75ec1a7846712a69c9d18
 F test/tkt-80ba201079.test 105a721e6aad0ae3c5946d7615d1e4d03f6145b8
 F test/tkt-80e031a00f.test 9ee36348b761bf7c14261e002b75a4c0d5a04d4c
-F test/tkt-8454a207b9.test c583a9f814a82a2b5ba95207f55001c9f0cd816c
+F test/tkt-8454a207b9.test aff2e76143cfa443ddce6f7d85968a2e9b57a3deb0b881b730120740555f9e2f
 F test/tkt-868145d012.test a5f941107ece6a64410ca4755c6329b7eb57a356
 F test/tkt-8c63ff0ec.test 258b7fc8d7e4e1cb5362c7d65c143528b9c4cbed
 F test/tkt-91e2e8ba6f.test 08c4f94ae07696b05c9b822da0b4e5337a2f54c5
@@ -1529,7 +1529,7 @@ F test/tkt-d11f09d36e.test d999b548fef885d1d1afa49a0e8544ecf436869d
 F test/tkt-d635236375.test 9d37e988b47d87505bc9445be0ca447002df5d09
 F test/tkt-d82e3f3721.test bcc0dfba658d15bab30fd4a9320c9e35d214ce30
 F test/tkt-f3e5abed55.test d5a0126118142d13e27f6ce9f4c47096e9321c00
-F test/tkt-f67b41381a.test a23bc124c981662db712167bacd0ed8ad11abac9
+F test/tkt-f67b41381a.test 9120eab5e949969a29087e01bf57ac6a52b6c06c16be41091a74c2a863ffc660
 F test/tkt-f777251dc7a.test d1a8fc3eefb7a9e64d19ff24d5c8c94c34a632fb
 F test/tkt-f7b4edec.test d998a08ff2b18b7f62edce8e3044317c45efe6c7
 F test/tkt-f973c7ac31.test 28ef85c7f015477916795246d8286aeda39d4ead
@@ -1664,7 +1664,7 @@ F test/unique.test 93f8b2ef5ea51b9495f8d6493429b1fd0f465264
 F test/unique2.test 3674e9f2a3f1fbbfd4772ac74b7a97090d0f77d2
 F test/unixexcl.test d936ba2b06794018e136418addd59a2354eeae97
 F test/unordered.test 0edaf3411d300693bca595897c5201421c6c5ec787990a1dfe2f7f60ae93f1e2
-F test/update.test e906ca7cb1dc6f52af1ea243e08f727edfa79f924c2691f2f9e72481f847310d
+F test/update.test ef3ebbafeb4be5c96db831f40796e2e77ee846da5ee8b61cfedb1ff1b9e0cc23
 F test/update2.test 67455bc61fcbcf96923c45b3bc4f87bc72be7d67575ad35f134906148c7b06d3
 F test/upfrom1.tcl 8859d9d437f03b44174c4524a7a734a391fd4526fcff65be08285dafc9dc9041
 F test/upfrom1.test 8cb06689e99cd707d884faa16da0e8eb26ff658bb01c47ddf72fadade666e6e1
@@ -1691,7 +1691,7 @@ F test/vacuum6.test d3173a54edc81d13d99e4cf4972232b3cbb52f1d56ed48c3a939ef4e751c
 F test/vacuummem.test 7b42abb3208bd82dd23a7536588396f295a314f2
 F test/varint.test bbce22cda8fc4d135bcc2b589574be8410614e62
 F test/veryquick.test 57ab846bacf7b90cf4e9a672721ea5c5b669b661
-F test/view.test 798cf7936dda022d3ab0a4871685410d1c3b2a525b6b213915abc836e82a1078
+F test/view.test d654fbadae82f936c2a820bbc892592085467548ff59e88acef201416e9fe48a
 F test/view2.test db32c8138b5b556f610b35dfddd38c5a58a292f07fda5281eedb0851b2672679
 F test/vtab1.test 772c94825d455dffc5da34dcf4b648d8a23887616185fa024a472bf745e56df8
 F test/vtab2.test 14d4ab26cee13ba6cf5c5601b158e4f57552d3b055cdd9406cf7f711e9c84082
@@ -1767,7 +1767,7 @@ F test/whereA.test 9d1077b117f1b68d5f739d94f36956c36cf995eb87bb19b77b2e81af020ed
 F test/whereB.test 0def95db3bdec220a731c7e4bec5930327c1d8c5
 F test/whereC.test cae295158703cb3fc23bf1a108a9ab730efff0f6
 F test/whereD.test c1c335e914e28b122e000e9310f02d2be83e1c9dbca2e29f46bd732703944d1b
-F test/whereE.test 0ac7e61c6225354a980666996539da154991b4325af943a25a9079079c82fb03
+F test/whereE.test 7a727b5d5b6bc8fa4cef5206e90cc0363e55ca7f0566f6fbad0206e43170f59e
 F test/whereF.test 926b65519608e3f2aa28720822b9154fb5c7b13519dd78194f434a511ab3dac5
 F test/whereG.test b2a479f425f7d0a432df7e842e8484560908ef703fe0fd407888ff85e7097238
 F test/whereH.test e4b07f7a3c2f5d31195cd33710054c78667573b2
@@ -1784,7 +1784,7 @@ F test/win32heap.test 10fd891266bd00af68671e702317726375e5407561d859be1aa04696f2
 F test/win32lock.test fbf107c91d8f5512be5a5b87c4c42ab9fdd54972
 F test/win32longpath.test 4baffc3acb2e5188a5e3a895b2b543ed09e62f7c72d713c1feebf76222fe9976
 F test/win32nolock.test ac4f08811a562e45a5755e661f45ca85892bdbbc
-F test/window1.test 9242d8083158d17b9b0cb8c7ecfc767987a1863c0076020b3ecb197df7d71886
+F test/window1.test 778ac2a5a037ab1378ffcc6f0444da8658630e576ab23cc0af3d649fd1332e55
 F test/window2.tcl 492c125fa550cda1dd3555768a2303b3effbeceee215293adf8871efc25f1476
 F test/window2.test e466a88bd626d66edc3d352d7d7e1d5531e0079b549ba44efb029d1fbff9fd3c
 F test/window3.tcl acea6e86a4324a210fd608d06741010ca83ded9fde438341cb978c49928faf03
@@ -1805,13 +1805,13 @@ F test/windowerr.test a8b752402109c15aa1c5efe1b93ccb0ce1ef84fa964ae1cd6684dd0b3c
 F test/windowfault.test 21919e601f20b976ea2a73aa401220c89ed0e8d203c4f69476ea55bce3726496
 F test/windowpushd.test d8895d08870b7226f7693665bd292eb177e62ca06799184957b3ca7dc03067df
 F test/with1.test 7bc5abfe4c80c0cef8a90f5a66d60b9982e8ccd7350c8eb70611323a3b8e07ba
-F test/with2.test f803743b2c746ecdd0b638783c7235654b947b0f1c4bb551ca10e1d813317153
+F test/with2.test a1df41b987198383b9b70bf5e5fda390582e46398653858dbc6ceb24253b28df
 F test/with3.test ad32d13ad50661e6fa305f62a0717649c348792e7b658bf2644976227a9e0373
 F test/with4.test 257be66c0c67fee1defbbac0f685c3465e2cad037f21ce65f23f86084f198205
 F test/with5.test 6248213c41fab36290b5b73aa3f937309dfba337004d9d8434c3fabc8c7d4be8
 F test/with6.test 661d7e416bef6c0a2556b2c9f0c8178a5b15932bed65246abed99723a8d4e7c0
 F test/withM.test 693b61765f2b387b5e3e24a4536e2e82de15ff64
-F test/without_rowid1.test a1c144156d1d21eea7b2b0db62ad0aaed37d4e163eb5758ae6b6647cc0b4412f
+F test/without_rowid1.test df3de14f1cc422d2b0f9b79969b5ef8e51c86ed87834ab35fb5139403e7f5a03
 F test/without_rowid2.test af260339f79d13cb220288b67cd287fbcf81ad99
 F test/without_rowid3.test 39ab0dd773eaa62e59b17093f875327630f54c4145458f6d2b053d68d4b2f67b
 F test/without_rowid4.test 4e08bcbaee0399f35d58b5581881e7a6243d458a
@@ -1856,7 +1856,7 @@ F tool/merge-test.tcl de76b62f2de2a92d4c1ca4f976bce0aea6899e0229e250479b229b2a19
 F tool/mkautoconfamal.sh f62353eb6c06ab264da027fd4507d09914433dbdcab9cb011cdc18016f1ab3b8
 F tool/mkccode.tcl 86463e68ce9c15d3041610fedd285ce32a5cf7a58fc88b3202b8b76837650dbe x
 F tool/mkctimec.tcl 5ef1891ed3d0e8143ff39bad7c01ed60c2817a2fb2d9a09487f7ccad2df621e4
-F tool/mkkeywordhash.c 08b6e4d7a482a7f37a9a0032e7ba968e26624a027b6b2e9ba589be6f5e3d8c2c
+F tool/mkkeywordhash.c 7b1ffdb0731938cfb52dbf57461ff9132cb350612d944530e2f6031a7f16bf69
 F tool/mkmsvcmin.tcl 6ecab9fe22c2c8de4d82d4c46797bda3d2deac8e763885f5a38d0c44a895ab33
 F tool/mkopcodec.tcl 33d20791e191df43209b77d37f0ff0904620b28465cca6990cf8d60da61a07ef
 F tool/mkopcodeh.tcl 130b88697da6ec5b89b41844d955d08fb62c2552e889dec8c7bcecb28d8f50bd
@@ -1928,7 +1928,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 fe098a93340b8dac15752f1be4f681e2a591f7ae1a94b177f400ccd7ef638480
-R 77978b99526ec643e6ee046dad65d5ab
-U drh
-Z 7477ef1e574f4d90d4c36f8b8b9bf567
+P c7fdd775bb5efd22a486510a32a2f278c4d5cda95acd3085a0f0dfc2ef749d6f
+R 926578650b00455ed26e22948e8e656f
+U dan
+Z 9dd8b361e8a634b7edc2d6fc8fe882ba
index dfb58b93fffe28627019d65de5a87cbc81954874..a35b5dd3ec53c080f3e26ec965fea9c13478bece 100644 (file)
@@ -1 +1 @@
-c7fdd775bb5efd22a486510a32a2f278c4d5cda95acd3085a0f0dfc2ef749d6f
\ No newline at end of file
+2f7c946c5f25a858167f5193ca06e53310394c8cff15426ab8a1327a1ec835fd
\ No newline at end of file
index 08657f93becd6e94b97ca096baf1e8d330f36bae..54bed4389ae2c09042e503de1e02bf6be89ac2cf 100644 (file)
@@ -1638,7 +1638,8 @@ cmd ::= ANALYZE nm(X) dbnm(Y).  {sqlite3Analyze(pParse, &X, &Y);}
 %endif
 
 //////////////////////// ALTER TABLE table ... ////////////////////////////////
-%ifndef SQLITE_OMIT_ALTERTABLE
+%ifndef SQLITE_OMIT_ALTERTABLE 
+%ifndef SQLITE_OMIT_VIRTUALTABLE
 cmd ::= ALTER TABLE fullname(X) RENAME TO nm(Z). {
   sqlite3AlterRenameTable(pParse,X,&Z);
 }
@@ -1662,7 +1663,8 @@ cmd ::= ALTER TABLE fullname(X) RENAME kwcolumn_opt nm(Y) TO nm(Z). {
 kwcolumn_opt ::= .
 kwcolumn_opt ::= COLUMNKW.
 
-%endif  SQLITE_OMIT_ALTERTABLE
+%endif SQLITE_OMIT_VIRTUALTABLE
+%endif SQLITE_OMIT_ALTERTABLE
 
 //////////////////////// CREATE VIRTUAL TABLE ... /////////////////////////////
 %ifndef SQLITE_OMIT_VIRTUALTABLE
index 21682fa11368df6bcbe56eb56779bea39bbada0b..f18035b16d00677ad17f32fffaaaa96dcdbb1c76 100644 (file)
 # undef SQLITE_ENABLE_EXPLAIN_COMMENTS
 #endif
 
+/*
+** SQLITE_OMIT_VIRTUALTABLE implies SQLITE_OMIT_ALTERTABLE
+*/
+#if defined(SQLITE_OMIT_VIRTUALTABLE) && !defined(SQLITE_OMIT_ALTERTABLE)
+# define SQLITE_OMIT_ALTERTABLE
+#endif
+
 /*
 ** Return true (non-zero) if the input is an integer that is too large
 ** to fit in 32-bits.  This macro is used inside of various testcase()
index 5c50fa4a474e08564d75e39a7bce8dfb6a0066a9..f24cb309a33b71281f8ace482f7a99202ffe39f3 100644 (file)
@@ -14,6 +14,12 @@ set testdir [file dirname $argv0]
 source $testdir/tester.tcl
 set testprefix altercorrupt
 
+# If SQLITE_OMIT_ALTERTABLE is defined, omit this file.
+ifcapable !altertable {
+  finish_test
+  return
+}
+
 database_may_be_corrupt
 
 #--------------------------------------------------------------------------
index ce00f3b5968df963e3c8549e3923945a4f847592..6a8964186588279813f587a2c31def3176fb5d5c 100644 (file)
@@ -17,6 +17,13 @@ set testdir [file dirname $argv0]
 source $testdir/tester.tcl
 set testprefix alterqf
 
+# If SQLITE_OMIT_ALTERTABLE is defined, omit this file.
+ifcapable !altertable {
+  finish_test
+  return
+}
+
+
 sqlite3_test_control SQLITE_TESTCTRL_INTERNAL_FUNCTIONS db
 
 do_execsql_test 1.0 {
index e3b0d23f6f65b5061f3a31c56a0739387687a01d..d4f1921e4c56c0f8cc55127d1df80e4436e831f9 100644 (file)
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
 
+# If SQLITE_OMIT_ALTERTABLE is defined, omit this file.
+ifcapable !altertable {
+  finish_test
+  return
+}
+
 do_test analyze4-1.0 {
   db eval {
     CREATE TABLE t1(a,b);
index 4377bcdc0f6f98f302992216a9ca86b179183780..abc973433ee41f698e94b99d04a3061586e195f2 100644 (file)
@@ -115,18 +115,20 @@ do_test auth3-2.2 {
 # an authorizer failure during an ALTER TABLE.  The solution (I think) is
 # to disable the authorizer during schema parsing.
 #
-proc auth {code args} {
-  if {$code=="SQLITE_READ" && [regexp {DoNotRead} $args]} {
-    return SQLITE_DENY
+ifcapable altertable {
+  proc auth {code args} {
+    if {$code=="SQLITE_READ" && [regexp {DoNotRead} $args]} {
+      return SQLITE_DENY
+    }
+    return SQLITE_OK
   }
-  return SQLITE_OK
+  do_execsql_test auth3-3.0 {
+    CREATE TEMPORARY TABLE TempTable (
+        key TEXT NOT NULL ON CONFLICT FAIL UNIQUE ON CONFLICT REPLACE,
+        value TEXT NOT NULL ON CONFLICT FAIL);
+    ALTER TABLE TempTable RENAME TO DoNotRead;
+    SELECT name FROM temp.sqlite_master;
+  } {DoNotRead sqlite_autoindex_DoNotRead_1}
 }
-do_execsql_test auth3-3.0 {
-  CREATE TEMPORARY TABLE TempTable (
-      key TEXT NOT NULL ON CONFLICT FAIL UNIQUE ON CONFLICT REPLACE,
-      value TEXT NOT NULL ON CONFLICT FAIL);
-  ALTER TABLE TempTable RENAME TO DoNotRead;
-  SELECT name FROM temp.sqlite_master;
-} {DoNotRead sqlite_autoindex_DoNotRead_1}
 
 finish_test
index 669a35a72fb1261e9dade3274fb6c9a9317eb69f..d9956b40f5b3c5232e6bd15904c09741145a4f31 100644 (file)
@@ -16,6 +16,12 @@ set testdir [file dirname $argv0]
 source $testdir/tester.tcl
 set testprefix columncount
 
+# If SQLITE_OMIT_ALTERTABLE is defined, omit this file.
+ifcapable !altertable {
+  finish_test
+  return
+}
+
 proc do_ccsql_test {tn sql res} {
 
   uplevel [list do_test $tn [subst -nocommands {
index 5ade7010d73f65257c23403fde767e7008ddda38..b7ff45d2ed148dca9a4432cc135682834d070631 100644 (file)
@@ -1179,9 +1179,12 @@ do_catchsql_test 14.1 {
   PRAGMA integrity_check;
 } {1 {database disk image is malformed}}
 
-do_catchsql_test 14.2 {
-  ALTER TABLE t1 RENAME TO alkjalkjdfiiiwuer987lkjwer82mx97sf98788s9789s; 
-} {1 {database disk image is malformed}}
+# If SQLITE_OMIT_ALTERTABLE is defined, omit this file.
+ifcapable altertable {
+  do_catchsql_test 14.2 {
+    ALTER TABLE t1 RENAME TO alkjalkjdfiiiwuer987lkjwer82mx97sf98788s9789s; 
+  } {1 {database disk image is malformed}}
+}
 extra_schema_checks 1
 
 #-------------------------------------------------------------------------
index 9d49115b53b0d4203c7ad7a55a4dce18a32021d8..2eb77d3130eb36d78757560e7b003e70051e7688 100644 (file)
@@ -123,7 +123,9 @@ do_changes_test 2.2 {
 do_changes_test 2.3 { SELECT count(x) FROM t1 } {47 47}
 do_changes_test 2.4 { DROP TABLE t1               } 47
 do_changes_test 2.5 { CREATE TABLE t1(x)          } 47
-do_changes_test 2.6 { ALTER TABLE t1 ADD COLUMN b } 47
+ifcapable altertable {
+  do_changes_test 2.6 { ALTER TABLE t1 ADD COLUMN b } 47
+}
 
 
 #--------------------------------------------------------------------------
index d1666acfa0820e49a725d6271ec9fcc4a5110b55..bb5cfba8a51234440f44a29c5e08461c55e651e7 100644 (file)
@@ -94,24 +94,26 @@ do_tc_test 1.2.2 {
 #--------------------------------------------------------------------------
 # EVIDENCE-OF: R-61766-15253 Executing any other type of SQL statement
 # does not affect the value returned by sqlite3_total_changes().
-do_tc_test 2.1 {
-  INSERT INTO t1 VALUES(1, 2), (3, 4);
-  INSERT INTO t2 VALUES(1, 2), (3, 4);
-} {15}
-do_tc_test 2.2 {
-  SELECT count(*) FROM t1;
-} {2 15}
-do_tc_test 2.3 {
-  CREATE TABLE t4(a, b);
-  ALTER TABLE t4 ADD COLUMN c;
-  CREATE INDEX i4 ON t4(c);
-  ALTER TABLE t4 RENAME TO t5;
-  ANALYZE;
-  BEGIN;
-  DROP TABLE t2;
-  ROLLBACK;
-  VACUUM;
-} {15}
+ifcapable altertable {
+  do_tc_test 2.1 {
+    INSERT INTO t1 VALUES(1, 2), (3, 4);
+    INSERT INTO t2 VALUES(1, 2), (3, 4);
+  } {15}
+  do_tc_test 2.2 {
+    SELECT count(*) FROM t1;
+  } {2 15}
+  do_tc_test 2.3 {
+    CREATE TABLE t4(a, b);
+    ALTER TABLE t4 ADD COLUMN c;
+    CREATE INDEX i4 ON t4(c);
+    ALTER TABLE t4 RENAME TO t5;
+    ANALYZE;
+    BEGIN;
+    DROP TABLE t2;
+    ROLLBACK;
+    VACUUM;
+  } {15}
+}
 
 
 #--------------------------------------------------------------------------
index 38c0037735ee58de29691f4c9573c0970a358a9b..ca1027f5083f266020bc2f58b57f48ee5968c0bf 100644 (file)
@@ -1459,12 +1459,15 @@ do_execsql_test func-33.10 {
 do_catchsql_test func-33.11 {
   INSERT INTO t33a VALUES(1,2);
 } {1 {unsafe use of testdirectonly()}}
+
+ifcapable altertable {
 do_execsql_test func-33.20 {
   ALTER TABLE t33a RENAME COLUMN a TO aaa;
   SELECT sql FROM sqlite_master WHERE name='r1';
 } {{CREATE TRIGGER r1 AFTER INSERT ON t33a BEGIN
     INSERT INTO t33b(x,y) VALUES(testdirectonly(new.aaa),new.b);
   END}}
+}
 
 # 2020-01-09 Yongheng fuzzer find
 # The bug is in the register-validity debug logic, not in the SQLite core
index 0d72615435ef954b25fc7c0b8e8d0e5028a3d99e..ee0ebc53f52785715b1bc86bb13691ceaadcb4f8 100644 (file)
@@ -587,20 +587,22 @@ do_execsql_test gencol1-20.2 {
 
 # 2021-07-30 forum https://sqlite.org/forum/forumpost/ff3ffe09251c105b?t=h
 #
+ifcapable vtab {
 reset_db
-do_execsql_test gencol1-21.1 {
-  CREATE TABLE t1(
-    a integer primary key,
-    b int generated always as (a+5),
-    c text    GENERATED   ALWAYS as (printf('%08x',a)),
-    d Generated
-      Always
-      AS ('xyzzy'),
-    e int                         Always default(5)
-  );
-  INSERT INTO t1(a) VALUES(5);
-  SELECT name, type FROM pragma_table_xinfo('t1');
-} {a INTEGER b INT c TEXT d {} e INT}
+  do_execsql_test gencol1-21.1 {
+    CREATE TABLE t1(
+      a integer primary key,
+      b int generated always as (a+5),
+      c text    GENERATED   ALWAYS as (printf('%08x',a)),
+      d Generated
+        Always
+        AS ('xyzzy'),
+      e int                         Always default(5)
+    );
+    INSERT INTO t1(a) VALUES(5);
+    SELECT name, type FROM pragma_table_xinfo('t1');
+  } {a INTEGER b INT c TEXT d {} e INT}
+}
 
 # 2021-09-07 forum https://sqlite.org/forum/forumpost/699b44b3ee
 #
index 1dba87f2725f19980c4fcf90a42d8ad9a6d670e6..bb868df8b492724e5c1d804447235f514fb7b866 100644 (file)
@@ -677,30 +677,32 @@ do_preupdate_test 7.4.2.3 {
   DELETE main t5 1 1   a 1
 }
 
-do_execsql_test 7.5.1.0 {
-  CREATE TABLE t7(a, b);
-  INSERT INTO t7 VALUES('one', 'two');
-  INSERT INTO t7 VALUES('three', 'four');
-  ALTER TABLE t7 ADD COLUMN c DEFAULT NULL;
-}
-
-do_preupdate_test 7.5.1.1 {
-  DELETE FROM t7 WHERE a = 'one'
-} {
-  DELETE main t7 1 1   one two {}
-}
-
-do_preupdate_test 7.5.1.2 {
-  UPDATE t7 SET b = 'five'
-} {
-  UPDATE main t7 2 2   three four {}  three five {}
-}
-
-do_execsql_test 7.5.2.0 {
-  CREATE TABLE t8(a, b);
-  INSERT INTO t8 VALUES('one', 'two');
-  INSERT INTO t8 VALUES('three', 'four');
-  ALTER TABLE t8 ADD COLUMN c DEFAULT 'xxx';
+ifcapable altertable {
+  do_execsql_test 7.5.1.0 {
+    CREATE TABLE t7(a, b);
+    INSERT INTO t7 VALUES('one', 'two');
+    INSERT INTO t7 VALUES('three', 'four');
+    ALTER TABLE t7 ADD COLUMN c DEFAULT NULL;
+  }
+  
+  do_preupdate_test 7.5.1.1 {
+    DELETE FROM t7 WHERE a = 'one'
+  } {
+    DELETE main t7 1 1   one two {}
+  }
+  
+  do_preupdate_test 7.5.1.2 {
+    UPDATE t7 SET b = 'five'
+  } {
+    UPDATE main t7 2 2   three four {}  three five {}
+  }
+  
+  do_execsql_test 7.5.2.0 {
+    CREATE TABLE t8(a, b);
+    INSERT INTO t8 VALUES('one', 'two');
+    INSERT INTO t8 VALUES('three', 'four');
+    ALTER TABLE t8 ADD COLUMN c DEFAULT 'xxx';
+  }
 }
 
 if 0 {
@@ -848,48 +850,53 @@ do_preupdate_test 7.6.4 {
 }
 
 # No preupdate callbacks for modifying sqlite_master.
-do_preupdate_test 8.1 { CREATE TABLE x1(x, y); } { }
-do_preupdate_test 8.2 { ALTER TABLE x1 ADD COLUMN z } { }
-do_preupdate_test 8.3 { ALTER TABLE x1 RENAME TO y1 } { }
-do_preupdate_test 8.4 { CREATE INDEX y1x ON y1(x) } { }
-do_preupdate_test 8.5 { CREATE VIEW v1 AS SELECT * FROM y1 } { }
-do_preupdate_test 8.6 { DROP TABLE y1 } { }
+ifcapable altertable {
+  do_preupdate_test 8.1 { CREATE TABLE x1(x, y); } { }
+  do_preupdate_test 8.2 { ALTER TABLE x1 ADD COLUMN z } { }
+  do_preupdate_test 8.3 { ALTER TABLE x1 RENAME TO y1 } { }
+  do_preupdate_test 8.4 { CREATE INDEX y1x ON y1(x) } { }
+  do_preupdate_test 8.5 { CREATE VIEW v1 AS SELECT * FROM y1 } { }
+  do_preupdate_test 8.6 { DROP TABLE y1 } { }
+}
 
 #-------------------------------------------------------------------------
 reset_db
 db preupdate hook preupdate_hook
-do_execsql_test 9.0 {
-  CREATE TABLE t1(a INTEGER PRIMARY KEY, b, c);
-  CREATE TABLE t2(a, b INTEGER PRIMARY KEY);
-}
-do_preupdate_test 9.1 {
-  INSERT INTO t1 VALUES(456, NULL, NULL);
-} {
-  INSERT main t1 456 456  0  456 {} {}
-}
-do_execsql_test 9.2 {
-  ALTER TABLE t1 ADD COLUMN d;
-}
-do_preupdate_test 9.3 {
-  INSERT INTO t1(a, b, c) VALUES(457, NULL, NULL);
-} {
-  INSERT main t1 457 457  0  457 {} {} {}
-}
-do_preupdate_test 9.4 {
-  DELETE FROM t1 WHERE a=456
-} {
-  DELETE main t1 456 456  0  456 {} {} {}
+
+ifcapable altertable {
+  do_execsql_test 9.0 {
+    CREATE TABLE t1(a INTEGER PRIMARY KEY, b, c);
+    CREATE TABLE t2(a, b INTEGER PRIMARY KEY);
+  }
+  do_preupdate_test 9.1 {
+    INSERT INTO t1 VALUES(456, NULL, NULL);
+  } {
+    INSERT main t1 456 456  0  456 {} {}
+  }
+  do_execsql_test 9.2 {
+    ALTER TABLE t1 ADD COLUMN d;
+  }
+  do_preupdate_test 9.3 {
+    INSERT INTO t1(a, b, c) VALUES(457, NULL, NULL);
+  } {
+    INSERT main t1 457 457  0  457 {} {} {}
+  }
+  do_preupdate_test 9.4 {
+    DELETE FROM t1 WHERE a=456
+  } {
+    DELETE main t1 456 456  0  456 {} {} {}
+  }
+  do_preupdate_test 9.5 {
+    INSERT INTO t2 DEFAULT VALUES;
+  } {
+    INSERT main t2 1 1  0  {} 1
+  } 
+  do_preupdate_test 9.6 {
+    INSERT INTO t1 DEFAULT VALUES;
+  } {
+    INSERT main t1 458 458  0  458 {} {} {}
+  } 
 }
-do_preupdate_test 9.5 {
-  INSERT INTO t2 DEFAULT VALUES;
-} {
-  INSERT main t2 1 1  0  {} 1
-} 
-do_preupdate_test 9.6 {
-  INSERT INTO t1 DEFAULT VALUES;
-} {
-  INSERT main t1 458 458  0  458 {} {} {}
-} 
 
 
 do_execsql_test 10.0 {
index a31b8769551596d5050b6fa3059f9620b0919aa5..92dfc8689b141756474577a24882d8c1a3c0f1d4 100644 (file)
@@ -75,18 +75,20 @@ do_execsql_test indexexpr1-150eqp {
    ORDER BY +rowid;
 } {/USING INDEX t1abx/}
 
-do_execsql_test indexexpr1-160 {
-  ALTER TABLE t1 ADD COLUMN d;
-  UPDATE t1 SET d=length(a);
-  CREATE INDEX t1a2 ON t1(SUBSTR(a, 27, 3)) WHERE d>=29;
-  SELECT rowid, b, c FROM t1
-   WHERE substr(a,27,3)=='ord' AND d>=29;
-} {1 1 1}
-do_execsql_test indexexpr1-160eqp {
-  EXPLAIN QUERY PLAN
-  SELECT rowid, b, c FROM t1
-   WHERE substr(a,27,3)=='ord' AND d>=29;
-} {/USING INDEX t1a2/}
+ifcapable altertable {
+  do_execsql_test indexexpr1-160 {
+    ALTER TABLE t1 ADD COLUMN d;
+    UPDATE t1 SET d=length(a);
+    CREATE INDEX t1a2 ON t1(SUBSTR(a, 27, 3)) WHERE d>=29;
+    SELECT rowid, b, c FROM t1
+      WHERE substr(a,27,3)=='ord' AND d>=29;
+  } {1 1 1}
+  do_execsql_test indexexpr1-160eqp {
+    EXPLAIN QUERY PLAN
+      SELECT rowid, b, c FROM t1
+      WHERE substr(a,27,3)=='ord' AND d>=29;
+  } {/USING INDEX t1a2/}
+}
 
 # ORDER BY using an indexed expression
 #
@@ -166,18 +168,20 @@ do_execsql_test indexexpr1-250eqp {
    ORDER BY +id;
 } {/USING INDEX t1abx/}
 
-do_execsql_test indexexpr1-260 {
-  ALTER TABLE t1 ADD COLUMN d;
-  UPDATE t1 SET d=length(a);
-  CREATE INDEX t1a2 ON t1(SUBSTR(a, 27, 3)) WHERE d>=29;
-  SELECT id, b, c FROM t1
-   WHERE substr(a,27,3)=='ord' AND d>=29;
-} {1 1 1}
-do_execsql_test indexexpr1-260eqp {
-  EXPLAIN QUERY PLAN
-  SELECT id, b, c FROM t1
-   WHERE substr(a,27,3)=='ord' AND d>=29;
-} {/USING INDEX t1a2/}
+ifcapable altertable {
+  do_execsql_test indexexpr1-260 {
+    ALTER TABLE t1 ADD COLUMN d;
+    UPDATE t1 SET d=length(a);
+    CREATE INDEX t1a2 ON t1(SUBSTR(a, 27, 3)) WHERE d>=29;
+    SELECT id, b, c FROM t1
+      WHERE substr(a,27,3)=='ord' AND d>=29;
+  } {1 1 1}
+  do_execsql_test indexexpr1-260eqp {
+    EXPLAIN QUERY PLAN
+      SELECT id, b, c FROM t1
+      WHERE substr(a,27,3)=='ord' AND d>=29;
+  } {/USING INDEX t1a2/}
+}
 
 
 do_catchsql_test indexexpr1-300 {
index 13eccabc25870df2c1477637b4e941df3b9adac1..f1ba63248fded357e9e2f6182936d3c3c5824758 100644 (file)
@@ -143,20 +143,22 @@ foreach {tn val} [list 1 NaN 2 -NaN 3 NaN0 4 -NaN0 5 Inf 6 -Inf] {
   } {0}
 }
 
-do_execsql_test istrue-700 {
-  CREATE TABLE t7(
-    a INTEGER PRIMARY KEY,
-    b BOOLEAN DEFAULT false,
-    c BOOLEAN DEFAULT true
-  );
-  INSERT INTO t7(a) VALUES(1);
-  INSERT INTO t7(a,b,c) VALUES(2,true,false);
-  ALTER TABLE t7 ADD COLUMN d BOOLEAN DEFAULT false;
-  ALTER TABLE t7 ADD COLUMN e BOOLEAN DEFAULT true;
-  INSERT INTO t7(a,b,c) VALUES(3,true,false);
-  INSERT INTO t7 VALUES(4,false,true,true,false);
-  SELECT *,'x' FROM t7 ORDER BY a;
-} {1 0 1 0 1 x 2 1 0 0 1 x 3 1 0 0 1 x 4 0 1 1 0 x}
+ifcapable altertable {
+  do_execsql_test istrue-700 {
+    CREATE TABLE t7(
+      a INTEGER PRIMARY KEY,
+      b BOOLEAN DEFAULT false,
+      c BOOLEAN DEFAULT true
+    );
+    INSERT INTO t7(a) VALUES(1);
+    INSERT INTO t7(a,b,c) VALUES(2,true,false);
+    ALTER TABLE t7 ADD COLUMN d BOOLEAN DEFAULT false;
+    ALTER TABLE t7 ADD COLUMN e BOOLEAN DEFAULT true;
+    INSERT INTO t7(a,b,c) VALUES(3,true,false);
+    INSERT INTO t7 VALUES(4,false,true,true,false);
+    SELECT *,'x' FROM t7 ORDER BY a;
+  } {1 0 1 0 1 x 2 1 0 0 1 x 3 1 0 0 1 x 4 0 1 1 0 x}
+}
 
 do_execsql_test istrue-710 {
   SELECT 0.5 IS TRUE COLLATE NOCASE;
index a1e06d15ccd9578f8fcc1c9dce3f1017072c3854..7cb158c992bc854110714786b162058401053342 100644 (file)
@@ -1940,20 +1940,22 @@ do_test pager1-18.4 {
 } {1 {database disk image is malformed}}
 db2 close
 extra_schema_checks 0
-do_test pager1-18.5 {
-  sqlite3 db ""
-  sqlite3_db_config db DEFENSIVE 0
-  execsql {
-    CREATE TABLE t1(a, b);
-    CREATE TABLE t2(a, b);
-    PRAGMA writable_schema = 1;
-    UPDATE sqlite_master SET rootpage=5 WHERE tbl_name = 't1';
-    PRAGMA writable_schema = 0;
-    ALTER TABLE t1 RENAME TO x1;
-  }
-  catchsql { SELECT * FROM x1 }
-} {1 {database disk image is malformed}}
-db close
+ifcapable altertable {
+  do_test pager1-18.5 {
+    sqlite3 db ""
+      sqlite3_db_config db DEFENSIVE 0
+      execsql {
+        CREATE TABLE t1(a, b);
+        CREATE TABLE t2(a, b);
+        PRAGMA writable_schema = 1;
+        UPDATE sqlite_master SET rootpage=5 WHERE tbl_name = 't1';
+        PRAGMA writable_schema = 0;
+        ALTER TABLE t1 RENAME TO x1;
+      }
+    catchsql { SELECT * FROM x1 }
+  } {1 {database disk image is malformed}}
+  db close
+}
 extra_schema_checks 1
 
 do_test pager1-18.6 {
index c4b9d334aed9ff2442ef97784e64e65c0d30ec7f..ba61882d5f4cd5e3e2fdeb5dc1b06241063c1cef 100644 (file)
@@ -532,29 +532,31 @@ Page 6 is never used} {row 1 missing from index i2}}
 # Verify that PRAGMA integrity_check catches UNIQUE and NOT NULL
 # constraint violations.
 #
-sqlite3_db_config db DEFENSIVE 0
-do_execsql_test pragma-3.20 {
-  CREATE TABLE t1(a,b);
-  CREATE INDEX t1a ON t1(a);
-  INSERT INTO t1 VALUES(1,1),(2,2),(3,3),(2,4),(NULL,5),(NULL,6);
-  PRAGMA writable_schema=ON;
-  UPDATE sqlite_master SET sql='CREATE UNIQUE INDEX t1a ON t1(a)'
-   WHERE name='t1a';
-  UPDATE sqlite_master SET sql='CREATE TABLE t1(a NOT NULL,b)'
-   WHERE name='t1';
-  PRAGMA writable_schema=OFF;
-  ALTER TABLE t1 RENAME TO t1x;
-  PRAGMA integrity_check;
-} {{non-unique entry in index t1a} {NULL value in t1x.a} {non-unique entry in index t1a} {NULL value in t1x.a}}
-do_execsql_test pragma-3.21 {
-  PRAGMA integrity_check(3);
-} {{non-unique entry in index t1a} {NULL value in t1x.a} {non-unique entry in index t1a}}
-do_execsql_test pragma-3.22 {
-  PRAGMA integrity_check(2);
-} {{non-unique entry in index t1a} {NULL value in t1x.a}}
-do_execsql_test pragma-3.23 {
-  PRAGMA integrity_check(1);
-} {{non-unique entry in index t1a}}
+ifcapable altertable {
+  sqlite3_db_config db DEFENSIVE 0
+    do_execsql_test pragma-3.20 {
+      CREATE TABLE t1(a,b);
+      CREATE INDEX t1a ON t1(a);
+      INSERT INTO t1 VALUES(1,1),(2,2),(3,3),(2,4),(NULL,5),(NULL,6);
+      PRAGMA writable_schema=ON;
+      UPDATE sqlite_master SET sql='CREATE UNIQUE INDEX t1a ON t1(a)'
+        WHERE name='t1a';
+      UPDATE sqlite_master SET sql='CREATE TABLE t1(a NOT NULL,b)'
+        WHERE name='t1';
+      PRAGMA writable_schema=OFF;
+      ALTER TABLE t1 RENAME TO t1x;
+      PRAGMA integrity_check;
+    } {{non-unique entry in index t1a} {NULL value in t1x.a} {non-unique entry in index t1a} {NULL value in t1x.a}}
+  do_execsql_test pragma-3.21 {
+    PRAGMA integrity_check(3);
+  } {{non-unique entry in index t1a} {NULL value in t1x.a} {non-unique entry in index t1a}}
+  do_execsql_test pragma-3.22 {
+    PRAGMA integrity_check(2);
+  } {{non-unique entry in index t1a} {NULL value in t1x.a}}
+  do_execsql_test pragma-3.23 {
+    PRAGMA integrity_check(1);
+  } {{non-unique entry in index t1a}}
+}
 
 # PRAGMA integrity check (or more specifically the sqlite3BtreeCount()
 # interface) used to leave index cursors in an inconsistent state
@@ -564,7 +566,7 @@ do_execsql_test pragma-3.23 {
 # that problem has been fixed.
 #
 do_test pragma-3.30 {
-  db close
+  catch { db close }
   delete_file test.db
   sqlite3 db test.db
   db eval {
@@ -1957,14 +1959,16 @@ do_test 23.3 {
   capture_pragma db2 out {PRAGMA index_list(t1)}
   db2 eval {SELECT seq, name, "unique", origin, '|' FROM out ORDER BY seq}
 } {0 i3 0 c | 1 i2 0 c | 2 i2x 0 c | 3 i1 0 c |}
-do_test 23.4 {
-  db eval {
-    ALTER TABLE t1 ADD COLUMN e;
-  }
-  db2 eval {
-    PRAGMA table_info(t1);
-  }
-} {/4 e {} 0 {} 0/}
+ifcapable altertable {
+  do_test 23.4 {
+    db eval {
+      ALTER TABLE t1 ADD COLUMN e;
+    }
+    db2 eval {
+      PRAGMA table_info(t1);
+    }
+  } {/4 e {} 0 {} 0/}
+}
 do_test 23.5 {
   db eval {
     DROP TABLE t2;
index 212885c05c7b3efbe8cfde8e89daeeda198832dd..9810a3ca031881c9c0477565617a2a4287459783 100644 (file)
@@ -141,43 +141,45 @@ do_execsql_test 2.5 {
 
 # 2021-03-13
 # ticket 1c24a659e6d7f3a1
-reset_db
-do_catchsql_test 3.0 {
-  CREATE TABLE t1(a,b);
-  CREATE INDEX x1 on t1("b");
-  ALTER TABLE t1 DROP COLUMN b;
-} {1 {error in index x1 after drop column: no such column: b}}
-do_catchsql_test 3.1 {
-  DROP TABLE t1;
-  CREATE TABLE t1(a,"b");
-  CREATE INDEX x1 on t1("b");
-  ALTER TABLE t1 DROP COLUMN b;
-} {1 {error in index x1 after drop column: no such column: b}}
-do_catchsql_test 3.2 {
-  DROP TABLE t1;
-  CREATE TABLE t1(a,'b');
-  CREATE INDEX x1 on t1("b");
-  ALTER TABLE t1 DROP COLUMN b;
-} {1 {error in index x1 after drop column: no such column: b}}
-do_catchsql_test 3.3 {
-  DROP TABLE t1;
-  CREATE TABLE t1(a,"b");
-  CREATE INDEX x1 on t1('b');
-  ALTER TABLE t1 DROP COLUMN b;
-} {1 {error in index x1 after drop column: no such column: b}}
-do_catchsql_test 3.4 {
-  DROP TABLE t1;
-  CREATE TABLE t1(a, b, c);
-  CREATE INDEX x1 ON t1("a"||"b");
-  INSERT INTO t1 VALUES(1,2,3),(1,4,5);
-  ALTER TABLE t1 DROP COLUMN b;
-} {1 {error in index x1 after drop column: no such column: b}}
-do_catchsql_test 3.5 {
-  DROP TABLE t1;
-  CREATE TABLE t1(a, b, c);
-  CREATE INDEX x1 ON t1("a"||"x");
-  INSERT INTO t1 VALUES(1,2,3),(1,4,5);
-  ALTER TABLE t1 DROP COLUMN b;
-} {0 {}}
+ifcapable altertable {
+  reset_db
+    do_catchsql_test 3.0 {
+      CREATE TABLE t1(a,b);
+      CREATE INDEX x1 on t1("b");
+      ALTER TABLE t1 DROP COLUMN b;
+    } {1 {error in index x1 after drop column: no such column: b}}
+  do_catchsql_test 3.1 {
+    DROP TABLE t1;
+    CREATE TABLE t1(a,"b");
+    CREATE INDEX x1 on t1("b");
+    ALTER TABLE t1 DROP COLUMN b;
+  } {1 {error in index x1 after drop column: no such column: b}}
+  do_catchsql_test 3.2 {
+    DROP TABLE t1;
+    CREATE TABLE t1(a,'b');
+    CREATE INDEX x1 on t1("b");
+    ALTER TABLE t1 DROP COLUMN b;
+  } {1 {error in index x1 after drop column: no such column: b}}
+  do_catchsql_test 3.3 {
+    DROP TABLE t1;
+    CREATE TABLE t1(a,"b");
+    CREATE INDEX x1 on t1('b');
+    ALTER TABLE t1 DROP COLUMN b;
+  } {1 {error in index x1 after drop column: no such column: b}}
+  do_catchsql_test 3.4 {
+    DROP TABLE t1;
+    CREATE TABLE t1(a, b, c);
+    CREATE INDEX x1 ON t1("a"||"b");
+    INSERT INTO t1 VALUES(1,2,3),(1,4,5);
+    ALTER TABLE t1 DROP COLUMN b;
+  } {1 {error in index x1 after drop column: no such column: b}}
+  do_catchsql_test 3.5 {
+    DROP TABLE t1;
+    CREATE TABLE t1(a, b, c);
+    CREATE INDEX x1 ON t1("a"||"x");
+    INSERT INTO t1 VALUES(1,2,3),(1,4,5);
+    ALTER TABLE t1 DROP COLUMN b;
+  } {0 {}}
+}
 
 finish_test
index ba7d745eb7dbde606928d8fad21f0b3c7dad03b3..39d4632330448bea17e5ae4ae886357eee5c72c1 100644 (file)
@@ -16,6 +16,12 @@ source $testdir/tester.tcl
 source $testdir/malloc_common.tcl
 source $testdir/lock_common.tcl
 
+# If SQLITE_OMIT_ALTERTABLE is defined, omit this file.
+ifcapable !altertable {
+  finish_test
+  return
+}
+
 # This block tests that if one client modifies the database schema, a
 # second client updates its internal cache of the database schema before
 # executing any queries. Specifically, it does not return a "no such column"
index 47b2b3fffacc6ad7a0a307291c13257f8877faf8..aa870d4565c35541d4272ae2a49a1386fb3b4a81 100644 (file)
@@ -157,7 +157,6 @@ do_execsql_test skipscan2-2.1 {
   CREATE INDEX peoplew_idx1 ON peoplew(role, height);
   INSERT INTO peoplew(name,role,height)
      SELECT name, role, height FROM  people;
-  ALTER TABLE people RENAME TO old_people;
   SELECT name FROM peoplew WHERE height>=180 ORDER BY +name;
 } {David Jack Patrick Quiana Xavier}
 do_execsql_test skipscan2-2.2 {
index 28445c6e726425fad72f9c9d9c0f79bbc34435da..adf1cf53b2b9cf9cbfbc4748f424f7c638468c58 100644 (file)
@@ -14,6 +14,12 @@ set testdir [file dirname $argv0]
 source $testdir/tester.tcl
 set testprefix sorterref
 
+# If SQLITE_OMIT_ALTERTABLE is defined, omit this file.
+ifcapable !altertable {
+  finish_test
+  return
+}
+
 do_execsql_test 1.0 {
   CREATE TABLE t1(a, b, c);
   INSERT INTO t1 VALUES(1, 2, 3);
index 5e10af889b9c179cf40623da4e78ee78fc6d61a9..606136abe014ab474b987cedcedb8499def605d7 100644 (file)
@@ -46,8 +46,12 @@ do_execsql_test strict1-2.0 {
     d TEXT,
     e REAL
   ) STRICT;
-  SELECT strict FROM pragma_table_list('t1');
-} {1}
+} {}
+ifcapable vtab {
+  do_execsql_test strict1-2.0a {
+    SELECT strict FROM pragma_table_list('t1');
+  } {1}
+}
 do_catchsql_test strict1-2.1 {
   INSERT INTO t1(a) VALUES('xyz');
 } {1 {cannot store TEXT value in INT column t1.a}}
index 88a8614f8285a3cb11d1eff637891fa49257cbaa..20e142057da9f334d996fe24914b99ad6a4086bc 100644 (file)
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
 
+# If SQLITE_OMIT_ALTERTABLE is defined, omit this file.
+ifcapable !altertable {
+  finish_test
+  return
+}
+
 do_test tkt-8454a207b9.1 {
   db eval {
     CREATE TABLE t1(a);
index 1ddec988cd108f90bd3d96a12e60bbf293d9bd66..43e5cc7dbb9b64821410d13a227f1687ed2913b3 100644 (file)
@@ -15,6 +15,11 @@ set testdir [file dirname $argv0]
 source $testdir/tester.tcl
 set testprefix tkt-f67b41381a
 
+ifcapable !altertable {
+  finish_test
+  return
+}
+
 do_execsql_test 1.0 {
   CREATE TABLE t1(a);
   INSERT INTO t1 VALUES(1);
index dd96124b4d6e47abae629f543decda2d36e0f701..7be360726f4a5979c23552f90f722b5221948660 100644 (file)
@@ -619,16 +619,18 @@ do_test update-14.4 {
 # Ticket [https://www.sqlite.org/src/tktview/43107840f1c02] on 2014-10-29
 # An assertion fault on UPDATE
 #
-do_execsql_test update-15.1 {
-  CREATE TABLE t15(a INTEGER PRIMARY KEY, b);
-  INSERT INTO t15(a,b) VALUES(10,'abc'),(20,'def'),(30,'ghi');
-  ALTER TABLE t15 ADD COLUMN c;
-  CREATE INDEX t15c ON t15(c);
-  INSERT INTO t15(a,b)
-   VALUES(5,'zyx'),(15,'wvu'),(25,'tsr'),(35,'qpo');
-  UPDATE t15 SET c=printf("y%d",a) WHERE c IS NULL;
-  SELECT a,b,c,'|' FROM t15 ORDER BY a;
-} {5 zyx y5 | 10 abc y10 | 15 wvu y15 | 20 def y20 | 25 tsr y25 | 30 ghi y30 | 35 qpo y35 |}
+ifcapable altertable {
+  do_execsql_test update-15.1 {
+    CREATE TABLE t15(a INTEGER PRIMARY KEY, b);
+    INSERT INTO t15(a,b) VALUES(10,'abc'),(20,'def'),(30,'ghi');
+    ALTER TABLE t15 ADD COLUMN c;
+    CREATE INDEX t15c ON t15(c);
+    INSERT INTO t15(a,b)
+      VALUES(5,'zyx'),(15,'wvu'),(25,'tsr'),(35,'qpo');
+    UPDATE t15 SET c=printf("y%d",a) WHERE c IS NULL;
+    SELECT a,b,c,'|' FROM t15 ORDER BY a;
+  } {5 zyx y5 | 10 abc y10 | 15 wvu y15 | 20 def y20 | 25 tsr y25 | 30 ghi y30 | 35 qpo y35 |}
+}
 
 # Unreleased bug in UPDATE caused by the UPSERT changes.
 # Found by OSSFuzz as soon as the UPSERT changes landed on trunk.
index 68bfcad64d4afc9a02cc877518d0915b4b2b4ee7..85202d7d06cb8e078a8e772728206bc366f7fa28 100644 (file)
@@ -55,9 +55,11 @@ do_test view-1.1.110 {
     SELECT * FROM v1temp ORDER BY a;
   }
 } {0 {1 2 4 5 7 8 1 2 4 5 7 8}}
-do_execsql_test view-1.1.120 {
-  SELECT name, type FROM pragma_table_list('v1');
-} {v1 view}
+ifcapable vtab {
+  do_execsql_test view-1.1.120 {
+    SELECT name, type FROM pragma_table_list('v1');
+  } {v1 view}
+}
 do_test view-1.2 {
   catchsql {
     ROLLBACK;
index 31086b249234044235696e6a0f952658ec3e51bf..cd9f81d53193c28939334f079822dea5e0d84389 100644 (file)
@@ -18,6 +18,12 @@ set testdir [file dirname $argv0]
 source $testdir/tester.tcl
 set ::testprefix whereE
 
+# If SQLITE_OMIT_ALTERTABLE is defined, omit this file.
+ifcapable !altertable {
+  finish_test
+  return
+}
+
 do_execsql_test 1.1 {
   CREATE TABLE t1(a,b);
   INSERT INTO t1 VALUES(1,10), (2,20), (3,30), (2,22), (3, 33);
index 8db23c55a6bba1c9cca673a61878333327a0f9cf..f595d40e2e582b723a236c19f69f4f2b402811f7 100644 (file)
@@ -1267,13 +1267,15 @@ do_catchsql_test 31.3 {
 } {1 {frame ending offset must be a non-negative integer}}
 
 # 2019-11-16 chromium issue 1025467
-db close
-sqlite3 db :memory:
-do_catchsql_test 32.10 {
-  CREATE VIEW a AS SELECT NULL INTERSECT SELECT NULL ORDER BY s() OVER R;
-  CREATE TABLE a0 AS SELECT 0;
-  ALTER TABLE a0 RENAME TO S;
-} {1 {error in view a: 1st ORDER BY term does not match any column in the result set}}
+ifcapable altertable {
+  db close
+  sqlite3 db :memory:
+  do_catchsql_test 32.10 {
+    CREATE VIEW a AS SELECT NULL INTERSECT SELECT NULL ORDER BY s() OVER R;
+    CREATE TABLE a0 AS SELECT 0;
+    ALTER TABLE a0 RENAME TO S;
+  } {1 {error in view a: 1st ORDER BY term does not match any column in the result set}}
+}
 
 reset_db
 do_execsql_test 33.1 {
index 93be6a6a1050e9c6e03dfc02c81c85ee3675d4fb..660df52b775386407fe115f9c020b6ad0b930244 100644 (file)
@@ -552,64 +552,68 @@ do_execsql_test 10.1 {
 # 2021-05-21
 # Forum post https://sqlite.org/forum/forumpost/aa4a7a3980
 #
+ifcapable altertable {
 reset_db
-do_execsql_test 11.1 {
-  CREATE TABLE t1(a);
-  CREATE VIEW v2(c) AS
-      WITH x AS (
-        WITH y AS (
-           WITH z AS(SELECT * FROM t1)
-           SELECT * FROM v2
-        ) SELECT a
-      ) SELECT * from t1;
-  ALTER TABLE t1 RENAME COLUMN a TO b;
-  SELECT sql FROM sqlite_schema WHERE name='t1';
-} {{CREATE TABLE t1(b)}}
-do_catchsql_test 11.2 {
-  INSERT INTO t1 VALUES(55);
-  SELECT * FROM v2;
-} {0 55}
-do_catchsql_test 11.3 {
-  DROP VIEW v2;
-  CREATE VIEW v2(c) AS
-      WITH x AS (
-        WITH y AS (
-           WITH z AS(SELECT * FROM t1)
-           SELECT * FROM v2
-        ) SELECT a
-      ) SELECT * from t1, x;
-  SELECT * FROM v2;
-} {1 {no such column: a}}
-do_catchsql_test 11.4 {
-  DROP VIEW v2;
-  CREATE VIEW v2(c) AS
-      WITH x AS (
-        WITH y AS (
-           WITH z AS(SELECT * FROM t1)
-           SELECT * FROM v2
-        ) SELECT *
-      ) SELECT * from t1, x;
-  SELECT * FROM v2;
-} {1 {no tables specified}}
-do_catchsql_test 11.5 {
-  WITH x AS (
-    WITH y AS (
-       WITH z AS(SELECT * FROM t1)
-       SELECT * FROM no_such_table
-    ) SELECT a
-  ) SELECT * from t1;
-} {0 55}
+  do_execsql_test 11.1 {
+    CREATE TABLE t1(a);
+    CREATE VIEW v2(c) AS
+        WITH x AS (
+          WITH y AS (
+             WITH z AS(SELECT * FROM t1)
+             SELECT * FROM v2
+          ) SELECT a
+        ) SELECT * from t1;
+    ALTER TABLE t1 RENAME COLUMN a TO b;
+    SELECT sql FROM sqlite_schema WHERE name='t1';
+  } {{CREATE TABLE t1(b)}}
+  do_catchsql_test 11.2 {
+    INSERT INTO t1 VALUES(55);
+    SELECT * FROM v2;
+  } {0 55}
+  do_catchsql_test 11.3 {
+    DROP VIEW v2;
+    CREATE VIEW v2(c) AS
+        WITH x AS (
+          WITH y AS (
+             WITH z AS(SELECT * FROM t1)
+             SELECT * FROM v2
+          ) SELECT a
+        ) SELECT * from t1, x;
+    SELECT * FROM v2;
+  } {1 {no such column: a}}
+  do_catchsql_test 11.4 {
+    DROP VIEW v2;
+    CREATE VIEW v2(c) AS
+        WITH x AS (
+          WITH y AS (
+             WITH z AS(SELECT * FROM t1)
+             SELECT * FROM v2
+          ) SELECT *
+        ) SELECT * from t1, x;
+    SELECT * FROM v2;
+  } {1 {no tables specified}}
+  do_catchsql_test 11.5 {
+    WITH x AS (
+      WITH y AS (
+         WITH z AS(SELECT * FROM t1)
+         SELECT * FROM no_such_table
+      ) SELECT a
+    ) SELECT * from t1;
+  } {0 55}
+}
 
 # 2021-05-23 dbsqlfuzz 6b7a144674e215f06ddfeb9042c873d9ee956ac0 */
 reset_db
-do_execsql_test 12.1 {
-  CREATE TABLE t1(a);
-  INSERT INTO t1 VALUES(1),('hello'),(4.25),(NULL),(x'3c626c6f623e');
-  CREATE VIEW v2(c) AS WITH x AS (WITH y AS (WITH z AS(SELECT * FROM t1) SELECT * FROM v2) SELECT a) SELECT * from t1;
-  CREATE VIEW v3(c) AS WITH x AS (WITH y AS (WITH z AS(SELECT * FROM v2) SELECT * FROM v3) SELECT a) SELECT * from t1;
-  ALTER TABLE t1 RENAME TO t1x;
-  SELECT quote(c) FROM v3;
-} {1 'hello' 4.25 NULL X'3C626C6F623E'}
+ifcapable altertable {
+  do_execsql_test 12.1 {
+    CREATE TABLE t1(a);
+    INSERT INTO t1 VALUES(1),('hello'),(4.25),(NULL),(x'3c626c6f623e');
+    CREATE VIEW v2(c) AS WITH x AS (WITH y AS (WITH z AS(SELECT * FROM t1) SELECT * FROM v2) SELECT a) SELECT * from t1;
+    CREATE VIEW v3(c) AS WITH x AS (WITH y AS (WITH z AS(SELECT * FROM v2) SELECT * FROM v3) SELECT a) SELECT * from t1;
+    ALTER TABLE t1 RENAME TO t1x;
+    SELECT quote(c) FROM v3;
+  } {1 'hello' 4.25 NULL X'3C626C6F623E'}
+}
 
 # 2021-08-11 https://sqlite.org/forum/forumpost/d496c3d29bc93736
 reset_db
index 1dd7e10dde114166a3cb97d3d69b70a4ff13e358..c712392688d37a51b83c502f38b531462bc23bfb 100644 (file)
@@ -458,15 +458,17 @@ do_execsql_test 13.10 {
 
 # 2021-05-13 https://sqlite.org/forum/forumpost/6c8960f545
 reset_db
-do_execsql_test 14.1 {
-  CREATE TABLE t1(a INT PRIMARY KEY) WITHOUT ROWID;
-  INSERT INTO t1(a) VALUES(10);
-  ALTER TABLE t1 ADD COLUMN b INT;
-  SELECT * FROM t1 WHERE a=20 OR (a=10 AND b=10);
-} {}
-do_execsql_test 14.2 {
-  CREATE TABLE dual AS SELECT 'X' AS dummy;
-  EXPLAIN QUERY PLAN SELECT * FROM dual, t1 WHERE a=10 AND b=10;
-} {~/b=/}
+ifcapable altertable {
+  do_execsql_test 14.1 {
+    CREATE TABLE t1(a INT PRIMARY KEY) WITHOUT ROWID;
+    INSERT INTO t1(a) VALUES(10);
+    ALTER TABLE t1 ADD COLUMN b INT;
+    SELECT * FROM t1 WHERE a=20 OR (a=10 AND b=10);
+  } {}
+  do_execsql_test 14.2 {
+    CREATE TABLE dual AS SELECT 'X' AS dummy;
+    EXPLAIN QUERY PLAN SELECT * FROM dual, t1 WHERE a=10 AND b=10;
+  } {~/b=/}
+}
   
 finish_test
index bbb0ccf29326f87c8ad5e2d8dc9a139afb5d7224..a330ef0c878d440f639ad4b92261516b58266b82 100644 (file)
@@ -52,7 +52,7 @@ struct Keyword {
 /*
 ** Define masks used to determine which keywords are allowed
 */
-#ifdef SQLITE_OMIT_ALTERTABLE
+#if defined(SQLITE_OMIT_ALTERTABLE) || defined(SQLITE_OMIT_VIRTUALTABLE)
 #  define ALTER      0
 #else
 #  define ALTER      0x00000001