Drop the trigger function updating supporters.search_vectors
This commit is contained in:
parent
7a365c61d8
commit
4e42bc85ac
2 changed files with 51 additions and 42 deletions
|
@ -0,0 +1,50 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
# License: AGPL-3.0-or-later WITH WTO-AP-3.0-or-later
|
||||||
|
# Full license explanation at https://github.com/houdiniproject/houdini/blob/master/LICENSE
|
||||||
|
class DropUpdateSupporterAssocSearchVectorsFunction < ActiveRecord::Migration[6.1]
|
||||||
|
def up
|
||||||
|
execute <<-SQL
|
||||||
|
DROP FUNCTION public.update_supporter_assoc_search_vectors
|
||||||
|
SQL
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
execute <<-SQL
|
||||||
|
CREATE FUNCTION public.update_supporter_assoc_search_vectors() RETURNS trigger
|
||||||
|
LANGUAGE plpgsql
|
||||||
|
AS $$ BEGIN
|
||||||
|
IF pg_trigger_depth() <> 1 THEN RETURN new; END IF;
|
||||||
|
UPDATE supporters
|
||||||
|
SET search_vectors=to_tsvector('english', data.search_blob)
|
||||||
|
FROM (
|
||||||
|
SELECT supporters.id, concat_ws(' '
|
||||||
|
, custom_field_joins.value
|
||||||
|
, supporters.name
|
||||||
|
, supporters.organization
|
||||||
|
, supporters.id
|
||||||
|
, supporters.email
|
||||||
|
, supporters.city
|
||||||
|
, supporters.state_code
|
||||||
|
, donations.designation
|
||||||
|
, donations.dedication
|
||||||
|
, payments.kind
|
||||||
|
, payments.towards
|
||||||
|
) AS search_blob
|
||||||
|
FROM supporters
|
||||||
|
LEFT OUTER JOIN payments
|
||||||
|
ON payments.supporter_id=supporters.id
|
||||||
|
LEFT OUTER JOIN donations
|
||||||
|
ON donations.supporter_id=supporters.id
|
||||||
|
LEFT OUTER JOIN (
|
||||||
|
SELECT string_agg(value::text, ' ') AS value, supporter_id
|
||||||
|
FROM custom_field_joins
|
||||||
|
GROUP BY supporter_id) AS custom_field_joins
|
||||||
|
ON custom_field_joins.supporter_id=supporters.id
|
||||||
|
WHERE (supporters.id=NEW.supporter_id)) AS data
|
||||||
|
WHERE data.id=supporters.id;
|
||||||
|
RETURN new;
|
||||||
|
END $$;
|
||||||
|
SQL
|
||||||
|
end
|
||||||
|
end
|
|
@ -37,46 +37,6 @@ CREATE EXTENSION IF NOT EXISTS "uuid-ossp" WITH SCHEMA public;
|
||||||
COMMENT ON EXTENSION "uuid-ossp" IS 'generate universally unique identifiers (UUIDs)';
|
COMMENT ON EXTENSION "uuid-ossp" IS 'generate universally unique identifiers (UUIDs)';
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: update_supporter_assoc_search_vectors(); Type: FUNCTION; Schema: public; Owner: -
|
|
||||||
--
|
|
||||||
|
|
||||||
CREATE FUNCTION public.update_supporter_assoc_search_vectors() RETURNS trigger
|
|
||||||
LANGUAGE plpgsql
|
|
||||||
AS $$ BEGIN
|
|
||||||
IF pg_trigger_depth() <> 1 THEN RETURN new; END IF;
|
|
||||||
UPDATE supporters
|
|
||||||
SET search_vectors=to_tsvector('english', data.search_blob)
|
|
||||||
FROM (
|
|
||||||
SELECT supporters.id, concat_ws(' '
|
|
||||||
, custom_field_joins.value
|
|
||||||
, supporters.name
|
|
||||||
, supporters.organization
|
|
||||||
, supporters.id
|
|
||||||
, supporters.email
|
|
||||||
, supporters.city
|
|
||||||
, supporters.state_code
|
|
||||||
, donations.designation
|
|
||||||
, donations.dedication
|
|
||||||
, payments.kind
|
|
||||||
, payments.towards
|
|
||||||
) AS search_blob
|
|
||||||
FROM supporters
|
|
||||||
LEFT OUTER JOIN payments
|
|
||||||
ON payments.supporter_id=supporters.id
|
|
||||||
LEFT OUTER JOIN donations
|
|
||||||
ON donations.supporter_id=supporters.id
|
|
||||||
LEFT OUTER JOIN (
|
|
||||||
SELECT string_agg(value::text, ' ') AS value, supporter_id
|
|
||||||
FROM custom_field_joins
|
|
||||||
GROUP BY supporter_id) AS custom_field_joins
|
|
||||||
ON custom_field_joins.supporter_id=supporters.id
|
|
||||||
WHERE (supporters.id=NEW.supporter_id)) AS data
|
|
||||||
WHERE data.id=supporters.id;
|
|
||||||
RETURN new;
|
|
||||||
END $$;
|
|
||||||
|
|
||||||
|
|
||||||
SET default_tablespace = '';
|
SET default_tablespace = '';
|
||||||
|
|
||||||
--
|
--
|
||||||
|
@ -4456,9 +4416,8 @@ INSERT INTO "schema_migrations" (version) VALUES
|
||||||
('20210204172319'),
|
('20210204172319'),
|
||||||
('20210204210627'),
|
('20210204210627'),
|
||||||
('20210204223643'),
|
('20210204223643'),
|
||||||
('20210208211655'),
|
|
||||||
('20210208212655'),
|
('20210208212655'),
|
||||||
('20210209002832');
|
('20210209002832');
|
||||||
('20210209174657');
|
('20210209174657');
|
||||||
|
('20210209181808');
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue