Interface PhysicalOperator

All Superinterfaces:
GraphValue<PhysicalOperator>, Iterable<PhysicalOperator>
All Known Subinterfaces:
DbGroupScan, DbSubScan, Exchange, FileGroupScan, FragmentLeaf, FragmentRoot, GroupScan, HasAffinity, IndexGroupScan, Leaf, Receiver, Root, Scan, Sender, Store, SubScan, Writer
All Known Implementing Classes:
AbstractBase, AbstractDbGroupScan, AbstractDbSubScan, AbstractDeMuxExchange, AbstractExchange, AbstractFileGroupScan, AbstractGroupScan, AbstractGroupScanWithMetadata, AbstractJoinPop, AbstractMultiple, AbstractMuxExchange, AbstractParquetGroupScan, AbstractParquetRowGroupScan, AbstractReceiver, AbstractSender, AbstractSingle, AbstractStore, AbstractSubScan, AbstractWriter, BroadcastExchange, BroadcastSender, ComplexToJson, DeltaGroupScan, DeltaRowGroupScan, DirectGroupScan, DirectSubScan, DrillGroupScan, DrillSubScan, DruidGroupScan, DruidSubScan, EasyGroupScan, EasySubScan, EasyWriter, EnumerableGroupScan, EnumerableSubScan, ExternalSort, Filter, FlattenPOP, GoogleSheetsGroupScan, GoogleSheetsInsertWriter, GoogleSheetsSubScan, GoogleSheetsWriter, HashAggregate, HashJoinPOP, HashPartitionSender, HashToMergeExchange, HashToRandomExchange, HBaseGroupScan, HBaseSubScan, HiveDrillNativeParquetRowGroupScan, HiveDrillNativeParquetScan, HiveScan, HiveSubScan, HttpGroupScan, HttpSubScan, IcebergGroupScan, IcebergSubScan, InfoSchemaGroupScan, InfoSchemaSubScan, IteratorValidator, JdbcGroupScan, JdbcInsertWriter, JdbcSubScan, JdbcWriter, KafkaGroupScan, KafkaSubScan, KuduGroupScan, KuduSubScan, KuduWriter, LateralJoinPOP, Limit, MergeJoinPOP, MergingReceiverPOP, MetadataControllerPOP, MetadataDirectGroupScan, MetadataHandlerPOP, MetadataHashAggPOP, MetadataStreamAggPOP, MockGroupScanPOP, MockStorePOP, MockSubScanPOP, MongoGroupScan, MongoSubScan, NestedLoopJoinPOP, OpenTSDBGroupScan, OpenTSDBSubScan, OrderedMuxExchange, OrderedPartitionExchange, OrderedPartitionSender, ParquetGroupScan, ParquetRowGroupScan, ParquetWriter, PartitionLimit, PhoenixGroupScan, PhoenixSubScan, ProducerConsumer, Project, RangePartitionExchange, RangePartitionSender, RowKeyJoinPOP, RuntimeFilterPOP, SchemalessScan, Screen, SelectionVectorRemover, SetOp, SingleMergeExchange, SingleSender, Sort, SplunkGroupScan, SplunkInsertWriter, SplunkSubScan, SplunkWriter, StatisticsAggregate, StatisticsMerge, StreamingAggregate, SystemTableScan, TableModify, TopN, Trace, UnionAll, UnionExchange, UnnestPOP, UnorderedDeMuxExchange, UnorderedMuxExchange, UnorderedReceiver, UnpivotMaps, Values, WindowPOP

public interface PhysicalOperator extends GraphValue<PhysicalOperator>
  • Method Details

    • isExecutable

      boolean isExecutable()
      Describes whether or not a particular physical operator can actually be executed. Most physical operators can be executed. However, Exchange nodes cannot be executed. In order to be executed, they must be converted into their Exec sub components.
    • getSVMode

      Describes the SelectionVector Mode for the output steam from this physical op. This property is used during physical plan creating using PhysicalPlanCreator.
    • accept

      <T, X, E extends Throwable> T accept(PhysicalVisitor<T,X,E> physicalVisitor, X value) throws E
      Provides capability to build a set of output based on traversing a query graph tree.
      Parameters:
      physicalVisitor -
      Throws:
      E extends Throwable
    • getNewWithChildren

      PhysicalOperator getNewWithChildren(List<PhysicalOperator> children) throws ExecutionSetupException
      Regenerate with this node with a new set of children. This is used in the case of materialization or optimization.
      Parameters:
      children -
      Throws:
      ExecutionSetupException
    • getInitialAllocation

      long getInitialAllocation()
      Returns:
      The memory to preallocate for this operator
    • getMaxAllocation

      long getMaxAllocation()
      Returns:
      The maximum memory this operator can allocate
    • setMaxAllocation

      void setMaxAllocation(long maxAllocation)
      Parameters:
      maxAllocation - The max memory allocation to be set
    • isBufferedOperator

      boolean isBufferedOperator(QueryContext queryContext)
      Parameters:
      queryContext -
      Returns:
      True iff this operator manages its memory (including disk spilling)
    • getOperatorId

      int getOperatorId()
    • setOperatorId

      void setOperatorId(int id)
    • setCost

      void setCost(PrelCostEstimates cost)
    • getCost

    • getUserName

      String getUserName()
      Name of the user whom to impersonate while setting up the implementation (RecordBatch) of this PhysicalOperator. Default value is "null" in which case we impersonate as user who launched the query.
    • getOperatorType

      String getOperatorType()