/** * Create a constrained copy of the source table. * * @param constraint The dataSourceConstraint which narrows the view of the underlying availability * * @return a constrained table whose availability and serialization are narrowed by this constraint */ @Override public ConstrainedTable withConstraint(DataSourceConstraint constraint) { return getSourceTable().withConstraint(constraint); } }
/** * Returns union of constrained availabilities of constrained logical table. * * @param logicalTable The constrained logical table * @param queryPlanningConstraint The constraint * * @return the union of constrained availabilities of constrained logical table */ public static SimplifiedIntervalList getConstrainedLogicalTableAvailability( LogicalTable logicalTable, QueryPlanningConstraint queryPlanningConstraint ) { return logicalTable.getTableGroup().getPhysicalTables().stream() .map(physicalTable -> physicalTable.withConstraint(queryPlanningConstraint)) .map(PhysicalTable::getAvailableIntervals) .reduce(new SimplifiedIntervalList(), SimplifiedIntervalList::union); }
ConstrainedTable table = resolver.resolve(group.getPhysicalTables(), constraint).withConstraint(constraint); Filter filter = druidFilterBuilder.buildFilters(request.getApiFilters());