Changeset: 26807083568b for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=26807083568b Added Files: sql/test/subquery/Tests/exists.sql sql/test/subquery/Tests/exists.stable.err sql/test/subquery/Tests/exists.stable.out Modified Files: sql/test/subquery/Tests/All sql/test/subquery/Tests/any_all.sql sql/test/subquery/Tests/any_all.stable.out sql/test/subquery/Tests/correlated.sql Branch: Nov2019 Log Message:
Added any,all,exists operators tests diffs (truncated from 719 to 300 lines): diff --git a/sql/test/subquery/Tests/All b/sql/test/subquery/Tests/All --- a/sql/test/subquery/Tests/All +++ b/sql/test/subquery/Tests/All @@ -5,4 +5,5 @@ subquery2 subquery3 scalar any_all +exists correlated diff --git a/sql/test/subquery/Tests/any_all.sql b/sql/test/subquery/Tests/any_all.sql --- a/sql/test/subquery/Tests/any_all.sql +++ b/sql/test/subquery/Tests/any_all.sql @@ -38,4 +38,122 @@ SELECT 1 > ALL(SELECT * FROM integers); SELECT NULL > ANY(SELECT * FROM integers); -- NULL SELECT NULL > ALL(SELECT * FROM integers); -- NULL +SELECT i=ANY(SELECT i FROM integers WHERE i=i1.i) FROM integers i1 ORDER BY i; +--True +--True +--True +--False + +/*Wrong results +SELECT i>ALL(SELECT (i+i1.i-1)/2 FROM integers WHERE i IS NOT NULL) FROM integers i1 ORDER BY i;*/ +--False +--False +--True +--NULL + +/*Wrong results +SELECT i=ALL(SELECT i FROM integers WHERE i<>i1.i) FROM integers i1 ORDER BY i;*/ +--False +--False +--False +--True + +SELECT i FROM integers i1 WHERE i=ANY(SELECT i FROM integers WHERE i=i1.i) ORDER BY i; +--1 +--2 +--3 + +/*BROKEN +SELECT i FROM integers i1 WHERE i<>ANY(SELECT i FROM integers WHERE i=i1.i) ORDER BY i;*/ +-- (Empty result set) + +SELECT i FROM integers i1 WHERE i=ANY(SELECT i FROM integers WHERE i<>i1.i) ORDER BY i; +-- (Empty result set) + +SELECT i FROM integers i1 WHERE i>ANY(SELECT i FROM integers WHERE i<>i1.i) ORDER BY i; +--2 +--3 + +SELECT i FROM integers i1 WHERE i>ALL(SELECT (i+i1.i-1)/2 FROM integers WHERE i IS NOT NULL) ORDER BY i; +--3 + +SELECT i=ALL(SELECT i FROM integers WHERE i=i1.i) FROM integers i1 ORDER BY i; +--True +--True +--True +--True + +SELECT i=ANY(SELECT i FROM integers WHERE i=i1.i) FROM integers i1 ORDER BY i; +--True +--True +--True +--False + +SELECT i<>ALL(SELECT i FROM integers WHERE i=i1.i) FROM integers i1 ORDER BY i; +--True +--False +--False +--False + +SELECT i<>ANY(SELECT i FROM integers WHERE i=i1.i) FROM integers i1 ORDER BY i; +--False +--False +--False +--False + +SELECT i=ANY(SELECT i FROM integers WHERE i<>i1.i) FROM integers i1 ORDER BY i; +--False +--False +--False +--False + +SELECT i>ANY(SELECT i FROM integers WHERE i<>i1.i) FROM integers i1 ORDER BY i; +--False +--True +--True +--False + +/*Wrong results +SELECT i>ALL(SELECT (i+i1.i-1)/2 FROM integers) FROM integers i1 ORDER BY i;*/ +--False +--False +--NULL +--NULL + +/*Wrong results +SELECT i>ALL(SELECT (i+i1.i-1)/2 FROM integers WHERE i IS NOT NULL) FROM integers i1 ORDER BY i;*/ +--False +--False +--True +--NULL + +SELECT i=ANY(SELECT i FROM integers WHERE i=i1.i OR i IS NULL) FROM integers i1 ORDER BY i; +--True +--True +--True +--NULL + +/*Wrong results +SELECT i=ALL(SELECT i FROM integers WHERE i=i1.i OR i IS NULL) FROM integers i1 ORDER BY i;*/ +--NULL +--NULL +--NULL +--NULL + +SELECT MIN(i)>ANY(SELECT i FROM integers WHERE i>MIN(i1.i)) FROM integers i1; +--False + +SELECT SUM(i)>ANY(SELECT i FROM integers WHERE i>MIN(i1.i)) FROM integers i1; +--True + +/*BROKEN +SELECT (SELECT SUM(i)+SUM(i1.i) FROM integers)>ANY(SELECT i FROM integers WHERE i>MIN(i1.i)) FROM integers i1;*/ +--True + +SELECT i=ANY(SELECT i FROM integers WHERE i=i1.i AND i>10) FROM integers i1 ORDER BY i; +--False +--False +--False +--False + DROP TABLE integers; diff --git a/sql/test/subquery/Tests/any_all.stable.out b/sql/test/subquery/Tests/any_all.stable.out --- a/sql/test/subquery/Tests/any_all.stable.out +++ b/sql/test/subquery/Tests/any_all.stable.out @@ -23,26 +23,26 @@ stdout of test 'any_all` in directory 's # 19:15:04 > #SELECT 1 = ANY(SELECT 1); -- true -% .L5 # table_name -% L5 # name +% .L11 # table_name +% L11 # name % boolean # type % 5 # length [ true ] #SELECT 1 = ANY(SELECT NULL); -- NULL -% .L5 # table_name -% L5 # name +% .L11 # table_name +% L11 # name % boolean # type % 5 # length [ NULL ] #SELECT 1 = ANY(SELECT 2); -- false -% .L5 # table_name -% L5 # name +% .L11 # table_name +% L11 # name % boolean # type % 5 # length [ false ] #SELECT NULL = ANY(SELECT 2); -- NULL -% .L5 # table_name -% L5 # name +% .L11 # table_name +% L11 # name % boolean # type % 5 # length [ NULL ] @@ -74,79 +74,198 @@ stdout of test 'any_all` in directory 's #INSERT INTO integers VALUES (1), (2), (3); [ 3 ] #SELECT 2 > ANY(SELECT * FROM integers); -- true -% .L10 # table_name -% L10 # name +% .L7 # table_name +% L7 # name % boolean # type % 5 # length [ true ] #SELECT 1 > ANY(SELECT * FROM integers); -- false -% .L10 # table_name -% L10 # name +% .L7 # table_name +% L7 # name % boolean # type % 5 # length [ false ] #SELECT 4 > ALL(SELECT * FROM integers); -- true -% .L10 # table_name -% L10 # name +% .L7 # table_name +% L7 # name % boolean # type % 5 # length [ true ] #SELECT 1 > ALL(SELECT * FROM integers); -- false -% .L10 # table_name -% L10 # name +% .L7 # table_name +% L7 # name % boolean # type % 5 # length [ false ] #SELECT NULL > ANY(SELECT * FROM integers); -- NULL -% .L10 # table_name -% L10 # name +% .L7 # table_name +% L7 # name % boolean # type % 5 # length [ NULL ] #SELECT NULL > ALL(SELECT * FROM integers); -- NULL -% .L10 # table_name -% L10 # name +% .L7 # table_name +% L7 # name % boolean # type % 5 # length [ NULL ] #INSERT INTO integers VALUES (NULL); [ 1 ] #SELECT 2 > ANY(SELECT * FROM integers); -- true -% .L10 # table_name -% L10 # name +% .L7 # table_name +% L7 # name % boolean # type % 5 # length [ true ] #SELECT 1 > ANY(SELECT * FROM integers); -- NULL -% .L10 # table_name -% L10 # name +% .L7 # table_name +% L7 # name % boolean # type % 5 # length [ NULL ] #SELECT 4 > ALL(SELECT * FROM integers); -- NULL -% .L10 # table_name -% L10 # name +% .L7 # table_name +% L7 # name % boolean # type % 5 # length [ NULL ] #SELECT 1 > ALL(SELECT * FROM integers); -- false -% .L10 # table_name -% L10 # name +% .L7 # table_name +% L7 # name % boolean # type % 5 # length [ false ] #SELECT NULL > ANY(SELECT * FROM integers); -- NULL -% .L10 # table_name -% L10 # name +% .L7 # table_name +% L7 # name % boolean # type % 5 # length [ NULL ] #SELECT NULL > ALL(SELECT * FROM integers); -- NULL -% .L10 # table_name -% L10 # name +% .L7 # table_name +% L7 # name % boolean # type % 5 # length [ NULL ] +#SELECT i=ANY(SELECT i FROM integers WHERE i=i1.i) FROM integers i1 ORDER BY i; +% .L6 # table_name +% L6 # name +% boolean # type +% 5 # length +[ false ] +[ true ] +[ true ] +[ true ] +#SELECT i FROM integers i1 WHERE i=ANY(SELECT i FROM integers WHERE i=i1.i) ORDER BY i; +% sys.i1 # table_name +% i # name +% int # type +% 1 # length +[ 1 ] +[ 2 ] +[ 3 ] +#SELECT i FROM integers i1 WHERE i=ANY(SELECT i FROM integers WHERE i<>i1.i) ORDER BY i; +% sys.i1 # table_name +% i # name +% int # type +% 1 # length +#SELECT i FROM integers i1 WHERE i>ANY(SELECT i FROM integers WHERE i<>i1.i) ORDER BY i; +% sys.i1 # table_name +% i # name +% int # type _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list