Interface CallContext

    • Method Detail

      • getDataTypeFactory

        DataTypeFactory getDataTypeFactory()
        Enables to lookup types in a catalog and resolve RAW types.
      • getFunctionDefinition

        FunctionDefinition getFunctionDefinition()
        Returns the function definition that defines the function currently being called.
      • isArgumentLiteral

        boolean isArgumentLiteral​(int pos)
        Returns whether the argument at the given position is a value literal.
      • isArgumentNull

        boolean isArgumentNull​(int pos)
        Returns true if the argument at the given position is a literal and null, false otherwise.

        Use isArgumentLiteral(int) before to check if the argument is actually a literal.

      • getArgumentValue

        <T> Optional<T> getArgumentValue​(int pos,
                                         Class<T> clazz)
        Returns the literal value of the argument at the given position, given that the argument is a literal, is not null, and can be expressed as an instance of the provided class.

        It supports conversions to default conversion classes of LogicalTypes. This method should not be called with other classes.

        Use isArgumentLiteral(int) before to check if the argument is actually a literal.

      • getName

        String getName()
        Returns the function's name usually referencing the function in a catalog.

        Note: The name is meant for debugging purposes only.

      • getArgumentDataTypes

        List<DataType> getArgumentDataTypes()
        Returns a resolved list of the call's argument types. It also includes a type for every argument in a vararg function call.
      • newValidationError

        default ValidationException newValidationError​(String message,
                                                       Object... args)
        Creates a validation exception for exiting the type inference process with a meaningful exception.
      • fail

        default <T> Optional<T> fail​(boolean throwOnFailure,
                                     String message,
                                     Object... args)
        Helper method for handling failures during the type inference process while considering the throwOnFailure flag.

        Shorthand for if (throwOnFailure) throw ValidationException(...) else return Optional.empty().

      • isGroupedAggregation

        boolean isGroupedAggregation()
        Returns whether the function call happens as part of an aggregation that defines grouping columns.

        E.g. SELECT COUNT(*) FROM t is not a grouped aggregation but SELECT COUNT(*) FROM t GROUP BY k is.