ydb-platform / ydb

YDB is an open source Distributed SQL Database that combines high availability and scalability with strong consistency and ACID transactions
https://ydb.tech
Apache License 2.0
3.87k stars 536 forks source link

Исправить работу CBO в dqrun #5031

Open aakulaga-ydb opened 4 months ago

yumkam commented 1 month ago

ydb/library/yql/providers/dq/opt/logical_optimize.cpp использует TBaseProviderContext вместо определения наследника с корректной реализацией IsJoinApplicable и ComputeJoinCost (TBaseProviderContext всегда использует исключительно MapJoinCore, без учёта e.g. PRAGMA dq.HashJoinMode, и т.д.). Для сравнения, kqp использует отдельную реализацию в ydb/core/kqp/opt/logical/kqp_opt_cbo.cpp. Возможно, какие-то части её могут быть переиспользованы или унифицированы с dq.