Hi there, HepPlanner chooses the one with smallest Cumulative Cost from transformations by a rule. LoptOptimizeJoinRule searches for the best ordering of a MultiJoin. How to consider indices during the search? Is there any RelNode that is suitable to hold physical access path?
Looks like TableScan is not a good one. A table scan is usually the worst access path; any relation operator above table scan adds additional cost. An index scan can be better, which firstly use the index to locate a range of rows, then access each row with random IO. By the way, in MySQL, there is a greedy search tries almost all kinds of orderings, and during the search it also choose the best access path of a table. Thanks, Kaiwang