Class KuduQuery

java.lang.Object
org.apache.calcite.rel.AbstractRelNode
org.apache.calcite.rel.core.TableScan
com.twilio.kudu.sql.KuduQuery
All Implemented Interfaces:
KuduRelNode, Cloneable, org.apache.calcite.plan.RelOptNode, org.apache.calcite.rel.hint.Hintable, org.apache.calcite.rel.RelNode

public final class KuduQuery extends org.apache.calcite.rel.core.TableScan implements KuduRelNode
Relational expression representing a scan of a KuduTable
  • Nested Class Summary

    Nested classes/interfaces inherited from interface com.twilio.kudu.sql.KuduRelNode

    KuduRelNode.Implementor

    Nested classes/interfaces inherited from interface org.apache.calcite.rel.RelNode

    org.apache.calcite.rel.RelNode.Context
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
     
    static org.apache.calcite.rel.hint.HintStrategyTable
     
    final org.apache.calcite.rel.type.RelDataType
    List of column indices that are stored in reverse order.

    Fields inherited from class org.apache.calcite.rel.core.TableScan

    hints, table

    Fields inherited from class org.apache.calcite.rel.AbstractRelNode

    digest, id, rowType, traitSet

    Fields inherited from interface com.twilio.kudu.sql.KuduRelNode

    CONVENTION
  • Constructor Summary

    Constructors
    Constructor
    Description
    KuduQuery(org.apache.calcite.plan.RelOptCluster cluster, org.apache.calcite.plan.RelTraitSet traitSet, org.apache.calcite.plan.RelOptTable table, List<org.apache.calcite.rel.hint.RelHint> hints, CalciteKuduTable calciteKuduTable, org.apache.calcite.rel.type.RelDataType projectRowType)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    org.apache.calcite.rel.RelNode
    copy(org.apache.calcite.plan.RelTraitSet traitSet, List<org.apache.calcite.rel.RelNode> inputs)
     
    org.apache.calcite.rel.type.RelDataType
     
    void
    Each KuduRelNode implementation will accept the KuduRelNode.Implementor and manipulate it.
    void
    register(org.apache.calcite.plan.RelOptPlanner planner)
     
    org.apache.calcite.rel.RelNode
    withHints(List<org.apache.calcite.rel.hint.RelHint> hintList)
     

    Methods inherited from class org.apache.calcite.rel.core.TableScan

    accept, computeSelfCost, estimateRowCount, explainTerms, getHints, getTable, identity, identity, project

    Methods inherited from class org.apache.calcite.rel.AbstractRelNode

    accept, childrenAccept, collectVariablesSet, collectVariablesUsed, deepEquals, deepHashCode, equals, explain, getCluster, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getInputs, getRelDigest, getRelTypeName, getRowType, getTraitSet, getVariablesSet, hashCode, isEnforcer, isValid, metadata, onRegister, recomputeDigest, replaceInput, sole, toString

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait

    Methods inherited from interface org.apache.calcite.rel.hint.Hintable

    attachHints

    Methods inherited from interface org.apache.calcite.rel.RelNode

    accept, accept, childrenAccept, collectVariablesSet, collectVariablesUsed, computeSelfCost, deepEquals, deepHashCode, estimateRowCount, explain, explain, fieldIsNullable, getConvention, getCorrelVariable, getDigest, getExpectedInputRowType, getInput, getInputs, getRelDigest, getRelTypeName, getRowType, getTable, getVariablesSet, isEnforcer, isValid, metadata, onRegister, recomputeDigest, replaceInput, stripped

    Methods inherited from interface org.apache.calcite.plan.RelOptNode

    getCluster, getDescription, getId, getTraitSet
  • Field Details

    • calciteKuduTable

      public final CalciteKuduTable calciteKuduTable
    • KUDU_HINT_STRATEGY_TABLE

      public static org.apache.calcite.rel.hint.HintStrategyTable KUDU_HINT_STRATEGY_TABLE
    • projectRowType

      public final org.apache.calcite.rel.type.RelDataType projectRowType
      List of column indices that are stored in reverse order.
  • Constructor Details

    • KuduQuery

      public KuduQuery(org.apache.calcite.plan.RelOptCluster cluster, org.apache.calcite.plan.RelTraitSet traitSet, org.apache.calcite.plan.RelOptTable table, List<org.apache.calcite.rel.hint.RelHint> hints, CalciteKuduTable calciteKuduTable, org.apache.calcite.rel.type.RelDataType projectRowType)
      Parameters:
      cluster - Cluster
      traitSet - Traits
      table - Table
      hints - RelHint list
      calciteKuduTable - Kudu table
      projectRowType - Fields and types to project; null to project raw row
  • Method Details

    • copy

      public org.apache.calcite.rel.RelNode copy(org.apache.calcite.plan.RelTraitSet traitSet, List<org.apache.calcite.rel.RelNode> inputs)
      Specified by:
      copy in interface org.apache.calcite.rel.RelNode
      Overrides:
      copy in class org.apache.calcite.rel.AbstractRelNode
    • deriveRowType

      public org.apache.calcite.rel.type.RelDataType deriveRowType()
      Overrides:
      deriveRowType in class org.apache.calcite.rel.core.TableScan
    • register

      public void register(org.apache.calcite.plan.RelOptPlanner planner)
      Specified by:
      register in interface org.apache.calcite.rel.RelNode
      Overrides:
      register in class org.apache.calcite.rel.AbstractRelNode
    • withHints

      public org.apache.calcite.rel.RelNode withHints(List<org.apache.calcite.rel.hint.RelHint> hintList)
      Specified by:
      withHints in interface org.apache.calcite.rel.hint.Hintable
    • implement

      public void implement(KuduRelNode.Implementor impl)
      Description copied from interface: KuduRelNode
      Each KuduRelNode implementation will accept the KuduRelNode.Implementor and manipulate it. The Implementor will then be used by the KuduToEnumerableConverter to create a Blocks that will be used to generate Byte code for the actual query.
      Specified by:
      implement in interface KuduRelNode
      Parameters:
      impl - mutable implementator to store information on for the Kudu RPCs