Class SqlNumericLiteral

  • All Implemented Interfaces:

    public class SqlNumericLiteral
    extends SqlLiteral
    A numeric SQL literal.
    • Field Detail

      • prec

        private java.lang.Integer prec
      • scale

        private java.lang.Integer scale
      • isExact

        private boolean isExact
    • Constructor Detail

      • SqlNumericLiteral

        protected SqlNumericLiteral​(java.math.BigDecimal value,
                                    java.lang.Integer prec,
                                    java.lang.Integer scale,
                                    boolean isExact,
                                    SqlParserPos pos)
    • Method Detail

      • getPrec

        public java.lang.Integer getPrec()
      • getScale

        public java.lang.Integer getScale()
      • isExact

        public boolean isExact()
      • unparse

        public 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).

        unparse in class SqlLiteral
        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
      • isInteger

        public boolean isInteger()