Changeset: eada94cda539 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=eada94cda539 Modified Files: sql/test/subquery/Tests/correlated.sql sql/test/subquery/Tests/correlated.stable.out sql/test/subquery/Tests/subquery.sql sql/test/subquery/Tests/subquery.stable.out testing/Mtest.py.in Branch: default Log Message:
Cast sum aggregates into bigints, to avoid an approval test for hugeint. Also while running Mapprove.py, don't test for IPv6 because MAPIPORT env variable is not set. diffs (239 lines): diff --git a/sql/test/subquery/Tests/correlated.sql b/sql/test/subquery/Tests/correlated.sql --- a/sql/test/subquery/Tests/correlated.sql +++ b/sql/test/subquery/Tests/correlated.sql @@ -103,12 +103,12 @@ SELECT i, (SELECT MIN(i+2*i1.i) FROM int -- 1, 3 -- 2, 5 -- 3, 7 -SELECT i, SUM(i), (SELECT SUM(i)+SUM(i1.i) FROM integers) FROM integers i1 GROUP BY i ORDER BY i; +SELECT i, CAST(SUM(i) AS BIGINT), CAST((SELECT SUM(i)+SUM(i1.i) FROM integers) AS BIGINT) FROM integers i1 GROUP BY i ORDER BY i; -- NULL, NULL, NULL -- 1, 1, 7 -- 2, 2, 8 -- 3, 3, 9 -SELECT i, SUM(i), (SELECT SUM(i)+COUNT(i1.i) FROM integers) FROM integers i1 GROUP BY i ORDER BY i; +SELECT i, CAST(SUM(i) AS BIGINT), CAST((SELECT SUM(i)+COUNT(i1.i) FROM integers) AS BIGINT) FROM integers i1 GROUP BY i ORDER BY i; -- NULL, NULL, 6 -- 1, 1, 7 -- 2, 2, 7 @@ -126,17 +126,17 @@ SELECT i, (SELECT MIN(i+2*i1.i) FROM int -- 2, 5 -- 3, 7 -- aggregate ONLY inside subquery -SELECT (SELECT SUM(i1.i)) FROM integers i1; -- 6 +SELECT CAST((SELECT SUM(i1.i)) AS BIGINT) FROM integers i1; -- 6 -- aggregate ONLY inside subquery, with column reference outside of subquery --SELECT FIRST(i), (SELECT SUM(i1.i)) FROM integers i1; -- missing FIRST aggregate -SELECT MIN(i), (SELECT SUM(i1.i)) FROM integers i1; -- 1, 6 +SELECT MIN(i), CAST((SELECT SUM(i1.i)) AS BIGINT) FROM integers i1; -- 1, 6 -- this will fail, because "i" is not an aggregate but the SUM(i1.i) turns this query into an aggregate SELECT i, (SELECT SUM(i1.i)) FROM integers i1; SELECT i+1, (SELECT SUM(i1.i)) FROM integers i1; -SELECT MIN(i), (SELECT SUM(i1.i)) FROM integers i1; -- 1, 6 -SELECT (SELECT SUM(i1.i)), (SELECT SUM(i1.i)) FROM integers i1; -- 6, 6 +SELECT MIN(i), CAST((SELECT SUM(i1.i)) AS BIGINT) FROM integers i1; -- 1, 6 +SELECT CAST((SELECT SUM(i1.i)) AS BIGINT), CAST((SELECT SUM(i1.i)) AS BIGINT) FROM integers i1; -- 6, 6 -- subquery inside aggregation -SELECT SUM(i), SUM((SELECT i FROM integers WHERE i=i1.i)) FROM integers i1; -- 6, 6 +SELECT CAST(SUM(i) AS BIGINT), CAST(SUM((SELECT i FROM integers WHERE i=i1.i)) AS BIGINT) FROM integers i1; -- 6, 6 SELECT SUM(i), (SELECT SUM(i) FROM integers WHERE i>SUM(i1.i)) FROM integers i1; -- 6, NULL -- subquery with aggregation inside aggregation should fail SELECT SUM((SELECT SUM(i))) FROM integers; -- error diff --git a/sql/test/subquery/Tests/correlated.stable.out b/sql/test/subquery/Tests/correlated.stable.out --- a/sql/test/subquery/Tests/correlated.stable.out +++ b/sql/test/subquery/Tests/correlated.stable.out @@ -142,19 +142,19 @@ stdout of test 'correlated` in directory [ 1, 3 ] [ 2, 5 ] [ 3, 7 ] -#SELECT i, SUM(i), (SELECT SUM(i)+SUM(i1.i) FROM integers) FROM integers i1 GROUP BY i ORDER BY i; -% sys.i1, sys.L3, .L14 # table_name -% i, L3, L14 # name -% int, hugeint, hugeint # type +#SELECT i, CAST(SUM(i) AS BIGINT), CAST((SELECT SUM(i)+SUM(i1.i) FROM integers) AS BIGINT) FROM integers i1 GROUP BY i ORDER BY i; +% sys.i1, sys.L4, .L16 # table_name +% i, L4, L16 # name +% int, bigint, bigint # type % 1, 1, 2 # length [ NULL, NULL, NULL ] [ 1, 1, 10 ] [ 2, 2, 14 ] [ 3, 3, 18 ] -#SELECT i, SUM(i), (SELECT SUM(i)+COUNT(i1.i) FROM integers) FROM integers i1 GROUP BY i ORDER BY i; -% sys.i1, sys.L3, .L14 # table_name -% i, L3, L14 # name -% int, hugeint, hugeint # type +#SELECT i, CAST(SUM(i) AS BIGINT), CAST((SELECT SUM(i)+COUNT(i1.i) FROM integers) AS BIGINT) FROM integers i1 GROUP BY i ORDER BY i; +% sys.i1, sys.L4, .L16 # table_name +% i, L4, L16 # name +% int, bigint, bigint # type % 1, 1, 2 # length [ NULL, NULL, 6 ] [ 1, 1, 10 ] @@ -178,34 +178,34 @@ stdout of test 'correlated` in directory [ 1, 3 ] [ 2, 5 ] [ 3, 7 ] -#SELECT (SELECT SUM(i1.i)) FROM integers i1; -- 6 -% sys.L3 # table_name -% L3 # name -% hugeint # type +#SELECT CAST((SELECT SUM(i1.i)) AS BIGINT) FROM integers i1; -- 6 +% sys.L4 # table_name +% L4 # name +% bigint # type % 1 # length [ 6 ] -#SELECT MIN(i), (SELECT SUM(i1.i)) FROM integers i1; -- 1, 6 -% sys.L3, sys.L5 # table_name -% L3, L5 # name -% int, hugeint # type +#SELECT MIN(i), CAST((SELECT SUM(i1.i)) AS BIGINT) FROM integers i1; -- 1, 6 +% sys.L3, sys.L6 # table_name +% L3, L6 # name +% int, bigint # type % 1, 1 # length [ 1, 6 ] -#SELECT MIN(i), (SELECT SUM(i1.i)) FROM integers i1; -- 1, 6 -% sys.L3, sys.L5 # table_name -% L3, L5 # name -% int, hugeint # type +#SELECT MIN(i), CAST((SELECT SUM(i1.i)) AS BIGINT) FROM integers i1; -- 1, 6 +% sys.L3, sys.L6 # table_name +% L3, L6 # name +% int, bigint # type % 1, 1 # length [ 1, 6 ] -#SELECT (SELECT SUM(i1.i)), (SELECT SUM(i1.i)) FROM integers i1; -- 6, 6 -% sys.L3, sys.L5 # table_name -% L3, L5 # name -% hugeint, hugeint # type +#SELECT CAST((SELECT SUM(i1.i)) AS BIGINT), CAST((SELECT SUM(i1.i)) AS BIGINT) FROM integers i1; -- 6, 6 +% sys.L4, sys.L7 # table_name +% L4, L7 # name +% bigint, bigint # type % 1, 1 # length [ 6, 6 ] -#SELECT SUM(i), SUM((SELECT i FROM integers WHERE i=i1.i)) FROM integers i1; -- 6, 6 -% sys.L3, .L7 # table_name -% L3, L7 # name -% hugeint, hugeint # type +#SELECT CAST(SUM(i) AS BIGINT), CAST(SUM((SELECT i FROM integers WHERE i=i1.i)) AS BIGINT) FROM integers i1; -- 6, 6 +% sys.L4, .L11 # table_name +% L4, L11 # name +% bigint, bigint # type % 1, 1 # length [ 6, 6 ] #SELECT i, (SELECT MIN(i) FROM integers WHERE i>i1.i) FROM integers i1 ORDER BY i; diff --git a/sql/test/subquery/Tests/subquery.sql b/sql/test/subquery/Tests/subquery.sql --- a/sql/test/subquery/Tests/subquery.sql +++ b/sql/test/subquery/Tests/subquery.sql @@ -61,19 +61,19 @@ SELECT * FROM integers WHERE 1 IN (SELEC SELECT 1 IN (SELECT NULL) FROM integers; SELECT NULL IN (SELECT * FROM integers) FROM integers; -SELECT SUM(i) FROM integers WHERE 1 IN (SELECT * FROM integers); -- 6 +SELECT CAST(SUM(i) AS BIGINT) FROM integers WHERE 1 IN (SELECT * FROM integers); -- 6 -- moved ANY into any.sql -- moved ALL into all.sql SELECT (SELECT (SELECT (SELECT 42))); -- 42 SELECT (SELECT EXISTS(SELECT * FROM integers WHERE i>2)) FROM integers; -- single column 4xtrue -SELECT (SELECT MAX(i) FROM integers) AS k, SUM(i) FROM integers GROUP BY k; -- 3,6 +SELECT (SELECT MAX(i) FROM integers) AS k, CAST(SUM(i) AS BIGINT) FROM integers GROUP BY k; -- 3,6 -- more all into all.sql -SELECT i % 2 AS k, SUM(i) FROM integers GROUP BY k HAVING SUM(i) > (SELECT MAX(i) FROM integers); -- 1,4 +SELECT i % 2 AS k, CAST(SUM(i) AS BIGINT) FROM integers GROUP BY k HAVING SUM(i) > (SELECT MAX(i) FROM integers); -- 1,4 SELECT i FROM integers WHERE NOT(i IN (SELECT i FROM integers WHERE i>1)); -- 1 -SELECT (SELECT SUM(i) FROM integers), (SELECT 42); +SELECT (SELECT CAST(SUM(i) AS BIGINT) FROM integers), (SELECT 42); drop TABLE integers; diff --git a/sql/test/subquery/Tests/subquery.stable.out b/sql/test/subquery/Tests/subquery.stable.out --- a/sql/test/subquery/Tests/subquery.stable.out +++ b/sql/test/subquery/Tests/subquery.stable.out @@ -256,10 +256,10 @@ stdout of test 'subquery` in directory ' [ NULL ] [ NULL ] [ NULL ] -#SELECT SUM(i) FROM integers WHERE 1 IN (SELECT * FROM integers); -- 6 -% sys.L5 # table_name -% L5 # name -% hugeint # type +#SELECT cast(SUM(i) as bigint) FROM integers WHERE 1 IN (SELECT * FROM integers); -- 6 +% sys.L7 # table_name +% L7 # name +% bigint # type % 1 # length [ 6 ] #SELECT (SELECT (SELECT (SELECT 42))); -- 42 @@ -277,16 +277,16 @@ stdout of test 'subquery` in directory ' [ true ] [ true ] [ true ] -#SELECT (SELECT MAX(i) FROM integers) AS k, SUM(i) FROM integers GROUP BY k; -- 3,6 -% .L3, .L6 # table_name -% k, L6 # name -% int, hugeint # type +#SELECT (SELECT MAX(i) FROM integers) AS k, cast(SUM(i) as bigint) FROM integers GROUP BY k; -- 3,6 +% .L3, .L7 # table_name +% k, L7 # name +% int, bigint # type % 1, 1 # length [ 3, 6 ] -#SELECT i % 2 AS k, SUM(i) FROM integers GROUP BY k HAVING SUM(i) > (SELECT MAX(i) FROM integers); -- 1,4 -% sys.L2, sys.L4 # table_name -% k, L4 # name -% int, hugeint # type +#SELECT i % 2 AS k, cast(SUM(i) as bigint) FROM integers GROUP BY k HAVING SUM(i) > (SELECT MAX(i) FROM integers); -- 1,4 +% sys.L2, sys.L5 # table_name +% k, L5 # name +% int, bigint # type % 1, 1 # length [ 1, 4 ] #SELECT i FROM integers WHERE NOT(i IN (SELECT i FROM integers WHERE i>1)); -- 1 @@ -295,10 +295,10 @@ stdout of test 'subquery` in directory ' % int # type % 1 # length [ 1 ] -#SELECT (SELECT SUM(i) FROM integers), (SELECT 42); -% .L5, .L7 # table_name -% L5, L7 # name -% hugeint, tinyint # type +#SELECT (SELECT cast(SUM(i) as bigint) FROM integers), (SELECT 42); +% .L6, .L10 # table_name +% L6, L10 # name +% bigint, tinyint # type % 1, 2 # length [ 6, 42 ] #drop TABLE integers; diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in --- a/testing/Mtest.py.in +++ b/testing/Mtest.py.in @@ -4102,14 +4102,15 @@ def main(argv) : except: CONDITIONALS['BAD_HOSTNAME'] = '#' # True - s = socket.socket(socket.AF_INET6, socket.SOCK_STREAM) - try: - s.bind(('::1', int(env['MAPIPORT']))) - except socket.error as err: - CONDITIONALS['HAVE_IPV6'] = '' # False - else: - CONDITIONALS['HAVE_IPV6'] = '#' # True - s.close() + if THISFILE == "Mtest.py": # env['MAPIPORT'] not available on Mapprove.py + s = socket.socket(socket.AF_INET6, socket.SOCK_STREAM) + try: + s.bind(('::1', int(env['MAPIPORT']))) + except socket.error as err: + CONDITIONALS['HAVE_IPV6'] = '' # False + else: + CONDITIONALS['HAVE_IPV6'] = '#' # True + s.close() # read '.Mapprove.rc' if THISFILE == 'Mapprove.py': _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list