Interface RelOptNode

All Known Subinterfaces:
BindableRel, CassandraRel, Converter, ElasticsearchRel, EnumerableRel, GeodeRel, InterpretableRel, JdbcRel, MongoRel, PhysicalNode, PigRel, RelNode, RelStructuredTypeFlattener.SelfFlatteningRel, SparkRel
All Known Implementing Classes:
AbstractConverter, AbstractRelNode, Aggregate, Bindables.BindableAggregate, Bindables.BindableFilter, Bindables.BindableIntersect, Bindables.BindableJoin, Bindables.BindableMatch, Bindables.BindableMinus, Bindables.BindableProject, Bindables.BindableSort, Bindables.BindableTableScan, Bindables.BindableUnion, Bindables.BindableValues, Bindables.BindableWindow, BiRel, Calc, CassandraFilter, CassandraLimit, CassandraProject, CassandraSort, CassandraTableScan, CassandraToEnumerableConverter, Chi, Collect, ConverterImpl, Correlate, CsvTableScan, CsvTableScan, Delta, DruidQuery, ElasticsearchAggregate, ElasticsearchFilter, ElasticsearchProject, ElasticsearchSort, ElasticsearchTableScan, ElasticsearchToEnumerableConverter, EnumerableAggregate, EnumerableAggregateBase, EnumerableBatchNestedLoopJoin, EnumerableBindable, EnumerableCalc, EnumerableCollect, EnumerableCorrelate, EnumerableFilter, EnumerableHashJoin, EnumerableInterpretable, EnumerableInterpreter, EnumerableIntersect, EnumerableLimit, EnumerableLimitSort, EnumerableMatch, EnumerableMergeJoin, EnumerableMinus, EnumerableNestedLoopJoin, EnumerableProject, EnumerableRepeatUnion, EnumerableSort, EnumerableSortedAggregate, EnumerableTableFunctionScan, EnumerableTableModify, EnumerableTableScan, EnumerableTableSpool, EnumerableToSparkConverter, EnumerableUncollect, EnumerableUnion, EnumerableValues, EnumerableWindow, EquiJoin, EquiJoin, Exchange, Filter, GeodeAggregate, GeodeFilter, GeodeProject, GeodeSort, GeodeTableScan, GeodeToEnumerableConverter, HepRelVertex, InterpretableConverter, Intersect, JdbcRules.JdbcAggregate, JdbcRules.JdbcCalc, JdbcRules.JdbcFilter, JdbcRules.JdbcIntersect, JdbcRules.JdbcJoin, JdbcRules.JdbcMinus, JdbcRules.JdbcProject, JdbcRules.JdbcSort, JdbcRules.JdbcTableModify, JdbcRules.JdbcUnion, JdbcRules.JdbcValues, JdbcTableScan, JdbcToEnumerableConverter, JdbcToSparkConverter, Join, LogicalAggregate, LogicalCalc, LogicalChi, LogicalCorrelate, LogicalDelta, LogicalExchange, LogicalFilter, LogicalIntersect, LogicalJoin, LogicalMatch, LogicalMinus, LogicalProject, LogicalRepeatUnion, LogicalSnapshot, LogicalSort, LogicalSortExchange, LogicalTableFunctionScan, LogicalTableModify, LogicalTableScan, LogicalTableSpool, LogicalUnion, LogicalValues, LogicalWindow, Match, Minus, MongoAggregate, MongoFilter, MongoProject, MongoSort, MongoTableScan, MongoToEnumerableConverter, MultiJoin, NoneConverter, PigAggregate, PigFilter, PigJoin, PigProject, PigTableScan, PigToEnumerableConverter, Project, RelSubset, RepeatUnion, Sample, SetOp, SingleRel, Snapshot, Sort, SortExchange, SparkRules.SparkCalc, SparkRules.SparkValues, SparkToEnumerableConverter, SplunkTableScan, Spool, StarTable.StarTableScan, TableFunctionScan, TableModify, TableScan, TableSpool, Uncollect, Union, Values, Window

public interface RelOptNode
Node in a planner.
  • Method Summary

    Modifier and Type Method Description
    RelOptCluster getCluster()
    Returns the cluster this relational expression belongs to.
    String getDescription()
    Deprecated.
    String getDigest()
    Returns a string which concisely describes the definition of this relational expression.
    int getId()
    Returns the ID of this relational expression, unique among all relational expressions created since the server was started.
    List<? extends RelOptNode> getInputs()
    Returns an array of this relational expression's inputs.
    RelDataType getRowType()  
    RelTraitSet getTraitSet()
    Retrieves this RelNode's traits.
  • Method Details

    • getId

      int getId()
      Returns the ID of this relational expression, unique among all relational expressions created since the server was started.
      Returns:
      Unique ID
    • getDigest

      String getDigest()
      Returns a string which concisely describes the definition of this relational expression. Two relational expressions are equivalent if their digests and getRowType() (except the field names) are the same.

      The digest does not contain the relational expression's identity -- that would prevent similar relational expressions from ever comparing equal -- but does include the identity of children (on the assumption that children have already been normalized).

      If you want a descriptive string which contains the identity, call Object.toString(), which always returns "rel#{id}:{digest}".

      Returns:
      Digest string of this RelNode
    • getTraitSet

      RelTraitSet getTraitSet()
      Retrieves this RelNode's traits. Note that although the RelTraitSet returned is modifiable, it must not be modified during optimization. It is legal to modify the traits of a RelNode before or after optimization, although doing so could render a tree of RelNodes unimplementable. If a RelNode's traits need to be modified during optimization, clone the RelNode and change the clone's traits.
      Returns:
      this RelNode's trait set
    • getRowType

      RelDataType getRowType()
    • getDescription

      @Deprecated String getDescription()
      Deprecated.
      Returns a string which describes the relational expression and, unlike getDigest(), also includes the identity. Typically returns "rel#{id}:{digest}".
      Returns:
      String which describes the relational expression and, unlike getDigest(), also includes the identity
    • getInputs

      List<? extends RelOptNode> getInputs()
      Returns an array of this relational expression's inputs. If there are no inputs, returns an empty list, not null.
      Returns:
      Array of this relational expression's inputs
    • getCluster

      RelOptCluster getCluster()
      Returns the cluster this relational expression belongs to.
      Returns:
      cluster