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…
	
	Add table
		
		Reference in a new issue
	
	 Eric Schultz
						Eric Schultz