Class TryToDecfloat

java.lang.Object
dev.frostlake.functions.BuiltInFunction
dev.frostlake.functions.scalar.conversion.TryToDecfloat

public class TryToDecfloat extends BuiltInFunction
TRY_TO_DECFLOAT(expr [, format]) — ToDecfloat answering NULL where TO_DECFLOAT fails on the value: a text that spells no number, a format model the text does not fit, and a model that is not one. It reads text as TO_DECFLOAT does, not as TRY_TO_DOUBLE: a non-finite word, a d suffix and hex digits are NULL here where TRY_TO_DOUBLE answers inf, 1 and 16 (all live-verified):
   TRY_TO_DECFLOAT('1.5')            1.5          TRY_TO_DECFLOAT(' 1.5 ')     1.5
   TRY_TO_DECFLOAT('inf')            NULL         TRY_TO_DECFLOAT('nan')       NULL
   TRY_TO_DECFLOAT('1d')             NULL         TRY_TO_DECFLOAT('0x10')      NULL
   TRY_TO_DECFLOAT('1e5', '9EEEE')   100000       TRY_TO_DECFLOAT('123', '99') NULL
   TRY_TO_DECFLOAT('1e5', '9e9')     NULL         a model that is not one
 

A BOOLEAN is NULL, as it was when this function read text as TRY_TO_DOUBLE.

  • Constructor Details

    • TryToDecfloat

      public TryToDecfloat()
  • Method Details

    • evaluate

      public Object evaluate(List<Object> args)
      Description copied from class: BuiltInFunction
      Computes the function's result over its already-evaluated argument values. A SQL NULL argument arrives as Java null, and returning null makes the SQL result NULL.
      Specified by:
      evaluate in class BuiltInFunction
      Parameters:
      args - the argument values, in call order
      Returns:
      the function's value for these arguments, or null for SQL NULL
    • getMinArgCount

      public int getMinArgCount()
      Description copied from class: BuiltInFunction
      The fewest arguments a call to this function may pass; fewer is an argument-count error.
      Specified by:
      getMinArgCount in class BuiltInFunction
      Returns:
      the minimum accepted argument count
    • getMaxArgCount

      public int getMaxArgCount()
      Description copied from class: BuiltInFunction
      The most arguments a call to this function may pass; Integer.MAX_VALUE marks a variadic function (see BuiltInFunction.isVariadic()).
      Specified by:
      getMaxArgCount in class BuiltInFunction
      Returns:
      the maximum accepted argument count