aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/altermalloc3.test8
-rw-r--r--test/alterqf.test54
2 files changed, 59 insertions, 3 deletions
diff --git a/test/altermalloc3.test b/test/altermalloc3.test
index d84f6bbc9..c9011e802 100644
--- a/test/altermalloc3.test
+++ b/test/altermalloc3.test
@@ -22,6 +22,14 @@ ifcapable !altertable {
}
do_execsql_test 1.0 {
+ CREATE TABLE x1(
+ one, two, three, PRIMARY KEY(one),
+ CHECK (three!="xyz"), CHECK (two!="one")
+ ) WITHOUT ROWID;
+ CREATE INDEX x1i ON x1(one+"two"+"four") WHERE "five";
+ CREATE TEMP TRIGGER AFTER INSERT ON x1 BEGIN
+ UPDATE x1 SET two=new.three || "new" WHERE one=new.one||"";
+ END;
CREATE TABLE t1(a, b, c, d, PRIMARY KEY(d, b)) WITHOUT ROWID;
INSERT INTO t1 VALUES(1, 2, 3, 4);
}
diff --git a/test/alterqf.test b/test/alterqf.test
index d71ba3843..ce00f3b59 100644
--- a/test/alterqf.test
+++ b/test/alterqf.test
@@ -9,8 +9,7 @@
#
#***********************************************************************
# This file implements regression tests for SQLite library. This
-# script focuses on testing internal function sqlite_rename_quotefix()
-# directly.
+# script focuses on testing internal function sqlite_rename_quotefix().
#
@@ -22,7 +21,6 @@ sqlite3_test_control SQLITE_TESTCTRL_INTERNAL_FUNCTIONS db
do_execsql_test 1.0 {
CREATE TABLE t1(a, b, c);
- CREATE TABLE xyz(a CHECK (a!="str"), b);
}
foreach {tn before after} {
@@ -53,11 +51,61 @@ foreach {tn before after} {
9 {CREATE INDEX i1 ON t1(a) WHERE "b"="bb"}
{CREATE INDEX i1 ON t1(a) WHERE "b"='bb'}
+ 10 {CREATE TABLE t2(abc, xyz CHECK (xyz != "123"))}
+ {CREATE TABLE t2(abc, xyz CHECK (xyz != '123'))}
+
+ 11 {
+ CREATE TRIGGER ott AFTER UPDATE ON t1 BEGIN
+ SELECT max("str", new."a") FROM t1
+ WHERE group_concat("b", ",") OVER (ORDER BY c||"str");
+ UPDATE t1 SET c= b + "str";
+ DELETE FROM t1 WHERE EXISTS (
+ SELECT 1 FROM t1 AS o WHERE o."a" = "o.a" AND t1.b IN("t1.b")
+ );
+ END;
+ } {
+ CREATE TRIGGER ott AFTER UPDATE ON t1 BEGIN
+ SELECT max('str', new."a") FROM t1
+ WHERE group_concat("b", ',') OVER (ORDER BY c||'str');
+ UPDATE t1 SET c= b + 'str';
+ DELETE FROM t1 WHERE EXISTS (
+ SELECT 1 FROM t1 AS o WHERE o."a" = 'o.a' AND t1.b IN('t1.b')
+ );
+ END;
+ }
+
} {
do_execsql_test 1.$tn {
SELECT sqlite_rename_quotefix('main', $before)
} [list $after]
}
+#-------------------------------------------------------------------------
+reset_db
+do_execsql_test 2.0 {
+ CREATE TABLE x1(
+ one, two, three, PRIMARY KEY(one),
+ CHECK (three!="xyz"), CHECK (two!="one")
+ ) WITHOUT ROWID;
+ CREATE INDEX x1i ON x1(one+"two"+"four") WHERE "five";
+ CREATE TEMP TRIGGER AFTER INSERT ON x1 BEGIN
+ UPDATE x1 SET two=new.three || "new" WHERE one=new.one||"";
+ END;
+}
+
+do_execsql_test 2.1 {
+ ALTER TABLE x1 RENAME two TO 'four';
+ SELECT sql FROM sqlite_schema;
+ SELECT sql FROM sqlite_temp_schema;
+} {{CREATE TABLE x1(
+ one, "four", three, PRIMARY KEY(one),
+ CHECK (three!='xyz'), CHECK ("four"!="one")
+ ) WITHOUT ROWID}
+ {CREATE INDEX x1i ON x1(one+"four"+'four') WHERE 'five'}
+ {CREATE TRIGGER AFTER INSERT ON x1 BEGIN
+ UPDATE x1 SET "four"=new.three || 'new' WHERE one=new.one||'';
+ END}
+}
+
finish_test