Package net.sf.saffron.rex

Provides a language for representing row-expressions.


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.

Package net.sf.saffron.rex Description

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:

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).

Related packages