@Override public SimplifiedIntervalList getAvailableIntervals(PhysicalDataSourceConstraint constraint) { Set<String> requestColumns = constraint.getAllColumnPhysicalNames(); if (requestColumns.isEmpty()) { return new SimplifiedIntervalList(); } // Need to ensure requestColumns is not empty in order to prevent returning null by reduce operation return requestColumns.stream() .map(physicalName -> getAllAvailableIntervals().getOrDefault( physicalName, new SimplifiedIntervalList() )) .reduce(SimplifiedIntervalList::intersect) .orElse(new SimplifiedIntervalList()); }