egdb3_12_9
.search
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
symspell_generate_edits(raw_word text, dist integer DEFAULT 1, maxed integer DEFAULT 3)
Parameters
Name
Type
Mode
raw_word
text
IN
dist
integer
IN
maxed
integer
IN
Definition
DECLARE item TEXT; list TEXT[] := '{}'; sublist TEXT[] := '{}'; BEGIN FOR I IN 1 .. CHARACTER_LENGTH(raw_word) LOOP item := SUBSTRING(raw_word FROM 1 FOR I - 1) || SUBSTRING(raw_word FROM I + 1); IF NOT list @> ARRAY[item] THEN list := item || list; IF dist < maxED AND CHARACTER_LENGTH(raw_word) > dist + 1 THEN sublist := search.symspell_generate_edits(item, dist + 1, maxED) || sublist; END IF; END IF; END LOOP; IF dist = 1 THEN RETURN evergreen.text_array_merge_unique(list, sublist); ELSE RETURN list || sublist; END IF; END;