Package org.apache.calcite.sql
Class SqlAlter
- java.lang.Object
-
- org.apache.calcite.sql.SqlNode
-
- org.apache.calcite.sql.SqlCall
-
- org.apache.calcite.sql.SqlAlter
-
- All Implemented Interfaces:
java.lang.Cloneable
- Direct Known Subclasses:
SqlSetOption
public abstract class SqlAlter extends SqlCall
Base class for an ALTER statements parse tree nodes. The portion of the statement covered by this class is "ALTER <SCOPE>. Subclasses handle whatever comes after the scope.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) java.lang.String
scope
Scope of the operation.-
Fields inherited from class org.apache.calcite.sql.SqlNode
EMPTY_ARRAY, pos
-
-
Constructor Summary
Constructors Constructor Description SqlAlter(SqlParserPos pos)
SqlAlter(SqlParserPos pos, java.lang.String scope)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description java.lang.String
getScope()
void
setScope(java.lang.String scope)
void
unparse(SqlWriter writer, int leftPrec, int rightPrec)
Writes a SQL representation of this node to a writer.protected abstract void
unparseAlterOperation(SqlWriter writer, int leftPrec, int rightPrec)
-
Methods inherited from class org.apache.calcite.sql.SqlCall
accept, clone, equalsDeep, findValidOptions, getCallSignature, getFunctionQuantifier, getKind, getMonotonicity, getOperandList, getOperator, isCountStar, isExpanded, operand, operandCount, setOperand, validate
-
Methods inherited from class org.apache.calcite.sql.SqlNode
clone, clone, cloneArray, equalDeep, equalDeep, equalsDeep, getParserPosition, isA, toSqlString, toSqlString, toString, validateExpr
-
-
-
-
Constructor Detail
-
SqlAlter
public SqlAlter(SqlParserPos pos)
-
SqlAlter
public SqlAlter(SqlParserPos pos, java.lang.String scope)
-
-
Method Detail
-
unparse
public final void unparse(SqlWriter writer, int leftPrec, int rightPrec)
Description copied from class:SqlNode
Writes a SQL representation of this node to a writer.The
leftPrec
andrightPrec
parameters give us enough context to decide whether we need to enclose the expression in parentheses. For example, we need parentheses around "2 + 3" if preceded by "5 *". This is because the precedence of the "*" operator is greater than the precedence of the "+" operator.The algorithm handles left- and right-associative operators by giving them slightly different left- and right-precedence.
If
SqlWriter.isAlwaysUseParentheses()
is true, we use parentheses even when they are not required by the precedence rules.For the details of this algorithm, see
SqlCall.unparse(org.apache.calcite.sql.SqlWriter, int, int)
.
-
unparseAlterOperation
protected abstract void unparseAlterOperation(SqlWriter writer, int leftPrec, int rightPrec)
-
getScope
public java.lang.String getScope()
-
setScope
public void setScope(java.lang.String scope)
-
-