Package org.apache.cayenne.dba.postgres
Class PostgresQualifierTranslator
- java.lang.Object
-
- org.apache.cayenne.access.translator.select.QueryAssemblerHelper
-
- org.apache.cayenne.access.translator.select.QualifierTranslator
-
- org.apache.cayenne.access.translator.select.TrimmingQualifierTranslator
-
- org.apache.cayenne.dba.postgres.PostgresQualifierTranslator
-
- All Implemented Interfaces:
TraversalHandler
public class PostgresQualifierTranslator extends TrimmingQualifierTranslator
Uses Postgres extensions to optimize various translations.- Since:
- 1.1
-
-
Field Summary
-
Fields inherited from class org.apache.cayenne.access.translator.select.TrimmingQualifierTranslator
trimFunction
-
Fields inherited from class org.apache.cayenne.access.translator.select.QualifierTranslator
caseInsensitive, matchingObject, objectMatchTranslator, qualifier, useAliasForExpressions, waitingForEndNode
-
Fields inherited from class org.apache.cayenne.access.translator.select.QueryAssemblerHelper
out, queryAssembler, strategy
-
-
Constructor Summary
Constructors Constructor Description PostgresQualifierTranslator(QueryAssembler queryAssembler)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
appendExtractFunction(ASTExtract functionExpression)
Special case for extract date/time parts functions as they have many variantsprotected void
appendFunction(ASTFunctionCall functionExpression)
Append function name to result SQL Override this method to rename or skip function if generic name isn't supported on target DB.protected void
appendFunctionArgDivider(ASTFunctionCall functionExpression)
Append divider between function arguments.protected void
clearLastFunctionArgDivider(ASTFunctionCall functionExpression)
Clear last divider as we currently don't now position of argument until parent element is ended.void
endNode(Expression node, Expression parentNode)
Called during the traversal after an expression node children processing is finished.void
finishedChild(Expression node, int childIndex, boolean hasMoreChildren)
Called during traversal after a child of expression has been visited.protected boolean
parenthesisNeeded(Expression node, Expression parentNode)
void
startNode(Expression node, Expression parentNode)
Called during the traversal before an expression node children processing is started.-
Methods inherited from class org.apache.cayenne.access.translator.select.TrimmingQualifierTranslator
getTrimFunction, processColumn, processColumnWithQuoteSqlIdentifiers, setTrimFunction
-
Methods inherited from class org.apache.cayenne.access.translator.select.QualifierTranslator
appendFunctionArg, appendLiteral, appendObjectMatch, detectObjectMatch, doAppendPart, doAppendPart, extractQualifier, objectNode, operandForBitwiseAnd, operandForBitwiseLeftShift, operandForBitwiseNot, operandForBitwiseOr, operandForBitwiseRightShift, operandForBitwiseXor, processRelTermination, setCaseInsensitive, setQualifier, setUseAliasForExpressions
-
Methods inherited from class org.apache.cayenne.access.translator.select.QueryAssemblerHelper
appendDbPath, appendLikeEscapeCharacter, appendLiteralDirect, appendObjPath, appendPart, getDbEntity, getObjEntity, paramsDbType, processRelTermination, setForceJoinForRelations
-
-
-
-
Constructor Detail
-
PostgresQualifierTranslator
public PostgresQualifierTranslator(QueryAssembler queryAssembler)
-
-
Method Detail
-
startNode
public void startNode(Expression node, Expression parentNode)
Description copied from interface:TraversalHandler
Called during the traversal before an expression node children processing is started.- Specified by:
startNode
in interfaceTraversalHandler
- Overrides:
startNode
in classQualifierTranslator
-
endNode
public void endNode(Expression node, Expression parentNode)
Description copied from interface:TraversalHandler
Called during the traversal after an expression node children processing is finished.- Specified by:
endNode
in interfaceTraversalHandler
- Overrides:
endNode
in classQualifierTranslator
-
finishedChild
public void finishedChild(Expression node, int childIndex, boolean hasMoreChildren)
Description copied from interface:TraversalHandler
Called during traversal after a child of expression has been visited.- Specified by:
finishedChild
in interfaceTraversalHandler
- Overrides:
finishedChild
in classQualifierTranslator
-
appendFunction
protected void appendFunction(ASTFunctionCall functionExpression)
Description copied from class:QualifierTranslator
Append function name to result SQL Override this method to rename or skip function if generic name isn't supported on target DB.- Overrides:
appendFunction
in classQualifierTranslator
- Since:
- 4.0
-
appendFunctionArgDivider
protected void appendFunctionArgDivider(ASTFunctionCall functionExpression)
Description copied from class:QualifierTranslator
Append divider between function arguments. In overriding methods can be replaced e.g. for " || " for CONCAT operation- Overrides:
appendFunctionArgDivider
in classQualifierTranslator
- Since:
- 4.0
-
clearLastFunctionArgDivider
protected void clearLastFunctionArgDivider(ASTFunctionCall functionExpression)
Description copied from class:QualifierTranslator
Clear last divider as we currently don't now position of argument until parent element is ended.- Overrides:
clearLastFunctionArgDivider
in classQualifierTranslator
- Since:
- 4.0
-
parenthesisNeeded
protected boolean parenthesisNeeded(Expression node, Expression parentNode)
- Overrides:
parenthesisNeeded
in classQualifierTranslator
-
appendExtractFunction
protected void appendExtractFunction(ASTExtract functionExpression)
Description copied from class:QualifierTranslator
Special case for extract date/time parts functions as they have many variants- Overrides:
appendExtractFunction
in classQualifierTranslator
-
-