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
FieldsFields 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
ConstructorsConstructorDescriptionJsonConstructorFunction
(boolean array) Creates a new instance of JSON constructor function. -
Method Summary
Modifier and TypeMethodDescriptionint
getFlags()
Returns the flags.static StringBuilder
getJsonFunctionFlagsSQL
(StringBuilder builder, int flags, boolean forArray) Appends flags of a JSON function to the specified string builder.getName()
Get the name.getUnenclosedSQL
(StringBuilder builder, int sqlFlags) Get the SQL statement of this expression.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) 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
-
Field Details
-
array
private final boolean array -
flags
private int flags
-
-
Constructor Details
-
JsonConstructorFunction
public JsonConstructorFunction(boolean array) Creates a new instance of JSON constructor function.- Parameters:
array
-false
forJSON_OBJECT
,true
forJSON_ARRAY
.
-
-
Method Details
-
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
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
-
jsonArray
-
optimize
Description copied from class:Expression
Try to optimize the expression.- Specified by:
optimize
in classExpression
- Parameters:
session
- the session- Returns:
- the optimized expression
-
getUnenclosedSQL
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 StringBuilder getJsonFunctionFlagsSQL(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
Description copied from interface:NamedExpression
Get the name.- Specified by:
getName
in interfaceNamedExpression
- Returns:
- the name in uppercase
-