egdb3_14_1
.search
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
symspell_maintain_entries()
Parameters
Name
Type
Mode
IN
Definition
DECLARE search_class TEXT; new_value TEXT := NULL; old_value TEXT := NULL; _atag INTEGER; BEGIN IF TG_TABLE_SCHEMA = 'authority' THEN IF TG_OP IN ('INSERT', 'UPDATE') THEN _atag = NEW.atag; ELSE _atag = OLD.atag; END IF; SELECT m.field_class INTO search_class FROM authority.control_set_auth_field_metabib_field_map_refs a JOIN config.metabib_field m ON (a.metabib_field=m.id) WHERE a.authority_field = _atag; IF NOT FOUND THEN RETURN NULL; END IF; ELSE search_class := COALESCE(TG_ARGV[0], SPLIT_PART(TG_TABLE_NAME,'_',1)); END IF; IF TG_OP IN ('INSERT', 'UPDATE') THEN new_value := NEW.value; END IF; IF TG_OP IN ('DELETE', 'UPDATE') THEN old_value := OLD.value; END IF; IF new_value = old_value THEN -- same, move along ELSE INSERT INTO search.symspell_dictionary_updates SELECT txid_current(), * FROM search.symspell_build_entries( new_value, search_class, old_value ); END IF; -- PERFORM * FROM search.symspell_build_and_merge_entries(new_value, search_class, old_value); RETURN NULL; -- always fired AFTER END;