@@ -223,43 +223,44 @@ $CLICKHOUSE_CLIENT -q "
223223 select number from numbers(5) where number in (select 1 + number from numbers(3))
224224 ) where number != 2 settings enable_optimize_predicate_expression=0"
225225
226+ # `query_plan_join_swap_table = 0` below to fix the query plan
226227echo " > one condition of filter is pushed down before LEFT JOIN"
227228$CLICKHOUSE_CLIENT --enable_analyzer=0 -q "
228229 explain actions = 1
229230 select number as a, r.b from numbers(4) as l any left join (
230231 select number + 2 as b from numbers(3)
231- ) as r on a = r.b where a != 1 and b != 2 settings enable_optimize_predicate_expression = 0" |
232+ ) as r on a = r.b where a != 1 and b != 2 settings enable_optimize_predicate_expression = 0, query_plan_join_swap_table = 0 " |
232233 grep -o " Join\|Filter column: notEquals(number, 1)"
233234echo " > (analyzer) one condition of filter is pushed down before LEFT JOIN"
234235$CLICKHOUSE_CLIENT --enable_analyzer=1 -q "
235236 explain actions = 1
236237 select number as a, r.b from numbers(4) as l any left join (
237238 select number + 2 as b from numbers(3)
238- ) as r on a = r.b where a != 1 and b != 2 settings enable_optimize_predicate_expression = 0" |
239+ ) as r on a = r.b where a != 1 and b != 2 settings enable_optimize_predicate_expression = 0, query_plan_join_swap_table = 0 " |
239240 grep -o " Join\|Filter column: notEquals(__table1.number, 1_UInt8)"
240241$CLICKHOUSE_CLIENT -q "
241242 select number as a, r.b from numbers(4) as l any left join (
242243 select number + 2 as b from numbers(3)
243- ) as r on a = r.b where a != 1 and b != 2 settings enable_optimize_predicate_expression = 0" | sort
244+ ) as r on a = r.b where a != 1 and b != 2 settings enable_optimize_predicate_expression = 0, query_plan_join_swap_table = 0 " | sort
244245
245246echo " > one condition of filter is pushed down before INNER JOIN"
246247$CLICKHOUSE_CLIENT --enable_analyzer=0 -q "
247248 explain actions = 1
248249 select number as a, r.b from numbers(4) as l any inner join (
249250 select number + 2 as b from numbers(3)
250- ) as r on a = r.b where a != 1 and b != 2 settings enable_optimize_predicate_expression = 0" |
251+ ) as r on a = r.b where a != 1 and b != 2 settings enable_optimize_predicate_expression = 0, query_plan_join_swap_table = 0 " |
251252 grep -o " Join\|Filter column: and(notEquals(number, 1), notEquals(number, 2))\|Filter column: and(notEquals(b, 2), notEquals(b, 1))"
252253echo " > (analyzer) one condition of filter is pushed down before INNER JOIN"
253254$CLICKHOUSE_CLIENT --enable_analyzer=1 -q "
254255 explain actions = 1
255256 select number as a, r.b from numbers(4) as l any inner join (
256257 select number + 2 as b from numbers(3)
257- ) as r on a = r.b where a != 1 and b != 2 settings enable_optimize_predicate_expression = 0" |
258+ ) as r on a = r.b where a != 1 and b != 2 settings enable_optimize_predicate_expression = 0, query_plan_join_swap_table = 0 " |
258259 grep -o " Join\|Filter column: and(notEquals(__table1.number, 1_UInt8), notEquals(__table1.number, 2_UInt8))\|Filter column: and(notEquals(__table2.b, 2_UInt8), notEquals(__table2.b, 1_UInt8))"
259260$CLICKHOUSE_CLIENT -q "
260261 select number as a, r.b from numbers(4) as l any inner join (
261262 select number + 2 as b from numbers(3)
262- ) as r on a = r.b where a != 1 and b != 2 settings enable_optimize_predicate_expression = 0"
263+ ) as r on a = r.b where a != 1 and b != 2 settings enable_optimize_predicate_expression = 0, query_plan_join_swap_table = 0 "
263264
264265echo " > filter is pushed down before UNION"
265266$CLICKHOUSE_CLIENT -q "
0 commit comments