Package org.apache.calcite.sql
Class SqlSetOption
- java.lang.Object
-
- org.apache.calcite.sql.SqlNode
-
- org.apache.calcite.sql.SqlCall
-
- org.apache.calcite.sql.SqlAlter
-
- org.apache.calcite.sql.SqlSetOption
-
- All Implemented Interfaces:
java.lang.Cloneable
public class SqlSetOption extends SqlAlter
SQL parse tree node to representSET
andRESET
statements, optionally preceded byALTER SYSTEM
orALTER SESSION
.Syntax:
ALTER scope SET `option.name` = value;
ALTER scope RESET `option`.`name`;
ALTER scope RESET ALL;
SET `option.name` = value;
RESET `option`.`name`;
RESET ALL;If
SqlAlter.scope
is null, assume a default scope. (The default scope is defined by the project using Calcite, but is typically SESSION.)If
value
is null, assume RESET; ifvalue
is not null, assume SET.Examples:
ALTER SYSTEM SET `my`.`param1` = 1
SET `my.param2` = 1
SET `my.param3` = ON
ALTER SYSTEM RESET `my`.`param1`
RESET `my.param2`
ALTER SESSION RESET ALL
-
-
Field Summary
Fields Modifier and Type Field Description (package private) SqlIdentifier
name
Name of the option as anSqlIdentifier
with one or more parts.static SqlSpecialOperator
OPERATOR
(package private) SqlNode
value
Value of the option.-
Fields inherited from class org.apache.calcite.sql.SqlNode
EMPTY_ARRAY, pos
-
-
Constructor Summary
Constructors Constructor Description SqlSetOption(SqlParserPos pos, java.lang.String scope, SqlIdentifier name, SqlNode value)
Creates a node.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SqlKind
getKind()
Returns the type of node this is, orSqlKind.OTHER
if it's nothing special.SqlIdentifier
getName()
java.util.List<SqlNode>
getOperandList()
SqlOperator
getOperator()
SqlNode
getValue()
void
setName(SqlIdentifier name)
void
setOperand(int i, SqlNode operand)
Changes the value of an operand.void
setValue(SqlNode value)
protected void
unparseAlterOperation(SqlWriter writer, int leftPrec, int rightPrec)
void
validate(SqlValidator validator, SqlValidatorScope scope)
Validates this call.-
Methods inherited from class org.apache.calcite.sql.SqlCall
accept, clone, equalsDeep, findValidOptions, getCallSignature, getFunctionQuantifier, getMonotonicity, isCountStar, isExpanded, operand, operandCount
-
Methods inherited from class org.apache.calcite.sql.SqlNode
clone, clone, cloneArray, equalDeep, equalDeep, equalsDeep, getParserPosition, isA, toSqlString, toSqlString, toString, validateExpr
-
-
-
-
Field Detail
-
OPERATOR
public static final SqlSpecialOperator OPERATOR
-
name
SqlIdentifier name
Name of the option as anSqlIdentifier
with one or more parts.
-
value
SqlNode value
Value of the option. May be aSqlLiteral
or aSqlIdentifier
with one part. Reserved words (currently just 'ON') are converted to identifiers by the parser.
-
-
Constructor Detail
-
SqlSetOption
public SqlSetOption(SqlParserPos pos, java.lang.String scope, SqlIdentifier name, SqlNode value)
Creates a node.- Parameters:
pos
- Parser position, must not be null.scope
- Scope (generally "SYSTEM" or "SESSION"), may be null.name
- Name of option, as an identifier, must not be null.value
- Value of option, as an identifier or literal, may be null. If null, assume RESET command, else assume SET command.
-
-
Method Detail
-
getKind
public SqlKind getKind()
Description copied from class:SqlNode
Returns the type of node this is, orSqlKind.OTHER
if it's nothing special.- Overrides:
getKind
in classSqlCall
- Returns:
- a
SqlKind
value, never null - See Also:
SqlNode.isA(java.util.Set<org.apache.calcite.sql.SqlKind>)
-
getOperator
public SqlOperator getOperator()
- Specified by:
getOperator
in classSqlCall
-
getOperandList
public java.util.List<SqlNode> getOperandList()
- Specified by:
getOperandList
in classSqlCall
-
setOperand
public void setOperand(int i, SqlNode operand)
Description copied from class:SqlCall
Changes the value of an operand. Allows some rewrite bySqlValidator
; use sparingly.- Overrides:
setOperand
in classSqlCall
- Parameters:
i
- Operand indexoperand
- Operand value
-
unparseAlterOperation
protected void unparseAlterOperation(SqlWriter writer, int leftPrec, int rightPrec)
- Specified by:
unparseAlterOperation
in classSqlAlter
-
validate
public void validate(SqlValidator validator, SqlValidatorScope scope)
Description copied from class:SqlCall
Validates this call.The default implementation delegates the validation to the operator's
SqlOperator.validateCall(org.apache.calcite.sql.SqlCall, org.apache.calcite.sql.validate.SqlValidator, org.apache.calcite.sql.validate.SqlValidatorScope, org.apache.calcite.sql.validate.SqlValidatorScope)
. Derived classes may override (as do, for exampleSqlSelect
andSqlUpdate
).
-
getName
public SqlIdentifier getName()
-
setName
public void setName(SqlIdentifier name)
-
getValue
public SqlNode getValue()
-
setValue
public void setValue(SqlNode value)
-
-