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 booleanarrayprivate intflags-
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 intgetFlags()Returns the flags.static java.lang.StringBuildergetJsonFunctionFlagsSQL(java.lang.StringBuilder builder, int flags, boolean forArray)Appends flags of a JSON function to the specified string builder.java.lang.StringgetName()Get the name.java.lang.StringBuildergetUnenclosedSQL(java.lang.StringBuilder builder, int sqlFlags)Get the SQL statement of this expression.ValuegetValue(SessionLocal session)Return the resulting value for the current row.private ValuejsonArray(SessionLocal session, Expression[] args)private ValuejsonObject(SessionLocal session, Expression[] args)Expressionoptimize(SessionLocal session)Try to optimize the expression.voidsetFlags(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:ExpressionWithFlagsSet the flags for this expression.- Specified by:
setFlagsin interfaceExpressionWithFlags- Parameters:
flags- the flags to set
-
getFlags
public int getFlags()
Description copied from interface:ExpressionWithFlagsReturns the flags.- Specified by:
getFlagsin interfaceExpressionWithFlags- Returns:
- the flags
-
getValue
public Value getValue(SessionLocal session)
Description copied from class:ExpressionReturn the resulting value for the current row.- Specified by:
getValuein 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:ExpressionTry to optimize the expression.- Specified by:
optimizein 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:ExpressionGet 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:
getUnenclosedSQLin 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:NamedExpressionGet the name.- Specified by:
getNamein interfaceNamedExpression- Returns:
- the name in uppercase
-
-