Files
email-tracker/external/duckdb/test/issues/monetdb/analytics13.test_slow
2025-10-24 19:21:19 -05:00

487 lines
9.7 KiB
Plaintext

# name: test/issues/monetdb/analytics13.test_slow
# description: MonetDB Test for grouping sets
# group: [monetdb]
statement ok
PRAGMA enable_verification
statement ok
CREATE TABLE tbl_ProductSales (ColID int, Product_Category varchar(64), Product_Name varchar(64), TotalSales int);
statement ok
CREATE TABLE another_T (col1 INT, col2 INT, col3 INT, col4 INT, col5 INT, col6 INT, col7 INT, col8 INT);
statement ok
INSERT INTO tbl_ProductSales VALUES (1,'Game','Mobo Game',200),(2,'Game','PKO Game',400),(3,'Fashion','Shirt',500),(4,'Fashion','Shorts',100);
statement ok
INSERT INTO another_T VALUES (1,2,3,4,5,6,7,8), (11,22,33,44,55,66,77,88), (111,222,333,444,555,666,777,888), (1111,2222,3333,4444,5555,6666,7777,8888);
statement error
SELECT
(SELECT GROUPING(colID) FROM tbl_ProductSales)
FROM another_T t1
----
query I rowsort
SELECT
col1 IN (SELECT ColID FROM tbl_ProductSales)
FROM another_T
GROUP BY ROLLUP(col1)
----
0
0
0
1
NULL
query I rowsort
SELECT
col1 IN (SELECT ColID + col1 FROM tbl_ProductSales)
FROM another_T
GROUP BY ROLLUP(col1)
----
0
0
0
0
NULL
query I rowsort
SELECT
col1 IN (SELECT SUM(ColID + col1) FROM tbl_ProductSales)
FROM another_T
GROUP BY ROLLUP(col1)
----
0
0
0
0
NULL
query I rowsort
SELECT
col3 > ALL (SELECT 1 FROM tbl_ProductSales HAVING MIN(col4) > 30)
FROM another_T
GROUP BY ROLLUP(col3, col4)
----
1
1
1
1
1
1
1
1
1
query I rowsort
SELECT
col1 = ALL (SELECT 1 FROM tbl_ProductSales HAVING MIN(col2) IS NULL)
FROM another_T
GROUP BY CUBE(col1, col2)
----
1
1
1
1
1
1
1
1
1
1
1
1
1
query I rowsort
SELECT
SUM(col1) IN (SELECT DISTINCT col2 FROM another_T GROUP BY col2)
FROM another_T
GROUP BY CUBE(col4)
----
0
0
0
0
0
query I rowsort
SELECT
1 IN (SELECT 1 FROM tbl_ProductSales GROUP BY CUBE(t1.col1, tbl_ProductSales.ColID))
FROM another_T t1
----
1
1
1
1
query I rowsort
SELECT
t1.col1 IN (SELECT ColID FROM tbl_ProductSales GROUP BY CUBE(t1.col1, tbl_ProductSales.ColID))
FROM another_T t1
GROUP BY CUBE(col1, col2)
----
1
1
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
query IIIIIII rowsort
SELECT
NOT GROUPING(t1.col6) IN (SELECT SUM(t1.col6) FROM tbl_ProductSales tp HAVING MAX(t1.col1) > MIN(tp.colID)),
GROUPING(t1.col6) IN (SELECT SUM(t1.col7) HAVING GROUPING(t1.col7) < SUM(t1.col4)),
GROUPING(t1.col6) = ALL (SELECT 1),
GROUPING(t1.col6) = ALL (SELECT SUM(t1.col7)),
SUM(t1.col6) = ALL (SELECT GROUPING(t1.col7)),
GROUPING(t1.col6) = ALL (SELECT GROUPING(t1.col7)),
GROUPING(t1.col6) = ALL (SELECT GROUPING(t1.col7) FROM tbl_ProductSales)
FROM another_T t1
GROUP BY CUBE(t1.col6, t1.col7)
----
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
query IIIIIII rowsort
SELECT
DISTINCT
NOT GROUPING(t1.col6) IN (SELECT SUM(t1.col6) FROM tbl_ProductSales tp HAVING MAX(t1.col1) > MIN(tp.colID)),
GROUPING(t1.col6) IN (SELECT SUM(t1.col7) HAVING GROUPING(t1.col7) < SUM(t1.col4)),
GROUPING(t1.col6) = ALL (SELECT 1),
GROUPING(t1.col6) = ALL (SELECT SUM(t1.col7)),
SUM(t1.col6) = ALL (SELECT GROUPING(t1.col7)),
GROUPING(t1.col6) = ALL (SELECT GROUPING(t1.col7)),
GROUPING(t1.col6) = ALL (SELECT GROUPING(t1.col7) FROM tbl_ProductSales)
FROM another_T t1
GROUP BY CUBE(t1.col6, t1.col7)
----
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
query IIIII rowsort
SELECT
NOT col1 * col5 = ALL (SELECT 1 FROM tbl_ProductSales HAVING MAX(col2) > 2),
NOT AVG(col2) * col1 <> ANY (SELECT 20 FROM tbl_ProductSales HAVING MAX(col1) IS NULL),
NOT EXISTS (SELECT ColID - 12 FROM tbl_ProductSales GROUP BY ColID HAVING MAX(col1) IS NOT NULL OR MIN(col1) < MIN(col2)),
CAST (NOT col1 IN (SELECT col2 FROM another_T GROUP BY col2) AS INTEGER) | CAST (col2 IN (SELECT col2 FROM another_T GROUP BY col2) AS INTEGER),
CAST (EXISTS (SELECT MAX(col5) * MAX(col4) FROM another_T GROUP BY col5, col4) AS INTEGER) & CAST (GROUPING(col1, col5) IN (SELECT DISTINCT col2 FROM another_T GROUP BY col2) AS INTEGER)
FROM another_T
GROUP BY CUBE(col1, col2, col5)
----
145 values hashing to 2180373d9debdb69ad704a767deb2e0a
query IIIII rowsort
SELECT
NOT col1 * col5 = ALL (SELECT 1 FROM tbl_ProductSales HAVING MAX(col2) > 2) AS a1,
NOT AVG(col2) * col1 <> ANY (SELECT 20 FROM tbl_ProductSales HAVING MAX(col1) IS NULL) AS a2,
NOT EXISTS (SELECT ColID - 12 FROM tbl_ProductSales GROUP BY ColID HAVING MAX(col1) IS NOT NULL OR MIN(col1) < MIN(col2)) AS a3,
CAST (NOT col1 IN (SELECT col2 FROM another_T GROUP BY col2) AS INTEGER) | CAST (col2 IN (SELECT col2 FROM another_T GROUP BY col2) AS INTEGER) AS a4,
CAST (EXISTS (SELECT MAX(col5) * MAX(col4) FROM another_T GROUP BY col5, col4) AS INTEGER) & CAST (GROUPING(col1, col5) IN (SELECT DISTINCT col2 FROM another_T GROUP BY col2) AS INTEGER) AS a5
FROM another_T
GROUP BY CUBE(col1, col2, col5)
ORDER BY a1 NULLS FIRST, a2 NULLS FIRST, a3 NULLS FIRST, a4 NULLS FIRST, a5 NULLS FIRST
----
145 values hashing to 2180373d9debdb69ad704a767deb2e0a
query IRIIIIII
SELECT
GROUPING(col1, col2, col3, col4, col5, col6, col7, col8), AVG(col1), CAST(SUM(col2) * 3 AS BIGINT), col3 + col4,
CAST(MAX(col5) * MIN(col6) AS BIGINT), col7, col1 IN (SELECT ColID FROM tbl_ProductSales), col2 IN (SELECT ColID + col3 FROM tbl_ProductSales)
FROM another_T
GROUP BY ROLLUP(col1, col2, col3, col4, col5, col6, col7, col8)
ORDER BY GROUPING(col1, col2, col3, col4, col5, col6, col7, col8), 2, 3, 4
----
0 1.00000000000000000000 6 7 30 7 True False
0 11.0000000000000000 66 77 3630 77 False False
0 111.0000000000000000 666 777 369630 777 False False
0 1111.0000000000000000 6666 7777 37029630 7777 False False
1 1.00000000000000000000 6 7 30 7 True False
1 11.0000000000000000 66 77 3630 77 False False
1 111.0000000000000000 666 777 369630 777 False False
1 1111.0000000000000000 6666 7777 37029630 7777 False False
3 1.00000000000000000000 6 7 30 NULL True False
3 11.0000000000000000 66 77 3630 NULL False False
3 111.0000000000000000 666 777 369630 NULL False False
3 1111.0000000000000000 6666 7777 37029630 NULL False False
7 1.00000000000000000000 6 7 30 NULL True False
7 11.0000000000000000 66 77 3630 NULL False False
7 111.0000000000000000 666 777 369630 NULL False False
7 1111.0000000000000000 6666 7777 37029630 NULL False False
15 1.00000000000000000000 6 7 30 NULL True False
15 11.0000000000000000 66 77 3630 NULL False False
15 111.0000000000000000 666 777 369630 NULL False False
15 1111.0000000000000000 6666 7777 37029630 NULL False False
31 1.00000000000000000000 6 NULL 30 NULL True False
31 11.0000000000000000 66 NULL 3630 NULL False False
31 111.0000000000000000 666 NULL 369630 NULL False False
31 1111.0000000000000000 6666 NULL 37029630 NULL False False
63 1.00000000000000000000 6 NULL 30 NULL True NULL
63 11.0000000000000000 66 NULL 3630 NULL False NULL
63 111.0000000000000000 666 NULL 369630 NULL False NULL
63 1111.0000000000000000 6666 NULL 37029630 NULL False NULL
127 1.00000000000000000000 6 NULL 30 NULL True NULL
127 11.0000000000000000 66 NULL 3630 NULL False NULL
127 111.0000000000000000 666 NULL 369630 NULL False NULL
127 1111.0000000000000000 6666 NULL 37029630 NULL False NULL
255 308.5000000000000000 7404 NULL 33330 NULL NULL NULL
query I rowsort
SELECT
DISTINCT
NOT col1 IN (SELECT col2 FROM another_T GROUP BY col2)
FROM another_T
GROUP BY ROLLUP(col1)
----
1
NULL
query IIIII rowsort
SELECT
DISTINCT
NOT col1 * col5 = ALL (SELECT 1 FROM tbl_ProductSales HAVING MAX(col2) > 2),
NOT AVG(col2) * col1 <> ANY (SELECT 20 FROM tbl_ProductSales HAVING MAX(col1) IS NULL),
NOT EXISTS (SELECT ColID - 12 FROM tbl_ProductSales GROUP BY ColID HAVING MAX(col1) IS NOT NULL OR MIN(col1) < MIN(col2)),
CAST (NOT col1 IN (SELECT col2 FROM another_T GROUP BY col2) AS INTEGER) | CAST (col2 IN (SELECT col2 FROM another_T GROUP BY col2) AS INTEGER),
CAST (EXISTS (SELECT MAX(col5) * MAX(col4) FROM another_T GROUP BY col5, col4) AS INTEGER) & CAST (GROUPING(col1, col5) IN (SELECT DISTINCT col2 FROM another_T GROUP BY col2) AS INTEGER)
FROM another_T
GROUP BY CUBE(col1, col2, col5)
----
0
1
0
1
0
0
1
0
NULL
0
0
1
0
NULL
1
1
1
0
1
0
1
1
0
NULL
0
NULL
1
0
1
0
NULL
1
0
NULL
0
NULL
1
0
NULL
1
query IIIII rowsort
SELECT
DISTINCT
NOT col1 * col5 = ALL (SELECT 1 FROM tbl_ProductSales HAVING MAX(col2) > 2) AS a1,
NOT AVG(col2) * col1 <> ANY (SELECT 20 FROM tbl_ProductSales HAVING MAX(col1) IS NULL) AS a2,
NOT EXISTS (SELECT ColID - 12 FROM tbl_ProductSales GROUP BY ColID HAVING MAX(col1) IS NOT NULL OR MIN(col1) < MIN(col2)) AS a3,
CAST (NOT col1 IN (SELECT col2 FROM another_T GROUP BY col2) AS INTEGER) | CAST (col2 IN (SELECT col2 FROM another_T GROUP BY col2) AS INTEGER) AS a4,
CAST (EXISTS (SELECT MAX(col5) * MAX(col4) FROM another_T GROUP BY col5, col4) AS INTEGER) & CAST (GROUPING(col1, col5) IN (SELECT DISTINCT col2 FROM another_T GROUP BY col2) AS INTEGER) AS a5
FROM another_T
GROUP BY CUBE(col1, col2, col5)
ORDER BY a1 NULLS FIRST, a2 NULLS FIRST, a3 NULLS FIRST, a4 NULLS FIRST, a5 NULLS FIRST
----
0
1
0
1
0
0
1
0
NULL
0
0
1
0
NULL
1
1
1
0
1
0
1
1
0
NULL
0
NULL
1
0
1
0
NULL
1
0
NULL
0
NULL
1
0
NULL
1
query I rowsort
SELECT
NOT GROUPING(t1.col2, t1.col4) <> ALL (SELECT t1.col2 FROM tbl_ProductSales tp WHERE tp.colID = 1) a1
FROM another_T t1
GROUP BY ROLLUP(t1.col1, t1.col2), GROUPING SETS ((t1.col4))
HAVING (t1.col1 = ANY (SELECT MAX(ColID + col2) FROM tbl_ProductSales)) NOT IN
((SELECT NOT EXISTS (SELECT t1.col2 FROM tbl_ProductSales WHERE tbl_ProductSales.ColID = t1.col1)) UNION ALL
(SELECT NOT GROUPING(t1.col1) BETWEEN (SELECT MAX(t1.col7) EXCEPT SELECT tp.ColID FROM tbl_ProductSales tp) AND (SELECT MIN(t1.col5) EXCEPT SELECT t1.col2)))
ORDER BY a1 DESC NULLS FIRST
----
0
0
0
statement ok
DROP TABLE tbl_ProductSales
statement ok
DROP TABLE another_T