Class SqlBasicCall

All Implemented Interfaces:
Cloneable

public class SqlBasicCall extends SqlCall
Implementation of SqlCall that keeps its operands in an array.
  • Constructor Details

  • Method Details

    • getKind

      public SqlKind getKind()
      Description copied from class: SqlNode
      Returns the type of node this is, or SqlKind.OTHER if it's nothing special.
      Overrides:
      getKind in class SqlCall
      Returns:
      a SqlKind value, never null
      See Also:
    • withExpanded

      public SqlCall withExpanded(boolean expanded)
      Sets whether this call is expanded.
      See Also:
    • setOperand

      public void setOperand(int i, @Nullable SqlNode operand)
      Description copied from class: SqlCall
      Changes the value of an operand. Allows some rewrite by SqlValidator; use sparingly.
      Overrides:
      setOperand in class SqlCall
      Parameters:
      i - Operand index
      operand - Operand value
    • setOperator

      public void setOperator(SqlOperator operator)
      Sets the operator (or function) that is being called.

      This method is used by the validator to set a more refined version of the same operator (for instance, a version where overloading has been resolved); use with care.

    • getOperator

      public SqlOperator getOperator()
      Specified by:
      getOperator in class SqlCall
    • getOperandList

      public List<SqlNode> getOperandList()
      Description copied from class: SqlCall
      Returns the list of operands. The set and order of operands is call-specific.

      Note: the proper type would be List<@Nullable SqlNode>, however, it would trigger too many changes to the current codebase.

      Specified by:
      getOperandList in class SqlCall
      Returns:
      the list of call operands, never null, the operands can be null
    • operand

      public <S extends SqlNode> S operand(int i)
      Description copied from class: SqlCall
      Returns i-th operand (0-based).

      Note: the result might be null, so the proper signature would be <S extends @Nullable SqlNode>, however, it would trigger to many changes to the current codebase.

      Overrides:
      operand in class SqlCall
      Type Parameters:
      S - type of the result
      Parameters:
      i - operand index (0-based)
      Returns:
      i-th operand (0-based), the result might be null
    • operandCount

      public int operandCount()
      Overrides:
      operandCount in class SqlCall
    • getFunctionQuantifier

      public @Nullable SqlLiteral getFunctionQuantifier()
      Overrides:
      getFunctionQuantifier in class SqlCall
    • clone

      public SqlNode clone(SqlParserPos pos)
      Description copied from class: SqlNode
      Clones a SqlNode with a different position.
      Overrides:
      clone in class SqlCall