1717import com .facebook .airlift .log .Logger ;
1818import com .facebook .presto .spi .connector .Connector ;
1919import com .facebook .presto .spi .connector .ConnectorMetadata ;
20+ import com .facebook .presto .spi .connector .ConnectorPlanOptimizerProvider ;
2021import com .facebook .presto .spi .connector .ConnectorRecordSetProvider ;
2122import com .facebook .presto .spi .connector .ConnectorSplitManager ;
2223import com .facebook .presto .spi .connector .ConnectorTransactionHandle ;
24+ import com .facebook .presto .spi .function .FunctionMetadataManager ;
25+ import com .facebook .presto .spi .function .StandardFunctionResolution ;
2326import com .facebook .presto .spi .transaction .IsolationLevel ;
2427
2528import 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
0 commit comments