Class 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 Detail

      • scope

        java.lang.String scope
        Scope of the operation. Values "SYSTEM" and "SESSION" are typical.
    • Constructor Detail

      • 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 and rightPrec 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).

        Overrides:
        unparse in class SqlCall
        Parameters:
        writer - Target writer
        leftPrec - The precedence of the SqlNode immediately preceding this node in a depth-first scan of the parse tree
        rightPrec - The precedence of the SqlNode immediately
      • 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)