Interface Compiler

All Known Implementing Classes:
Nodes.CoreCompiler

public interface Compiler
Context while converting a tree of RelNode to a program that can be run by an Interpreter.
  • Method Details

    • compile

      Scalar compile(List<RexNode> nodes, @Nullable RelDataType inputRowType)
      Compiles an expression to an executable form.
    • combinedRowType

      RelDataType combinedRowType(List<RelNode> inputs)
    • source

      Source source(RelNode rel, int ordinal)
    • sink

      Sink sink(RelNode rel)
      Creates a Sink for a relational expression to write into.

      This method is generally called from the constructor of a Node. But a constructor could instead call enumerable(RelNode, Enumerable).

      Parameters:
      rel - Relational expression
      Returns:
      Sink
    • enumerable

      void enumerable(RelNode rel, Enumerable<Row> rowEnumerable)
      Tells the interpreter that a given relational expression wishes to give its output as an enumerable.

      This is as opposed to the norm, where a relational expression calls sink(RelNode), then its Node.run() method writes into that sink.

      Parameters:
      rel - Relational expression
      rowEnumerable - Contents of relational expression
    • getDataContext

      DataContext getDataContext()
    • createContext

      Context createContext()