Package org.h2.expression.function
Class JsonConstructorFunction
- java.lang.Object
-
- org.h2.expression.Expression
-
- org.h2.expression.OperationN
-
- org.h2.expression.function.JsonConstructorFunction
-
- All Implemented Interfaces:
ExpressionWithFlags
,ExpressionWithVariableParameters
,NamedExpression
,HasSQL
,Typed
public final class JsonConstructorFunction extends OperationN implements ExpressionWithFlags, NamedExpression
JSON constructor function.
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
array
private int
flags
-
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 Description JsonConstructorFunction(boolean array)
Creates a new instance of JSON constructor function.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description int
getFlags()
Returns the flags.static java.lang.StringBuilder
getJsonFunctionFlagsSQL(java.lang.StringBuilder builder, int flags, boolean forArray)
Appends flags of a JSON function to the specified string builder.java.lang.String
getName()
Get the name.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.private Value
jsonArray(SessionLocal session, Expression[] args)
private Value
jsonObject(SessionLocal session, Expression[] args)
Expression
optimize(SessionLocal session)
Try to optimize the expression.void
setFlags(int flags)
Set the flags for this 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, needParentheses, 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
-
-
-
-
Method Detail
-
setFlags
public void setFlags(int flags)
Description copied from interface:ExpressionWithFlags
Set the flags for this expression.- Specified by:
setFlags
in interfaceExpressionWithFlags
- Parameters:
flags
- the flags to set
-
getFlags
public int getFlags()
Description copied from interface:ExpressionWithFlags
Returns the flags.- Specified by:
getFlags
in interfaceExpressionWithFlags
- Returns:
- the flags
-
getValue
public Value getValue(SessionLocal session)
Description copied from class:Expression
Return the resulting value for the current row.- Specified by:
getValue
in classExpression
- Parameters:
session
- the session- Returns:
- the result
-
jsonObject
private Value jsonObject(SessionLocal session, Expression[] args)
-
jsonArray
private Value jsonArray(SessionLocal session, Expression[] args)
-
optimize
public Expression optimize(SessionLocal session)
Description copied from class:Expression
Try to optimize the expression.- Specified by:
optimize
in classExpression
- Parameters:
session
- the session- Returns:
- the optimized expression
-
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 classExpression
- Parameters:
builder
- string buildersqlFlags
- formatting flags- Returns:
- the specified string builder
-
getJsonFunctionFlagsSQL
public static java.lang.StringBuilder getJsonFunctionFlagsSQL(java.lang.StringBuilder builder, int flags, boolean forArray)
Appends flags of a JSON function to the specified string builder.- Parameters:
builder
- string builder to append toflags
- flags to appendforArray
- whether the function is an array function- Returns:
- the specified string builder
-
getName
public java.lang.String getName()
Description copied from interface:NamedExpression
Get the name.- Specified by:
getName
in interfaceNamedExpression
- Returns:
- the name in uppercase
-
-