Skip to content

Commit 08cf54e

Browse files
committed
Apply some coderabbitai comments
1 parent 25840c5 commit 08cf54e

File tree

3 files changed

+26
-35
lines changed

3 files changed

+26
-35
lines changed

presto-clp/src/main/java/com/facebook/presto/plugin/clp/ClpMetadataFilterProvider.java

Lines changed: 22 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import java.util.Map;
3131
import java.util.Objects;
3232
import java.util.Set;
33+
import java.util.function.Function;
3334

3435
import static com.facebook.presto.plugin.clp.ClpConnectorFactory.CONNECTOR_NAME;
3536
import static com.facebook.presto.plugin.clp.ClpErrorCode.CLP_MANDATORY_METADATA_FILTER_NOT_VALID;
@@ -97,7 +98,7 @@ public void checkContainsRequiredFilters(SchemaTableName schemaTableName, String
9798
{
9899
boolean hasRequiredMetadataFilterColumns = true;
99100
ImmutableList.Builder<String> notFoundListBuilder = ImmutableList.builder();
100-
for (String columnName : getRequiredFilterNames(format("%s.%s", CONNECTOR_NAME, schemaTableName))) {
101+
for (String columnName : getRequiredColumnNames(format("%s.%s", CONNECTOR_NAME, schemaTableName))) {
101102
if (!metadataFilterSql.contains(columnName)) {
102103
hasRequiredMetadataFilterColumns = false;
103104
notFoundListBuilder.add(columnName);
@@ -166,52 +167,42 @@ public String remapFilterSql(String scope, String sql)
166167
return remappedSql;
167168
}
168169

169-
public Set<String> getFilterNames(String scope)
170+
public Set<String> getColumnNames(String scope)
170171
{
171-
String[] splitScope = scope.split("\\.");
172-
if (0 == splitScope.length) {
173-
return ImmutableSet.of();
174-
}
175-
ImmutableSet.Builder<String> builder = ImmutableSet.builder();
176-
builder.addAll(getAllFilterNamesFromFilters(filterMap.get(splitScope[0])));
177-
178-
if (1 < splitScope.length) {
179-
builder.addAll(getAllFilterNamesFromFilters(filterMap.get(splitScope[0] + "." + splitScope[1])));
180-
}
181-
182-
if (3 == splitScope.length) {
183-
builder.addAll(getAllFilterNamesFromFilters(filterMap.get(scope)));
184-
}
185-
return builder.build();
172+
return collectColumnNamesFromScopes(scope, this::getAllColumnNamesFromFilters);
186173
}
187174

188-
private Set<String> getAllFilterNamesFromFilters(List<Filter> filters)
175+
private Set<String> getRequiredColumnNames(String scope)
189176
{
190-
return null != filters ? filters.stream()
191-
.map(filter -> filter.columnName)
192-
.collect(toImmutableSet()) : ImmutableSet.of();
177+
return collectColumnNamesFromScopes(scope, this::getRequiredColumnNamesFromFilters);
193178
}
194179

195-
private Set<String> getRequiredFilterNames(String scope)
180+
private Set<String> collectColumnNamesFromScopes(String scope, Function<List<Filter>, Set<String>> extractor)
196181
{
197182
String[] splitScope = scope.split("\\.");
198-
if (0 == splitScope.length) {
199-
return ImmutableSet.of();
200-
}
201183
ImmutableSet.Builder<String> builder = ImmutableSet.builder();
202-
builder.addAll(getRequiredFilterNamesFromFilters(filterMap.get(splitScope[0])));
203184

204-
if (1 < splitScope.length) {
205-
builder.addAll(getRequiredFilterNamesFromFilters(filterMap.get(splitScope[0] + "." + splitScope[1])));
185+
builder.addAll(extractor.apply(filterMap.get(splitScope[0])));
186+
187+
if (splitScope.length > 1) {
188+
builder.addAll(extractor.apply(filterMap.get(splitScope[0] + "." + splitScope[1])));
206189
}
207190

208-
if (3 == splitScope.length) {
209-
builder.addAll(getRequiredFilterNamesFromFilters(filterMap.get(scope)));
191+
if (splitScope.length == 3) {
192+
builder.addAll(extractor.apply(filterMap.get(scope)));
210193
}
194+
211195
return builder.build();
212196
}
213197

214-
private Set<String> getRequiredFilterNamesFromFilters(List<Filter> filters)
198+
private Set<String> getAllColumnNamesFromFilters(List<Filter> filters)
199+
{
200+
return null != filters ? filters.stream()
201+
.map(filter -> filter.columnName)
202+
.collect(toImmutableSet()) : ImmutableSet.of();
203+
}
204+
205+
private Set<String> getRequiredColumnNamesFromFilters(List<Filter> filters)
215206
{
216207
return null != filters ? filters.stream()
217208
.filter(filter -> filter.required)

presto-clp/src/main/java/com/facebook/presto/plugin/clp/ClpPlanOptimizer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public PlanNode visitFilter(FilterNode node, RewriteContext<Void> context)
8484
functionResolution,
8585
functionManager,
8686
assignments,
87-
metadataFilterProvider.getFilterNames(scope)), null);
87+
metadataFilterProvider.getColumnNames(scope)), null);
8888
Optional<String> kqlQuery = clpExpression.getPushDownExpression();
8989
Optional<String> metadataSqlQuery = clpExpression.getMetadataSqlQuery();
9090
Optional<RowExpression> remainingPredicate = clpExpression.getRemainingExpression();

presto-clp/src/test/java/com/facebook/presto/plugin/clp/TestClpMetadataFilterConfig.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,11 @@ public void getFilterNames()
6666
ClpConfig config = new ClpConfig();
6767
config.setMetadataFilterConfig(filterConfigPath);
6868
ClpMetadataFilterProvider filterProvider = new ClpMetadataFilterProvider(config);
69-
Set<String> catalogFilterNames = filterProvider.getFilterNames("clp");
69+
Set<String> catalogFilterNames = filterProvider.getColumnNames("clp");
7070
assertEquals(ImmutableSet.of("level"), catalogFilterNames);
71-
Set<String> schemaFilterNames = filterProvider.getFilterNames("clp.default");
71+
Set<String> schemaFilterNames = filterProvider.getColumnNames("clp.default");
7272
assertEquals(ImmutableSet.of("level", "author"), schemaFilterNames);
73-
Set<String> tableFilterNames = filterProvider.getFilterNames("clp.default.table_1");
73+
Set<String> tableFilterNames = filterProvider.getColumnNames("clp.default.table_1");
7474
assertEquals(ImmutableSet.of("level", "author", "msg.timestamp", "file_name"), tableFilterNames);
7575
}
7676

0 commit comments

Comments
 (0)