Skip to content

Commit 7623e5b

Browse files
committed
Refactor the connector SPI to expose procedure registry to connectors
1 parent 903b4ab commit 7623e5b

File tree

4 files changed

+22
-0
lines changed

4 files changed

+22
-0
lines changed

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.facebook.presto.spi.function.FunctionMetadataManager;
2424
import com.facebook.presto.spi.function.StandardFunctionResolution;
2525
import com.facebook.presto.spi.plan.FilterStatsCalculatorService;
26+
import com.facebook.presto.spi.procedure.IProcedureRegistry;
2627
import com.facebook.presto.spi.relation.RowExpressionService;
2728

2829
import static java.util.Objects.requireNonNull;
@@ -32,6 +33,7 @@ public class ConnectorContextInstance
3233
{
3334
private final NodeManager nodeManager;
3435
private final TypeManager typeManager;
36+
private final IProcedureRegistry procedureRegistry;
3537
private final FunctionMetadataManager functionMetadataManager;
3638
private final StandardFunctionResolution functionResolution;
3739
private final PageSorter pageSorter;
@@ -44,6 +46,7 @@ public class ConnectorContextInstance
4446
public ConnectorContextInstance(
4547
NodeManager nodeManager,
4648
TypeManager typeManager,
49+
IProcedureRegistry procedureRegistry,
4750
FunctionMetadataManager functionMetadataManager,
4851
StandardFunctionResolution functionResolution,
4952
PageSorter pageSorter,
@@ -55,6 +58,7 @@ public ConnectorContextInstance(
5558
{
5659
this.nodeManager = requireNonNull(nodeManager, "nodeManager is null");
5760
this.typeManager = requireNonNull(typeManager, "typeManager is null");
61+
this.procedureRegistry = requireNonNull(procedureRegistry, "procedureRegistry is null");
5862
this.functionMetadataManager = requireNonNull(functionMetadataManager, "functionMetadataManager is null");
5963
this.functionResolution = requireNonNull(functionResolution, "functionResolution is null");
6064
this.pageSorter = requireNonNull(pageSorter, "pageSorter is null");
@@ -77,6 +81,12 @@ public TypeManager getTypeManager()
7781
return typeManager;
7882
}
7983

84+
@Override
85+
public IProcedureRegistry getProcedureRegistry()
86+
{
87+
return procedureRegistry;
88+
}
89+
8090
@Override
8191
public FunctionMetadataManager getFunctionMetadataManager()
8292
{

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
import com.facebook.presto.spi.connector.ConnectorRecordSetProvider;
5353
import com.facebook.presto.spi.connector.ConnectorSplitManager;
5454
import com.facebook.presto.spi.function.table.ConnectorTableFunction;
55+
import com.facebook.presto.spi.procedure.IProcedureRegistry;
5556
import com.facebook.presto.spi.procedure.Procedure;
5657
import com.facebook.presto.spi.relation.DeterminismEvaluator;
5758
import com.facebook.presto.spi.relation.DomainTranslator;
@@ -110,6 +111,7 @@ public class ConnectorManager
110111
private final HandleResolver handleResolver;
111112
private final InternalNodeManager nodeManager;
112113
private final TypeManager typeManager;
114+
private final IProcedureRegistry procedureRegistry;
113115
private final PageSorter pageSorter;
114116
private final PageIndexerFactory pageIndexerFactory;
115117
private final NodeInfo nodeInfo;
@@ -146,6 +148,7 @@ public ConnectorManager(
146148
InternalNodeManager nodeManager,
147149
NodeInfo nodeInfo,
148150
TypeManager typeManager,
151+
IProcedureRegistry procedureRegistry,
149152
PageSorter pageSorter,
150153
PageIndexerFactory pageIndexerFactory,
151154
TransactionManager transactionManager,
@@ -170,6 +173,7 @@ public ConnectorManager(
170173
this.handleResolver = requireNonNull(handleResolver, "handleResolver is null");
171174
this.nodeManager = requireNonNull(nodeManager, "nodeManager is null");
172175
this.typeManager = requireNonNull(typeManager, "typeManager is null");
176+
this.procedureRegistry = requireNonNull(procedureRegistry, "procedureRegistry is null");
173177
this.pageSorter = requireNonNull(pageSorter, "pageSorter is null");
174178
this.pageIndexerFactory = requireNonNull(pageIndexerFactory, "pageIndexerFactory is null");
175179
this.nodeInfo = requireNonNull(nodeInfo, "nodeInfo is null");
@@ -374,6 +378,7 @@ private Connector createConnector(ConnectorId connectorId, ConnectorFactory fact
374378
ConnectorContext context = new ConnectorContextInstance(
375379
new ConnectorAwareNodeManager(nodeManager, nodeInfo.getEnvironment(), connectorId),
376380
typeManager,
381+
procedureRegistry,
377382
metadataManager.getFunctionAndTypeManager(),
378383
new FunctionResolution(metadataManager.getFunctionAndTypeManager().getFunctionAndTypeResolver()),
379384
pageSorter,

presto-main-base/src/main/java/com/facebook/presto/testing/LocalQueryRunner.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -506,6 +506,7 @@ private LocalQueryRunner(Session defaultSession, FeaturesConfig featuresConfig,
506506
nodeManager,
507507
nodeInfo,
508508
metadata.getFunctionAndTypeManager(),
509+
procedureRegistry,
509510
pageSorter,
510511
pageIndexerFactory,
511512
transactionManager,

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import com.facebook.presto.spi.function.FunctionMetadataManager;
2323
import com.facebook.presto.spi.function.StandardFunctionResolution;
2424
import com.facebook.presto.spi.plan.FilterStatsCalculatorService;
25+
import com.facebook.presto.spi.procedure.IProcedureRegistry;
2526
import com.facebook.presto.spi.relation.RowExpressionService;
2627

2728
public interface ConnectorContext
@@ -36,6 +37,11 @@ default TypeManager getTypeManager()
3637
throw new UnsupportedOperationException();
3738
}
3839

40+
default IProcedureRegistry getProcedureRegistry()
41+
{
42+
throw new UnsupportedOperationException();
43+
}
44+
3945
default FunctionMetadataManager getFunctionMetadataManager()
4046
{
4147
throw new UnsupportedOperationException();

0 commit comments

Comments
 (0)