Class GeodeFilter.Translator
- java.lang.Object
-
- org.apache.calcite.adapter.geode.rel.GeodeFilter.Translator
-
- Enclosing class:
- GeodeFilter
static class GeodeFilter.Translator extends java.lang.Object
TranslatesRexNode
expressions into Geode expression strings.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<java.lang.String>
fieldNames
private RelDataType
rowType
-
Constructor Summary
Constructors Constructor Description Translator(RelDataType rowType)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.util.List<RexNode>
getLeftNodeDisjunctions(RexNode node, java.util.List<RexNode> disjunctions)
private java.lang.String
getLeftNodeFieldName(RexNode left)
Get the field name for the left node to use for IN SET queryprivate java.lang.String
getLeftNodeFieldNameForNode(RexNode node)
private static java.lang.String
literalValue(RexLiteral literal)
Converts the value of a literal to a string.private java.lang.String
quoteCharLiteral(RexLiteral literal)
private java.lang.String
translateAnd(RexNode condition)
Translate a conjunctive predicate to a OQL string.private java.lang.String
translateBinary(java.lang.String op, java.lang.String rop, RexCall call)
Translates a call to a binary operator, reversing arguments if necessary.private java.lang.String
translateBinary2(java.lang.String op, RexNode left, RexNode right)
Translates a call to a binary operator.private java.lang.String
translateInSet(java.util.List<RexNode> disjunctions)
Creates OQL IN SET predicate stringprivate java.lang.String
translateMatch(RexNode condition)
Produce the OQL predicate string for the given condition.private java.lang.String
translateMatch2(RexNode node)
Translate a binary relation.private java.lang.String
translateOp2(java.lang.String op, java.lang.String name, RexLiteral right)
Combines a field name, operator, and literal to produce a predicate string.private java.lang.String
translateOr(java.util.List<RexNode> disjunctions)
private boolean
useInSetQueryClause(java.util.List<RexNode> disjunctions)
Check if we can use IN SET Query clause to improve query performance
-
-
-
Field Detail
-
rowType
private final RelDataType rowType
-
fieldNames
private final java.util.List<java.lang.String> fieldNames
-
-
Constructor Detail
-
Translator
Translator(RelDataType rowType)
-
-
Method Detail
-
literalValue
private static java.lang.String literalValue(RexLiteral literal)
Converts the value of a literal to a string.- Parameters:
literal
- Literal to translate- Returns:
- String representation of the literal
-
translateMatch
private java.lang.String translateMatch(RexNode condition)
Produce the OQL predicate string for the given condition.- Parameters:
condition
- Condition to translate- Returns:
- OQL predicate string
-
translateAnd
private java.lang.String translateAnd(RexNode condition)
Translate a conjunctive predicate to a OQL string.- Parameters:
condition
- A conjunctive predicate- Returns:
- OQL string for the predicate
-
getLeftNodeFieldName
private java.lang.String getLeftNodeFieldName(RexNode left)
Get the field name for the left node to use for IN SET query
-
useInSetQueryClause
private boolean useInSetQueryClause(java.util.List<RexNode> disjunctions)
Check if we can use IN SET Query clause to improve query performance
-
translateInSet
private java.lang.String translateInSet(java.util.List<RexNode> disjunctions)
Creates OQL IN SET predicate string
-
getLeftNodeFieldNameForNode
private java.lang.String getLeftNodeFieldNameForNode(RexNode node)
-
getLeftNodeDisjunctions
private java.util.List<RexNode> getLeftNodeDisjunctions(RexNode node, java.util.List<RexNode> disjunctions)
-
translateOr
private java.lang.String translateOr(java.util.List<RexNode> disjunctions)
-
translateMatch2
private java.lang.String translateMatch2(RexNode node)
Translate a binary relation.
-
translateBinary
private java.lang.String translateBinary(java.lang.String op, java.lang.String rop, RexCall call)
Translates a call to a binary operator, reversing arguments if necessary.
-
translateBinary2
private java.lang.String translateBinary2(java.lang.String op, RexNode left, RexNode right)
Translates a call to a binary operator. Returns null on failure.
-
quoteCharLiteral
private java.lang.String quoteCharLiteral(RexLiteral literal)
-
translateOp2
private java.lang.String translateOp2(java.lang.String op, java.lang.String name, RexLiteral right)
Combines a field name, operator, and literal to produce a predicate string.
-
-