testing/sqlite3: Disable SELECT tests that require views

This commit is contained in:
Pekka Enberg
2025-07-07 14:38:02 +03:00
parent 38f3d213db
commit 3c968df0b2
7 changed files with 160 additions and 152 deletions

View File

@@ -1203,11 +1203,12 @@ do_execsql_test select1-20.20 {
# 2020-10-02 dbsqlfuzz find
reset_db
do_execsql_test select1-21.1 {
CREATE TABLE t1(a IMTEGES PRIMARY KEY,R);
CREATE TABLE t2(x UNIQUE);
CREATE VIEW v1a(z,y) AS SELECT x IS NULL, x FROM t2;
SELECT a,(+a)b,(+a)b,(+a)b,NOT EXISTS(SELECT null FROM t2),CASE z WHEN 487 THEN 992 WHEN 391 THEN 203 WHEN 10 THEN '?k<D Q' END,'' FROM t1 LEFT JOIN v1a ON z=b;
} {}
# TODO: Views are not supported.
#do_execsql_test select1-21.1 {
# CREATE TABLE t1(a IMTEGES PRIMARY KEY,R);
# CREATE TABLE t2(x UNIQUE);
# CREATE VIEW v1a(z,y) AS SELECT x IS NULL, x FROM t2;
# SELECT a,(+a)b,(+a)b,(+a)b,NOT EXISTS(SELECT null FROM t2),CASE z WHEN 487 THEN 992 WHEN 391 THEN 203 WHEN 10 THEN '?k<D Q' END,'' FROM t1 LEFT JOIN v1a ON z=b;
#} {}
finish_test

View File

@@ -1010,20 +1010,21 @@ do_catchsql_test select4-17.3 {
# optimizations.
#
reset_db
do_execsql_test select4-18.1 {
CREATE VIEW v0(v0) AS WITH v0 AS(SELECT 0 v0) SELECT(SELECT min(v0) OVER()) FROM v0 GROUP BY v0;
SELECT *FROM v0 v1 JOIN v0 USING(v0) WHERE datetime(v0) = (v0.v0)AND v0 = 10;
} {}
do_execsql_test select4-18.2 {
CREATE VIEW t1(aa) AS
WITH t2(bb) AS (SELECT 123)
SELECT (SELECT min(bb) OVER()) FROM t2 GROUP BY bb;
SELECT * FROM t1;
} {123}
do_execsql_test select4-18.3 {
SELECT * FROM t1 AS z1 JOIN t1 AS z2 USING(aa)
WHERE abs(z1.aa)=z2.aa AND z1.aa=123;
} {123}
# TODO: Views are not supported.
#do_execsql_test select4-18.1 {
# CREATE VIEW v0(v0) AS WITH v0 AS(SELECT 0 v0) SELECT(SELECT min(v0) OVER()) FROM v0 GROUP BY v0;
# SELECT *FROM v0 v1 JOIN v0 USING(v0) WHERE datetime(v0) = (v0.v0)AND v0 = 10;
#} {}
#do_execsql_test select4-18.2 {
# CREATE VIEW t1(aa) AS
# WITH t2(bb) AS (SELECT 123)
# SELECT (SELECT min(bb) OVER()) FROM t2 GROUP BY bb;
# SELECT * FROM t1;
#} {123}
#do_execsql_test select4-18.3 {
# SELECT * FROM t1 AS z1 JOIN t1 AS z2 USING(aa)
# WHERE abs(z1.aa)=z2.aa AND z1.aa=123;
#} {123}
# 2021-03-31 Fix an assert() problem in the logic at the end of sqlite3Select()
# that validates AggInfo. The checks to ensure that AggInfo.aCol[].pCExpr

View File

@@ -38,22 +38,23 @@ ifcapable tempdb {
# Nested views do not handle * properly. Ticket #826.
#
ifcapable view {
do_test select7-2.1 {
execsql {
CREATE TABLE x(id integer primary key, a TEXT NULL);
INSERT INTO x (a) VALUES ('first');
CREATE TABLE tempx(id integer primary key, a TEXT NULL);
INSERT INTO tempx (a) VALUES ('t-first');
CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id;
CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id;
CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b;
SELECT * FROM tv2;
}
} {1 1}
} ;# ifcapable view
} ;# ifcapable compound
# TODO: Views are not supported
#ifcapable view {
#do_test select7-2.1 {
# execsql {
# CREATE TABLE x(id integer primary key, a TEXT NULL);
# INSERT INTO x (a) VALUES ('first');
# CREATE TABLE tempx(id integer primary key, a TEXT NULL);
# INSERT INTO tempx (a) VALUES ('t-first');
# CREATE VIEW tv1 AS SELECT x.id, tx.id FROM x JOIN tempx tx ON tx.id=x.id;
# CREATE VIEW tv1b AS SELECT x.id, tx.id FROM x JOIN tempx tx on tx.id=x.id;
# CREATE VIEW tv2 AS SELECT * FROM tv1 UNION SELECT * FROM tv1b;
# SELECT * FROM tv2;
# }
#} {1 1}
#} ;# ifcapable view
#
#} ;# ifcapable compound
# Do not allow GROUP BY without an aggregate. Ticket #1039.
#
@@ -241,10 +242,11 @@ do_catchsql_test 8.1 {
) WHERE y=1
} {1 {SELECTs to the left and right of UNION do not have the same number of result columns}}
do_catchsql_test 8.2 {
CREATE VIEW v0 as SELECT x, y FROM t01 UNION SELECT x FROM t02;
EXPLAIN QUERY PLAN SELECT * FROM v0 WHERE x='0' OR y;
} {1 {SELECTs to the left and right of UNION do not have the same number of result columns}}
# TODO: Views are not supported
#do_catchsql_test 8.2 {
# CREATE VIEW v0 as SELECT x, y FROM t01 UNION SELECT x FROM t02;
# EXPLAIN QUERY PLAN SELECT * FROM v0 WHERE x='0' OR y;
#} {1 {SELECTs to the left and right of UNION do not have the same number of result columns}}
finish_test

View File

@@ -374,10 +374,11 @@ do_test select9-3.4 {
execsql { CREATE INDEX i2 ON t2(d) }
cksort { SELECT a FROM t1 UNION ALL SELECT d FROM t2 ORDER BY 1 LIMIT 5 }
} {1 1 2 2 3 nosort}
do_test select9-3.5 {
execsql { CREATE VIEW v1 AS SELECT a FROM t1 UNION ALL SELECT d FROM t2 }
cksort { SELECT a FROM v1 ORDER BY 1 LIMIT 5 }
} {1 1 2 2 3 nosort}
# TODO: Views are not supported.
#do_test select9-3.5 {
# execsql { CREATE VIEW v1 AS SELECT a FROM t1 UNION ALL SELECT d FROM t2 }
# cksort { SELECT a FROM v1 ORDER BY 1 LIMIT 5 }
#} {1 1 2 2 3 nosort}
do_test select9-3.X {
execsql {
DROP INDEX i1;
@@ -403,15 +404,15 @@ do_test select9-4.4 {
execsql { CREATE INDEX i2 ON t2(d) }
cksort { SELECT a FROM t1 UNION SELECT d FROM t2 ORDER BY 1 LIMIT 5 }
} {1 2 3 4 5 nosort}
do_test select9-4.5 {
execsql { CREATE VIEW v1 AS SELECT a FROM t1 UNION SELECT d FROM t2 }
cksort { SELECT a FROM v1 ORDER BY 1 LIMIT 5 }
} {1 2 3 4 5 sort}
#do_test select9-4.5 {
# execsql { CREATE VIEW v1 AS SELECT a FROM t1 UNION SELECT d FROM t2 }
# cksort { SELECT a FROM v1 ORDER BY 1 LIMIT 5 }
#} {1 2 3 4 5 sort}
do_test select9-4.X {
execsql {
DROP INDEX i1;
DROP INDEX i2;
DROP VIEW v1;
# DROP VIEW v1;
}
} {}
@@ -423,32 +424,32 @@ do_test select9-4.X {
#
# For additional information.
#
do_test select9-5.1 {
db eval {
CREATE TABLE t51(x, y);
CREATE TABLE t52(x, y);
CREATE VIEW v5 as
SELECT x, y FROM t51
UNION ALL
SELECT x, y FROM t52;
CREATE INDEX t51x ON t51(x);
CREATE INDEX t52x ON t52(x);
EXPLAIN QUERY PLAN
SELECT * FROM v5 WHERE x='12345' ORDER BY y;
}
} {~/SCAN/} ;# Uses indices with "*"
do_test select9-5.2 {
db eval {
EXPLAIN QUERY PLAN
SELECT x, y FROM v5 WHERE x='12345' ORDER BY y;
}
} {~/SCAN/} ;# Uses indices with "x, y"
do_test select9-5.3 {
db eval {
EXPLAIN QUERY PLAN
SELECT x, y FROM v5 WHERE +x='12345' ORDER BY y;
}
} {/SCAN/} ;# Full table scan if the "+x" prevents index usage.
#do_test select9-5.1 {
# db eval {
# CREATE TABLE t51(x, y);
# CREATE TABLE t52(x, y);
# CREATE VIEW v5 as
# SELECT x, y FROM t51
# UNION ALL
# SELECT x, y FROM t52;
# CREATE INDEX t51x ON t51(x);
# CREATE INDEX t52x ON t52(x);
# EXPLAIN QUERY PLAN
# SELECT * FROM v5 WHERE x='12345' ORDER BY y;
# }
#} {~/SCAN/} ;# Uses indices with "*"
#do_test select9-5.2 {
# db eval {
# EXPLAIN QUERY PLAN
# SELECT x, y FROM v5 WHERE x='12345' ORDER BY y;
# }
#} {~/SCAN/} ;# Uses indices with "x, y"
#do_test select9-5.3 {
# db eval {
# EXPLAIN QUERY PLAN
# SELECT x, y FROM v5 WHERE +x='12345' ORDER BY y;
# }
#} {/SCAN/} ;# Full table scan if the "+x" prevents index usage.
# 2013-07-09: Ticket [490a4b7235624298]:
# "WHERE 0" on the first element of a UNION causes an assertion fault

View File

@@ -1449,24 +1449,25 @@ do_execsql_test 6.1 {
# 2020-06-15 ticket 8f157e8010b22af0
#
reset_db
do_execsql_test 7.1 {
CREATE TABLE t1(c1); INSERT INTO t1 VALUES(12),(123),(1234),(NULL),('abc');
CREATE TABLE t2(c2); INSERT INTO t2 VALUES(44),(55),(123);
CREATE TABLE t3(c3,c4); INSERT INTO t3 VALUES(66,1),(123,2),(77,3);
CREATE VIEW t4 AS SELECT c3 FROM t3;
CREATE VIEW t5 AS SELECT c3 FROM t3 ORDER BY c4;
}
do_execsql_test 7.2 {
SELECT * FROM t1, t2 WHERE c1=(SELECT 123 INTERSECT SELECT c2 FROM t4) AND c1=123;
} {123 123}
do_execsql_test 7.3 {
SELECT * FROM t1, t2 WHERE c1=(SELECT 123 INTERSECT SELECT c2 FROM t5) AND c1=123;
} {123 123}
do_execsql_test 7.4 {
CREATE TABLE a(b);
CREATE VIEW c(d) AS SELECT b FROM a ORDER BY b;
SELECT sum(d) OVER( PARTITION BY(SELECT 0 FROM c JOIN a WHERE b =(SELECT b INTERSECT SELECT d FROM c) AND b = 123)) FROM c;
} {}
# TODO: Views are not supported.
#do_execsql_test 7.1 {
# CREATE TABLE t1(c1); INSERT INTO t1 VALUES(12),(123),(1234),(NULL),('abc');
# CREATE TABLE t2(c2); INSERT INTO t2 VALUES(44),(55),(123);
# CREATE TABLE t3(c3,c4); INSERT INTO t3 VALUES(66,1),(123,2),(77,3);
# CREATE VIEW t4 AS SELECT c3 FROM t3;
# CREATE VIEW t5 AS SELECT c3 FROM t3 ORDER BY c4;
#}
#do_execsql_test 7.2 {
# SELECT * FROM t1, t2 WHERE c1=(SELECT 123 INTERSECT SELECT c2 FROM t4) AND c1=123;
#} {123 123}
#do_execsql_test 7.3 {
# SELECT * FROM t1, t2 WHERE c1=(SELECT 123 INTERSECT SELECT c2 FROM t5) AND c1=123;
#} {123 123}
#do_execsql_test 7.4 {
# CREATE TABLE a(b);
# CREATE VIEW c(d) AS SELECT b FROM a ORDER BY b;
# SELECT sum(d) OVER( PARTITION BY(SELECT 0 FROM c JOIN a WHERE b =(SELECT b INTERSECT SELECT d FROM c) AND b = 123)) FROM c;
#} {}
#-------------------------------------------------------------------------
reset_db

View File

@@ -230,10 +230,11 @@ do_execsql_test selectC-4.2 {
select a from (select distinct a, b from t_distinct_bug)
} {1 1 1}
do_execsql_test selectC-4.2b {
CREATE VIEW v42b AS SELECT DISTINCT a, b FROM t_distinct_bug;
SELECT a FROM v42b;
} {1 1 1}
# TODO: Views are not supported.
#do_execsql_test selectC-4.2b {
# CREATE VIEW v42b AS SELECT DISTINCT a, b FROM t_distinct_bug;
# SELECT a FROM v42b;
#} {1 1 1}
do_execsql_test selectC-4.3 {
select a, udf() from (select distinct a, b from t_distinct_bug)
@@ -242,34 +243,35 @@ do_execsql_test selectC-4.3 {
#-------------------------------------------------------------------------
# Test that the problem in ticket #190c2507 has been fixed.
#
do_execsql_test 5.0 {
CREATE TABLE x1(a);
CREATE TABLE x2(b);
CREATE TABLE x3(c);
CREATE VIEW vvv AS SELECT b FROM x2 ORDER BY 1;
# TODO: Views are not supported.
#do_execsql_test 5.0 {
# CREATE TABLE x1(a);
# CREATE TABLE x2(b);
# CREATE TABLE x3(c);
# CREATE VIEW vvv AS SELECT b FROM x2 ORDER BY 1;
#
# INSERT INTO x1 VALUES('a'), ('b');
# INSERT INTO x2 VALUES(22), (23), (25), (24), (21);
# INSERT INTO x3 VALUES(302), (303), (301);
#}
INSERT INTO x1 VALUES('a'), ('b');
INSERT INTO x2 VALUES(22), (23), (25), (24), (21);
INSERT INTO x3 VALUES(302), (303), (301);
}
#do_execsql_test 5.1 {
# CREATE TABLE x4 AS SELECT b FROM vvv UNION ALL SELECT c from x3;
# SELECT * FROM x4;
#} {21 22 23 24 25 302 303 301}
do_execsql_test 5.1 {
CREATE TABLE x4 AS SELECT b FROM vvv UNION ALL SELECT c from x3;
SELECT * FROM x4;
} {21 22 23 24 25 302 303 301}
#do_execsql_test 5.2 {
# SELECT * FROM x1, x4
#} {
# a 21 a 22 a 23 a 24 a 25 a 302 a 303 a 301
# b 21 b 22 b 23 b 24 b 25 b 302 b 303 b 301
#}
do_execsql_test 5.2 {
SELECT * FROM x1, x4
} {
a 21 a 22 a 23 a 24 a 25 a 302 a 303 a 301
b 21 b 22 b 23 b 24 b 25 b 302 b 303 b 301
}
do_execsql_test 5.3 {
SELECT * FROM x1, (SELECT b FROM vvv UNION ALL SELECT c from x3) ORDER BY 1,2;
} {
a 21 a 22 a 23 a 24 a 25 a 301 a 302 a 303
b 21 b 22 b 23 b 24 b 25 b 301 b 302 b 303
}
#do_execsql_test 5.3 {
# SELECT * FROM x1, (SELECT b FROM vvv UNION ALL SELECT c from x3) ORDER BY 1,2;
#} {
# a 21 a 22 a 23 a 24 a 25 a 301 a 302 a 303
# b 21 b 22 b 23 b 24 b 25 b 301 b 302 b 303
#}
finish_test

View File

@@ -76,35 +76,35 @@ do_test 2.2 {
set ::selectH_cnt
} {0}
do_execsql_test 3.1 {
CREATE VIEW v1 AS
SELECT c16 AS a, *, counter(1) AS x FROM t1
UNION ALL
SELECT c17 AS a, *, counter(1) AS x FROM t1
UNION ALL
SELECT c18 AS a, *, counter(1) AS x FROM t1
UNION ALL
SELECT c19 AS a, *, counter(1) AS x FROM t1;
SELECT count(*) FROM v1 WHERE c60=60;
} {4}
do_test 3.2 {
set ::selectH_cnt
} {0}
do_execsql_test 3.3 {
SELECT count(a) FROM v1 WHERE c60=60;
} {4}
do_execsql_test 3.4 {
SELECT a FROM v1 WHERE c60=60;
} {16 17 18 19}
do_test 3.5 {
set ::selectH_cnt
} {0}
do_execsql_test 3.6 {
SELECT x FROM v1 WHERE c60=60;
} {1 2 3 4}
do_test 3.7 {
set ::selectH_cnt
} {4}
#do_execsql_test 3.1 {
# CREATE VIEW v1 AS
# SELECT c16 AS a, *, counter(1) AS x FROM t1
# UNION ALL
## SELECT c17 AS a, *, counter(1) AS x FROM t1
## UNION ALL
# SELECT c18 AS a, *, counter(1) AS x FROM t1
# UNION ALL
# SELECT c19 AS a, *, counter(1) AS x FROM t1;
# SELECT count(*) FROM v1 WHERE c60=60;
#} {4}
#do_test 3.2 {
# set ::selectH_cnt
#} {0}
#do_execsql_test 3.3 {
# SELECT count(a) FROM v1 WHERE c60=60;
#} {4}
#do_execsql_test 3.4 {
# SELECT a FROM v1 WHERE c60=60;
#} {16 17 18 19}
#do_test 3.5 {
# set ::selectH_cnt
#} {0}
#do_execsql_test 3.6 {
# SELECT x FROM v1 WHERE c60=60;
#} {1 2 3 4}
#do_test 3.7 {
# set ::selectH_cnt
#} {4}
# 2023-02-25 dbsqlfuzz bf1d3ed6e0e0dd8766027797d43db40c776d2b15
#