Class IcebergGroupScan
java.lang.Object
org.apache.drill.exec.physical.base.AbstractBase
org.apache.drill.exec.physical.base.AbstractGroupScan
org.apache.drill.exec.store.iceberg.IcebergGroupScan
- All Implemented Interfaces:
Iterable<PhysicalOperator>
,GraphValue<PhysicalOperator>
,FragmentLeaf
,GroupScan
,HasAffinity
,Leaf
,PhysicalOperator
,Scan
-
Nested Class Summary
-
Field Summary
Fields inherited from class org.apache.drill.exec.physical.base.AbstractBase
INIT_ALLOCATION, initialAllocation, MAX_ALLOCATION, maxAllocation, userName
Fields inherited from interface org.apache.drill.exec.physical.base.GroupScan
ALL_COLUMNS
-
Constructor Summary
ConstructorDescriptionIcebergGroupScan
(String userName, StoragePluginConfig storageConfig, FormatPluginConfig formatConfig, List<SchemaPath> columns, TupleMetadata schema, String path, LogicalExpression condition, Integer maxRecords, StoragePluginRegistry pluginRegistry) -
Method Summary
Modifier and TypeMethodDescriptionvoid
applyAssignments
(List<CoordinationProtos.DrillbitEndpoint> endpoints) applyLimit
(int maxRecords) By default, return null to indicate row count based prune is not supported.builder()
clone
(List<SchemaPath> columns) Returns a clone of GroupScan instance, except that the new GroupScan will use the provided list of columns .Returns a list of columns scanned by this group scanReturns a signature of theGroupScan
which should usually be composed of all its attributes which could describe it uniquely.int
int
getNewWithChildren
(List<PhysicalOperator> children) Regenerate with this node with a new set of children.Get the list of Endpoints with associated affinities that this operator has preference for.getPath()
static String
getPath
(SchemaPath schemaPath) getSpecificScan
(int minorFragmentId) org.apache.iceberg.TableScan
static org.apache.iceberg.TableScan
initTableScan
(IcebergFormatPlugin formatPlugin, String path, LogicalExpression condition) static org.apache.iceberg.TableScan
projectColumns
(org.apache.iceberg.TableScan tableScan, List<SchemaPath> columns) boolean
Default is not to support limit pushdown.toString()
Methods inherited from class org.apache.drill.exec.physical.base.AbstractGroupScan
accept, applyFilter, canPushdownProjects, enforceWidth, getAnalyzeInfoProvider, getColumnValueCount, getDistributionAffinity, getFiles, getFilter, getInitialAllocation, getMaxAllocation, getMetadataProvider, getMinParallelizationWidth, getOperatorType, getPartitionColumns, getScanStats, getScanStats, getSelectionRoot, getTableMetadata, hasFiles, isDistributed, isExecutable, iterator, supportsFilterPushDown, supportsPartitionFilterPushdown, usedMetastore
Methods inherited from class org.apache.drill.exec.physical.base.AbstractBase
accept, getCost, getOperatorId, getSVMode, getUserName, isBufferedOperator, setCost, setMaxAllocation, setOperatorId
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.drill.common.graph.GraphValue
accept
Methods inherited from interface java.lang.Iterable
forEach, spliterator
Methods inherited from interface org.apache.drill.exec.physical.base.PhysicalOperator
getCost, getOperatorId, getSVMode, getUserName, isBufferedOperator, setCost, setMaxAllocation, setOperatorId
-
Constructor Details
-
IcebergGroupScan
public IcebergGroupScan(String userName, StoragePluginConfig storageConfig, FormatPluginConfig formatConfig, List<SchemaPath> columns, TupleMetadata schema, String path, LogicalExpression condition, Integer maxRecords, StoragePluginRegistry pluginRegistry) throws IOException - Throws:
IOException
-
-
Method Details
-
initTableScan
public static org.apache.iceberg.TableScan initTableScan(IcebergFormatPlugin formatPlugin, String path, LogicalExpression condition) -
builder
-
clone
Description copied from interface:GroupScan
Returns a clone of GroupScan instance, except that the new GroupScan will use the provided list of columns .- Specified by:
clone
in interfaceGroupScan
- Overrides:
clone
in classAbstractGroupScan
-
applyLimit
Description copied from class:AbstractGroupScan
By default, return null to indicate row count based prune is not supported. Each group scan subclass should override, if it supports row count based prune.- Specified by:
applyLimit
in interfaceGroupScan
- Overrides:
applyLimit
in classAbstractGroupScan
- Parameters:
maxRecords
- : the number of rows requested from group scan.- Returns:
- a new instance of group scan if the prune is successful. null when either if row-based prune is not supported, or if prune is not successful.
-
applyAssignments
-
getSpecificScan
-
getTableScan
public org.apache.iceberg.TableScan getTableScan() -
getMaxRecords
public int getMaxRecords() -
getMaxParallelizationWidth
public int getMaxParallelizationWidth() -
getDigest
Description copied from interface:GroupScan
Returns a signature of theGroupScan
which should usually be composed of all its attributes which could describe it uniquely. -
getScanStats
- Overrides:
getScanStats
in classAbstractGroupScan
-
getNewWithChildren
Description copied from interface:PhysicalOperator
Regenerate with this node with a new set of children. This is used in the case of materialization or optimization. -
projectColumns
public static org.apache.iceberg.TableScan projectColumns(org.apache.iceberg.TableScan tableScan, List<SchemaPath> columns) -
getPath
-
getOperatorAffinity
Description copied from interface:HasAffinity
Get the list of Endpoints with associated affinities that this operator has preference for.- Specified by:
getOperatorAffinity
in interfaceHasAffinity
- Overrides:
getOperatorAffinity
in classAbstractGroupScan
- Returns:
- List of EndpointAffinity objects.
-
supportsLimitPushdown
public boolean supportsLimitPushdown()Description copied from class:AbstractGroupScan
Default is not to support limit pushdown.- Specified by:
supportsLimitPushdown
in interfaceGroupScan
- Overrides:
supportsLimitPushdown
in classAbstractGroupScan
-
getColumns
Description copied from interface:GroupScan
Returns a list of columns scanned by this group scan- Specified by:
getColumns
in interfaceGroupScan
- Overrides:
getColumns
in classAbstractGroupScan
-
getSchema
-
getStorageConfig
-
getFormatConfig
-
getPath
-
getCondition
-
getFormatPlugin
-
toString
-
toBuilder
-