Annotation Type FunctionTemplate


@Retention(RUNTIME) @Target(TYPE) public @interface FunctionTemplate
  • Field Details Link icon

    • OUTPUT_SIZE_ESTIMATE_DEFAULT Link icon

      static final int OUTPUT_SIZE_ESTIMATE_DEFAULT
      See Also:
  • Element Details

    • name Link icon

      String name
      Name of function (when only one.) Use this annotation element if there is only one name for the function. Note: If you use this annotation don't use names().

      TODO: Refer to wherever list of possible or at least known names is, to resolve the current issue of spaces vs. underlines in names (e.g., we have both "less_than" and "less than".

      Returns:
      function name
      Default:
      ""
    • names Link icon

      String[] names
      Names of function (when multiple). Use this annotation element if there are multiple names for the function. Note: If you use this annotation don't use name().

      TODO: Refer to wherever list of possible or at least known names is, to resolve the current issue of spaces vs. underlines in names (e.g., we have both "less_than" and "less than".

      Returns:
      list of function names
      Default:
      {}
    • scope Link icon

    • returnType Link icon

      Default:
      DEFAULT
    • nulls Link icon

      Default:
      INTERNAL
    • isBinaryCommutative Link icon

      boolean isBinaryCommutative
      Default:
      false
    • isRandom Link icon

      boolean isRandom
      Default:
      false
    • desc Link icon

      String desc
      Default:
      ""
    • costCategory Link icon

      Default:
      SIMPLE
    • isNiladic Link icon

      boolean isNiladic

      Set Operand type-checking strategy for an operator which takes no operands and need to be invoked without parentheses. E.g.: session_id is a niladic function.

      Niladic functions override columns that have names same as any niladic function. Such columns cannot be queried without the table qualification. Value of the niladic function is returned when table qualification is not used.

      For e.g. in the case of session_id:
      select session_id from table -> returns the value of niladic function session_id
      select t1.session_id from table t1 -> returns session_id column value from table

      Default:
      false
    • checkPrecisionRange Link icon

      boolean checkPrecisionRange
      Default:
      false
    • isInternal Link icon

      boolean isInternal
      Defines if a function is internal and not intended for public use [e.g. castEmptyStringNullableVarBinaryToNullableVarDecimal(..) ]
      Default:
      false
    • isVarArg Link icon

      boolean isVarArg
      Defines if a function accepts variable arguments count
      Default:
      false
    • outputWidthCalculatorType Link icon

      Default:
      DEFAULT
    • outputSizeEstimate Link icon

      int outputSizeEstimate
      Default:
      -1