From a268d9e81b618b11ea86ead13c7a192929996545 Mon Sep 17 00:00:00 2001 From: Ying-Hsiang Huang Date: Mon, 10 Nov 2025 09:39:14 -0600 Subject: [PATCH] LP#2118920: Include guardian field in patron name keywords search --- Open-ILS/src/sql/Pg/005.schema.actors.sql | 4 ++- .../XXX.function.guardian_name_search.sql | 36 +++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXX.function.guardian_name_search.sql diff --git a/Open-ILS/src/sql/Pg/005.schema.actors.sql b/Open-ILS/src/sql/Pg/005.schema.actors.sql index 1f049dabe7..329f91d4d8 100644 --- a/Open-ILS/src/sql/Pg/005.schema.actors.sql +++ b/Open-ILS/src/sql/Pg/005.schema.actors.sql @@ -182,7 +182,9 @@ BEGIN COALESCE(NEW.pref_family_name, '') || ' ' || COALESCE(evergreen.unaccent_and_squash(NEW.pref_family_name), '') || ' ' || COALESCE(NEW.pref_suffix, '') || ' ' || - COALESCE(NEW.name_keywords, '') + COALESCE(NEW.name_keywords, '') || ' ' || + COALESCE(NEW.guardian, '') || ' ' || + COALESCE(evergreen.unaccent_and_squash(NEW.guardian), '') ); RETURN NEW; END; diff --git a/Open-ILS/src/sql/Pg/upgrade/XXX.function.guardian_name_search.sql b/Open-ILS/src/sql/Pg/upgrade/XXX.function.guardian_name_search.sql new file mode 100644 index 0000000000..8b62eb8446 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/XXX.function.guardian_name_search.sql @@ -0,0 +1,36 @@ +BEGIN; + +-- SELECT evergreen.upgrade_deps_block_check('XXX', :eg_version); + +CREATE OR REPLACE FUNCTION actor.user_ingest_name_keywords() + RETURNS TRIGGER AS $func$ +BEGIN + NEW.name_kw_tsvector := TO_TSVECTOR( + COALESCE(NEW.prefix, '') || ' ' || + COALESCE(NEW.first_given_name, '') || ' ' || + COALESCE(evergreen.unaccent_and_squash(NEW.first_given_name), '') || ' ' || + COALESCE(NEW.second_given_name, '') || ' ' || + COALESCE(evergreen.unaccent_and_squash(NEW.second_given_name), '') || ' ' || + COALESCE(NEW.family_name, '') || ' ' || + COALESCE(evergreen.unaccent_and_squash(NEW.family_name), '') || ' ' || + COALESCE(NEW.suffix, '') || ' ' || + COALESCE(NEW.pref_prefix, '') || ' ' || + COALESCE(NEW.pref_first_given_name, '') || ' ' || + COALESCE(evergreen.unaccent_and_squash(NEW.pref_first_given_name), '') || ' ' || + COALESCE(NEW.pref_second_given_name, '') || ' ' || + COALESCE(evergreen.unaccent_and_squash(NEW.pref_second_given_name), '') || ' ' || + COALESCE(NEW.pref_family_name, '') || ' ' || + COALESCE(evergreen.unaccent_and_squash(NEW.pref_family_name), '') || ' ' || + COALESCE(NEW.pref_suffix, '') || ' ' || + COALESCE(NEW.name_keywords, '') || ' ' || + COALESCE(NEW.guardian, '') || ' ' || + COALESCE(evergreen.unaccent_and_squash(NEW.guardian), '') + ); + RETURN NEW; +END; +$func$ LANGUAGE PLPGSQL; + +-- to trigger user_ingest_name_keywords_tgr +UPDATE actor.usr SET id = id WHERE NOT DELETED; + +COMMIT;