should be it

This commit is contained in:
2025-10-24 19:21:19 -05:00
parent a4b23fc57c
commit f09560c7b1
14047 changed files with 3161551 additions and 1 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,468 @@
# name: test/issues/monetdb/analytics11.test
# 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)
query I rowsort
SELECT 1
FROM tbl_ProductSales
GROUP BY Product_Category
----
1
1
query I rowsort
SELECT 1
FROM tbl_ProductSales
GROUP BY ()
----
1
statement error
SELECT
GROUPING()
FROM tbl_ProductSales
GROUP BY Product_Category
----
statement error
SELECT
1
FROM tbl_ProductSales
GROUP BY GROUPING(Product_Name)
----
statement error
SELECT
1
FROM tbl_ProductSales
WHERE GROUPING(Product_Category) > 1
GROUP BY GROUPING SETS((Product_Category))
----
statement error
SELECT
AVG(GROUPING(Product_Category))
FROM tbl_ProductSales
GROUP BY GROUPING SETS((Product_Category))
----
statement error
SELECT
GROUPING(1)
FROM tbl_ProductSales
GROUP BY Product_Category
----
statement error
SELECT
col1 IN (SELECT ColID + col2 FROM tbl_ProductSales)
FROM another_T
GROUP BY ROLLUP(col1)
----
statement error
SELECT
(SELECT GROUPING(t1.col1) FROM tbl_ProductSales)
FROM another_T t1
----
statement error
SELECT
GROUPING(Product_Name)
FROM tbl_ProductSales
----
statement error
SELECT
GROUPING(Product_Name)
FROM tbl_ProductSales GROUP BY ()
----
query I rowsort
SELECT
GROUPING(Product_Category) AS myalias
FROM tbl_ProductSales
GROUP BY Product_Category
----
0
0
query I rowsort
SELECT
GROUPING(Product_Category) myalias
FROM tbl_ProductSales
GROUP BY Product_Category, Product_Name
----
0
0
0
0
query I rowsort
SELECT
GROUPING(Product_Name, Product_Category)
FROM tbl_ProductSales
GROUP BY Product_Category, Product_Name
----
0
0
0
0
query I rowsort
SELECT
GROUPING(Product_Category) AS myalias
FROM tbl_ProductSales
GROUP BY ROLLUP(Product_Category)
----
0
0
1
query I rowsort
SELECT
GROUPING(Product_Category) AS myalias
FROM tbl_ProductSales
GROUP BY Product_Category, ROLLUP(Product_Category)
----
0
0
0
0
query I rowsort
SELECT
GROUPING(Product_Category, Product_Name, ColID)
FROM tbl_ProductSales
GROUP BY ROLLUP(Product_Category, Product_Name, ColID)
----
0
0
0
0
1
1
1
1
3
3
7
query I rowsort
SELECT
GROUPING(Product_Category, Product_Name, ColID)
FROM tbl_ProductSales
GROUP BY ROLLUP((Product_Category, Product_Name, ColID))
----
0
0
0
0
7
query I rowsort
SELECT
GROUPING(Product_Category, ColID)
FROM tbl_ProductSales
GROUP BY ROLLUP((Product_Category, Product_Name, ColID))
----
0
0
0
0
3
query I rowsort
SELECT
GROUPING(Product_Category, ColID)
FROM tbl_ProductSales
GROUP BY CUBE((Product_Category, Product_Name, ColID))
----
0
0
0
0
3
query I rowsort
SELECT
GROUPING(Product_Category)
FROM tbl_ProductSales
GROUP BY GROUPING SETS((Product_Category), (Product_Name), (Product_Category, Product_Name), ())
ORDER BY GROUPING(Product_Category)
----
0
0
0
0
0
0
1
1
1
1
1
query I rowsort
SELECT
GROUPING(Product_Category)
FROM tbl_ProductSales
GROUP BY GROUPING SETS((Product_Category), (Product_Name), (Product_Category, Product_Name), ())
HAVING GROUPING(Product_Category) = 0
----
0
0
0
0
0
0
query II rowsort
SELECT
GROUPING(Product_Category, Product_Name, ColID), GROUPING(Product_Name, ColID)
FROM tbl_ProductSales
GROUP BY CUBE((Product_Category, Product_Name, ColID))
ORDER BY GROUPING(Product_Category, ColID)
----
0
0
0
0
0
0
0
0
7
3
query I rowsort
SELECT
GROUPING(Product_Category, Product_Name, ColID) + 1
FROM tbl_ProductSales
GROUP BY ROLLUP(Product_Category, Product_Name, ColID)
HAVING GROUPING(Product_Category, Product_Name, ColID) <> 3
ORDER BY GROUPING(Product_Category, Product_Name, ColID) DESC
----
1
1
1
1
2
2
2
2
8
# this query was non-deterministic before, "ORDER BY Product_Category, Product_Name" had to be added
# now we have the same results as Postgres
query IR
SELECT
GROUPING(Product_Category), AVG(SUM(TotalSales)) OVER (ORDER BY Product_Category, Product_Name ROWS UNBOUNDED PRECEDING)
FROM tbl_ProductSales
GROUP BY GROUPING SETS((Product_Category), (Product_Name), (Product_Category, Product_Name), ())
----
0 500.0
0 300.0
0 400.0
0 350.0
0 360.0
0 400.0
1 371.42857142857144
1 375.0
1 388.8888888888889
1 360.0
1 436.3636363636364
query II rowsort
SELECT
GROUPING(Product_Category), RANK() OVER (PARTITION BY SUM(TotalSales))
FROM tbl_ProductSales
GROUP BY GROUPING SETS((Product_Category), (Product_Name), (Product_Category, Product_Name), ())
----
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
query I rowsort
SELECT
CASE WHEN GROUPING(Product_Category, Product_Name, ColID) * 10 = 30 THEN 2 ELSE NULL END
FROM tbl_ProductSales
GROUP BY ROLLUP(Product_Category, Product_Name, ColID)
----
2
2
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
query II
SELECT
GROUPING(Product_Category, Product_Name), SUM(TotalSales)
FROM tbl_ProductSales
GROUP BY GROUPING SETS((Product_Category), (Product_Name), (Product_Category, Product_Name), ())
ORDER BY 1, 2
----
0 100
0 200
0 400
0 500
1 600
1 600
2 100
2 200
2 400
2 500
3 1200
query IIII rowsort
SELECT
GROUPING(Product_Category),
CAST(SUM(SUM(TotalSales)) OVER (RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS BIGINT),
CAST(SUM(GROUPING(Product_Category, Product_Name)) OVER (RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS BIGINT),
RANK() OVER (PARTITION BY SUM(ColID))
FROM tbl_ProductSales
GROUP BY GROUPING SETS((Product_Category), (Product_Name), (Product_Category, Product_Name), ())
----
0
4800
13
1
0
4800
13
1
0
4800
13
1
0
4800
13
1
0
4800
13
1
0
4800
13
1
1
4800
13
1
1
4800
13
1
1
4800
13
1
1
4800
13
1
1
4800
13
1
statement ok
CREATE TABLE tbl_X (ColID int, NItems int)
statement ok
INSERT INTO tbl_X VALUES (1,1000),(2,500),(3,323),(4,0)
query II rowsort
SELECT myalias, COUNT(*) FROM
(
SELECT
GROUPING(tbl_ProductSales.ColID, tbl_X.ColID) AS myalias
FROM tbl_ProductSales
INNER JOIN tbl_X
ON tbl_ProductSales.ColID = tbl_X.ColID
WHERE tbl_X.NItems < 1000
GROUP BY CUBE(tbl_ProductSales.Product_Category, tbl_ProductSales.Product_Name, tbl_ProductSales.ColID), ROLLUP(tbl_X.ColID, tbl_X.NItems)
) AS SubTables GROUP BY myalias ORDER BY myalias
----
0
24
1
12
2
24
3
9
statement error
SELECT
GROUPING(ColID, ColID)
FROM tbl_ProductSales
INNER JOIN tbl_X
ON tbl_ProductSales.ColID = tbl_X.ColID
GROUP BY CUBE(tbl_ProductSales.Product_Category)
----
query I rowsort
SELECT
GROUPING(tbl_ProductSales.ColID, tbl_X.ColID) AS myalias
FROM tbl_ProductSales
INNER JOIN tbl_X
ON tbl_ProductSales.ColID = tbl_X.ColID
WHERE tbl_X.NItems < 1000
GROUP BY CUBE(Product_Category, Product_Name, tbl_ProductSales.ColID), ROLLUP(tbl_X.ColID, tbl_X.NItems)
ORDER BY SUM(TotalSales) DESC
LIMIT 1
----
3
statement ok
DROP TABLE tbl_ProductSales
statement ok
DROP TABLE tbl_X
statement ok
DROP TABLE another_T

View File

@@ -0,0 +1,179 @@
# name: test/issues/monetdb/analytics12.test
# description: MonetDB Test for grouping sets
# group: [monetdb]
statement ok
PRAGMA enable_verification
statement ok
START TRANSACTION
statement ok
CREATE TABLE tbl_ProductSales (ColID int, Product_Category varchar(64), Product_Name varchar(64), TotalSales 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);
query IIII rowsort
SELECT
GROUPING(Product_Category, Product_Name, ColID), GROUPING(ColID, Product_Category, Product_Name),
GROUPING(Product_Category, Product_Name), GROUPING(Product_Name, Product_Category)
FROM tbl_ProductSales
GROUP BY ROLLUP(Product_Category, Product_Name, ColID)
----
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
4
0
0
1
4
0
0
1
4
0
0
1
4
0
0
3
5
1
2
3
5
1
2
7
7
3
3
query IIIII rowsort
SELECT
GROUPING(Product_Name, Product_Name),
GROUPING(Product_Category, ColID),
GROUPING(ColID, Product_Category),
GROUPING(Product_Category) + GROUPING(Product_Category, Product_Name) + GROUPING(Product_Category, Product_Name, ColID),
CAST(SUM(ColID) AS BIGINT)
FROM tbl_ProductSales
GROUP BY ROLLUP(Product_Category, Product_Name, ColID)
----
0
0
0
0
1
0
0
0
0
2
0
0
0
0
3
0
0
0
0
4
0
1
2
1
1
0
1
2
1
2
0
1
2
1
3
0
1
2
1
4
3
1
2
4
3
3
1
2
4
7
3
3
3
11
10
query IIII
WITH "groupings" AS (
SELECT
GROUPING(Product_Category, Product_Name, ColID) AS col1, GROUPING(ColID, Product_Category, Product_Name) AS col2,
GROUPING(Product_Category, Product_Name) col3, GROUPING(Product_Name, Product_Category) "col4"
FROM tbl_ProductSales
GROUP BY GROUPING SETS ( Product_Category, (Product_Name), ColID,
ROLLUP (Product_Category, ColID),
CUBE (Product_Name, Product_Category),
() )
) SELECT col1, col2, col3, col4 FROM "groupings" ORDER BY col1 NULLS FIRST, col2 NULLS FIRST, col3 NULLS FIRST, col4 NULLS FIRST
----
1 4 0 0
1 4 0 0
1 4 0 0
1 4 0 0
2 1 1 2
2 1 1 2
2 1 1 2
2 1 1 2
3 5 1 2
3 5 1 2
3 5 1 2
3 5 1 2
3 5 1 2
3 5 1 2
5 6 2 1
5 6 2 1
5 6 2 1
5 6 2 1
5 6 2 1
5 6 2 1
5 6 2 1
5 6 2 1
6 3 3 3
6 3 3 3
6 3 3 3
6 3 3 3
7 7 3 3
7 7 3 3
7 7 3 3
statement ok
ROLLBACK

View File

@@ -0,0 +1,486 @@
# 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

View File

@@ -0,0 +1,167 @@
# name: test/issues/monetdb/groupings.test
# description: MonetDB Test for grouping sets
# group: [monetdb]
statement ok
PRAGMA enable_verification
statement ok
START TRANSACTION
statement ok
CREATE TABLE categories (id INTEGER, "description" TEXT);
statement ok
CREATE TABLE sections (id INTEGER, "description" TEXT);
statement ok
CREATE TABLE products (id INTEGER, categoryid int, sectionid INTEGER, "description" TEXT, price DECIMAL(6,2));
statement ok
CREATE TABLE sales (productid INTEGER, sale_day DATE, units INTEGER);
statement ok
INSERT INTO categories VALUES (1, 'fresh food'), (2, 'dry food'), (3, 'drinks');
statement ok
INSERT INTO sections VALUES (1, 'front'), (2, 'side'), (3, 'back');
statement ok
INSERT INTO products VALUES (1, 1, 1, 'apples', 1.5), (2, 1, 2, 'melons', 4.0), (3, 2, 2, 'peanuts', 2.0), (4, 3, 1, 'water', 1.0), (5, 3, 3, 'wine', 5.0), (6, 2, 3, 'walnuts', 1.5);
statement ok
INSERT INTO sales VALUES (1, date '2020-03-01', 10), (2, date '2020-03-01', 3), (4, date '2020-03-01', 4), (1, date '2020-03-02', 6), (4, date '2020-03-02', 5), (5, date '2020-03-02', 2), (1, date '2020-03-03', 7), (3, date '2020-03-03', 4), (2, date '2020-03-03', 3), (5, date '2020-03-03', 1), (6, date '2020-03-03', 1);
query TTR rowsort
SELECT COALESCE(products."description", 'all_products') AS "description",
COALESCE(sale_day::VARCHAR, 'all_days') AS sale_day,
CAST(totals.total AS DECIMAL (12,4))
FROM (
SELECT productid, sale_day, SUM(units * price) AS total
FROM products
LEFT JOIN sales ON sales.productid = products.id
GROUP BY ROLLUP(productid, sale_day)
) AS totals
LEFT JOIN products ON products.id = totals.productid
ORDER BY sale_day NULLS LAST, productid NULLS LAST
----
all_products
all_days
92.000
apples
2020-03-01
15.000
apples
2020-03-02
9.000
apples
2020-03-03
10.500
apples
all_days
34.500
melons
2020-03-01
12.000
melons
2020-03-03
12.000
melons
all_days
24.000
peanuts
2020-03-03
8.000
peanuts
all_days
8.000
walnuts
2020-03-03
1.500
walnuts
all_days
1.500
water
2020-03-01
4.000
water
2020-03-02
5.000
water
all_days
9.000
wine
2020-03-02
10.000
wine
2020-03-03
5.000
wine
all_days
15.000
query TTR rowsort
SELECT COALESCE(sections."description", 'all_sections') AS section,
COALESCE(categories."description", 'all_categories') AS category,
CAST(totals.total AS DECIMAL (12,4))
FROM (
SELECT categoryid, sectionid, SUM(units * price) AS total
FROM products
LEFT JOIN sales ON sales.productid = products.id
GROUP BY GROUPING SETS ((categoryid), (sectionid), ())
) AS totals
LEFT JOIN categories ON totals.categoryid = categories.id
LEFT JOIN sections ON totals.sectionid = sections.id
----
all_sections
all_categories
92.000
all_sections
drinks
24.000
all_sections
dry food
9.500
all_sections
fresh food
58.500
back
all_categories
16.500
front
all_categories
43.500
side
all_categories
32.000
statement ok
CREATE VIEW sales_totals AS
SELECT GROUPING(categoryid) AS category_aggregates,
GROUPING(sectionid) AS section_aggregates,
categoryid, sectionid, SUM(units * price) AS total
FROM products
LEFT JOIN sales ON sales.productid = products.id
GROUP BY GROUPING SETS ((categoryid), (sectionid), ())
query TR rowsort
SELECT "description", CAST(total AS DECIMAL (12,4))
FROM sales_totals
LEFT JOIN categories ON sales_totals.categoryid = categories.id
WHERE category_aggregates = 0
----
drinks
24.000
dry food
9.500
fresh food
58.500
statement error
SELECT * FROM categories GROUP BY ()
----
<REGEX>:Binder Error:.*must appear in the GROUP BY.*
statement ok
ROLLBACK

View File

@@ -0,0 +1,63 @@
# name: test/issues/monetdb/test_boolean_not.test
# description: MonetDB Test: boolean_not.Bug-3505.sql
# group: [monetdb]
statement ok
PRAGMA enable_verification
statement ok
CREATE TABLE BOOLTBL1 (f1 bool);
statement ok
INSERT INTO BOOLTBL1 (f1) VALUES (cast('true' AS boolean));
statement ok
INSERT INTO BOOLTBL1 (f1) VALUES ('true');
statement ok
INSERT INTO BOOLTBL1 (f1) VALUES ('false');
query T
SELECT f1 FROM BOOLTBL1 WHERE f1 = NOT FALSE;
----
1
1
query T
SELECT f1 FROM BOOLTBL1 WHERE f1 = NOT TRUE;
----
0
query T
SELECT f1 FROM BOOLTBL1 WHERE f1 = (NOT FALSE);
----
1
1
query T
SELECT f1 FROM BOOLTBL1 WHERE NOT FALSE = f1;
----
1
1
query T
SELECT f1 FROM BOOLTBL1 WHERE NOT f1 = FALSE;
----
1
1
query T
SELECT f1 FROM BOOLTBL1 WHERE f1 = (NOT TRUE);
----
0
query T
SELECT f1 FROM BOOLTBL1 WHERE NOT TRUE = f1;
----
0
query T
SELECT f1 FROM BOOLTBL1 WHERE NOT f1 = TRUE;
----
0

View File

@@ -0,0 +1,38 @@
# name: test/issues/monetdb/test_correlated_update.test
# description: MonetDB Test: update_with_correlated_subselect.SF-1284791.sql
# group: [monetdb]
statement ok
PRAGMA enable_verification
statement ok
create table t1284791b (id2 int, val2 varchar(255))
statement ok
create table t1284791a (id1 int, val1 varchar(255))
statement ok
insert into t1284791a values (1,'1')
statement ok
insert into t1284791b values (1,'2')
statement ok
update t1284791a set val1 = (select val2 from t1284791b where id1 = id2) where id1 in (select id2 from t1284791b);
query IT
select * from t1284791a
----
1 2
query IT
select * from t1284791b
----
1 2
statement ok
drop table t1284791a;
statement ok
drop table t1284791b;

View File

@@ -0,0 +1,13 @@
# name: test/issues/monetdb/test_left_join_bug.test
# description: MonetDB Test: leftjoin.Bug-3981.sql
# group: [monetdb]
statement ok
PRAGMA enable_verification
query TTI
SELECT * FROM ( SELECT 'apple' as fruit UNION ALL SELECT 'banana' ) a JOIN ( SELECT 'apple' as fruit UNION ALL SELECT 'banana' ) b ON a.fruit=b.fruit LEFT JOIN ( SELECT 1 as isyellow ) c ON b.fruit='banana' ORDER BY 1, 2, 3;
----
apple apple NULL
banana banana 1

View File

@@ -0,0 +1,45 @@
# name: test/issues/monetdb/test_null_matches_outer.test
# description: MonetDB Test: null_matches_in_outer.Bug-6398.sql
# group: [monetdb]
statement ok
SET default_null_order='nulls_first';
statement ok
PRAGMA enable_verification
statement ok
create table "E" ("intCol" bigint, "stringCol" varchar);
statement ok
insert into "E" values (0, 'zero');
statement ok
insert into "E" values (1, 'one');
statement ok
insert into "E" values (2, 'two');
statement ok
insert into "E" values (null, null);
statement ok
create table "I" ("intCol" bigint, "stringCol" varchar);
statement ok
insert into "I" values (2, 'due');
statement ok
insert into "I" values (4, 'quattro');
statement ok
insert into "I" values (null, 'this is not null')
query ITIT
select * from "E" left outer join "I" on "E"."intCol" = "I"."intCol" or ("E"."intCol" is null and "I"."intCol" is null) ORDER BY 1;
----
NULL NULL NULL this is not null
0 zero NULL NULL
1 one NULL NULL
2 two 2 due

View File

@@ -0,0 +1,21 @@
# name: test/issues/monetdb/test_outerjoin_project.test
# description: MonetDB Test: outerjoin_project.Bug-3725.sql
# group: [monetdb]
statement ok
PRAGMA enable_verification
statement ok
create table a (a integer);
statement ok
create table b (a integer);
statement ok
insert into a values (1);
query II
select * from a left join (select a, 20 from b) as x using (a);
----
1 NULL

View File

@@ -0,0 +1,38 @@
# name: test/issues/monetdb/test_round_bug.test
# description: MonetDB Test: round.Bug-3542.sql
# group: [monetdb]
statement ok
PRAGMA enable_verification
statement ok
CREATE TABLE test_num_data (id integer, val decimal(18,10));
statement ok
INSERT INTO test_num_data VALUES (1, '-0.0');
statement ok
INSERT INTO test_num_data VALUES (2, '-34338492.215397047');
query IR
SELECT * FROM test_num_data ORDER BY id
----
1 0.000000
2 -34338492.215397047
query IIR
SELECT t1.id, t2.id, t1.val::DECIMAL(38,10) * t2.val FROM test_num_data t1, test_num_data t2 ORDER BY 1, 2;
----
1 1 0.000000
1 2 -0.000000
2 1 -0.000000
2 2 1179132047626883.59686213585632020900
query IIR
SELECT t1.id, t2.id, round(t1.val::DECIMAL(38,10) * t2.val, 30) FROM test_num_data t1, test_num_data t2 ORDER BY 1, 2;
----
1 1 0
1 2 0
2 1 0
2 2 1179132047626883.596862135856320209000000000000

View File

@@ -0,0 +1,43 @@
# name: test/issues/monetdb/test_simple_round.test
# description: Test simple round usage
# group: [monetdb]
statement ok
PRAGMA enable_verification
statement ok
create table test (col1 double);
statement ok
insert into test values (2.887);
query R
select round(col1, -1) from test;
----
0
query R
select round(col1, 0) from test;
----
3.000000
query R
select round(col1, 1) from test;
----
2.900000
query R
select round(col1, 2) from test;
----
2.890000
query R
select round(col1, 3) from test;
----
2.887000
query R
select round(col1, 4) from test;
----
2.887000

View File

@@ -0,0 +1,550 @@
# name: test/issues/monetdb/test_spinque.test_slow
# description: Spinque test: many nested views
# group: [monetdb]
statement ok
START TRANSACTION;
statement ok
CREATE TABLE params_str (paramname VARCHAR, value VARCHAR, prob DOUBLE);
statement ok
CREATE TABLE params_int (paramname VARCHAR, value BIGINT, prob DOUBLE);
statement ok
CREATE TABLE bm_0_obj_dict (id INTEGER NOT NULL, idstr VARCHAR NOT NULL, prob DOUBLE NOT NULL, CONSTRAINT bm_0_obj_dict_id_pkey PRIMARY KEY (id), CONSTRAINT bm_0_obj_dict_idstr_unique UNIQUE (idstr));
statement ok
CREATE TABLE _cachedrel_6 (a1 INTEGER, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_21 (a1 VARCHAR, a2 VARCHAR, a3 VARCHAR, a4 VARCHAR, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_27 (a1 VARCHAR, a2 VARCHAR, a3 VARCHAR, a4 VARCHAR, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_31 (a1 INTEGER, a2 VARCHAR, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_40 (a1 INTEGER, a2 INTEGER, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_41 (a1 INTEGER, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_42 (a1 INTEGER, a2 INTEGER, a3 VARCHAR, a4 VARCHAR, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_44 (a1 CHAR(1), prob DECIMAL);
statement ok
CREATE TABLE _cachedrel_49 (a1 INTEGER, a2 INTEGER, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_52 (a1 INTEGER, a2 INTEGER, a3 INTEGER, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_60 (a1 INTEGER, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_64 (a1 INTEGER, a2 VARCHAR, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_68 (a1 INTEGER, a2 VARCHAR, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_77 (a1 INTEGER, a2 INTEGER, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_78 (a1 INTEGER, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_81 (a1 INTEGER, a2 INTEGER, a3 VARCHAR, a4 VARCHAR, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_82 (a1 INTEGER, a2 INTEGER, a3 VARCHAR, a4 VARCHAR, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_90 (a1 INTEGER, a2 VARCHAR, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_99 (a1 INTEGER, a2 INTEGER, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_100 (a1 INTEGER, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_101 (a1 INTEGER, a2 INTEGER, a3 VARCHAR, a4 VARCHAR, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_102 (a1 INTEGER, a2 VARCHAR, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_106 (a1 INTEGER, a2 VARCHAR, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_115 (a1 INTEGER, a2 INTEGER, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_116 (a1 INTEGER, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_118 (a1 CHAR(1), prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_120 (a1 CHAR(1), prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_146 (a1 INTEGER, a2 INTEGER, prob DOUBLE);
statement ok
create view _cachedrel_147 as select a2 as a1, a1 as a2, prob from _cachedrel_146;
statement ok
CREATE TABLE _cachedrel_150 (a1 INTEGER, a2 INTEGER, a3 BIGINT, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_152 (a1 CHAR(1), prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_158 (a1 INTEGER, prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_160 (a1 CHAR(1), prob DOUBLE);
statement ok
CREATE TABLE _cachedrel_163 (a1 INTEGER, a2 INTEGER, a3 VARCHAR, a4 VARCHAR, prob DOUBLE);
statement ok
create view _cachedrel_1 as select idstr as a1, id as a2, prob from bm_0_obj_dict;
statement ok
create view _cachedrel_2 as select a2 as a1, prob from _cachedrel_1;
statement ok
CREATE VIEW _x0 AS SELECT 0 AS a1, a2, prob FROM (SELECT paramName AS a1, value AS a2, prob FROM params_str WHERE paramName = 's0_keyword') AS t__x0;
statement ok
CREATE VIEW _x1 AS SELECT a1, a2, prob FROM _x0;
statement ok
CREATE VIEW _x2 AS SELECT a2 AS a1, prob FROM _x1;
statement ok
CREATE VIEW _x3 AS SELECT a1, prob FROM (SELECT _x2.a1 AS a1, _x2.prob / t__x3.prob AS prob FROM _x2,(SELECT max(prob) AS prob FROM _x2) AS t__x3) AS t__x4;
statement ok
CREATE VIEW _x4 AS SELECT a1||a2 AS a1, prob FROM (SELECT t__x5_1.a1 AS a1, t__x5_2.a1 AS a2, t__x5_1.prob * t__x5_2.prob AS prob FROM _x3 AS t__x5_1,_x3 AS t__x5_2 WHERE t__x5_1.a1 <> t__x5_2.a1) AS t__x6;
statement ok
CREATE VIEW _x5 AS SELECT a1, prob FROM _x3 UNION ALL SELECT a1, prob FROM _x4;
statement ok
CREATE VIEW _x6 AS SELECT lower(a1) AS a1, prob FROM _x5;
statement ok
CREATE VIEW _x7 AS SELECT upper(a1) AS a1, prob FROM _x6;
statement ok
CREATE VIEW _x8 AS SELECT a2 AS a1, a4 AS a2, max(prob) AS prob FROM (SELECT _cachedrel_21.a1 AS a1, _cachedrel_21.a2 AS a2, _cachedrel_21.a3 AS a3, _cachedrel_21.a4 AS a4, _x7.a1 AS a5, _cachedrel_21.prob * _x7.prob AS prob FROM _cachedrel_21,_x7 WHERE _cachedrel_21.a1 = _x7.a1) AS t__x8 GROUP BY a2, a4;
statement ok
CREATE VIEW _x9 AS SELECT a1, max(prob) AS prob FROM (SELECT a2 AS a1, prob FROM _x8 UNION ALL SELECT a1, prob FROM _x5) AS t__x9 GROUP BY a1;
statement ok
CREATE VIEW _x10 AS SELECT upper(a1) AS a1, prob FROM _x6;
statement ok
CREATE VIEW _x11 AS SELECT a2 AS a1, a4 AS a2, max(prob) AS prob FROM (SELECT _cachedrel_27.a1 AS a1, _cachedrel_27.a2 AS a2, _cachedrel_27.a3 AS a3, _cachedrel_27.a4 AS a4, _x10.a1 AS a5, _cachedrel_27.prob * _x10.prob AS prob FROM _cachedrel_27,_x10 WHERE _cachedrel_27.a1 = _x10.a1) AS t__x11 GROUP BY a2, a4;
statement ok
CREATE VIEW _x12 AS SELECT a1, max(prob) AS prob FROM (SELECT a2 AS a1, prob FROM _x11 UNION ALL SELECT a1, prob FROM _x5) AS t__x12 GROUP BY a1;
statement ok
CREATE VIEW _x13 AS SELECT a1, prob FROM (SELECT _x9.a1 AS a1, t__x14.a1 AS a2, _x9.prob * t__x14.prob AS prob FROM _x9,(SELECT '1',1.0) AS t__x14(a1,prob)) AS t__x15;
statement ok
CREATE VIEW _x14 AS SELECT a1, prob FROM (SELECT _x12.a1 AS a1, t__x17.a1 AS a2, _x12.prob * t__x17.prob AS prob FROM _x12,(SELECT '2',1.0) AS t__x17(a1,prob)) AS t__x18;
statement ok
CREATE VIEW _x15 AS SELECT a1, prob FROM _x13 UNION ALL SELECT a1, prob FROM _x14;
statement ok
CREATE VIEW _x16 AS SELECT a1, max(prob) AS prob FROM _x15 GROUP BY a1;
statement ok
CREATE VIEW _x17 AS SELECT a1, prob FROM (SELECT _x16.a1 AS a1, t__x20.a1 AS a2, _x16.prob * t__x20.prob AS prob FROM _x16,(SELECT '3',1.0) AS t__x20(a1,prob) WHERE length(_x16.a1) >= CAST(t__x20.a1 AS INT)) AS t__x21;
statement ok
CREATE VIEW _x18 AS SELECT a1, prob FROM _x17;
statement ok
CREATE VIEW _x19 AS SELECT 0 AS a1, a1 AS a2, prob FROM _x18;
statement ok
CREATE VIEW _x20 AS SELECT a1, a2, prob FROM _x19;
statement ok
CREATE VIEW _x21 AS SELECT a1, upper(a2) AS a2, prob FROM _x20;
statement ok
CREATE VIEW _x22 AS SELECT a1, lower(a2) AS a2, prob FROM _x21;
statement ok
CREATE VIEW _x23 AS SELECT a1, a3 AS a2, prob FROM (SELECT _x22.a1 AS a1, _x22.a2 AS a2, _cachedrel_31.a1 AS a3, _cachedrel_31.a2 AS a4, _x22.prob * _cachedrel_31.prob AS prob FROM _x22,_cachedrel_31 WHERE _x22.a2 = _cachedrel_31.a2) AS t__x24;
statement ok
CREATE VIEW _x24 AS SELECT a1, a2, sum(prob) AS prob FROM _x23 GROUP BY a1, a2;
statement ok
CREATE VIEW _x25 AS SELECT a1, a2, 1 AS prob FROM _x24;
statement ok
CREATE VIEW _x26 AS SELECT a1, 1 AS prob FROM (SELECT a2 AS a1, max(prob) AS prob FROM _x24 GROUP BY a2) AS t__x25;
statement ok
CREATE VIEW _x27 AS SELECT a1, a2, prob FROM (SELECT _x25.a1 AS a1, _x25.a2 AS a2, _x26.a1 AS a3, _x25.prob * _x26.prob AS prob FROM _x25,_x26 WHERE _x25.a2 = _x26.a1) AS t__x27;
statement ok
CREATE VIEW _x28 AS SELECT a1, a3 AS a2, sum(prob) AS prob FROM (SELECT _cachedrel_40.a1 AS a1, _cachedrel_40.a2 AS a2, _x27.a1 AS a3, _x27.a2 AS a4, _cachedrel_40.prob * _x27.prob AS prob FROM _cachedrel_40,_x27 WHERE _cachedrel_40.a2 = _x27.a2) AS t__x29 GROUP BY a1, a3;
statement ok
CREATE VIEW _x29 AS SELECT a1, prob FROM (SELECT t__x30.a1 AS a1, t__x30.a2 AS a2, _cachedrel_41.a1 AS a3, t__x30.prob * _cachedrel_41.prob AS prob FROM (SELECT a1, a2, prob FROM _x28 WHERE a2 = 0) AS t__x30,_cachedrel_41 WHERE t__x30.a1 = _cachedrel_41.a1) AS t__x31;
statement ok
CREATE VIEW _x30 AS SELECT a1, prob FROM (SELECT _x29.a1 AS a1, _x29.prob / t__x33.prob AS prob FROM _x29,(SELECT max(prob) AS prob FROM _x29) AS t__x33) AS t__x34;
statement ok
CREATE VIEW _x31 AS SELECT lower(a1) AS a1, prob FROM _x16;
statement ok
CREATE VIEW _x32 AS SELECT a1, prob FROM (SELECT _cachedrel_42.a1 AS a1, _cachedrel_42.a2 AS a2, _cachedrel_42.a3 AS a3, _cachedrel_42.a4 AS a4, _x31.a1 AS a5, _cachedrel_42.prob * _x31.prob AS prob FROM _cachedrel_42,_x31 WHERE _cachedrel_42.a3 =_x31.a1) AS t__x36;
statement ok
CREATE VIEW _x33 AS SELECT a1, prob FROM (SELECT _cachedrel_6.a1 AS a1, _x32.a1 AS a2, _cachedrel_6.prob * _x32.prob AS prob FROM _cachedrel_6,_x32 WHERE _cachedrel_6.a1 = _x32.a1) AS t__x38;
statement ok
CREATE VIEW _x34 AS SELECT a1, prob FROM (SELECT _x30.a1 AS a1, _x30.prob / t__x40.prob AS prob FROM _x30,(SELECT max(prob) AS prob FROM _x30) AS t__x40) AS t__x41;
statement ok
CREATE VIEW _x35 AS SELECT a1, prob FROM (SELECT _x33.a1 AS a1, _x33.prob / t__x43.prob AS prob FROM _x33,(SELECT max(prob) AS prob FROM _x33) AS t__x43) AS t__x44;
statement ok
CREATE VIEW _x36 AS SELECT a1, prob FROM (SELECT _x34.a1 AS a1, t__x46.a1 AS a2, _x34.prob * t__x46.prob AS prob FROM _x34,(SELECT a1, prob FROM _cachedrel_44 WHERE a1 = '1') AS t__x46) AS t__x47;
statement ok
CREATE VIEW _x37 AS SELECT a1, prob FROM (SELECT _x35.a1 AS a1, t__x49.a1 AS a2, _x35.prob * t__x49.prob AS prob FROM _x35,(SELECT a1, prob FROM _cachedrel_44 WHERE a1 = '2') AS t__x49) AS t__x50;
statement ok
CREATE VIEW _x38 AS SELECT a1, prob FROM _x36 UNION ALL SELECT a1, prob FROM _x37;
statement ok
CREATE VIEW _x39 AS SELECT a1, sum(prob) AS prob FROM _x38 GROUP BY a1;
statement ok
CREATE VIEW _x40 AS SELECT a1, a2, prob FROM (SELECT _cachedrel_49.a1 AS a1, _cachedrel_49.a2 AS a2, _x39.a1 AS a3, _cachedrel_49.prob * _x39.prob AS prob FROM _cachedrel_49,_x39 WHERE _cachedrel_49.a1 = _x39.a1) AS t__x52;
statement ok
CREATE VIEW _x41 AS SELECT a2 AS a1, sum(prob) AS prob FROM _x40 GROUP BY a2;
statement ok
CREATE VIEW _x42 AS SELECT a1, a3 AS a2, prob FROM (SELECT _x41.a1 AS a1, t__x55.a1 AS a2, t__x55.a2 AS a3, _x41.prob * t__x55.prob AS prob FROM _x41,(SELECT a1, a2, max(prob) AS prob FROM (SELECT a1, a3 AS a2, prob FROM _cachedrel_52 UNION ALL SELECT a3 AS a1, a1 AS a2, prob FROM _cachedrel_52) AS t__x54 GROUP BY a1, a2) AS t__x55 WHERE _x41.a1 = t__x55.a1) AS t__x56;
statement ok
CREATE VIEW _x43 AS SELECT a2 AS a1, max(prob) AS prob FROM _x42 GROUP BY a2;
statement ok
CREATE VIEW _x44 AS SELECT 0 AS a1, a1 AS a2, prob FROM _x16;
statement ok
CREATE VIEW _x45 AS SELECT a1, a2, prob FROM _x44;
statement ok
CREATE VIEW _x46 AS SELECT a1, upper(a2) AS a2, prob FROM _x45;
statement ok
CREATE VIEW _x47 AS SELECT a1, lower(a2) AS a2, prob FROM _x46;
statement ok
CREATE VIEW _x48 AS SELECT a1, a3 AS a2, prob FROM (SELECT _x47.a1 AS a1, _x47.a2 AS a2, _cachedrel_68.a1 AS a3, _cachedrel_68.a2 AS a4, _x47.prob * _cachedrel_68.prob AS prob FROM _x47,_cachedrel_68 WHERE _x47.a2 = _cachedrel_68.a2) AS t__x59;
statement ok
CREATE VIEW _x49 AS SELECT a1, a2, sum(prob) AS prob FROM _x48 GROUP BY a1, a2;
statement ok
CREATE VIEW _x50 AS SELECT a1, a2, 1 AS prob FROM _x49;
statement ok
CREATE VIEW _x51 AS SELECT a1, 1 AS prob FROM (SELECT a2 AS a1, max(prob) AS prob FROM _x49 GROUP BY a2) AS t__x60;
statement ok
CREATE VIEW _x52 AS SELECT a1, a2, prob FROM (SELECT _x50.a1 AS a1, _x50.a2 AS a2, _x51.a1 AS a3, _x50.prob * _x51.prob AS prob FROM _x50,_x51 WHERE _x50.a2 = _x51.a1) AS t__x62;
statement ok
CREATE VIEW _x53 AS SELECT a1, a3 AS a2, sum(prob) AS prob FROM (SELECT _cachedrel_77.a1 AS a1, _cachedrel_77.a2 AS a2, _x52.a1 AS a3, _x52.a2 AS a4, _cachedrel_77.prob * _x52.prob AS prob FROM _cachedrel_77,_x52 WHERE _cachedrel_77.a2 = _x52.a2) AS t__x64 GROUP BY a1, a3;
statement ok
CREATE VIEW _x54 AS SELECT a1, prob FROM (SELECT t__x65.a1 AS a1, t__x65.a2 AS a2, _cachedrel_78.a1 AS a3, t__x65.prob * _cachedrel_78.prob AS prob FROM (SELECT a1, a2, prob FROM _x53 WHERE a2 = 0) AS t__x65,_cachedrel_78 WHERE t__x65.a1 = _cachedrel_78.a1) AS t__x66;
statement ok
CREATE VIEW _x55 AS SELECT a1, prob FROM (SELECT _x54.a1 AS a1, _x54.prob / t__x68.prob AS prob FROM _x54,(SELECT max(prob) AS prob FROM _x54) AS t__x68) AS t__x69;
statement ok
CREATE VIEW _x56 AS SELECT a1, prob FROM (SELECT _cachedrel_82.a1 AS a1, _cachedrel_82.a2 AS a2, _cachedrel_82.a3 AS a3, _cachedrel_82.a4 AS a4, _x31.a1 AS a5, _cachedrel_82.prob * _x31.prob AS prob FROM _cachedrel_82,_x31 WHERE _cachedrel_82.a3 = _x31.a1) AS t__x71;
statement ok
CREATE VIEW _x57 AS SELECT a1, prob FROM (SELECT _cachedrel_60.a1 AS a1, _x56.a1 AS a2, _cachedrel_60.prob * _x56.prob AS prob FROM _cachedrel_60,_x56 WHERE _cachedrel_60.a1 = _x56.a1) AS t__x73;
statement ok
CREATE VIEW _x58 AS SELECT a1, a3 AS a2, prob FROM (SELECT _x47.a1 AS a1, _x47.a2 AS a2, _cachedrel_90.a1 AS a3, _cachedrel_90.a2 AS a4, _x47.prob * _cachedrel_90.prob AS prob FROM _x47,_cachedrel_90 WHERE _x47.a2 = _cachedrel_90.a2) AS t__x74;
statement ok
CREATE VIEW _x59 AS SELECT a1, a2, sum(prob) AS prob FROM _x58 GROUP BY a1, a2;
statement ok
CREATE VIEW _x60 AS SELECT a1, a2, 1 AS prob FROM _x59;
statement ok
CREATE VIEW _x61 AS SELECT a1, 1 AS prob FROM (SELECT a2 AS a1, max(prob) AS prob FROM _x59 GROUP BY a2) AS t__x75;
statement ok
CREATE VIEW _x62 AS SELECT a1, a2, prob FROM (SELECT _x60.a1 AS a1, _x60.a2 AS a2, _x61.a1 AS a3, _x60.prob * _x61.prob AS prob FROM _x60,_x61 WHERE _x60.a2 = _x61.a1) AS t__x77;
statement ok
CREATE VIEW _x63 AS SELECT a1, a3 AS a2, sum(prob) AS prob FROM (SELECT _cachedrel_99.a1 AS a1, _cachedrel_99.a2 AS a2, _x62.a1 AS a3, _x62.a2 AS a4, _cachedrel_99.prob * _x62.prob AS prob FROM _cachedrel_99,_x62 WHERE _cachedrel_99.a2 = _x62.a2) AS t__x79 GROUP BY a1, a3;
statement ok
CREATE VIEW _x64 AS SELECT a1, prob FROM (SELECT t__x80.a1 AS a1, t__x80.a2 AS a2, _cachedrel_100.a1 AS a3, t__x80.prob * _cachedrel_100.prob AS prob FROM (SELECT a1, a2, prob FROM _x63 WHERE a2 = 0) AS t__x80,_cachedrel_100 WHERE t__x80.a1 = _cachedrel_100.a1) AS t__x81;
statement ok
CREATE VIEW _x65 AS SELECT a1, prob FROM (SELECT _x64.a1 AS a1, _x64.prob / t__x83.prob AS prob FROM _x64,(SELECT max(prob) AS prob FROM _x64) AS t__x83) AS t__x84;
statement ok
CREATE VIEW _x66 AS SELECT lower(a1) AS a1, prob FROM _x18;
statement ok
CREATE VIEW _x67 AS SELECT a1, prob FROM (SELECT _cachedrel_101.a1 AS a1, _cachedrel_101.a2 AS a2, _cachedrel_101.a3 AS a3, _cachedrel_101.a4 AS a4, _x66.a1 AS a5, _cachedrel_101.prob * _x66.prob AS prob FROM _cachedrel_101,_x66 WHERE _cachedrel_101.a3 =_x66.a1) AS t__x86;
statement ok
CREATE VIEW _x68 AS SELECT a1, prob FROM (SELECT _cachedrel_60.a1 AS a1, _x67.a1 AS a2, _cachedrel_60.prob * _x67.prob AS prob FROM _cachedrel_60,_x67 WHERE _cachedrel_60.a1 = _x67.a1) AS t__x87;
statement ok
CREATE VIEW _x69 AS SELECT a1, a3 AS a2, prob FROM (SELECT _x47.a1 AS a1, _x47.a2 AS a2, _cachedrel_106.a1 AS a3, _cachedrel_106.a2 AS a4, _x47.prob * _cachedrel_106.prob AS prob FROM _x47,_cachedrel_106 WHERE _x47.a2 = _cachedrel_106.a2) AS t__x88;
statement ok
CREATE VIEW _x70 AS SELECT a1, a2, sum(prob) AS prob FROM _x69 GROUP BY a1, a2;
statement ok
CREATE VIEW _x71 AS SELECT a1, a2, 1 AS prob FROM _x70;
statement ok
CREATE VIEW _x72 AS SELECT a1, 1 AS prob FROM (SELECT a2 AS a1, max(prob) AS prob FROM _x70 GROUP BY a2) AS t__x89;
statement ok
CREATE VIEW _x73 AS SELECT a1, a2, prob FROM (SELECT _x71.a1 AS a1, _x71.a2 AS a2, _x72.a1 AS a3, _x71.prob * _x72.prob AS prob FROM _x71,_x72 WHERE _x71.a2 = _x72.a1) AS t__x91;
statement ok
CREATE VIEW _x74 AS SELECT a1, a3 AS a2, sum(prob) AS prob FROM (SELECT _cachedrel_115.a1 AS a1, _cachedrel_115.a2 AS a2, _x73.a1 AS a3, _x73.a2 AS a4, _cachedrel_115.prob * _x73.prob AS prob FROM _cachedrel_115,_x73 WHERE _cachedrel_115.a2 = _x73.a2) AS t__x93 GROUP BY a1, a3;
statement ok
CREATE VIEW _x75 AS SELECT a1, prob FROM (SELECT t__x94.a1 AS a1, t__x94.a2 AS a2, _cachedrel_116.a1 AS a3, t__x94.prob * _cachedrel_116.prob AS prob FROM (SELECT a1, a2, prob FROM _x74 WHERE a2 = 0) AS t__x94,_cachedrel_116 WHERE t__x94.a1 = _cachedrel_116.a1) AS t__x95;
statement ok
CREATE VIEW _x76 AS SELECT a1, prob FROM (SELECT _x75.a1 AS a1, _x75.prob / t__x97.prob AS prob FROM _x75,(SELECT max(prob) AS prob FROM _x75) AS t__x97) AS t__x98;
statement ok
CREATE VIEW _x77 AS SELECT _cachedrel_64.a1 AS a1, _cachedrel_64.a2 AS a2, _x16.a1 AS a3, _cachedrel_64.prob * _x16.prob AS prob FROM _cachedrel_64,_x16 WHERE _cachedrel_64.a2 =_x16.a1;
statement ok
CREATE VIEW _x78 AS SELECT a1, a2, max(prob) AS prob FROM _x77 GROUP BY a1, a2;
statement ok
CREATE VIEW _x79 AS SELECT _cachedrel_102.a1 AS a1, _cachedrel_102.a2 AS a2, _x16.a1 AS a3, _cachedrel_102.prob * _x16.prob AS prob FROM _cachedrel_102,_x16 WHERE _cachedrel_102.a2 = _x16.a1;
statement ok
CREATE VIEW _x80 AS SELECT a1, a2, max(prob) AS prob FROM _x79 GROUP BY a1, a2;
statement ok
CREATE VIEW _x81 AS SELECT a1, a2, prob FROM (SELECT _x78.a1 AS a1, _x78.a2 AS a2, t__x102.a1 AS a3, _x78.prob * t__x102.prob AS prob FROM _x78,(SELECT a1, prob FROM _cachedrel_118 WHERE a1 = '1') AS t__x102) AS t__x103;
statement ok
CREATE VIEW _x82 AS SELECT a1, a2, prob FROM (SELECT _x80.a1 AS a1, _x80.a2 AS a2, t__x105.a1 AS a3, _x80.prob * t__x105.prob AS prob FROM _x80,(SELECT a1, prob FROM _cachedrel_118 WHERE a1 = '2') AS t__x105) AS t__x106;
statement ok
CREATE VIEW _x83 AS SELECT a1, a2, prob FROM _x81 UNION ALL SELECT a1, a2, prob FROM _x82;
statement ok
CREATE VIEW _x84 AS SELECT a1, a2, sum(prob) AS prob FROM _x83 GROUP BY a1, a2;
statement ok
CREATE VIEW _x85 AS SELECT a1, prob FROM (SELECT a1, prob FROM _x84) AS t__x107;
statement ok
CREATE VIEW _x86 AS SELECT a1, prob FROM (SELECT _x43.a1 AS a1, _x43.prob / t__x109.prob AS prob FROM _x43,(SELECT max(prob) AS prob FROM _x43) AS t__x109) AS t__x110;
statement ok
CREATE VIEW _x87 AS SELECT a1, prob FROM (SELECT _x55.a1 AS a1, _x55.prob / t__x112.prob AS prob FROM _x55,(SELECT max(prob) AS prob FROM _x55) AS t__x112) AS t__x113;
statement ok
CREATE VIEW _x88 AS SELECT a1, prob FROM (SELECT _x57.a1 AS a1, _x57.prob / t__x115.prob AS prob FROM _x57,(SELECT max(prob) AS prob FROM _x57) AS t__x115) AS t__x116;
statement ok
CREATE VIEW _x89 AS SELECT a1, prob FROM (SELECT _x65.a1 AS a1, _x65.prob / t__x118.prob AS prob FROM _x65,(SELECT max(prob) AS prob FROM _x65) AS t__x118) AS t__x119;
statement ok
CREATE VIEW _x90 AS SELECT a1, prob FROM (SELECT _x68.a1 AS a1, _x68.prob / t__x121.prob AS prob FROM _x68,(SELECT max(prob) AS prob FROM _x68) AS t__x121) AS t__x122;
statement ok
CREATE VIEW _x91 AS SELECT a1, prob FROM (SELECT _x76.a1 AS a1, _x76.prob / t__x124.prob AS prob FROM _x76,(SELECT max(prob) AS prob FROM _x76) AS t__x124) AS t__x125;
statement ok
CREATE VIEW _x92 AS SELECT a1, prob FROM (SELECT _x85.a1 AS a1, _x85.prob / t__x127.prob AS prob FROM _x85,(SELECT max(prob) AS prob FROM _x85) AS t__x127) AS t__x128;
statement ok
CREATE VIEW _x93 AS SELECT a1, prob FROM (SELECT _x86.a1 AS a1, t__x130.a1 AS a2, _x86.prob * t__x130.prob AS prob FROM _x86,(SELECT a1, prob FROM _cachedrel_120 WHERE a1 = '1') AS t__x130) AS t__x131;
statement ok
CREATE VIEW _x94 AS SELECT a1, prob FROM (SELECT _x87.a1 AS a1, t__x133.a1 AS a2, _x87.prob * t__x133.prob AS prob FROM _x87,(SELECT a1, prob FROM _cachedrel_120 WHERE a1 = '2') AS t__x133) AS t__x134;
statement ok
CREATE VIEW _x95 AS SELECT a1, prob FROM (SELECT _x88.a1 AS a1, t__x136.a1 AS a2, _x88.prob * t__x136.prob AS prob FROM _x88,(SELECT a1, prob FROM _cachedrel_120 WHERE a1 = '3') AS t__x136) AS t__x137;
statement ok
CREATE VIEW _x96 AS SELECT a1, prob FROM (SELECT _x89.a1 AS a1, t__x139.a1 AS a2, _x89.prob * t__x139.prob AS prob FROM _x89,(SELECT a1, prob FROM _cachedrel_120 WHERE a1 = '4') AS t__x139) AS t__x140;
statement ok
CREATE VIEW _x97 AS SELECT a1, prob FROM (SELECT _x90.a1 AS a1, t__x142.a1 AS a2, _x90.prob * t__x142.prob AS prob FROM _x90,(SELECT a1, prob FROM _cachedrel_120 WHERE a1 = '5') AS t__x142) AS t__x143;
statement ok
CREATE VIEW _x98 AS SELECT a1, prob FROM (SELECT _x91.a1 AS a1, t__x145.a1 AS a2, _x91.prob * t__x145.prob AS prob FROM _x91,(SELECT a1, prob FROM _cachedrel_120 WHERE a1 = '6') AS t__x145) AS t__x146;
statement ok
CREATE VIEW _x99 AS SELECT a1, prob FROM (SELECT _x92.a1 AS a1, t__x148.a1 AS a2, _x92.prob * t__x148.prob AS prob FROM _x92,(SELECT a1, prob FROM _cachedrel_120 WHERE a1 = '7') AS t__x148) AS t__x149;
statement ok
CREATE VIEW _x100 AS SELECT a1, prob FROM _x93 UNION ALL (SELECT a1, prob FROM _x94 UNION ALL (SELECT a1, prob FROM _x95 UNION ALL (SELECT a1, prob FROM _x96 UNION ALL (SELECT a1, prob FROM _x97 UNION ALL (SELECT a1, prob FROM _x98 UNION ALL SELECT a1, prob FROM _x99)))));
statement ok
CREATE VIEW _x101 AS SELECT a1, sum(prob) AS prob FROM _x100 GROUP BY a1;
statement ok
CREATE VIEW _x102 AS SELECT a1, prob FROM (SELECT _cachedrel_150.a1 AS a1, _cachedrel_150.a2 AS a2, _cachedrel_150.a3 AS a3, t__x152.a1 AS a4, _cachedrel_150.prob * t__x152.prob AS prob FROM _cachedrel_150,(SELECT a2 AS a1, prob FROM (SELECT paramName AS a1, value AS a2, prob FROM params_int WHERE paramName = 's0_userid') AS t__x151) AS t__x152 WHERE _cachedrel_150.a3 = t__x152.a1) AS t__x153;
statement ok
CREATE VIEW _x103 AS SELECT a1, prob FROM (SELECT _cachedrel_2.a1 AS a1, _x102.a1 AS a2, _cachedrel_2.prob * _x102.prob AS prob FROM _cachedrel_2,_x102 WHERE _cachedrel_2.a1 = _x102.a1) AS t__x155;
statement ok
CREATE VIEW _x104 AS SELECT a1, prob FROM (SELECT _cachedrel_147.a1 AS a1, _cachedrel_147.a2 AS a2, _x103.a1 AS a3, _cachedrel_147.prob * _x103.prob AS prob FROM _cachedrel_147,_x103 WHERE _cachedrel_147.a2 = _x103.a1) AS t__x157;
statement ok
CREATE VIEW _x105 AS SELECT a1, 1 AS prob FROM _x104;
statement ok
CREATE VIEW _x106 AS SELECT a1, a4 AS a2, prob FROM (SELECT _x105.a1 AS a1, _cachedrel_52.a1 AS a2, _cachedrel_52.a2 AS a3, _cachedrel_52.a3 AS a4, _x105.prob * _cachedrel_52.prob AS prob FROM _x105,_cachedrel_52 WHERE _x105.a1 = _cachedrel_52.a1) AS t__x159;
statement ok
CREATE VIEW _x107 AS SELECT a2 AS a1, max(prob) AS prob FROM _x106 GROUP BY a2;
statement ok
CREATE VIEW _x108 AS SELECT a1, a2, max(prob) AS prob FROM _x106 GROUP BY a1, a2;
statement ok
CREATE VIEW _x109 AS SELECT a1, a4 AS a2, prob FROM (SELECT _x107.a1 AS a1, t__x161.a1 AS a2, t__x161.a2 AS a3, t__x161.a3 AS a4, _x107.prob * t__x161.prob AS prob FROM _x107,(SELECT a3 AS a1, a2, a1 AS a3, prob FROM _cachedrel_52) AS t__x161 WHERE _x107.a1 = t__x161.a1) AS t__x162;
statement ok
CREATE VIEW _x110 AS SELECT a2 AS a1, prob FROM _x109;
statement ok
CREATE VIEW _x111 AS SELECT a1, a3 AS a2, max(prob) AS prob FROM (SELECT _cachedrel_81.a1 AS a1, _cachedrel_81.a2 AS a2, _cachedrel_81.a3 AS a3, _cachedrel_81.a4 AS a4, _x110.a1 AS a5, _cachedrel_81.prob * _x110.prob AS prob FROM _cachedrel_81,_x110 WHERE _cachedrel_81.a1 = _x110.a1) AS t__x164 GROUP BY a1, a3;
statement ok
CREATE VIEW _x112 AS SELECT a2 AS a1, a1 AS a2, prob FROM _x108;
statement ok
CREATE VIEW _x113 AS SELECT a1, a3 AS a2, prob FROM (SELECT _cachedrel_81.a1 AS a1, _cachedrel_81.a2 AS a2, _cachedrel_81.a3 AS a3, _cachedrel_81.a4 AS a4, _x104.a1 AS a5, _cachedrel_81.prob * _x104.prob AS prob FROM _cachedrel_81,_x104 WHERE _cachedrel_81.a1 = _x104.a1) AS t__x165;
statement ok
CREATE VIEW _x114 AS SELECT a1, a4 AS a2, sum(prob) AS prob FROM (SELECT _x112.a1 AS a1, _x112.a2 AS a2, _x113.a1 AS a3, _x113.a2 AS a4, _x112.prob * _x113.prob AS prob FROM _x112,_x113 WHERE _x112.a2 = _x113.a1) AS t__x167 GROUP BY a1, a4;
statement ok
CREATE VIEW _x115 AS SELECT _x111.a1 AS a1, _x111.a2 AS a2, _x114.a1 AS a3, _x114.a2 AS a4, _x111.prob * _x114.prob AS prob FROM _x111,_x114 WHERE _x111.a2 = _x114.a2;
statement ok
CREATE VIEW _x116 AS SELECT a1, a3 AS a2, max(prob) AS prob FROM _x115 GROUP BY a1, a3;
statement ok
CREATE VIEW _x117 AS SELECT a1, prob FROM (SELECT a1, prob FROM _x116) AS t__x169;
statement ok
CREATE VIEW _x118 AS SELECT a1, prob FROM (SELECT _x104.a1 AS a1, _x104.prob / t__x171.prob AS prob FROM _x104,(SELECT max(prob) AS prob FROM _x104) AS t__x171) AS t__x172;
statement ok
CREATE VIEW _x119 AS SELECT a1, prob FROM (SELECT _x117.a1 AS a1, _x117.prob / t__x174.prob AS prob FROM _x117,(SELECT max(prob) AS prob FROM _x117) AS t__x174) AS t__x175;
statement ok
CREATE VIEW _x120 AS SELECT a1, prob FROM (SELECT _x118.a1 AS a1, t__x177.a1 AS a2, _x118.prob * t__x177.prob AS prob FROM _x118,(SELECT a1, prob FROM _cachedrel_152 WHERE a1 = '1') AS t__x177) AS t__x178;
statement ok
CREATE VIEW _x121 AS SELECT a1, prob FROM (SELECT _x119.a1 AS a1, t__x180.a1 AS a2, _x119.prob * t__x180.prob AS prob FROM _x119,(SELECT a1, prob FROM _cachedrel_152 WHERE a1 = '2') AS t__x180) AS t__x181;
statement ok
CREATE VIEW _x122 AS SELECT a1, prob FROM _x120 UNION ALL SELECT a1, prob FROM _x121;
statement ok
CREATE VIEW _x123 AS SELECT a1, sum(prob) AS prob FROM _x122 GROUP BY a1;
statement ok
CREATE VIEW _x124 AS SELECT a1, sum(prob) AS prob FROM (SELECT _x101.a1 AS a1, _x123.a1 AS a2, _x101.prob * _x123.prob AS prob FROM _x101,_x123 WHERE _x101.a1 = _x123.a1) AS t__x183 GROUP BY a1;
statement ok
CREATE VIEW _x125 AS SELECT a1, prob FROM (SELECT _x101.a1 AS a1, _cachedrel_158.a1 AS a2, _x101.prob * _cachedrel_158.prob AS prob FROM _x101,_cachedrel_158 WHERE _x101.a1 = _cachedrel_158.a1) AS t__x184;
statement ok
CREATE VIEW _x126 AS SELECT a1, prob FROM (SELECT _x101.a1 AS a1, _x101.prob / t__x185.prob AS prob FROM _x101,(SELECT max(prob) AS prob FROM _x101) AS t__x185) AS t__x186;
statement ok
CREATE VIEW _x127 AS SELECT a1, prob FROM (SELECT _x124.a1 AS a1, _x124.prob / t__x188.prob AS prob FROM _x124,(SELECT max(prob) AS prob FROM _x124) AS t__x188) AS t__x189;
statement ok
CREATE VIEW _x128 AS SELECT a1, prob FROM (SELECT _x125.a1 AS a1, _x125.prob / t__x191.prob AS prob FROM _x125,(SELECT max(prob) AS prob FROM _x125) AS t__x191) AS t__x192;
statement ok
CREATE VIEW _x129 AS SELECT a1, prob FROM (SELECT _x126.a1 AS a1, t__x194.a1 AS a2, _x126.prob * t__x194.prob AS prob FROM _x126,(SELECT a1, prob FROM _cachedrel_160 WHERE a1 = '1') AS t__x194) AS t__x195;
statement ok
CREATE VIEW _x130 AS SELECT a1, prob FROM (SELECT _x127.a1 AS a1, t__x197.a1 AS a2, _x127.prob * t__x197.prob AS prob FROM _x127,(SELECT a1, prob FROM _cachedrel_160 WHERE a1 = '2') AS t__x197) AS t__x198;
statement ok
CREATE VIEW _x131 AS SELECT a1, prob FROM (SELECT _x128.a1 AS a1, t__x200.a1 AS a2, _x128.prob * t__x200.prob AS prob FROM _x128,(SELECT a1, prob FROM _cachedrel_160 WHERE a1 = '3') AS t__x200) AS t__x201;
statement ok
CREATE VIEW _x132 AS SELECT a1, prob FROM _x129 UNION ALL (SELECT a1, prob FROM _x130 UNION ALL SELECT a1, prob FROM _x131);
statement ok
CREATE VIEW _x133 AS SELECT a1, sum(prob) AS prob FROM _x132 GROUP BY a1;
statement ok
CREATE VIEW _x134 AS SELECT a1, prob FROM (SELECT _cachedrel_163.a1 AS a1, _cachedrel_163.a2 AS a2, _cachedrel_163.a3 AS a3, _cachedrel_163.a4 AS a4, _x31.a1 AS a5, _cachedrel_163.prob * _x31.prob AS prob FROM _cachedrel_163,_x31 WHERE _cachedrel_163.a3 = _x31.a1) AS t__x203;
statement ok
CREATE VIEW _x135 AS SELECT a1, prob FROM (SELECT _cachedrel_60.a1 AS a1, _x134.a1 AS a2, _cachedrel_60.prob * _x134.prob AS prob FROM _cachedrel_60,_x134 WHERE _cachedrel_60.a1 = _x134.a1) AS t__x204;
statement ok
CREATE VIEW _x136 AS SELECT CAST(count(prob) AS DOUBLE) AS prob FROM _x135;
statement ok
CREATE VIEW _x137 AS SELECT a1, prob FROM (SELECT _x135.a1 AS a1, _x135.prob * t__x207.prob AS prob FROM _x135,(SELECT prob FROM (SELECT CASE WHEN prob > CAST(0 AS DOUBLE) THEN CAST(1 AS DOUBLE) ELSE CAST(0 AS DOUBLE) END AS prob FROM _x136) AS t__x206 WHERE prob > 0.0) AS t__x207 UNION ALL SELECT _x133.a1 AS a1, _x133.prob * t__x210.prob AS prob FROM _x133,(SELECT prob FROM (SELECT CASE WHEN prob > CAST(0 AS DOUBLE) THEN CAST(0 AS DOUBLE) ELSE CAST(1 AS DOUBLE) END AS prob FROM _x136) AS t__x209 WHERE prob > 0.0) AS t__x210) AS t__x211;
statement ok
CREATE VIEW _x138 AS SELECT a1, sum(prob) AS prob FROM (SELECT _x137.a1 AS a1, _cachedrel_60.a1 AS a2, _x137.prob * _cachedrel_60.prob AS prob FROM _x137,_cachedrel_60 WHERE _x137.a1 = _cachedrel_60.a1) AS t__x213 GROUP BY a1;
statement ok
CREATE VIEW s0_RESULTVIEW_result AS SELECT a1, prob FROM _x138;
statement ok
SELECT * FROM s0_RESULTVIEW_result;
statement ok
ROLLBACK;