Hello all, Calcite contains many optimization rules. It is not obvious to me how to assemble them into a good planner. Can people recommend tested query planners based on Calcite that are open-source and that can be used as a starting point?
In particular, I am having trouble making a HEP-planner produce a good plan for Q21 from TPC-H; the planner I assembled produces many cartesian products. For reference, here is the variant of Q21 that I am using: create view q21 ( s_name, numwait ) as select s_name, count(*) as numwait from supplier, lineitem l1, orders, nation where s_suppkey = l1.l_suppkey and o_orderkey = l1.l_orderkey and o_orderstatus = 'F' and l1.l_receiptdate > l1.l_commitdate and exists ( select * from lineitem l2 where l2.l_orderkey = l1.l_orderkey and l2.l_suppkey <> l1.l_suppkey ) and not exists ( select * from lineitem l3 where l3.l_orderkey = l1.l_orderkey and l3.l_suppkey <> l1.l_suppkey and l3.l_receiptdate > l3.l_commitdate ) and s_nationkey = n_nationkey and n_name = 'GERMANY' group by s_name order by numwait desc, s_name LIMIT 100; Thank you for any suggestions! Mihai