|
||||||||||
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. |
Class Summary | |
RexBuilder | Factory for row expressions. |
RexCall | An expression formed by a call to an operator with zero or more expressions as operands. |
RexCorrelVariable | Reference to the current row of a correlating relational expression. |
RexFieldAccess | Access to a field of a row-expression. |
RexInputRef | Variable which references a field of an input relational expression. |
RexKind | Enumeration of some important types of row-expression. |
RexList | List of row-expression nodes |
RexLiteral | Constant value in a row-expression. |
RexNode | Row expression. |
RexOperator | Defines a function |
RexOperatorTable | A RexOperatorTable is ... |
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. |
RexTest | Regression test suite for row-expressions. |
RexToSqlTranslator | Translates a row-expression to a SQL parse
tree . |
RexUtil | Utility methods concerning row-expressions. |
RexVariable | A row-expression which references a field. |
Provides a language for representing row-expressions.
Revision | $Id: //open/saffron/src/net/sf/saffron/sql/package.html#1 $ |
---|---|
Copyright | (C) Copyright 2003-2003 Disruptive Technologies, Inc. |
Author | Julian Hyde |
A SqlToRelConverter
converts a SQL parse tree
consisting of SqlNode
objects into a relational
expression (SaffronRel
). Several kinds of nodes in
this tree have row expressions (RexNode
).
After the relational expression has been optimized, a saffron.opt.RelImplementor
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 expressionAggInternalTranslator.RexGroupVariable
and AggInternalTranslator.RexAggVariable
are created
temporarily while an aggregate expression is being translatedRexCall
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
.
InternalTranslator
translates a Java
row-expression (ParseTree
) into a row-expression, all
within the context of a particular QueryInfo
and
input relational expressions (SaffronRel
).
SaffronType
and SaffronTypeFactory
.
|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |