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 Details

    • ConcatenationOperation

      public ConcatenationOperation()
    • ConcatenationOperation

      public ConcatenationOperation(Expression op1, Expression op2)
  • Method Details

    • 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 StringBuilder getUnenclosedSQL(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
    • getValue

      private Value getValue(SessionLocal session, Value l, Value r)
    • getValue

      private Value getValue(SessionLocal session, int l)
    • 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)