public CostEstimate estimateCost(GroupScan scan) {
PlanCostEstimator estimator = newEstimator();
Set<TableSource> requiredTables = requiredColumns.getTables();
estimator.groupScan(scan, tables, requiredTables);
if (!requiredConditions.isEmpty()) {
estimator.select(requiredConditions,
selectivityConditions(requiredConditions, requiredTables));
}