Class JarowinklerSimilarity


public class JarowinklerSimilarity extends TextArgumentFunction
JAROWINKLER_SIMILARITY(string1, string2) — the Jaro-Winkler similarity of the two strings scaled to an integer 0–100 (0 = no similarity, 100 = exact match), matching Snowflake. The computation is case-insensitive but sensitive to whitespace and other formatting characters. Either NULL yields NULL.

Implemented from first principles: the Jaro similarity (matching characters within a sliding window, minus half the transpositions) plus the Winkler bonus for a common prefix (capped at 4 characters, scaling factor 0.1), then round(similarity * 100). For example JAROWINKLER_SIMILARITY('Snowflake', 'Oracle') is 61 (Jaro 0.6111, no common prefix).

  • Constructor Details

    • JarowinklerSimilarity

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