|
|||||||||
| Home >> All >> org >> apache >> derby >> impl >> sql >> [ compile overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
org.apache.derby.impl.sql.compile
Interface RelationalOperator

- All Known Implementing Classes:
- BinaryRelationalOperatorNode, IsNullNode
- public interface RelationalOperator
This interface is an abstraction of a relational operator. It was created for optimization, to allow binary comparison operators and IS NULL to be treated the same.
| Field Summary | |
static int |
EQUALS_RELOP
|
static int |
GREATER_EQUALS_RELOP
|
static int |
GREATER_THAN_RELOP
|
static int |
IS_NOT_NULL_RELOP
|
static int |
IS_NULL_RELOP
|
static int |
LESS_EQUALS_RELOP
|
static int |
LESS_THAN_RELOP
|
static int |
NOT_EQUALS_RELOP
|
| Method Summary | |
boolean |
compareWithKnownConstant(org.apache.derby.iapi.sql.compile.Optimizable optTable,
boolean considerParameters)
Return whether this operator compares the given Optimizable with a constant whose value is known at compile time. |
boolean |
equalsComparisonWithConstantExpression(org.apache.derby.iapi.sql.compile.Optimizable optTable)
Return whether this operator is an equality comparison of the given optimizable with a constant expression. |
void |
generateAbsoluteColumnId(org.apache.derby.iapi.services.compiler.MethodBuilder mb,
org.apache.derby.iapi.sql.compile.Optimizable optTable)
Generate the absolute column id for the ColumnReference that appears on one side of this RelationalOperator or the other, and that refers to the given table. |
void |
generateExpressionOperand(org.apache.derby.iapi.sql.compile.Optimizable optTable,
int columnPosition,
ExpressionClassBuilder acb,
org.apache.derby.iapi.services.compiler.MethodBuilder mb)
Check whether this RelationalOperator is a comparison of the given column with an expression. |
void |
generateNegate(org.apache.derby.iapi.services.compiler.MethodBuilder mb,
org.apache.derby.iapi.sql.compile.Optimizable optTable)
Generate an expression that evaluates to true if the result of the comparison should be negated. |
void |
generateOperator(org.apache.derby.iapi.services.compiler.MethodBuilder mb,
org.apache.derby.iapi.sql.compile.Optimizable optTable)
Generate the comparison operator for this RelationalOperator. |
void |
generateOrderedNulls(org.apache.derby.iapi.services.compiler.MethodBuilder mb)
Generate an expression that evaluates to true if this RelationalOperator uses ordered null semantics, false if it doesn't. |
void |
generateQualMethod(ExpressionClassBuilder acb,
org.apache.derby.iapi.services.compiler.MethodBuilder mb,
org.apache.derby.iapi.sql.compile.Optimizable optTable)
Generate the method to evaluate a Qualifier. |
void |
generateRelativeColumnId(org.apache.derby.iapi.services.compiler.MethodBuilder mb,
org.apache.derby.iapi.sql.compile.Optimizable optTable)
Generate the relative column id for the ColumnReference that appears on one side of this RelationalOperator or the other, and that refers to the given table. |
ColumnReference |
getColumnOperand(int tableNumber,
int columnPosition)
Check whether this RelationalOperator is a comparison of the given column with an expression. |
ColumnReference |
getColumnOperand(org.apache.derby.iapi.sql.compile.Optimizable optTable)
Get the ColumnReference for the given table on one side of this RelationalOperator. |
ColumnReference |
getColumnOperand(org.apache.derby.iapi.sql.compile.Optimizable optTable,
int columnPosition)
Check whether this RelationalOperator is a comparison of the given column with an expression. |
org.apache.derby.iapi.types.DataValueDescriptor |
getCompareValue(org.apache.derby.iapi.sql.compile.Optimizable optTable)
Return an Object representing the known value that this relational operator is comparing to a column in the given Optimizable. |
ValueNode |
getExpressionOperand(int tableNumber,
int columnPosition)
Check whether this RelationalOperator is a comparison of the given column with an expression. |
int |
getOperator()
Return the operator (as an int) for this RelationalOperator. |
int |
getOrderableVariantType(org.apache.derby.iapi.sql.compile.Optimizable optTable)
Return the variant type for the Qualifier's Orderable. |
int |
getStartOperator(org.apache.derby.iapi.sql.compile.Optimizable optTable)
Get the start operator for a scan (at the store level) for this RelationalOperator. |
int |
getStopOperator(org.apache.derby.iapi.sql.compile.Optimizable optTable)
Get the stop operator for a scan (at the store level) for this RelationalOperator. |
RelationalOperator |
getTransitiveSearchClause(ColumnReference otherCR)
Return a relational operator which matches the current one but with the passed in ColumnReference as the (left) operand. |
boolean |
isQualifier(org.apache.derby.iapi.sql.compile.Optimizable optTable)
Return true if this operator can be compiled into a Qualifier for the given Optimizable table. |
boolean |
orderedNulls()
Return true if this operator uses ordered null semantics |
boolean |
selfComparison(ColumnReference cr)
Check whether this RelationalOperator compares the given ColumnReference to any columns in the same table as the ColumnReference. |
boolean |
usefulStartKey(org.apache.derby.iapi.sql.compile.Optimizable optTable)
Tell whether this relop is a useful start key for the given table. |
boolean |
usefulStopKey(org.apache.derby.iapi.sql.compile.Optimizable optTable)
Tell whether this relop is a useful stop key for the given table. |
| Field Detail |
EQUALS_RELOP
public static final int EQUALS_RELOP
- See Also:
- Constant Field Values
NOT_EQUALS_RELOP
public static final int NOT_EQUALS_RELOP
- See Also:
- Constant Field Values
GREATER_THAN_RELOP
public static final int GREATER_THAN_RELOP
- See Also:
- Constant Field Values
GREATER_EQUALS_RELOP
public static final int GREATER_EQUALS_RELOP
- See Also:
- Constant Field Values
LESS_THAN_RELOP
public static final int LESS_THAN_RELOP
- See Also:
- Constant Field Values
LESS_EQUALS_RELOP
public static final int LESS_EQUALS_RELOP
- See Also:
- Constant Field Values
IS_NULL_RELOP
public static final int IS_NULL_RELOP
- See Also:
- Constant Field Values
IS_NOT_NULL_RELOP
public static final int IS_NOT_NULL_RELOP
- See Also:
- Constant Field Values
| Method Detail |
getColumnOperand
public ColumnReference getColumnOperand(org.apache.derby.iapi.sql.compile.Optimizable optTable, int columnPosition)
- Check whether this RelationalOperator is a comparison of the given
column with an expression. If so, return the ColumnReference that
corresponds to the given column, and that is on one side of this
RelationalOperator or the other (this method copes with the
column being on either side of the operator). If the given column
does not appear by itself on one side of the comparison, the
method returns null.
getColumnOperand
public ColumnReference getColumnOperand(int tableNumber, int columnPosition)
- Check whether this RelationalOperator is a comparison of the given
column with an expression. If so, return the ColumnReference that
corresponds to the given column, and that is on one side of this
RelationalOperator or the other (this method copes with the
column being on either side of the operator). If the given column
does not appear by itself on one side of the comparison, the
method returns null.
getColumnOperand
public ColumnReference getColumnOperand(org.apache.derby.iapi.sql.compile.Optimizable optTable)
- Get the ColumnReference for the given table on one side of this
RelationalOperator. This presumes it will be found only on one
side. If not found, it will return null.
getExpressionOperand
public ValueNode getExpressionOperand(int tableNumber, int columnPosition)
- Check whether this RelationalOperator is a comparison of the given
column with an expression. If so, return the expression
the column is being compared to.
generateExpressionOperand
public void generateExpressionOperand(org.apache.derby.iapi.sql.compile.Optimizable optTable, int columnPosition, ExpressionClassBuilder acb, org.apache.derby.iapi.services.compiler.MethodBuilder mb) throws org.apache.derby.iapi.error.StandardException
- Check whether this RelationalOperator is a comparison of the given
column with an expression. If so, generate the Expression for
the ValueNode that the column is being compared to.
selfComparison
public boolean selfComparison(ColumnReference cr) throws org.apache.derby.iapi.error.StandardException
- Check whether this RelationalOperator compares the given ColumnReference
to any columns in the same table as the ColumnReference.
usefulStartKey
public boolean usefulStartKey(org.apache.derby.iapi.sql.compile.Optimizable optTable)
- Tell whether this relop is a useful start key for the given table.
It has already been determined that the relop has a column from
the given table on one side or the other.
usefulStopKey
public boolean usefulStopKey(org.apache.derby.iapi.sql.compile.Optimizable optTable)
- Tell whether this relop is a useful stop key for the given table.
It has already been determined that the relop has a column from
the given table on one side or the other.
getStartOperator
public int getStartOperator(org.apache.derby.iapi.sql.compile.Optimizable optTable)
- Get the start operator for a scan (at the store level) for this
RelationalOperator.
getStopOperator
public int getStopOperator(org.apache.derby.iapi.sql.compile.Optimizable optTable)
- Get the stop operator for a scan (at the store level) for this
RelationalOperator.
generateAbsoluteColumnId
public void generateAbsoluteColumnId(org.apache.derby.iapi.services.compiler.MethodBuilder mb, org.apache.derby.iapi.sql.compile.Optimizable optTable)
- Generate the absolute column id for the ColumnReference that appears on one
side of this RelationalOperator or the other, and that refers to
the given table. (Absolute column id means column id within the
row stored on disk.)
generateRelativeColumnId
public void generateRelativeColumnId(org.apache.derby.iapi.services.compiler.MethodBuilder mb, org.apache.derby.iapi.sql.compile.Optimizable optTable)
- Generate the relative column id for the ColumnReference that appears on one
side of this RelationalOperator or the other, and that refers to
the given table. (Relative column id means column id within the
partial row returned by the store.)
generateOperator
public void generateOperator(org.apache.derby.iapi.services.compiler.MethodBuilder mb, org.apache.derby.iapi.sql.compile.Optimizable optTable)
- Generate the comparison operator for this RelationalOperator.
The operator can depend on which side of this operator the
optimizable column is.
generateQualMethod
public void generateQualMethod(ExpressionClassBuilder acb, org.apache.derby.iapi.services.compiler.MethodBuilder mb, org.apache.derby.iapi.sql.compile.Optimizable optTable) throws org.apache.derby.iapi.error.StandardException
- Generate the method to evaluate a Qualifier. The factory method for
a Qualifier takes a GeneratedMethod that returns the Orderable
that Qualifier.getOrderable() returns.
generateOrderedNulls
public void generateOrderedNulls(org.apache.derby.iapi.services.compiler.MethodBuilder mb)
- Generate an expression that evaluates to true if this RelationalOperator
uses ordered null semantics, false if it doesn't.
generateNegate
public void generateNegate(org.apache.derby.iapi.services.compiler.MethodBuilder mb, org.apache.derby.iapi.sql.compile.Optimizable optTable)
- Generate an expression that evaluates to true if the result of the
comparison should be negated. For example, col > 1 generates
a comparison operator of <= and a negation of true, while col < 1
generates a comparison operator of < and a negation of false.
orderedNulls
public boolean orderedNulls()
- Return true if this operator uses ordered null semantics
isQualifier
public boolean isQualifier(org.apache.derby.iapi.sql.compile.Optimizable optTable) throws org.apache.derby.iapi.error.StandardException
- Return true if this operator can be compiled into a Qualifier for
the given Optimizable table. This means that there is a column
from that table on one side of this relop, and an expression that
does not refer to the table on the other side of the relop.
getOperator
public int getOperator()
- Return the operator (as an int) for this RelationalOperator.
getOrderableVariantType
public int getOrderableVariantType(org.apache.derby.iapi.sql.compile.Optimizable optTable) throws org.apache.derby.iapi.error.StandardException
- Return the variant type for the Qualifier's Orderable.
(Is the Orderable invariant within a scan or within a query?)
compareWithKnownConstant
public boolean compareWithKnownConstant(org.apache.derby.iapi.sql.compile.Optimizable optTable, boolean considerParameters)
- Return whether this operator compares the given Optimizable with
a constant whose value is known at compile time.
getCompareValue
public org.apache.derby.iapi.types.DataValueDescriptor getCompareValue(org.apache.derby.iapi.sql.compile.Optimizable optTable) throws org.apache.derby.iapi.error.StandardException
- Return an Object representing the known value that this relational
operator is comparing to a column in the given Optimizable.
equalsComparisonWithConstantExpression
public boolean equalsComparisonWithConstantExpression(org.apache.derby.iapi.sql.compile.Optimizable optTable)
- Return whether this operator is an equality comparison of the given
optimizable with a constant expression.
getTransitiveSearchClause
public RelationalOperator getTransitiveSearchClause(ColumnReference otherCR) throws org.apache.derby.iapi.error.StandardException
- Return a relational operator which matches the current one
but with the passed in ColumnReference as the (left) operand.
|
|||||||||
| Home >> All >> org >> apache >> derby >> impl >> sql >> [ compile overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
JAVADOC