Class NormalizeFn


public class NormalizeFn extends TextArgumentFunction
NORMALIZE(x, lo, hi) — Snowflake's min-max normalization (x - lo) / (hi - lo), NOT Unicode normalization (live-verified: NORMALIZE(5, 0, 10) is 0.5). The result is unclamped (NORMALIZE(15, 0, 10) is 1.5); lo >= hi raises Snowflake's invalid-range error. Numbers normalize by value, DATE by epoch day, TIME by (nano-precise) second of day, TIMESTAMP by epoch second. A VARCHAR input maps to a range-INDEPENDENT fraction from its bytes read as a base-256 fraction over 384 (live-verified: '7' is 55/384 and '77' adds 55/98304 — the same result for any valid range).
  • Constructor Details

    • NormalizeFn

      public NormalizeFn()
  • 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