@@ -54,12 +54,11 @@ SELECT (SELECT (VALUES (x), (y))) FROM xysd
5454project
5555 ├── columns: column1:7(int)
5656 ├── stats: [rows=1000]
57- ├── fd: ()-->(5), (5)-->(7) [removed: (5)]
5857 ├── inner-join-apply
5958 │ ├── columns: x:1(int!null) y:2(int) column1:5(int)
6059 │ ├── stats: [rows=1000]
6160 │ ├── key: (1)
62- │ ├── fd: (1)-->(2), ()-->( 5)
61+ │ ├── fd: (1)-->(2, 5)
6362 │ ├── scan xysd
6463 │ │ ├── columns: x:1(int!null) y:2(int)
6564 │ │ ├── stats: [rows=1000]
@@ -122,7 +121,7 @@ project
122121 ├── columns: x:1(int!null) y:2(int) s:3(string) d:4(decimal!null) u:5(int!null)
123122 ├── stats: [rows=1000]
124123 ├── key: (1)
125- ├── fd: (1)-->(2-4 ), (3,4)~~>(1,2), ()-->(5 )
124+ ├── fd: (1)-->(2-5 ), (3,4)~~>(1,2)
126125 ├── scan xysd
127126 │ ├── columns: x:1(int!null) y:2(int) s:3(string) d:4(decimal!null)
128127 │ ├── stats: [rows=1000]
@@ -146,11 +145,10 @@ project
146145 │ │ ├── columns: u:5(int!null)
147146 │ │ ├── outer: (1)
148147 │ │ ├── stats: [rows=111.111111]
149- │ │ ├── fd: (5)==(1), (1)==(5) [removed: (1)]
150148 │ │ ├── scan uv
151149 │ │ │ ├── columns: u:5(int)
152150 │ │ │ └── stats: [rows=1000]
153- │ │ └── filters [type=bool, outer=(1,5), constraints=(/1: (/NULL - ]; /5: (/NULL - ]), fd=(5 )==(1 ), (1 )==(5 )]
151+ │ │ └── filters [type=bool, outer=(1,5), constraints=(/1: (/NULL - ]; /5: (/NULL - ]), fd=(1 )==(5 ), (5 )==(1 )]
154152 │ │ └── eq [type=bool, outer=(1,5), constraints=(/1: (/NULL - ]; /5: (/NULL - ])]
155153 │ │ ├── variable: uv.u [type=int, outer=(5)]
156154 │ │ └── variable: xysd.x [type=int, outer=(1)]
@@ -201,12 +199,12 @@ right-join
201199 │ ├── columns: x:1(int!null) y:2(int) s:3(string) d:4(decimal!null) uv.u:8(int)
202200 │ ├── stats: [rows=1000, distinct(8)=1]
203201 │ ├── key: (1)
204- │ ├── fd: (1)-->(2-4,8 ), (3,4)~~>(1,2), ()-->(8 )
202+ │ ├── fd: ()-->(8), ( 1)-->(2-4), (3,4)~~>(1,2)
205203 │ ├── left-join-apply
206204 │ │ ├── columns: x:1(int!null) y:2(int) s:3(string) d:4(decimal!null) uv.u:8(int)
207205 │ │ ├── stats: [rows=1000, distinct(8)=1]
208206 │ │ ├── key: (1)
209- │ │ ├── fd: (1)-->(2-4,8), (3,4)~~>(1,2), ()~~>(8)
207+ │ │ ├── fd: (1)-->(2-4,8), (3,4)~~>(1,2)
210208 │ │ ├── scan xysd
211209 │ │ │ ├── columns: x:1(int!null) y:2(int) s:3(string) d:4(decimal!null)
212210 │ │ │ ├── stats: [rows=1000]
@@ -223,16 +221,14 @@ right-join
223221 │ │ │ ├── columns: uv.u:8(int!null)
224222 │ │ │ ├── outer: (1)
225223 │ │ │ ├── stats: [rows=110.111111]
226- │ │ │ ├── fd: (8)==(1), (1)==(8) [removed: (1)]
227224 │ │ │ ├── select
228225 │ │ │ │ ├── columns: uv.u:8(int!null)
229226 │ │ │ │ ├── outer: (1)
230227 │ │ │ │ ├── stats: [rows=111.111111]
231- │ │ │ │ ├── fd: (8)==(1), (1)==(8) [removed: (1)]
232228 │ │ │ │ ├── scan uv
233229 │ │ │ │ │ ├── columns: uv.u:8(int)
234230 │ │ │ │ │ └── stats: [rows=1000]
235- │ │ │ │ └── filters [type=bool, outer=(1,8), constraints=(/1: (/NULL - ]; /8: (/NULL - ]), fd=(8 )==(1 ), (1 )==(8 )]
231+ │ │ │ │ └── filters [type=bool, outer=(1,8), constraints=(/1: (/NULL - ]; /8: (/NULL - ]), fd=(1 )==(8 ), (8 )==(1 )]
236232 │ │ │ │ └── eq [type=bool, outer=(1,8), constraints=(/1: (/NULL - ]; /8: (/NULL - ])]
237233 │ │ │ │ ├── variable: uv.u [type=int, outer=(8)]
238234 │ │ │ │ └── variable: xysd.x [type=int, outer=(1)]
@@ -307,16 +303,14 @@ project
307303 │ │ ├── columns: uv.u:8(int!null)
308304 │ │ ├── outer: (1)
309305 │ │ ├── stats: [rows=110.111111]
310- │ │ ├── fd: (8)==(1), (1)==(8) [removed: (1)]
311306 │ │ ├── select
312307 │ │ │ ├── columns: uv.u:8(int!null)
313308 │ │ │ ├── outer: (1)
314309 │ │ │ ├── stats: [rows=111.111111]
315- │ │ │ ├── fd: (8)==(1), (1)==(8) [removed: (1)]
316310 │ │ │ ├── scan uv
317311 │ │ │ │ ├── columns: uv.u:8(int)
318312 │ │ │ │ └── stats: [rows=1000]
319- │ │ │ └── filters [type=bool, outer=(1,8), constraints=(/1: (/NULL - ]; /8: (/NULL - ]), fd=(8 )==(1 ), (1 )==(8 )]
313+ │ │ │ └── filters [type=bool, outer=(1,8), constraints=(/1: (/NULL - ]; /8: (/NULL - ]), fd=(1 )==(8 ), (8 )==(1 )]
320314 │ │ │ └── eq [type=bool, outer=(1,8), constraints=(/1: (/NULL - ]; /8: (/NULL - ])]
321315 │ │ │ ├── variable: uv.u [type=int, outer=(8)]
322316 │ │ │ └── variable: xysd.x [type=int, outer=(1)]
@@ -335,7 +329,7 @@ semi-join
335329 ├── columns: x:1(int!null) y:2(int) s:3(string) d:4(decimal!null)
336330 ├── stats: [rows=100000]
337331 ├── key: (1)
338- ├── fd: (1)-->(2-4), (3,4)~~>(1,2), (1)==(5), (5)==(1) [removed: (5)]
332+ ├── fd: (1)-->(2-4), (3,4)~~>(1,2)
339333 ├── scan xysd
340334 │ ├── columns: x:1(int!null) y:2(int) s:3(string) d:4(decimal!null)
341335 │ ├── stats: [rows=1000]
@@ -367,16 +361,14 @@ semi-join-apply
367361 │ ├── columns: u:5(int) v:6(int!null)
368362 │ ├── outer: (1)
369363 │ ├── stats: [rows=110.111111]
370- │ ├── fd: (6)==(1), (1)==(6) [removed: (1)]
371364 │ ├── select
372365 │ │ ├── columns: u:5(int) v:6(int!null)
373366 │ │ ├── outer: (1)
374367 │ │ ├── stats: [rows=111.111111]
375- │ │ ├── fd: (6)==(1), (1)==(6) [removed: (1)]
376368 │ │ ├── scan uv
377369 │ │ │ ├── columns: u:5(int) v:6(int!null)
378370 │ │ │ └── stats: [rows=1000]
379- │ │ └── filters [type=bool, outer=(1,6), constraints=(/1: (/NULL - ]; /6: (/NULL - ]), fd=(6 )==(1 ), (1 )==(6 )]
371+ │ │ └── filters [type=bool, outer=(1,6), constraints=(/1: (/NULL - ]; /6: (/NULL - ]), fd=(1 )==(6 ), (6 )==(1 )]
380372 │ │ └── eq [type=bool, outer=(1,6), constraints=(/1: (/NULL - ]; /6: (/NULL - ])]
381373 │ │ ├── variable: uv.v [type=int, outer=(6)]
382374 │ │ └── variable: xysd.x [type=int, outer=(1)]
@@ -423,16 +415,14 @@ anti-join-apply
423415 │ ├── columns: u:5(int) v:6(int!null)
424416 │ ├── outer: (1)
425417 │ ├── stats: [rows=110.111111]
426- │ ├── fd: (6)==(1), (1)==(6) [removed: (1)]
427418 │ ├── select
428419 │ │ ├── columns: u:5(int) v:6(int!null)
429420 │ │ ├── outer: (1)
430421 │ │ ├── stats: [rows=111.111111]
431- │ │ ├── fd: (6)==(1), (1)==(6) [removed: (1)]
432422 │ │ ├── scan uv
433423 │ │ │ ├── columns: u:5(int) v:6(int!null)
434424 │ │ │ └── stats: [rows=1000]
435- │ │ └── filters [type=bool, outer=(1,6), constraints=(/1: (/NULL - ]; /6: (/NULL - ]), fd=(6 )==(1 ), (1 )==(6 )]
425+ │ │ └── filters [type=bool, outer=(1,6), constraints=(/1: (/NULL - ]; /6: (/NULL - ]), fd=(1 )==(6 ), (6 )==(1 )]
436426 │ │ └── eq [type=bool, outer=(1,6), constraints=(/1: (/NULL - ]; /6: (/NULL - ])]
437427 │ │ ├── variable: uv.v [type=int, outer=(6)]
438428 │ │ └── variable: xysd.x [type=int, outer=(1)]
@@ -598,12 +588,10 @@ semi-join-apply
598588 │ ├── outer: (1)
599589 │ ├── cardinality: [0 - 5]
600590 │ ├── stats: [rows=5]
601- │ ├── fd: (1)==(5), (5)==(1) [removed: (1)]
602591 │ ├── select
603592 │ │ ├── columns: u:5(int!null) v:6(int!null)
604593 │ │ ├── outer: (1)
605594 │ │ ├── stats: [rows=111.111111]
606- │ │ ├── fd: (1)==(5), (5)==(1) [removed: (1)]
607595 │ │ ├── scan uv
608596 │ │ │ ├── columns: u:5(int) v:6(int!null)
609597 │ │ │ └── stats: [rows=1000]
@@ -635,7 +623,7 @@ anti-join
635623 ├── scan uv
636624 │ ├── columns: u:2(int) v:3(int!null)
637625 │ └── stats: [rows=1000]
638- └── filters [type=bool, outer=(1,2), constraints=(/1: (/NULL - ]; /2: (/NULL - ]), fd=(2 )==(1 ), (1 )==(2 )]
626+ └── filters [type=bool, outer=(1,2), constraints=(/1: (/NULL - ]; /2: (/NULL - ]), fd=(1 )==(2 ), (2 )==(1 )]
639627 └── eq [type=bool, outer=(1,2), constraints=(/1: (/NULL - ]; /2: (/NULL - ])]
640628 ├── variable: uv.u [type=int, outer=(2)]
641629 └── variable: column1 [type=int, outer=(1)]
@@ -661,12 +649,10 @@ anti-join-apply
661649 │ ├── outer: (1)
662650 │ ├── cardinality: [0 - 5]
663651 │ ├── stats: [rows=5]
664- │ ├── fd: (1)==(5), (5)==(1) [removed: (1)]
665652 │ ├── select
666653 │ │ ├── columns: u:5(int!null) v:6(int!null)
667654 │ │ ├── outer: (1)
668655 │ │ ├── stats: [rows=111.111111]
669- │ │ ├── fd: (1)==(5), (5)==(1) [removed: (1)]
670656 │ │ ├── scan uv
671657 │ │ │ ├── columns: u:5(int) v:6(int!null)
672658 │ │ │ └── stats: [rows=1000]
@@ -979,7 +965,7 @@ right-join
979965 ├── columns: u:1(int) sum:4(decimal) x:5(int!null) y:6(int) s:7(string) d:8(decimal!null)
980966 ├── stats: [rows=70000]
981967 ├── key: (1,5)
982- ├── fd: (1)~~>(4), ( 5)-->(6-8), (7,8)~~>(5,6), (1,5)-->(4)
968+ ├── fd: (5)-->(6-8), (7,8)~~>(5,6), (1)~~>(4 ), (1,5)-->(4)
983969 ├── group-by
984970 │ ├── columns: u:1(int) sum:4(decimal)
985971 │ ├── grouping columns: u:1(int)
@@ -1094,7 +1080,7 @@ full-join
10941080 ├── columns: u:1(int) sum:4(decimal) x:5(int) y:6(int) s:7(string) d:8(decimal)
10951081 ├── stats: [rows=70000]
10961082 ├── key: (1,5)
1097- ├── fd: (1)~~>(4), ( 5)-->(6-8), (7,8)~~>(5,6), (1,5)-->(4)
1083+ ├── fd: (5)-->(6-8), (7,8)~~>(5,6), (1)~~>(4 ), (1,5)-->(4)
10981084 ├── group-by
10991085 │ ├── columns: u:1(int) sum:4(decimal)
11001086 │ ├── grouping columns: u:1(int)
0 commit comments