Skip to content

Commit 700e72e

Browse files
authored
fix: Register CLP plan optimizer (fixes #35). (#33)
1 parent 9c86114 commit 700e72e

File tree

2 files changed

+23
-3
lines changed

2 files changed

+23
-3
lines changed

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

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,12 @@
1717
import com.facebook.airlift.log.Logger;
1818
import com.facebook.presto.spi.connector.Connector;
1919
import com.facebook.presto.spi.connector.ConnectorMetadata;
20+
import com.facebook.presto.spi.connector.ConnectorPlanOptimizerProvider;
2021
import com.facebook.presto.spi.connector.ConnectorRecordSetProvider;
2122
import com.facebook.presto.spi.connector.ConnectorSplitManager;
2223
import com.facebook.presto.spi.connector.ConnectorTransactionHandle;
24+
import com.facebook.presto.spi.function.FunctionMetadataManager;
25+
import com.facebook.presto.spi.function.StandardFunctionResolution;
2326
import com.facebook.presto.spi.transaction.IsolationLevel;
2427

2528
import javax.inject.Inject;
@@ -35,14 +38,33 @@ public class ClpConnector
3538
private final ClpMetadata metadata;
3639
private final ClpRecordSetProvider recordSetProvider;
3740
private final ClpSplitManager splitManager;
41+
private final FunctionMetadataManager functionManager;
42+
private final StandardFunctionResolution functionResolution;
43+
private final ClpMetadataFilterProvider metadataFilterProvider;
3844

3945
@Inject
40-
public ClpConnector(LifeCycleManager lifeCycleManager, ClpMetadata metadata, ClpRecordSetProvider recordSetProvider, ClpSplitManager splitManager)
46+
public ClpConnector(
47+
LifeCycleManager lifeCycleManager,
48+
ClpMetadata metadata,
49+
ClpRecordSetProvider recordSetProvider,
50+
ClpSplitManager splitManager,
51+
FunctionMetadataManager functionManager,
52+
StandardFunctionResolution functionResolution,
53+
ClpMetadataFilterProvider metadataFilterProvider)
4154
{
4255
this.lifeCycleManager = requireNonNull(lifeCycleManager, "lifeCycleManager is null");
4356
this.metadata = requireNonNull(metadata, "metadata is null");
4457
this.recordSetProvider = requireNonNull(recordSetProvider, "recordSetProvider is null");
4558
this.splitManager = requireNonNull(splitManager, "splitManager is null");
59+
this.functionManager = requireNonNull(functionManager, "functionManager is null");
60+
this.functionResolution = requireNonNull(functionResolution, "functionResolution is null");
61+
this.metadataFilterProvider = requireNonNull(metadataFilterProvider, "metadataFilterProvider is null");
62+
}
63+
64+
@Override
65+
public ConnectorPlanOptimizerProvider getConnectorPlanOptimizerProvider()
66+
{
67+
return new ClpPlanOptimizerProvider(functionManager, functionResolution, metadataFilterProvider);
4668
}
4769

4870
@Override

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import com.facebook.presto.spi.connector.ConnectorFactory;
2424
import com.facebook.presto.spi.function.FunctionMetadataManager;
2525
import com.facebook.presto.spi.function.StandardFunctionResolution;
26-
import com.facebook.presto.spi.relation.RowExpressionService;
2726
import com.google.inject.Injector;
2827

2928
import java.util.Map;
@@ -56,7 +55,6 @@ public Connector create(String catalogName, Map<String, String> config, Connecto
5655
Bootstrap app = new Bootstrap(new JsonModule(), new ClpModule(), binder -> {
5756
binder.bind(FunctionMetadataManager.class).toInstance(context.getFunctionMetadataManager());
5857
binder.bind(NodeManager.class).toInstance(context.getNodeManager());
59-
binder.bind(RowExpressionService.class).toInstance(context.getRowExpressionService());
6058
binder.bind(StandardFunctionResolution.class).toInstance(context.getStandardFunctionResolution());
6159
binder.bind(TypeManager.class).toInstance(context.getTypeManager());
6260
});

0 commit comments

Comments
 (0)