Index: third_party/sqlite/src/test/vacuum2.test |
diff --git a/third_party/sqlite/src/test/vacuum2.test b/third_party/sqlite/src/test/vacuum2.test |
index b3bfab30228f4adc236adeb2bbbe29312b15de8e..0350c8ec422703e06bc33b9d25471ea826316035 100644 |
--- a/third_party/sqlite/src/test/vacuum2.test |
+++ b/third_party/sqlite/src/test/vacuum2.test |
@@ -15,6 +15,7 @@ |
set testdir [file dirname $argv0] |
source $testdir/tester.tcl |
+set testprefix vacuum2 |
# Do not use a codec for tests in this file, as the database file is |
# manipulated directly using tcl scripts (using the [hexio_write] command). |
@@ -227,5 +228,24 @@ do_test vacuum2-5.4 { |
lappend res2 $res |
} {1 2 3 4 5 6 7 8 9 10 {1 {cannot VACUUM - SQL statements in progress}}} |
+#------------------------------------------------------------------------- |
+# Check that if the definition of a collation sequence is changed and |
+# VACUUM run, records are store in the (new) correct order following the |
+# VACUUM. Even if the modified collation is attached to a PK of a WITHOUT |
+# ROWID table. |
+ |
+proc cmp {lhs rhs} { string compare $lhs $rhs } |
+db collate cmp cmp |
+do_execsql_test 6.0 { |
+ CREATE TABLE t6(x PRIMARY KEY COLLATE cmp, y) WITHOUT ROWID; |
+ CREATE INDEX t6y ON t6(y); |
+ INSERT INTO t6 VALUES('i', 'one'); |
+ INSERT INTO t6 VALUES('ii', 'one'); |
+ INSERT INTO t6 VALUES('iii', 'one'); |
+} |
+integrity_check 6.1 |
+proc cmp {lhs rhs} { string compare $rhs $lhs } |
+do_execsql_test 6.2 VACUUM |
+integrity_check 6.3 |
finish_test |