@@ -26,13 +26,13 @@ where t_10.a = t_1000.a and t_100.a = t_1000.a
2626----
2727Memo
2828├── root group: #8
29- ├── estimated memory: 10.69 KiB
29+ ├── estimated memory: 10.09 KiB
3030├── Group #0
3131│ ├── Best properties
3232│ │ ├── { dist: Any }: expr: #0, cost: <slt:ignore>, children: []
33- │ │ └── { dist: Hash(t_1000.a (#2)::Int32 NULL) }: expr: #1, cost: <slt:ignore>, children: [{ dist: Any }]
33+ │ │ └── { dist: Hash(t_1000.a (#2)::Int32 NULL, t_1000.a (#2)::Int32 NULL ) }: expr: #1, cost: <slt:ignore>, children: [{ dist: Any }]
3434│ ├── #0 Scan []
35- │ └── #1 Exchange: (Hash(t_1000.a (#2)::Int32 NULL)) [#0]
35+ │ └── #1 Exchange: (Hash(t_1000.a (#2)::Int32 NULL,t_1000.a (#2)::Int32 NULL )) [#0]
3636├── Group #1
3737│ ├── Best properties
3838│ │ ├── { dist: Any }: expr: #0, cost: <slt:ignore>, children: []
5151│ ├── Best properties
5252│ │ ├── { dist: Any }: expr: #0, cost: <slt:ignore>, children: [{ dist: Any }, { dist: Broadcast }]
5353│ │ ├── { dist: Broadcast }: expr: #1, cost: <slt:ignore>, children: [{ dist: Any }]
54- │ │ ├── { dist: Hash(t_10.a (#0)::Int32 NULL) }: expr: #2, cost: <slt:ignore>, children: [{ dist: Any }]
55- │ │ └── { dist: Hash(t_100.a (#1)::Int32 NULL) }: expr: #0, cost: <slt:ignore>, children: [{ dist: Hash(t_100.a (#1)::Int32 NULL) }, { dist: Hash(t_10.a (#0)::Int32 NULL) }]
54+ │ │ └── { dist: Hash(t_10.a (#0)::Int32 NULL, t_100.a (#1)::Int32 NULL) }: expr: #2, cost: 1820.000, children: [{ dist: Any }]
5655│ ├── #0 Join [#1, #2]
5756│ ├── #1 Exchange: (Broadcast) [#3]
58- │ ├── #2 Exchange: (Hash(t_10.a (#0)::Int32 NULL)) [#3]
59- │ └── #3 Exchange: (Hash(t_100.a (#1)::Int32 NULL)) [#3]
57+ │ └── #2 Exchange: (Hash(t_10.a (#0)::Int32 NULL,t_100.a (#1)::Int32 NULL)) [#3]
6058├── Group #4
6159│ ├── Best properties
6260│ │ └── { dist: Any }: expr: #0, cost: <slt:ignore>, children: [{ dist: Any }, { dist: Broadcast }]
@@ -89,13 +87,13 @@ group by t_10.a, t_100.a
8987----
9088Memo
9189├── root group: #8
92- ├── estimated memory: 26.72 KiB
90+ ├── estimated memory: 26.12 KiB
9391├── Group #0
9492│ ├── Best properties
9593│ │ ├── { dist: Any }: expr: #0, cost: <slt:ignore>, children: []
96- │ │ └── { dist: Hash(t_1000.a (#2)::Int32 NULL) }: expr: #1, cost: <slt:ignore>, children: [{ dist: Any }]
94+ │ │ └── { dist: Hash(t_1000.a (#2)::Int32 NULL, t_1000.a (#2)::Int32 NULL ) }: expr: #1, cost: <slt:ignore>, children: [{ dist: Any }]
9795│ ├── #0 Scan []
98- │ └── #1 Exchange: (Hash(t_1000.a (#2)::Int32 NULL)) [#0]
96+ │ └── #1 Exchange: (Hash(t_1000.a (#2)::Int32 NULL,t_1000.a (#2)::Int32 NULL )) [#0]
9997├── Group #1
10098│ ├── Best properties
10199│ │ ├── { dist: Any }: expr: #0, cost: <slt:ignore>, children: []
@@ -114,12 +112,12 @@ Memo
114112│ ├── Best properties
115113│ │ ├── { dist: Any }: expr: #0, cost: <slt:ignore>, children: [{ dist: Any }, { dist: Broadcast }]
116114│ │ ├── { dist: Broadcast }: expr: #1, cost: <slt:ignore>, children: [{ dist: Any }]
117- │ │ ├── { dist: Hash(t_10.a (#0)::Int32 NULL) }: expr: #2 , cost: <slt:ignore>, children: [{ dist: Any }]
118- │ │ └── { dist: Hash(t_100.a (#1)::Int32 NULL) }: expr: #0 , cost: <slt:ignore>, children: [{ dist: Hash(t_100.a (#1)::Int32 NULL) }, { dist: Hash(t_10.a (#0)::Int32 NULL) }]
115+ │ │ ├── { dist: Hash(t_10.a (#0)::Int32 NULL) }: expr: #3 , cost: <slt:ignore>, children: [{ dist: Any }]
116+ │ │ └── { dist: Hash(t_10.a (#0)::Int32 NULL, t_100.a (#1)::Int32 NULL) }: expr: #2 , cost: <slt:ignore>, children: [{ dist: Any }]
119117│ ├── #0 Join [#1, #2]
120118│ ├── #1 Exchange: (Broadcast) [#3]
121- │ ├── #2 Exchange: (Hash(t_10.a (#0)::Int32 NULL)) [#3]
122- │ └── #3 Exchange: (Hash(t_100 .a (#1 )::Int32 NULL)) [#3]
119+ │ ├── #2 Exchange: (Hash(t_10.a (#0)::Int32 NULL,t_100.a (#1)::Int32 NULL )) [#3]
120+ │ └── #3 Exchange: (Hash(t_10 .a (#0 )::Int32 NULL)) [#3]
123121├── Group #4
124122│ ├── Best properties
125123│ │ └── { dist: Any }: expr: #0, cost: <slt:ignore>, children: [{ dist: Any }, { dist: Broadcast }]
160158├── Group #11
161159│ ├── Best properties
162160│ │ ├── { dist: Any }: expr: #0, cost: <slt:ignore>, children: [{ dist: Any }]
163- │ │ └── { dist: Hash(t_1000.a (#2)::Int32 NULL) }: expr: #1, cost: <slt:ignore>, children: [{ dist: Any }]
161+ │ │ └── { dist: Hash(t_1000.a (#2)::Int32 NULL, t_1000.a (#2)::Int32 NULL ) }: expr: #1, cost: <slt:ignore>, children: [{ dist: Any }]
164162│ ├── #0 Aggregate [#10]
165- │ └── #1 Exchange: (Hash(t_1000.a (#2)::Int32 NULL)) [#11]
163+ │ └── #1 Exchange: (Hash(t_1000.a (#2)::Int32 NULL,t_1000.a (#2)::Int32 NULL )) [#11]
166164├── Group #12
167165│ ├── Best properties
168166│ │ ├── { dist: Any }: expr: #0, cost: <slt:ignore>, children: [{ dist: Any }, { dist: Broadcast }]
@@ -184,13 +182,11 @@ Memo
184182├── Group #16
185183│ ├── Best properties
186184│ │ ├── { dist: Any }: expr: #0, cost: <slt:ignore>, children: [{ dist: Any }]
187- │ │ ├── { dist: Broadcast }: expr: #3, cost: <slt:ignore>, children: [{ dist: Any }]
188- │ │ ├── { dist: Hash(t_10.a (#0)::Int32 NULL) }: expr: #1, cost: <slt:ignore>, children: [{ dist: Any }]
189- │ │ └── { dist: Hash(t_100.a (#1)::Int32 NULL) }: expr: #2, cost: <slt:ignore>, children: [{ dist: Any }]
185+ │ │ ├── { dist: Broadcast }: expr: #2, cost: <slt:ignore>, children: [{ dist: Any }]
186+ │ │ └── { dist: Hash(t_10.a (#0)::Int32 NULL, t_100.a (#1)::Int32 NULL) }: expr: #1, cost: <slt:ignore>, children: [{ dist: Any }]
190187│ ├── #0 Aggregate [#15]
191- │ ├── #1 Exchange: (Hash(t_10.a (#0)::Int32 NULL)) [#16]
192- │ ├── #2 Exchange: (Hash(t_100.a (#1)::Int32 NULL)) [#16]
193- │ └── #3 Exchange: (Broadcast) [#16]
188+ │ ├── #1 Exchange: (Hash(t_10.a (#0)::Int32 NULL,t_100.a (#1)::Int32 NULL)) [#16]
189+ │ └── #2 Exchange: (Broadcast) [#16]
194190├── Group #17
195191│ ├── Best properties
196192│ │ └── { dist: Any }: expr: #0, cost: <slt:ignore>, children: [{ dist: Any }, { dist: Broadcast }]
0 commit comments