Skip to content

Commit dbb1898

Browse files
author
Rahul Parande
committed
Added test for view having nested subqueries
Signed-off-by: Rahul Parande <rparande@amazon.com>
1 parent 0220811 commit dbb1898

File tree

4 files changed

+130
-0
lines changed

4 files changed

+130
-0
lines changed

test/JDBC/expected/weak-binding-vu-cleanup.out

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,15 @@ GO
153153
DROP VIEW IF EXISTS multi_table_complex_view;
154154
GO
155155

156+
DROP VIEW IF EXISTS avg_d_per_c;
157+
GO
158+
159+
DROP VIEW IF EXISTS above_avg_d;
160+
GO
161+
162+
DROP VIEW IF EXISTS complex_nested_view;
163+
GO
164+
156165
USE master;
157166
GO
158167

test/JDBC/expected/weak-binding-vu-verify.out

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1837,3 +1837,63 @@ GO
18371837
int#!#varchar#!#varchar#!#varchar#!#date
18381838
~~END~~
18391839

1840+
1841+
CREATE VIEW avg_d_per_c AS
1842+
SELECT c, AVG(d) AS avg_d
1843+
FROM t
1844+
GROUP BY c;
1845+
GO
1846+
1847+
CREATE VIEW above_avg_d AS
1848+
SELECT t.a, t.b, t.c, t.d
1849+
FROM t
1850+
JOIN avg_d_per_c ON t.c = avg_d_per_c.c
1851+
WHERE t.d > avg_d_per_c.avg_d;
1852+
GO
1853+
1854+
CREATE VIEW complex_nested_view AS
1855+
SELECT
1856+
t.a,
1857+
t.b,
1858+
t.c,
1859+
t.d,
1860+
(SELECT AVG(avg_d) FROM avg_d_per_c) AS overall_avg_d
1861+
FROM t
1862+
WHERE t.a IN (
1863+
SELECT a
1864+
FROM above_avg_d
1865+
WHERE above_avg_d.d > (
1866+
SELECT AVG(d)
1867+
FROM t AS t2
1868+
WHERE t2.c IN (
1869+
SELECT c
1870+
FROM avg_d_per_c
1871+
WHERE avg_d > (SELECT AVG(avg_d) FROM avg_d_per_c)
1872+
)
1873+
)
1874+
);
1875+
GO
1876+
1877+
DROP VIEW avg_d_per_c;
1878+
GO
1879+
1880+
SELECT * FROM complex_nested_view;
1881+
GO
1882+
~~ERROR (Code: 33557097)~~
1883+
1884+
~~ERROR (Message: relation "avg_d_per_c" does not exist)~~
1885+
1886+
1887+
-- Recreate the base table
1888+
CREATE VIEW avg_d_per_c AS
1889+
SELECT c, AVG(d) AS avg_d
1890+
FROM t
1891+
GROUP BY c;
1892+
GO
1893+
1894+
SELECT * FROM complex_nested_view;
1895+
GO
1896+
~~START~~
1897+
int#!#varchar#!#varchar#!#int#!#int
1898+
~~END~~
1899+

test/JDBC/input/views/weak-binding-vu-cleanup.sql

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,15 @@ GO
153153
DROP VIEW IF EXISTS multi_table_complex_view;
154154
GO
155155

156+
DROP VIEW IF EXISTS avg_d_per_c;
157+
GO
158+
159+
DROP VIEW IF EXISTS above_avg_d;
160+
GO
161+
162+
DROP VIEW IF EXISTS complex_nested_view;
163+
GO
164+
156165
USE master;
157166
GO
158167

test/JDBC/input/views/weak-binding-vu-verify.sql

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1268,4 +1268,56 @@ CREATE TABLE cmp_t (
12681268
GO
12691269

12701270
SELECT * FROM multi_table_complex_view;
1271+
GO
1272+
1273+
CREATE VIEW avg_d_per_c AS
1274+
SELECT c, AVG(d) AS avg_d
1275+
FROM t
1276+
GROUP BY c;
1277+
GO
1278+
1279+
CREATE VIEW above_avg_d AS
1280+
SELECT t.a, t.b, t.c, t.d
1281+
FROM t
1282+
JOIN avg_d_per_c ON t.c = avg_d_per_c.c
1283+
WHERE t.d > avg_d_per_c.avg_d;
1284+
GO
1285+
1286+
CREATE VIEW complex_nested_view AS
1287+
SELECT
1288+
t.a,
1289+
t.b,
1290+
t.c,
1291+
t.d,
1292+
(SELECT AVG(avg_d) FROM avg_d_per_c) AS overall_avg_d
1293+
FROM t
1294+
WHERE t.a IN (
1295+
SELECT a
1296+
FROM above_avg_d
1297+
WHERE above_avg_d.d > (
1298+
SELECT AVG(d)
1299+
FROM t AS t2
1300+
WHERE t2.c IN (
1301+
SELECT c
1302+
FROM avg_d_per_c
1303+
WHERE avg_d > (SELECT AVG(avg_d) FROM avg_d_per_c)
1304+
)
1305+
)
1306+
);
1307+
GO
1308+
1309+
DROP VIEW avg_d_per_c;
1310+
GO
1311+
1312+
SELECT * FROM complex_nested_view;
1313+
GO
1314+
1315+
-- Recreate the base table
1316+
CREATE VIEW avg_d_per_c AS
1317+
SELECT c, AVG(d) AS avg_d
1318+
FROM t
1319+
GROUP BY c;
1320+
GO
1321+
1322+
SELECT * FROM complex_nested_view;
12711323
GO

0 commit comments

Comments
 (0)