Skip to content

Commit bb7dcd7

Browse files
committed
Use a dedicated spi method in Connector for distributed procedure
1 parent 899a42b commit bb7dcd7

File tree

4 files changed

+27
-17
lines changed

4 files changed

+27
-17
lines changed

presto-iceberg/src/main/java/com/facebook/presto/iceberg/IcebergConnector.java

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232
import com.facebook.presto.spi.connector.ConnectorTransactionHandle;
3333
import com.facebook.presto.spi.connector.classloader.ClassLoaderSafeConnectorMetadata;
3434
import com.facebook.presto.spi.procedure.BaseProcedure;
35+
import com.facebook.presto.spi.procedure.DistributedProcedure;
36+
import com.facebook.presto.spi.procedure.Procedure;
3537
import com.facebook.presto.spi.session.PropertyMetadata;
3638
import com.facebook.presto.spi.transaction.IsolationLevel;
3739
import com.google.common.collect.ImmutableList;
@@ -151,11 +153,15 @@ public Set<SystemTable> getSystemTables()
151153
}
152154

153155
@Override
154-
public <T extends BaseProcedure<?>> Set<T> getProcedures(Class<T> clazz)
156+
public Set<Procedure> getProcedures()
155157
{
156-
return procedures.stream().filter(clazz::isInstance)
157-
.map(clazz::cast)
158-
.collect(Collectors.toSet());
158+
return getProcedures(Procedure.class);
159+
}
160+
161+
@Override
162+
public Set<DistributedProcedure> getDistributedProcedures()
163+
{
164+
return getProcedures(DistributedProcedure.class);
159165
}
160166

161167
@Override
@@ -233,4 +239,11 @@ public Set<Class<?>> getSystemFunctions()
233239
.add(IcebergBucketFunction.Bucket.class)
234240
.build();
235241
}
242+
243+
private <T extends BaseProcedure<?>> Set<T> getProcedures(Class<T> clazz)
244+
{
245+
return procedures.stream().filter(clazz::isInstance)
246+
.map(clazz::cast)
247+
.collect(Collectors.toSet());
248+
}
236249
}

presto-main-base/src/main/java/com/facebook/presto/connector/ConnectorManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@ public MaterializedConnector(ConnectorId connectorId, Connector connector)
451451
Set<Procedure> procedures = connector.getProcedures();
452452
requireNonNull(procedures, "Connector %s returned a null procedures set");
453453
proceduresBuilder.addAll(procedures);
454-
Set<DistributedProcedure> distributedProcedures = connector.getProcedures(DistributedProcedure.class);
454+
Set<DistributedProcedure> distributedProcedures = connector.getDistributedProcedures();
455455
requireNonNull(distributedProcedures, "Connector %s returned a null distributedProcedures set");
456456
proceduresBuilder.addAll(distributedProcedures);
457457
this.procedures = ImmutableSet.copyOf(proceduresBuilder.build());

presto-main-base/src/test/java/com/facebook/presto/sql/planner/TestLogicalPlanner.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@
7070
import com.facebook.presto.util.MorePredicates;
7171
import com.google.common.collect.ImmutableList;
7272
import com.google.common.collect.ImmutableMap;
73-
import com.google.common.collect.ImmutableSet;
7473
import org.testng.annotations.BeforeClass;
7574
import org.testng.annotations.Test;
7675

@@ -82,6 +81,7 @@
8281
import java.util.Set;
8382
import java.util.function.Consumer;
8483
import java.util.function.Predicate;
84+
import java.util.stream.Collectors;
8585

8686
import static com.facebook.presto.SystemSessionProperties.DISTRIBUTED_SORT;
8787
import static com.facebook.presto.SystemSessionProperties.ENFORCE_FIXED_DISTRIBUTION_FOR_OUTPUT_OPERATOR;
@@ -243,14 +243,11 @@ public ConnectorSplitManager getSplitManager()
243243
}
244244

245245
@Override
246-
public Set<BaseProcedure<?>> getProcedures(Class clazz)
246+
public Set<DistributedProcedure> getDistributedProcedures()
247247
{
248-
if (DistributedProcedure.class.isAssignableFrom(clazz)) {
249-
return procedures;
250-
}
251-
else {
252-
return ImmutableSet.of();
253-
}
248+
return procedures.stream().filter(DistributedProcedure.class::isInstance)
249+
.map(DistributedProcedure.class::cast)
250+
.collect(Collectors.toSet());
254251
}
255252
};
256253
}

presto-spi/src/main/java/com/facebook/presto/spi/connector/Connector.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
import com.facebook.presto.spi.SystemTable;
1717
import com.facebook.presto.spi.function.table.ConnectorTableFunction;
18-
import com.facebook.presto.spi.procedure.BaseProcedure;
18+
import com.facebook.presto.spi.procedure.DistributedProcedure;
1919
import com.facebook.presto.spi.procedure.Procedure;
2020
import com.facebook.presto.spi.session.PropertyMetadata;
2121
import com.facebook.presto.spi.transaction.IsolationLevel;
@@ -108,13 +108,13 @@ default Set<SystemTable> getSystemTables()
108108
*/
109109
default Set<Procedure> getProcedures()
110110
{
111-
return getProcedures(Procedure.class);
111+
return emptySet();
112112
}
113113

114114
/**
115-
* @return the set of procedures with target class provided by this connector
115+
* @return the set of distributed procedures provided by this connector
116116
*/
117-
default <T extends BaseProcedure<?>> Set<T> getProcedures(Class<T> targetClz)
117+
default Set<DistributedProcedure> getDistributedProcedures()
118118
{
119119
return emptySet();
120120
}

0 commit comments

Comments
 (0)