|
|||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
Interface Summary | |
---|---|
RexAction | A RexAction is called when a RexPattern finds a match. |
RexPattern | A RexPattern represents an expression with holes in it. |
RexSqlConvertlet | Converts a RexNode expression into a SqlNode expression. |
RexSqlConvertletTable | Collection of RexSqlConvertlet s. |
RexToSqlNodeConverter | Converts expressions from RexNode to SqlNode . |
RexVisitor<R> | Visitor pattern for traversing a tree of RexNode objects. |
Class Summary | |
---|---|
RexBuilder | Factory for row expressions. |
RexCall | An expression formed by a call to an operator with zero or more expressions as operands. |
RexCallBinding | RexCallBinding implements SqlOperatorBinding by
referring to an underlying collection of RexNode operands. |
RexChecker | Visitor which checks the validity of a RexNode expression. |
RexCopier | Shuttle which creates a deep copy of a Rex expression. |
RexCorrelVariable | Reference to the current row of a correlating relational expression. |
RexDynamicParam | Dynamic parameter reference in a row-expression. |
RexFieldAccess | Access to a field of a row-expression. |
RexInputRef | Variable which references a field of an input relational expression. |
RexLiteral | Constant value in a row-expression. |
RexLocalRef | Local variable. |
RexMultisetUtil | Utility class for various methods related to multisets. |
RexMultisetUtil.RexCallMultisetOperatorCounter | A RexShuttle that traverse all RexNode and counts total number of RexCalls traversed and number of multiset calls traversed. |
RexNode | Row expression. |
RexOver | Call to an aggregate function over a window. |
RexOver.Finder | Visitor which detects a RexOver inside a RexNode
expression. |
RexPermutationShuttle | Visitor which replaces RexLocalRef objects after the expressions in a
RexProgram have been reordered. |
RexPermuteInputsShuttle | Shuttle which applies a permutation to its input fields. |
RexProgram | A collection of expressions which read inputs, compute output expressions, and optionally use a condition to filter rows. |
RexProgram.Checker | Visitor which walks over a program and checks validity. |
RexProgramBuilder | Workspace for constructing a RexProgram . |
RexRangeRef | Reference to a range of columns. |
RexShuttle | Passes over a row-expression, calling a handler method for each node, appropriate to the type of the node. |
RexSlot | Abstract base class for RexInputRef and RexLocalRef . |
RexSqlReflectiveConvertletTable | Implementation of RexSqlConvertletTable . |
RexSqlStandardConvertletTable | Standard implementation of RexSqlConvertletTable . |
RexToSqlNodeConverterImpl | Standard implementation of RexToSqlNodeConverter . |
RexToSqlTranslator | Translates a row-expression to a SQL parse
tree . |
RexTransformer | Takes a tree of RexNode objects and transforms it into another in one
sense equivalent tree. |
RexUtil | Utility methods concerning row-expressions. |
RexUtil.ExpressionNormalizer | Walks over expressions and builds a bank of common sub-expressions. |
RexUtil.FieldAccessFinder | Visitor which builds a bitmap of the inputs used by an expression. |
RexUtil.ForwardRefFinder | Walks over an expression and throws an exception if it finds an RexInputRef with an ordinal beyond the number of fields in the input row
type, or a RexLocalRef with ordinal greater than that set using
RexUtil.ForwardRefFinder.setLimit(int) . |
RexVariable | A row-expression which references a field. |
RexVisitorImpl<R> | Default implementation of RexVisitor , which visits each node but does
nothing while it's there. |
RexWindow | Specification of the window of rows over which a RexOver windowed
aggregate is evaluated. |
Enum Summary | |
---|---|
RexKind | Enumeration of some important types of row-expression. |
Exception Summary | |
---|---|
RexOver.OverFound | |
RexUtil.ExpressionNormalizer.SubExprExistsException | Thrown if there is a sub-expression. |
RexUtil.ForwardRefFinder.IllegalForwardRefException |
Provides a language for representing row-expressions.
Revision | $Id: //open/dev/farrago/src/org/eigenbase/rex/package.html#7 $ |
---|---|
Copyright | Copyright (C) 2005-2009 The Eigenbase Project
Copyright (C) 2003-2009 SQLstream, Inc. Copyright (C) 2005-2009 LucidEra, Inc. |
Author | Julian Hyde |
A SqlToRelConverter
converts a SQL parse tree
consisting of SqlNode
objects into a relational
expression (RelNode
). Several kinds of nodes in
this tree have row expressions (RexNode
).
After the relational expression has been optimized, a JavaRelImplementor
converts it into to a plan. If the plan is a Java
parse tree, row-expressions are translated into equivalent Java expressions.
Every row-expression has a type. (Compare with
SqlNode
, which is created before validation, and
therefore types may not be available.)
Every node in the parse tree is a RexNode
. Sub-types are:
RexLiteral
represents a boolean, numeric, string, or
date constant, or the value NULL
.RexVariable
represents a leaf of the tree. It
has sub-types:RexCorrelVariable
is a correlating variable for
nested-loop joinsRexInputRef
refers to a field of an input
relational expressionRexCall
is a call to an operator or function.
By means of special operators, we can use this construct to represent
virtually every non-leaf node in the tree.RexRangeRef
refers to a collection of
contiguous fields from an input relational expression. It usually exists only
during translation.Expressions are generally
created using a RexBuilder
factory. If Java
expressions are to be converted, you can use a derived class, JavaRexBuilder
.
org.eigenbase.sql
SQL object modelorg.eigenbase.relopt
Core classes, including RelDataType
and RelDataTypeFactory
.
|
|||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |