@@ -48,7 +48,7 @@ impl WrapperRules {
4848 // Rule would place ?left_cube_scan_input to `from` position of WrappedSelect(WrappedSelectPushToCube:true)
4949 // So it need to support push-to-Cube
5050 "WrapperReplacerContextPushToCube:true" ,
51- "?in_projection " ,
51+ "?left_in_projection " ,
5252 // Going to use this in RHS of rule
5353 // RHS of join is grouped, so it shouldn't have any cubes or members
5454 "?left_cube_members" ,
@@ -65,7 +65,7 @@ impl WrapperRules {
6565 // Going to ignore this
6666 "?right_alias_to_cube" ,
6767 "?right_push_to_cube" ,
68- "?in_projection " ,
68+ "?right_in_projection " ,
6969 // Going to ignore this
7070 "?right_cube_members" ,
7171 "?right_grouped_subqueries" ,
@@ -80,6 +80,9 @@ impl WrapperRules {
8080 "?join_constraint" ,
8181 "JoinNullEqualsNull:false" ,
8282 ) ,
83+ // RHS is using WrapperReplacerContextInProjection:false because only part
84+ // that should have push down replacer is join condition, and it should only contain dimensions
85+ // Other way of thinking about it: join condition is more like filter than projection
8386 cube_scan_wrapper(
8487 wrapped_select(
8588 "WrappedSelectSelectType:Projection" ,
@@ -88,7 +91,7 @@ impl WrapperRules {
8891 wrapper_replacer_context(
8992 "?left_alias_to_cube" ,
9093 "WrapperReplacerContextPushToCube:true" ,
91- "?in_projection " ,
94+ "WrapperReplacerContextInProjection:false " ,
9295 "?left_cube_members" ,
9396 "?out_grouped_subqueries" ,
9497 // Can use it, because we've checked that left input allows push-to-Cube,
@@ -101,7 +104,7 @@ impl WrapperRules {
101104 wrapper_replacer_context(
102105 "?left_alias_to_cube" ,
103106 "WrapperReplacerContextPushToCube:true" ,
104- "?in_projection " ,
107+ "WrapperReplacerContextInProjection:false " ,
105108 "?left_cube_members" ,
106109 "?out_grouped_subqueries" ,
107110 "WrapperReplacerContextUngroupedScan:true" ,
@@ -112,7 +115,7 @@ impl WrapperRules {
112115 wrapper_replacer_context(
113116 "?left_alias_to_cube" ,
114117 "WrapperReplacerContextPushToCube:true" ,
115- "?in_projection " ,
118+ "WrapperReplacerContextInProjection:false " ,
116119 "?left_cube_members" ,
117120 "?out_grouped_subqueries" ,
118121 "WrapperReplacerContextUngroupedScan:true" ,
@@ -123,7 +126,7 @@ impl WrapperRules {
123126 wrapper_replacer_context(
124127 "?left_alias_to_cube" ,
125128 "WrapperReplacerContextPushToCube:true" ,
126- "?in_projection " ,
129+ "WrapperReplacerContextInProjection:false " ,
127130 "?left_cube_members" ,
128131 "?out_grouped_subqueries" ,
129132 "WrapperReplacerContextUngroupedScan:true" ,
@@ -134,7 +137,7 @@ impl WrapperRules {
134137 wrapper_replacer_context(
135138 "?left_alias_to_cube" ,
136139 "WrapperReplacerContextPushToCube:true" ,
137- "?in_projection " ,
140+ "WrapperReplacerContextInProjection:false " ,
138141 "?left_cube_members" ,
139142 "?out_grouped_subqueries" ,
140143 "WrapperReplacerContextUngroupedScan:true" ,
@@ -147,7 +150,7 @@ impl WrapperRules {
147150 wrapper_replacer_context(
148151 "?left_alias_to_cube" ,
149152 "WrapperReplacerContextPushToCube:true" ,
150- "?in_projection " ,
153+ "WrapperReplacerContextInProjection:false " ,
151154 "?left_cube_members" ,
152155 "?out_grouped_subqueries" ,
153156 "WrapperReplacerContextUngroupedScan:true" ,
@@ -161,7 +164,7 @@ impl WrapperRules {
161164 wrapper_replacer_context(
162165 "?left_alias_to_cube" ,
163166 "WrapperReplacerContextPushToCube:true" ,
164- "?in_projection " ,
167+ "WrapperReplacerContextInProjection:false " ,
165168 "?left_cube_members" ,
166169 "?out_grouped_subqueries" ,
167170 "WrapperReplacerContextUngroupedScan:true" ,
@@ -175,7 +178,7 @@ impl WrapperRules {
175178 // On other: RHS is grouped, so any column is just a column
176179 // Right now, it is relying on grouped_subqueries + PushToCube:true, to allow both dimensions and grouped columns
177180 "WrapperReplacerContextPushToCube:true" ,
178- "?in_projection " ,
181+ "WrapperReplacerContextInProjection:false " ,
179182 "?left_cube_members" ,
180183 "?out_grouped_subqueries" ,
181184 "WrapperReplacerContextUngroupedScan:true" ,
@@ -189,7 +192,7 @@ impl WrapperRules {
189192 wrapper_replacer_context(
190193 "?left_alias_to_cube" ,
191194 "WrapperReplacerContextPushToCube:true" ,
192- "?in_projection " ,
195+ "WrapperReplacerContextInProjection:false " ,
193196 "?left_cube_members" ,
194197 "?out_grouped_subqueries" ,
195198 "WrapperReplacerContextUngroupedScan:true" ,
@@ -201,7 +204,7 @@ impl WrapperRules {
201204 wrapper_replacer_context(
202205 "?left_alias_to_cube" ,
203206 "WrapperReplacerContextPushToCube:true" ,
204- "?in_projection " ,
207+ "WrapperReplacerContextInProjection:false " ,
205208 "?left_cube_members" ,
206209 "?out_grouped_subqueries" ,
207210 "WrapperReplacerContextUngroupedScan:true" ,
@@ -215,7 +218,7 @@ impl WrapperRules {
215218 wrapper_replacer_context(
216219 "?left_alias_to_cube" ,
217220 "WrapperReplacerContextPushToCube:true" ,
218- "?in_projection " ,
221+ "WrapperReplacerContextInProjection:false " ,
219222 "?left_cube_members" ,
220223 "?out_grouped_subqueries" ,
221224 "WrapperReplacerContextUngroupedScan:true" ,
0 commit comments