public class HiveFilterPushdown extends Object implements com.facebook.presto.spi.ConnectorPlanOptimizer
| Modifier and Type | Class and Description |
|---|---|
static class |
HiveFilterPushdown.ConnectorPushdownFilterResult |
| Modifier and Type | Field and Description |
|---|---|
protected com.facebook.presto.spi.function.FunctionMetadataManager |
functionMetadataManager |
protected com.facebook.presto.spi.function.StandardFunctionResolution |
functionResolution |
protected HivePartitionManager |
partitionManager |
protected com.facebook.presto.spi.relation.RowExpressionService |
rowExpressionService |
protected HiveTransactionManager |
transactionManager |
| Constructor and Description |
|---|
HiveFilterPushdown(HiveTransactionManager transactionManager,
com.facebook.presto.spi.relation.RowExpressionService rowExpressionService,
com.facebook.presto.spi.function.StandardFunctionResolution functionResolution,
HivePartitionManager partitionManager,
com.facebook.presto.spi.function.FunctionMetadataManager functionMetadataManager) |
| Modifier and Type | Method and Description |
|---|---|
static Set<com.facebook.presto.spi.relation.VariableReferenceExpression> |
extractVariableExpressions(com.facebook.presto.spi.relation.RowExpression expression) |
protected HiveMetadata |
getMetadata(com.facebook.presto.spi.TableHandle tableHandle) |
protected boolean |
isPushdownFilterSupported(com.facebook.presto.spi.ConnectorSession session,
com.facebook.presto.spi.TableHandle tableHandle) |
com.facebook.presto.spi.plan.PlanNode |
optimize(com.facebook.presto.spi.plan.PlanNode maxSubplan,
com.facebook.presto.spi.ConnectorSession session,
com.facebook.presto.spi.VariableAllocator variableAllocator,
com.facebook.presto.spi.plan.PlanNodeIdAllocator idAllocator) |
HiveFilterPushdown.ConnectorPushdownFilterResult |
pushdownFilter(com.facebook.presto.spi.ConnectorSession session,
com.facebook.presto.spi.connector.ConnectorMetadata metadata,
com.facebook.presto.hive.metastore.SemiTransactionalHiveMetastore metastore,
com.facebook.presto.spi.ConnectorTableHandle tableHandle,
com.facebook.presto.spi.relation.RowExpression filter,
Optional<com.facebook.presto.spi.ConnectorTableLayoutHandle> currentLayoutHandle) |
protected HiveFilterPushdown.ConnectorPushdownFilterResult |
pushdownFilter(com.facebook.presto.spi.ConnectorSession session,
HiveMetadata metadata,
com.facebook.presto.spi.ConnectorTableHandle tableHandle,
com.facebook.presto.spi.relation.RowExpression filter,
Optional<com.facebook.presto.spi.ConnectorTableLayoutHandle> currentLayoutHandle) |
protected boolean |
useDynamicFilter(com.facebook.presto.spi.relation.RowExpression expression,
com.facebook.presto.spi.ConnectorTableHandle tableHandle,
Map<String,com.facebook.presto.spi.ColumnHandle> columnHandleMap)
If this method returns true, the expression will not be pushed inside the TableScan node.
|
protected final HiveTransactionManager transactionManager
protected final com.facebook.presto.spi.relation.RowExpressionService rowExpressionService
protected final com.facebook.presto.spi.function.StandardFunctionResolution functionResolution
protected final HivePartitionManager partitionManager
protected final com.facebook.presto.spi.function.FunctionMetadataManager functionMetadataManager
public HiveFilterPushdown(HiveTransactionManager transactionManager, com.facebook.presto.spi.relation.RowExpressionService rowExpressionService, com.facebook.presto.spi.function.StandardFunctionResolution functionResolution, HivePartitionManager partitionManager, com.facebook.presto.spi.function.FunctionMetadataManager functionMetadataManager)
public com.facebook.presto.spi.plan.PlanNode optimize(com.facebook.presto.spi.plan.PlanNode maxSubplan,
com.facebook.presto.spi.ConnectorSession session,
com.facebook.presto.spi.VariableAllocator variableAllocator,
com.facebook.presto.spi.plan.PlanNodeIdAllocator idAllocator)
optimize in interface com.facebook.presto.spi.ConnectorPlanOptimizerprotected boolean useDynamicFilter(com.facebook.presto.spi.relation.RowExpression expression,
com.facebook.presto.spi.ConnectorTableHandle tableHandle,
Map<String,com.facebook.presto.spi.ColumnHandle> columnHandleMap)
expression - expression to be evaluated.tableHandle - tableHandler where the expression to be evaluated.columnHandleMap - column name to column handle Map for all columns in the table.protected HiveFilterPushdown.ConnectorPushdownFilterResult pushdownFilter(com.facebook.presto.spi.ConnectorSession session, HiveMetadata metadata, com.facebook.presto.spi.ConnectorTableHandle tableHandle, com.facebook.presto.spi.relation.RowExpression filter, Optional<com.facebook.presto.spi.ConnectorTableLayoutHandle> currentLayoutHandle)
public HiveFilterPushdown.ConnectorPushdownFilterResult pushdownFilter(com.facebook.presto.spi.ConnectorSession session, com.facebook.presto.spi.connector.ConnectorMetadata metadata, com.facebook.presto.hive.metastore.SemiTransactionalHiveMetastore metastore, com.facebook.presto.spi.ConnectorTableHandle tableHandle, com.facebook.presto.spi.relation.RowExpression filter, Optional<com.facebook.presto.spi.ConnectorTableLayoutHandle> currentLayoutHandle)
protected HiveMetadata getMetadata(com.facebook.presto.spi.TableHandle tableHandle)
protected boolean isPushdownFilterSupported(com.facebook.presto.spi.ConnectorSession session,
com.facebook.presto.spi.TableHandle tableHandle)
public static Set<com.facebook.presto.spi.relation.VariableReferenceExpression> extractVariableExpressions(com.facebook.presto.spi.relation.RowExpression expression)
Copyright © 2012–2023. All rights reserved.