kfaraz commented on code in PR #16623:
URL: https://github.com/apache/druid/pull/16623#discussion_r1644164974
##########
server/src/main/java/org/apache/druid/metadata/IndexerSQLMetadataStorageCoordinator.java:
##########
@@ -249,6 +249,47 @@ public List<Pair<DataSegment, String>>
retrieveUsedSegmentsAndCreatedDates(Strin
);
}
+ @Override
+ public List<DataSegment> retrieveUnusedSegmentsForExactIntervalAndVersion(
+ String dataSource,
+ Interval interval,
+ String version
+ )
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.append(StringUtils.format("SELECT payload FROM %s",
dbTables.getSegmentsTable()));
Review Comment:
For the use case at hand, we don't even need to get the payload, we can just
do `SELECT MAX(id)`. Then you can get rid of the `for` loop in `getUnusedMaxId`
method.
##########
server/src/main/java/org/apache/druid/indexing/overlord/IndexerMetadataStorageCoordinator.java:
##########
@@ -179,6 +179,12 @@ List<DataSegment> retrieveUnusedSegmentsForInterval(
@Nullable DateTime maxUsedStatusLastUpdatedTime
);
+ List<DataSegment> retrieveUnusedSegmentsForExactIntervalAndVersion(
Review Comment:
This does not need to be an interface method.
##########
server/src/main/java/org/apache/druid/metadata/IndexerSQLMetadataStorageCoordinator.java:
##########
@@ -249,6 +249,47 @@ public List<Pair<DataSegment, String>>
retrieveUsedSegmentsAndCreatedDates(Strin
);
}
+ @Override
+ public List<DataSegment> retrieveUnusedSegmentsForExactIntervalAndVersion(
+ String dataSource,
+ Interval interval,
+ String version
+ )
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.append(StringUtils.format("SELECT payload FROM %s",
dbTables.getSegmentsTable()));
+ sb.append(" WHERE used = :used AND dataSource = :dataSource AND version =
:version");
+ sb.append(StringUtils.format(" AND start = :start AND %1$send%1$s = :end",
connector.getQuoteString()));
Review Comment:
Don't use this pattern as it makes the query difficult to read. Do this
instead:
```
final String sql = "the whole sql";
handle.createQuery(StringUtils.format(sql, all the args))
```
--
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]