]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add test cases for ALTER TABLE and attached databases.
authordan <Dan Kennedy>
Sat, 27 Sep 2025 19:17:08 +0000 (19:17 +0000)
committerdan <Dan Kennedy>
Sat, 27 Sep 2025 19:17:08 +0000 (19:17 +0000)
FossilOrigin-Name: 8f2e066e9a0a34fe7a41b153c0fb54b621128b2195141cc454a44180c969b4a9

manifest
manifest.uuid
test/altercons.test

index 5c58ada45c51ea3bc834f6bd3b71af6f39ccae6f..50d983ce757864d0c7579224833cb74161041672 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\sOOM\sinjection\stests\sfor\snew\scommands\son\sthis\sbranch.
-D 2025-09-27T18:25:27.728
+C Add\stest\scases\sfor\sALTER\sTABLE\sand\sattached\sdatabases.
+D 2025-09-27T19:17:08.692
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -839,7 +839,7 @@ F test/alter4.test 37cafe164067a6590a0ee4cec780bddbbaa33dc50b11542dcfbe0e6562649
 F test/alterauth.test 63442ba61ceb0c1eeb63aac1f4f5cebfa509d352276059d27106ae256bafc959
 F test/alterauth2.test 4b74fa8f184f4736497317feb587b65759eb87d87acfe3a8ef433d4d18bb002b
 F test/altercol.test b43fb5725332f4cf8cff0280605202c1672e808281accea60a066d2ccc5129e5
-F test/altercons.test b40249578a58d5b5fb8abbb2c557b7f20497474c1afafec515a4b3ef7160de32
+F test/altercons.test 0d6fe564b65a1ed36564c2d3ffd99de92dc5d1abc4391806637b0772caaed77c
 F test/altercorrupt.test 2e1d705342cf9d7de884518ddbb053fd52d7e60d2b8869b7b63b2fda68435c12
 F test/alterdropcol.test a653a3945f964d26845ec0cd0a8e74189f46de3119a984c5bc45457da392612e
 F test/alterdropcol2.test 527fce683b200d620f560f666c44ae33e22728e990a10a48a543280dfd4b4d41
@@ -2170,8 +2170,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
 F tool/warnings.sh 1ad0169b022b280bcaaf94a7fa231591be96b514230ab5c98fbf15cd7df842dd
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 55cad8d15040bc01300bfe5efcc7225dd9695c2972c0f9b4bbd311ed57188e1f
-R 1925728f632793892ec8bd7723a805ea
+P 34b47c9b1be8a6ead917c6e9a85f8a295b14640cde177d8f1384b15f8bc692bb
+R d2caa87b8c36831673e0953b3d0f88d4
 U dan
-Z 71b3a1665a17736a9a9d0ea34e9cd95b
+Z 9b0b3eab4eaaea4032a0321b3993a0ad
 # Remove this line to create a well-formed Fossil manifest.
index 60f8640bf6e3bcbc4297219c0471c3676dcf8123..af54f1538469553702d39e9dd4abaac6b529f98b 100644 (file)
@@ -1 +1 @@
-34b47c9b1be8a6ead917c6e9a85f8a295b14640cde177d8f1384b15f8bc692bb
+8f2e066e9a0a34fe7a41b153c0fb54b621128b2195141cc454a44180c969b4a9
index 1a1c2df8bb1145f9468fdc11a73bb683632407e6..342ab913f8158dfb0f7f9de91f8402cf618c24f0 100644 (file)
@@ -317,4 +317,61 @@ do_execsql_test 8.2.3 {
   SELECT * FROM t1 WHERE a=3;
 } {3 3 3 3}
 
+#-------------------------------------------------------------------------
+reset_db
+forcedelete test.db2
+do_execsql_test 9.0 {
+  CREATE TABLE t1(x, y, z);
+  ATTACH 'test.db2' AS aux;
+  CREATE TABLE aux.t1(x, y, z);
+  INSERT INTO aux.t1 VALUES(1, 1, 1);
+  INSERT INTO aux.t1 VALUES(2, 2, 2);
+  INSERT INTO aux.t1 VALUES(3, 3, NULL);
+
+  CREATE TABLE aux.t2(x, y, z);
+}
+
+do_catchsql_test 9.1.1 {
+  ALTER TABLE aux.t1 ALTER COLUMN z SET NOT NULL
+} {1 {constraint failed}}
+do_execsql_test 9.1.2 {
+  UPDATE aux.t1 SET z=x;
+  ALTER TABLE aux.t1 ALTER COLUMN z SET NOT NULL;
+  SELECT sql FROM aux.sqlite_schema WHERE name='t1';
+} {{CREATE TABLE t1(x, y, z NOT NULL)}}
+do_execsql_test 9.1.3 {
+  ALTER TABLE aux.t1 ALTER z DROP NOT NULL;
+  SELECT sql FROM aux.sqlite_schema WHERE name='t1';
+} {{CREATE TABLE t1(x, y, z)}}
+do_execsql_test 9.1.4 {
+  ALTER TABLE t2 ALTER x SET NOT NULL;
+  SELECT sql FROM aux.sqlite_schema WHERE name='t2';
+} {{CREATE TABLE t2(x NOT NULL, y, z)}}
+do_execsql_test 9.1.5 {
+  ALTER TABLE t2 ALTER x DROP NOT NULL;
+  SELECT sql FROM aux.sqlite_schema WHERE name='t2';
+} {{CREATE TABLE t2(x, y, z)}}
+
+do_catchsql_test 9.2.1 {
+  ALTER TABLE aux.t1 ADD CONSTRAINT bill CHECK (y!=2);
+} {1 {constraint failed}}
+do_execsql_test 9.2.2 {
+  UPDATE aux.t1 SET y=4 WHERE y=2;
+  ALTER TABLE aux.t1 ADD CONSTRAINT bill CHECK (y!=2);
+  SELECT sql FROM aux.sqlite_schema WHERE name='t1';
+} {{CREATE TABLE t1(x, y, z, CONSTRAINT bill CHECK (y!=2))}}
+do_execsql_test 9.2.3 {
+  ALTER TABLE aux.t1 DROP CONSTRAINT bill;
+  SELECT sql FROM aux.sqlite_schema WHERE name='t1';
+} {{CREATE TABLE t1(x, y, z)}}
+do_execsql_test 9.2.4 {
+  ALTER TABLE t2 ADD CONSTRAINT william CHECK (z!='');
+  SELECT sql FROM aux.sqlite_schema WHERE name='t2';
+} {{CREATE TABLE t2(x, y, z, CONSTRAINT william CHECK (z!=''))}}
+do_execsql_test 9.2.5 {
+  ALTER TABLE t2 DROP CONSTRAINT william;
+  SELECT sql FROM aux.sqlite_schema WHERE name='t2';
+} {{CREATE TABLE t2(x, y, z)}}
+
 finish_test
+