You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# # correlations are allowed inside a nested subquery with group by
67
-
# - query: select x from a where exists (select a.x, max(idb) from b where q > a.x group by q)
68
-
# - explain: "SCAN(<,>) | TFILTER A | FLATMAP q0 -> { ISCAN(IB [[GREATER_THAN q0.X]]) | MAP (_ AS _0) | AGG (max_i(_._0.IDB) AS _0) GROUP BY (_._0.Q AS _0) | MAP (q0.X AS X, _._1._0 AS _1) | DEFAULT NULL | FILTER _ NOT_NULL AS q0 RETURN (q0.X AS X) }"
69
-
# - result: [{1}, {2}, {3}]
70
-
# -
71
-
# # correlations are allowed inside a nested subquery with group by, not necessarily qualified
72
-
# - query: select x from a where exists (select x, max(idb) from b where q > x group by q)
73
-
# - explain: "SCAN(<,>) | TFILTER A | FLATMAP q0 -> { ISCAN(IB [[GREATER_THAN q0.X]]) | MAP (_ AS _0) | AGG (max_i(_._0.IDB) AS _0) GROUP BY (_._0.Q AS _0) | MAP (q0.X AS X, _._1._0 AS _1) | DEFAULT NULL | FILTER _ NOT_NULL AS q0 RETURN (q0.X AS X) }"
74
-
# - result: [{1}, {2}, {3}]
75
-
# -
76
-
# # correlations inside aggregations are allowed inside a nested subquery with group by
77
-
# - query: select x from a where exists (select max(x), max(idb) from b where q > x group by q)
78
-
# - explain: "SCAN(<,>) | TFILTER A | FLATMAP q0 -> { ISCAN(IB [[GREATER_THAN q0.X]]) | MAP (_ AS _0) | AGG (max_i(q0.X) AS _0, max_i(_._0.IDB) AS _1) GROUP BY (_._0.Q AS _0) | MAP (_._1._0 AS _0, _._1._1 AS _1) | DEFAULT NULL | FILTER _ NOT_NULL AS q0 RETURN (q0.X AS X) }"
79
-
# - result: [{1}, {2}, {3}]
80
-
# -
81
-
# # correlations inside aggregations are allowed inside a nested subquery with group by
82
-
# - query: select x from a where exists (select max(a.x), max(idb) from b where q > x group by q)
83
-
# - explain: "SCAN(<,>) | TFILTER A | FLATMAP q0 -> { ISCAN(IB [[GREATER_THAN q0.X]]) | MAP (_ AS _0) | AGG (max_i(q0.X) AS _0, max_i(_._0.IDB) AS _1) GROUP BY (_._0.Q AS _0) | MAP (_._1._0 AS _0, _._1._1 AS _1) | DEFAULT NULL | FILTER _ NOT_NULL AS q0 RETURN (q0.X AS X) }"
84
-
# - result: [{1}, {2}, {3}]
41
+
-
42
+
# non correlated subquery, resolving alias should be fine.
43
+
- query: select ida from a where exists (select ida from a where ida = 1);
44
+
- explain: "SCAN(<,>) | TFILTER A | FILTER _.IDA EQUALS promote(@c15 AS INT) | MAP (_.IDA AS IDA) | DEFAULT NULL | FLATMAP q0 -> { SCAN(<,>) | TFILTER A | FILTER q0 NOT_NULL AS q1 RETURN (q1.IDA AS IDA) }"
45
+
- result: [{1}, {2}, {3}]
46
+
-
47
+
# this should work albeit being seemingly ambiguous
48
+
# upper query block resolution should kick in _iff_ we fail to resolve
49
+
# the identifier in current query block.
50
+
- query: select idx from x where exists (select x from a where ida = 1);
51
+
- explain: "SCAN(<,>) | TFILTER A | FILTER _.IDA EQUALS promote(@c15 AS INT) | MAP (_.X AS X) | DEFAULT NULL | FLATMAP q0 -> { SCAN(<,>) | TFILTER X | FILTER q0 NOT_NULL AS q1 RETURN (q1.IDX AS IDX) }"
52
+
- result: [{4}, {5}, {6}]
53
+
-
54
+
# PartiQL resolution.
55
+
- query: select idr from r, r.nr as NEST where NEST.f = 23;
56
+
- result: [{2}]
57
+
-
58
+
# PartiQL resolution, another flavour (TODO check whether this still use the IR index).
59
+
- query: select idr from r, (select * from r.nr) as NEST where NEST.f = 23;
60
+
- result: [{2}]
61
+
-
62
+
# correlation are allowed in from-subquery.
63
+
- query: select x, sq.idr, sq.nr from a, (select * from r where r.idr = a.x) sq;
# correlations are allowed inside a nested subquery with group by
67
+
- query: select x from a where exists (select a.x, max(idb) from b where q > a.x group by q)
68
+
- explain: "SCAN(<,>) | TFILTER A | FLATMAP q0 -> { ISCAN(IB [[GREATER_THAN q0.X]]) | MAP (_ AS _0) | AGG (max_i(_._0.IDB) AS _0) GROUP BY (_._0.Q AS _0) | MAP (q0.X AS X, _._1._0 AS _1) | DEFAULT NULL | FILTER _ NOT_NULL AS q0 RETURN (q0.X AS X) }"
69
+
- result: [{1}, {2}, {3}]
70
+
-
71
+
# correlations are allowed inside a nested subquery with group by, not necessarily qualified
72
+
- query: select x from a where exists (select x, max(idb) from b where q > x group by q)
73
+
- explain: "SCAN(<,>) | TFILTER A | FLATMAP q0 -> { ISCAN(IB [[GREATER_THAN q0.X]]) | MAP (_ AS _0) | AGG (max_i(_._0.IDB) AS _0) GROUP BY (_._0.Q AS _0) | MAP (q0.X AS X, _._1._0 AS _1) | DEFAULT NULL | FILTER _ NOT_NULL AS q0 RETURN (q0.X AS X) }"
74
+
- result: [{1}, {2}, {3}]
75
+
-
76
+
# correlations inside aggregations are allowed inside a nested subquery with group by
77
+
- query: select x from a where exists (select max(x), max(idb) from b where q > x group by q)
78
+
- explain: "SCAN(<,>) | TFILTER A | FLATMAP q0 -> { ISCAN(IB [[GREATER_THAN q0.X]]) | MAP (_ AS _0) | AGG (max_i(q0.X) AS _0, max_i(_._0.IDB) AS _1) GROUP BY (_._0.Q AS _0) | MAP (_._1._0 AS _0, _._1._1 AS _1) | DEFAULT NULL | FILTER _ NOT_NULL AS q0 RETURN (q0.X AS X) }"
79
+
- result: [{1}, {2}, {3}]
80
+
-
81
+
# correlations inside aggregations are allowed inside a nested subquery with group by
82
+
- query: select x from a where exists (select max(a.x), max(idb) from b where q > x group by q)
83
+
- explain: "SCAN(<,>) | TFILTER A | FLATMAP q0 -> { ISCAN(IB [[GREATER_THAN q0.X]]) | MAP (_ AS _0) | AGG (max_i(q0.X) AS _0, max_i(_._0.IDB) AS _1) GROUP BY (_._0.Q AS _0) | MAP (_._1._0 AS _0, _._1._1 AS _1) | DEFAULT NULL | FILTER _ NOT_NULL AS q0 RETURN (q0.X AS X) }"
84
+
- result: [{1}, {2}, {3}]
85
85
-
86
86
# plans with pushed-down predicates should be preferred
87
87
- query: select sq.idr, sq.z from (select * from r where idr = 1) sq, (select f from sq.nr where f > 10) sq2 where sq.z = 10 AND sq2.f is not null
0 commit comments