

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 rowexpression. 
RexFieldAccess  Access to a field of a rowexpression. 
RexInputRef  Variable which references a field of an input relational expression. 
RexLiteral  Constant value in a rowexpression. 
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 rowexpression, 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 rowexpression 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 rowexpressions. 
RexUtil.ExpressionNormalizer  Walks over expressions and builds a bank of common subexpressions. 
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 rowexpression 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 rowexpression. 
Exception Summary  

RexOver.OverFound  
RexUtil.ExpressionNormalizer.SubExprExistsException  Thrown if there is a subexpression. 
RexUtil.ForwardRefFinder.IllegalForwardRefException 
Provides a language for representing rowexpressions.
Revision  $Id: //open/dev/farrago/src/org/eigenbase/rex/package.html#7 $ 

Copyright  Copyright (C) 20052009 The Eigenbase Project
Copyright (C) 20032009 SQLstream, Inc. Copyright (C) 20052009 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, rowexpressions are translated into equivalent Java expressions.
Every rowexpression 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
. Subtypes are:
RexLiteral
represents a boolean, numeric, string, or
date constant, or the value NULL
.RexVariable
represents a leaf of the tree. It
has subtypes:RexCorrelVariable
is a correlating variable for
nestedloop 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 nonleaf 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 