aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authordan <Dan Kennedy>2024-03-19 15:27:15 +0000
committerdan <Dan Kennedy>2024-03-19 15:27:15 +0000
commitf891ef8d6111c8c8aa7de74bcd36aaf2f4569c47 (patch)
treedd7c6b579f751efb065bb88eefca846fb4046cd9 /test
parent967c3032124b1365c65946371809660404376169 (diff)
downloadsqlite-f891ef8d6111c8c8aa7de74bcd36aaf2f4569c47.tar.gz
sqlite-f891ef8d6111c8c8aa7de74bcd36aaf2f4569c47.zip
Update tests to work with SQLITE_ALLOW_ROWID_IN_VIEW.
FossilOrigin-Name: 495b8c7b08b998ddfe2ad055703f058c768e7e94014952e5cd8a81c7c1515cb1
Diffstat (limited to 'test')
-rw-r--r--test/join5.test13
-rw-r--r--test/join8.test7
-rw-r--r--test/misc2.test29
-rw-r--r--test/returning1.test43
-rw-r--r--test/rowid.test33
-rw-r--r--test/trigger9.test27
6 files changed, 115 insertions, 37 deletions
diff --git a/test/join5.test b/test/join5.test
index 44c8b71a8..7f8c2f6e6 100644
--- a/test/join5.test
+++ b/test/join5.test
@@ -370,8 +370,17 @@ do_execsql_test 9.1 {
ANALYZE sqlite_schema;
INSERT INTO sqlite_stat1 VALUES('t1','t1x1','648 324 81 81 81 81 81 81 81081 81 81 81');
ANALYZE sqlite_schema;
- SELECT a FROM (SELECT a FROM t1 NATURAL LEFT JOIN t1) NATURAL LEFT JOIN t1 WHERE (rowid,1)<=(5,0);
-} {1}
+}
+ifcapable allow_rowid_in_view {
+ set res {1 {no such column: rowid}}
+} else {
+ set res {0 1}
+}
+do_catchsql_test 9.2 {
+ SELECT a FROM
+ (SELECT a FROM t1 NATURAL LEFT JOIN t1) NATURAL LEFT JOIN t1
+ WHERE (rowid,1)<=(5,0);
+} $res
# 2022-03-02 https://sqlite.org/forum/info/50a1bbe08ce4c29c
# Bloom-filter pulldown is incompatible with skip-scan.
diff --git a/test/join8.test b/test/join8.test
index fc50df32f..269d251fc 100644
--- a/test/join8.test
+++ b/test/join8.test
@@ -41,6 +41,11 @@ do_execsql_test join8-1000 {
CREATE INDEX t1x2 ON t1(b);
INSERT INTO t1 DEFAULT VALUES;
} {}
+ifcapable allow_rowid_in_view {
+ set res {1 {no such column: rowid}}
+} else {
+ set res {0 1}
+}
do_catchsql_test join8-1010 {
SELECT a
FROM (
@@ -61,7 +66,7 @@ do_catchsql_test join8-1010 {
NATURAL LEFT FULL JOIN t1
WHERE ( rowid , 1 )<=(CASE 5 WHEN 619 THEN 841 ELSE 3374391096 END,0)
ORDER BY a ASC;
-} {0 1}
+} $res
# Pending issue #2: (now resolved)
# Jump to addrHalt inside the RIGHT JOIN body subroutine bypasses the
diff --git a/test/misc2.test b/test/misc2.test
index 4796d5d37..607799ea2 100644
--- a/test/misc2.test
+++ b/test/misc2.test
@@ -54,19 +54,34 @@ do_test misc2-2.1 {
}
} {}
ifcapable subquery {
- do_catchsql_test misc2-2.2 {
- SELECT rowid, * FROM (SELECT * FROM t1, t2);
- } {1 {no such column: rowid}}
+ ifcapable allow_rowid_in_view {
+ do_catchsql_test misc2-2.2 {
+ SELECT rowid, * FROM (SELECT * FROM t1, t2);
+ } {0 {{} 1 2 3 7 8 9}}
+ } else {
+ do_catchsql_test misc2-2.2 {
+ SELECT rowid, * FROM (SELECT * FROM t1, t2);
+ } {1 {no such column: rowid}}
+ }
do_catchsql_test misc2-2.2b {
SELECT 'rowid', * FROM (SELECT * FROM t1, t2);
} {0 {rowid 1 2 3 7 8 9}}
}
ifcapable view {
- do_catchsql_test misc2-2.3 {
- CREATE VIEW v1 AS SELECT * FROM t1, t2;
- SELECT rowid, * FROM v1;
- } {1 {no such column: rowid}}
+ ifcapable allow_rowid_in_view {
+ do_catchsql_test misc2-2.3 {
+ CREATE VIEW v1 AS SELECT * FROM t1, t2;
+ SELECT rowid, * FROM v1;
+ } {0 {{} 1 2 3 7 8 9}}
+ } else {
+ do_catchsql_test misc2-2.3 {
+ CREATE VIEW v1 AS SELECT * FROM t1, t2;
+ SELECT rowid, * FROM v1;
+ } {1 {no such column: rowid}}
+ }
+
+
do_catchsql_test misc2-2.3b {
SELECT 'rowid', * FROM v1;
} {0 {rowid 1 2 3 7 8 9}}
diff --git a/test/returning1.test b/test/returning1.test
index 6c098dc25..24032496c 100644
--- a/test/returning1.test
+++ b/test/returning1.test
@@ -212,17 +212,38 @@ do_execsql_test 10.2 {
END;
}
-do_catchsql_test 10.3a {
- INSERT INTO t1(a, b) VALUES(1234, 5678) RETURNING rowid;
-} {1 {no such column: new.rowid}}
-
-do_catchsql_test 10.3b {
- UPDATE t1 SET a='z' WHERE b='y' RETURNING rowid;
-} {1 {no such column: new.rowid}}
-
-do_execsql_test 10.4 {
- SELECT * FROM log;
-} {}
+ifcapable !allow_rowid_in_view {
+ do_catchsql_test 10.3a {
+ INSERT INTO t1(a, b) VALUES(1234, 5678) RETURNING rowid;
+ } {1 {no such column: new.rowid}}
+
+ do_catchsql_test 10.3b {
+ UPDATE t1 SET a='z' WHERE b='y' RETURNING rowid;
+ } {1 {no such column: new.rowid}}
+
+ do_execsql_test 10.4 {
+ SELECT * FROM log;
+ } {}
+} else {
+ # Note: The values returned by the RETURNING clauses of the following
+ # two statements are the rowid columns of views. These values are not
+ # well defined, so the INSERT returns -1, and the UPDATE returns 1, 2
+ # and 3. These match the values used for new.rowid expressions, but
+ # not much else.
+ do_catchsql_test 10.3a {
+ INSERT INTO t1(a, b) VALUES(1234, 5678) RETURNING rowid;
+ } {0 -1}
+
+ do_catchsql_test 10.3b {
+ UPDATE t1 SET a='z' WHERE b='y' RETURNING rowid;
+ } {0 {1 2 3}}
+
+ do_execsql_test 10.4 {
+ SELECT * FROM log;
+ } {
+ insert -1 1234 5678 update 1 z y update 2 z y update 3 z y
+ }
+}
# 2021-04-27 dbsqlfuzz 78b9400770ef8cc7d9427dfba26f4fcf46ea7dc2
# Returning clauses on TEMP tables with triggers.
diff --git a/test/rowid.test b/test/rowid.test
index 4327004d3..450ae35cc 100644
--- a/test/rowid.test
+++ b/test/rowid.test
@@ -803,17 +803,30 @@ do_execsql_test 16.0 {
INSERT INTO t3(rowid, z) VALUES(3, 3);
}
-do_execsql_test 16.1 { SELECT rowid FROM t1, t2; } {1}
-do_execsql_test 16.2 { SELECT rowid FROM t1, v1; } {1}
-do_execsql_test 16.3 { SELECT rowid FROM t3, v1; } {3}
-do_execsql_test 16.4 { SELECT rowid FROM t3, (SELECT 123); } {3}
-
-do_execsql_test 16.5 { SELECT rowid FROM t2, t1; } {1}
-do_execsql_test 16.6 { SELECT rowid FROM v1, t1; } {1}
-do_execsql_test 16.7 { SELECT rowid FROM v1, t3; } {3}
-do_execsql_test 16.8 { SELECT rowid FROM (SELECT 123), t3; } {3}
+ifcapable allow_rowid_in_view {
+ set nosuch "1 {no such column: rowid}"
+ do_execsql_test 16.1 { SELECT rowid FROM t1, t2; } {1}
+ do_catchsql_test 16.2 { SELECT rowid FROM t1, v1; } $nosuch
+ do_catchsql_test 16.3 { SELECT rowid FROM t3, v1; } $nosuch
+ do_catchsql_test 16.4 { SELECT rowid FROM t3, (SELECT 123); } $nosuch
+
+ do_execsql_test 16.5 { SELECT rowid FROM t2, t1; } {1}
+ do_catchsql_test 16.6 { SELECT rowid FROM v1, t1; } $nosuch
+ do_catchsql_test 16.7 { SELECT rowid FROM v1, t3; } $nosuch
+ do_catchsql_test 16.8 { SELECT rowid FROM (SELECT 123), t3; } $nosuch
+} else {
+ do_execsql_test 16.1 { SELECT rowid FROM t1, t2; } {1}
+ do_execsql_test 16.2 { SELECT rowid FROM t1, v1; } {1}
+ do_execsql_test 16.3 { SELECT rowid FROM t3, v1; } {3}
+ do_execsql_test 16.4 { SELECT rowid FROM t3, (SELECT 123); } {3}
+
+ do_execsql_test 16.5 { SELECT rowid FROM t2, t1; } {1}
+ do_execsql_test 16.6 { SELECT rowid FROM v1, t1; } {1}
+ do_execsql_test 16.7 { SELECT rowid FROM v1, t3; } {3}
+ do_execsql_test 16.8 { SELECT rowid FROM (SELECT 123), t3; } {3}
+}
-do_catchsql_test 16.5 { SELECT rowid FROM t1, t3; } {1 {no such column: rowid}}
+do_catchsql_test 16.9 { SELECT rowid FROM t1, t3; } {1 {no such column: rowid}}
diff --git a/test/trigger9.test b/test/trigger9.test
index 6e31d1af9..47940de57 100644
--- a/test/trigger9.test
+++ b/test/trigger9.test
@@ -242,12 +242,27 @@ do_execsql_test 4.1 {
END;
}
-do_catchsql_test 4.2 {
- DELETE FROM v1 WHERE rowid=1;
-} {1 {no such column: rowid}}
+ifcapable !allow_rowid_in_view {
+ do_catchsql_test 4.2 {
+ DELETE FROM v1 WHERE rowid=1;
+ } {1 {no such column: rowid}}
-do_catchsql_test 4.3 {
- UPDATE v1 SET a=b WHERE rowid=2;
-} {1 {no such column: rowid}}
+ do_catchsql_test 4.3 {
+ UPDATE v1 SET a=b WHERE rowid=2;
+ } {1 {no such column: rowid}}
+} else {
+ do_execsql_test 4.2a {
+ DELETE FROM log;
+ }
+ do_catchsql_test 4.2 {
+ DELETE FROM v1 WHERE rowid=1;
+ } {0 {}}
+ do_catchsql_test 4.3 {
+ UPDATE v1 SET a=b WHERE rowid=2;
+ } {0 {}}
+ do_execsql_test 4.3b {
+ SELECT * FROM log;
+ }
+}
finish_test