Interface DbGroupScan
- All Superinterfaces:
FragmentLeaf
,GraphValue<PhysicalOperator>
,GroupScan
,HasAffinity
,Iterable<PhysicalOperator>
,Leaf
,PhysicalOperator
,Scan
- All Known Implementing Classes:
AbstractDbGroupScan
A DbGroupScan operator represents the scan associated with a database. The underlying
database may support secondary indexes, so there are interface methods for indexes.
-
Field Summary
Fields inherited from interface org.apache.drill.exec.physical.base.GroupScan
ALL_COLUMNS
-
Method Summary
Modifier and TypeMethodDescriptionReturns a list of columns scanned by this group scanGet the format plugin cost model.getRangePartitionFunction
(List<FieldReference> refList) Get a partition function instance for range based partitioninggetRestrictedScan
(List<SchemaPath> columns) If this DbGroupScan supports restricted scan, create a restricted scan from this DbGroupScan.double
getRowCount
(org.apache.calcite.rex.RexNode condition, org.apache.calcite.rel.RelNode scanRel) Get the row count after applying theRexNode
conditiongetSecondaryIndexCollection
(org.apache.calcite.rel.RelNode scan) Get the index collection associated with this table if anyGet the statistics for thisDbGroupScan
boolean
boolean
boolean
Whether this DbGroupScan is itself a restricted scanvoid
setCostFactor
(double sel) void
setRowCount
(org.apache.calcite.rex.RexNode condition, double count, double capRowCount) Set the artificial row count after applying theRexNode
conditionboolean
Whether this DbGroupScan supports creating a restricted (skip) scanboolean
Methods inherited from interface org.apache.drill.common.graph.GraphValue
accept
Methods inherited from interface org.apache.drill.exec.physical.base.GroupScan
applyAssignments, applyFilter, applyLimit, canPushdownProjects, clone, enforceWidth, getAnalyzeInfoProvider, getColumnValueCount, getDigest, getFiles, getFilter, getMaxParallelizationWidth, getMetadataProvider, getMinParallelizationWidth, getPartitionColumns, getScanStats, getScanStats, getSelectionRoot, getSpecificScan, getTableMetadata, hasFiles, isDistributed, supportsFilterPushDown, supportsLimitPushdown, supportsPartitionFilterPushdown, usedMetastore
Methods inherited from interface org.apache.drill.exec.physical.base.HasAffinity
getDistributionAffinity, getOperatorAffinity
Methods inherited from interface java.lang.Iterable
forEach, iterator, spliterator
Methods inherited from interface org.apache.drill.exec.physical.base.PhysicalOperator
accept, getCost, getInitialAllocation, getMaxAllocation, getNewWithChildren, getOperatorId, getOperatorType, getSVMode, getUserName, isBufferedOperator, isExecutable, setCost, setMaxAllocation, setOperatorId
-
Method Details
-
supportsSecondaryIndex
boolean supportsSecondaryIndex() -
getSecondaryIndexCollection
Get the index collection associated with this table if any -
setRowCount
void setRowCount(org.apache.calcite.rex.RexNode condition, double count, double capRowCount) Set the artificial row count after applying theRexNode
condition- Parameters:
condition
- row expressioncount
- right index row countcapRowCount
- row count limit
-
getRowCount
double getRowCount(org.apache.calcite.rex.RexNode condition, org.apache.calcite.rel.RelNode scanRel) Get the row count after applying theRexNode
condition- Parameters:
condition
- filter to applyscanRel
- the current scan rel- Returns:
- row count post filtering
-
getStatistics
Statistics getStatistics()Get the statistics for thisDbGroupScan
- Returns:
- the
Statistics
for this Scan
-
getColumns
List<SchemaPath> getColumns()Description copied from interface:GroupScan
Returns a list of columns scanned by this group scan- Specified by:
getColumns
in interfaceGroupScan
-
setCostFactor
void setCostFactor(double sel) -
isIndexScan
boolean isIndexScan() -
supportsRestrictedScan
boolean supportsRestrictedScan()Whether this DbGroupScan supports creating a restricted (skip) scan- Returns:
- true if restricted scan is supported, false otherwise
-
isRestrictedScan
boolean isRestrictedScan()Whether this DbGroupScan is itself a restricted scan- Returns:
- true if this DbGroupScan is itself a restricted scan, false otherwise
-
getRestrictedScan
If this DbGroupScan supports restricted scan, create a restricted scan from this DbGroupScan.- Parameters:
columns
- list of column paths- Returns:
- a non-null DbGroupScan if restricted scan is supported, null otherwise
-
getRowKeyName
String getRowKeyName() -
getIndexHint
String getIndexHint() -
getRowKeyPath
SchemaPath getRowKeyPath() -
getRangePartitionFunction
Get a partition function instance for range based partitioning- Parameters:
refList
- a list of FieldReference exprs that are participating in the range partitioning- Returns:
- instance of a partitioning function
-
getPluginCostModel
PluginCost getPluginCostModel()Get the format plugin cost model. The cost model will provide cost factors such as seq. scan cost, random scan cost, block size- Returns:
- a PluginCost cost model
-
isFilterPushedDown
boolean isFilterPushedDown()
-