Hi, While working on LogicalCorrelate, I identified that Calcite's cost model does not have room for rescans. In other words, the cost of the plan Correlate(ScanA, ScanB) is just selfCost(ScanA)+selfCost(ScanB)+selfCost(Correlate).
What is the intended way to report rescan cost? Should selfCost(Correlate) include numRows(A)*fullCost(ScanB) - fullCost(ScanB) ? /* Calcite will add fullCost(ScanB), so this -1 is a compensation */ -- Vladimir Sitnikov
