public abstract class ParquetDereferencePushDown extends Object implements ConnectorPlanOptimizer
| Constructor and Description |
|---|
ParquetDereferencePushDown(RowExpressionService rowExpressionService) |
| Modifier and Type | Method and Description |
|---|---|
protected abstract ColumnHandle |
createSubfieldColumnHandle(ColumnHandle baseColumnHandle,
Subfield subfield,
Type subfieldDataType,
String subfieldColumnName)
Create connector specific ColumnHandle for given subfield that is being pushed into table scan.
|
protected abstract String |
getColumnName(ColumnHandle columnHandle)
ColumnHandle is an interface.
|
protected abstract boolean |
isParquetDereferenceEnabled(ConnectorSession session,
TableHandle tableHandle)
Whether Parquet dereference pushdown is enabled for given TableHandle
|
PlanNode |
optimize(PlanNode maxSubplan,
ConnectorSession session,
VariableAllocator variableAllocator,
PlanNodeIdAllocator idAllocator) |
public ParquetDereferencePushDown(RowExpressionService rowExpressionService)
public PlanNode optimize(PlanNode maxSubplan, ConnectorSession session, VariableAllocator variableAllocator, PlanNodeIdAllocator idAllocator)
optimize in interface ConnectorPlanOptimizerprotected abstract boolean isParquetDereferenceEnabled(ConnectorSession session, TableHandle tableHandle)
protected abstract String getColumnName(ColumnHandle columnHandle)
protected abstract ColumnHandle createSubfieldColumnHandle(ColumnHandle baseColumnHandle, Subfield subfield, Type subfieldDataType, String subfieldColumnName)
baseColumnHandle - ColumnHandle for base column that given subfield is part of.
Ex. in "msg.a.b", "msg" is the top level column. "a.b" is the subfield
that is part of "msg". This ColumnHandle refers to "msg".subfield - Subfield info.subfieldDataType - Data type of the subfield.subfieldColumnName - Name of the subfield column being referred in table scan output.Copyright © 2012–2024. All rights reserved.