org.h2.expression

## Class ConcatenationOperation

- java.lang.Object
- - org.h2.expression.Expression
  - - org.h2.expression.OperationN
    - - org.h2.expression.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`.

### Field Summary

### Fields inherited from class org.h2.expression.OperationN

`args, argsCount, type`

### Fields inherited from class org.h2.expression.Expression

`AUTO_PARENTHESES, MAP_IN_AGGREGATE, MAP_IN_WINDOW, MAP_INITIAL, WITH_PARENTHESES, WITHOUT_PARENTHESES`

### Fields inherited from interface org.h2.util.HasSQL

`ADD_PLAN_INFORMATION, DEFAULT_SQL_FLAGS, NO_CASTS, QUOTE_ONLY_WHEN_REQUIRED, REPLACE_LOBS_FOR_TRACE, TRACE_SQL_FLAGS`

### Constructor Summary

Constructors
Constructor and Description
`ConcatenationOperation()`
`ConcatenationOperation(Expression op1, Expression op2)`

### Method Summary

All Methods Instance Methods Concrete Methods
`java.lang.StringBuilder` `getUnenclosedSQL(java.lang.StringBuilder builder, int sqlFlags)` Get the SQL statement of this expression.
`Value` `getValue(SessionLocal session)` Return the resulting value for the current row.
`boolean` `needParentheses()` Returns whether this expressions needs to be wrapped in parentheses when it is used as an argument of other expressions.
`Expression` `optimize(SessionLocal session)` Try to optimize the expression.

### Methods inherited from class org.h2.expression.OperationN

`addParameter, doneWithParameters, getCost, getSubexpression, getSubexpressionCount, getType, isEverything, mapColumns, optimizeArguments, setEvaluatable, updateAggregate`

### Methods inherited from class org.h2.expression.Expression

`addFilterConditions, createIndexConditions, getAlias, getBooleanValue, getColumnName, getColumnNameForView, getEnclosedSQL, getNonAliasExpression, getNotIfPossible, getNullable, getSchemaName, getSQL, getSQL, getSQL, getSQL, getTableAlias, getTableName, getWhenSQL, getWhenValue, isConstant, isIdentity, isNullConstant, isValueSet, isWhenConditionOperand, optimizeCondition, toString, writeExpressions, writeExpressions`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.h2.util.HasSQL

`getTraceSQL`

### Constructor Detail

#### ConcatenationOperation

    public ConcatenationOperation()

#### ConcatenationOperation

    public ConcatenationOperation(Expression op1,
                                  Expression op2)

### 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