kfaraz commented on code in PR #15608:
URL: https://github.com/apache/druid/pull/15608#discussion_r1444151704
##########
server/src/main/java/org/apache/druid/metadata/IndexerSQLMetadataStorageCoordinator.java:
##########
@@ -180,18 +180,13 @@ public List<Pair<DataSegment, String>>
retrieveUsedSegmentsAndCreatedDates(Strin
"SELECT created_date, payload FROM %1$s WHERE dataSource = :dataSource
AND used = true"
);
- boolean hasEternityInterval = false;
- for (Interval interval : intervals) {
- if (Intervals.isEternity(interval)) {
- hasEternityInterval = true;
- break;
- }
- }
+ final boolean compareAsString =
intervals.stream().allMatch(Intervals::canCompareEndpointsAsStrings);
Review Comment:
Please rename to `compareIntervalsAsString` or
`compareIntervalEndpointsAsString`.
##########
server/src/main/java/org/apache/druid/metadata/IndexerSQLMetadataStorageCoordinator.java:
##########
@@ -202,16 +197,30 @@ public List<Pair<DataSegment, String>>
retrieveUsedSegmentsAndCreatedDates(Strin
.createQuery(queryString)
.bind("dataSource", dataSource);
- SqlSegmentsMetadataQuery.bindQueryIntervals(query, intervals);
+ if (compareAsString) {
+ SqlSegmentsMetadataQuery.bindQueryIntervals(query, intervals);
+ }
- return query
- .map((int index, ResultSet r, StatementContext ctx) ->
- new Pair<>(
- JacksonUtils.readValue(jsonMapper,
r.getBytes("payload"), DataSegment.class),
- r.getString("created_date")
- )
- )
- .list();
+ return query.map((int index, ResultSet r, StatementContext ctx) ->
+ new Pair<>(
+ JacksonUtils.readValue(jsonMapper,
r.getBytes("payload"), DataSegment.class),
+ r.getString("created_date")
+ )
+ )
+ .list()
Review Comment:
I think I would prefer to build this list and then filter it later in a
separate statement only if `intervals` is non-empty and we couldn't compare as
strings.
So something like:
```java
List<Pair<>> list = query.map().list();
if (intervals.isEmpty() || compareAsString) {
return list;
} else {
return list.stream().filter().collect();
}
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]