Closed ulya-sidorina closed 4 months ago
Simplified repro:
$web_v1 = (
select web_sales.ws_item_sk item_sk, date_dim.d_date as d_date from bindings.web_sales as web_sales
cross join bindings.date_dim as date_dim
where ws_sold_date_sk=d_date_sk
);
$store_v1 = (
select store_sales.ss_item_sk item_sk, date_dim.d_date as d_date from bindings.store_sales as store_sales
cross join bindings.date_dim as date_dim
where ss_sold_date_sk=d_date_sk
);
select * from $web_v1 as web full outer join $store_v1 as store on (web.item_sk = store.item_sk and web.d_date = store.d_date);
Query fails here: https://github.com/ydb-platform/ydb/blob/16981dcdd4d003bb698482b0544034bc0f55e2dd/ydb/library/yql/core/type_ann/type_ann_join.cpp#L177
CBO chose EJoinAlgoType::MapJoin
, but JoinDict
was built here: https://github.com/ydb-platform/ydb/blob/16981dcdd4d003bb698482b0544034bc0f55e2dd/ydb/library/yql/dq/opt/dq_opt_join.cpp#L1479
We should deprecate using EHashJoinMode::Map
for full and exclusion joins