Index: third_party/sqlite/src/test/alter4.test |
diff --git a/third_party/sqlite/src/test/alter4.test b/third_party/sqlite/src/test/alter4.test |
index ac39d614a540b16fe3bbf2c98bdab6f4c4410117..5155110cf58d00f1366600b279535125c9a32b6a 100644 |
--- a/third_party/sqlite/src/test/alter4.test |
+++ b/third_party/sqlite/src/test/alter4.test |
@@ -45,18 +45,33 @@ do_test alter4-1.1 { |
SELECT sql FROM sqlite_temp_master; |
} |
} {{CREATE TABLE abc(a, b, c)}} |
+do_test alter4-1.1b { |
+ execsql { |
+ SELECT sql FROM temp.sqlite_master; |
+ } |
+} {{CREATE TABLE abc(a, b, c)}} |
do_test alter4-1.2 { |
execsql {ALTER TABLE abc ADD d INTEGER;} |
execsql { |
SELECT sql FROM sqlite_temp_master; |
} |
} {{CREATE TABLE abc(a, b, c, d INTEGER)}} |
+do_test alter4-1.2b { |
+ execsql { |
+ SELECT sql FROM temp.sqlite_master; |
+ } |
+} {{CREATE TABLE abc(a, b, c, d INTEGER)}} |
do_test alter4-1.3 { |
execsql {ALTER TABLE abc ADD e} |
execsql { |
SELECT sql FROM sqlite_temp_master; |
} |
} {{CREATE TABLE abc(a, b, c, d INTEGER, e)}} |
+do_test alter4-1.3b { |
+ execsql { |
+ SELECT sql FROM temp.sqlite_master; |
+ } |
+} {{CREATE TABLE abc(a, b, c, d INTEGER, e)}} |
do_test alter4-1.4 { |
execsql { |
CREATE TABLE temp.t1(a, b); |
@@ -64,6 +79,11 @@ do_test alter4-1.4 { |
SELECT sql FROM sqlite_temp_master WHERE tbl_name = 't1'; |
} |
} {{CREATE TABLE t1(a, b, c)}} |
+do_test alter4-1.4b { |
+ execsql { |
+ SELECT sql FROM temp.sqlite_master WHERE tbl_name = 't1'; |
+ } |
+} {{CREATE TABLE t1(a, b, c)}} |
do_test alter4-1.5 { |
execsql { |
ALTER TABLE t1 ADD d CHECK (a>d); |
@@ -355,4 +375,23 @@ do_execsql_test alter4-9.3 { |
SELECT typeof(c), c FROM t5; |
} {real 9.22337203685478e+18} |
+# Confirm that doing an ALTER TABLE on a legacy format database |
+# does not corrupt DESC indexes. |
+# |
+# Ticket https://www.sqlite.org/src/tktview/f68bf68513a1c |
+# |
+do_test alter4-10.1 { |
+ db close |
+ sqlite3 db :memory: |
+ db eval { |
+ PRAGMA legacy_file_format=on; |
+ CREATE TABLE t1(a,b,c); |
+ CREATE INDEX t1a ON t1(a DESC); |
+ INSERT INTO t1 VALUES(1,2,3); |
+ INSERT INTO t1 VALUES(2,3,4); |
+ ALTER TABLE t1 ADD COLUMN d; |
+ PRAGMA integrity_check; |
+ } |
+} {ok} |
+ |
finish_test |