Class ConcatenationOperation

  • All Implemented Interfaces:
    ExpressionWithVariableParameters, HasSQL, Typed

    public final class ConcatenationOperation
    extends OperationN
    Character string concatenation as in 'Hello' || 'World', binary string concatenation as in X'01' || X'AB' or an array concatenation as in ARRAY[1, 2] || 3.
    • Constructor Detail

      • ConcatenationOperation

        public ConcatenationOperation()
    • Method Detail

      • needParentheses

        public boolean needParentheses()
        Description copied from class: Expression
        Returns whether this expressions needs to be wrapped in parentheses when it is used as an argument of other expressions.
        Overrides:
        needParentheses in class Expression
        Returns:
        true if it is
      • getUnenclosedSQL

        public java.lang.StringBuilder getUnenclosedSQL​(java.lang.StringBuilder builder,
                                                        int sqlFlags)
        Description copied from class: Expression
        Get the SQL statement of this expression. This may not always be the original SQL statement, especially after optimization. Enclosing '(' and ')' are never appended.
        Specified by:
        getUnenclosedSQL in class Expression
        Parameters:
        builder - string builder
        sqlFlags - formatting flags
        Returns:
        the specified string builder
      • getValue

        public Value getValue​(SessionLocal session)
        Description copied from class: Expression
        Return the resulting value for the current row.
        Specified by:
        getValue in class Expression
        Parameters:
        session - the session
        Returns:
        the result
      • optimize

        public Expression optimize​(SessionLocal session)
        Description copied from class: Expression
        Try to optimize the expression.
        Specified by:
        optimize in class Expression
        Parameters:
        session - the session
        Returns:
        the optimized expression
      • determineType

        private void determineType​(SessionLocal session)
      • getPrecision

        private long getPrecision​(int i)
      • inlineArguments

        private void inlineArguments()
      • isEmpty

        private static boolean isEmpty​(Value v)