mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-30 19:03:16 +03:00
Update tests to work with SQLITE_ALLOW_ROWID_IN_VIEW.
FossilOrigin-Name: 495b8c7b08b998ddfe2ad055703f058c768e7e94014952e5cd8a81c7c1515cb1
This commit is contained in:
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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}}
|
||||
|
@ -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.
|
||||
|
@ -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}
|
||||
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_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_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_catchsql_test 16.5 { SELECT rowid FROM t1, t3; } {1 {no such column: rowid}}
|
||||
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.9 { SELECT rowid FROM t1, t3; } {1 {no such column: rowid}}
|
||||
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user