Project

General

Profile

« Previous | Next » 

Revision 13868

fix: inputs/.TNRS/schema.sql: taxon_match: renamed related items to start with taxon_match__*

View differences:

trunk/inputs/.TNRS/schema.sql
93 93

  
94 94

  
95 95
--
96
-- Name: taxon_match_input__copy_to__insert(); Type: FUNCTION; Schema: TNRS; Owner: -
96
-- Name: taxon_match__batch_begin(); Type: FUNCTION; Schema: TNRS; Owner: -
97 97
--
98 98

  
99
CREATE FUNCTION taxon_match_input__copy_to__insert() RETURNS trigger
99
CREATE FUNCTION taxon_match__batch_begin() RETURNS trigger
100 100
    LANGUAGE plpgsql
101 101
    AS $$
102 102
BEGIN
103
	INSERT INTO "TNRS".taxon_match_input SELECT new.*;
104
	RETURN NULL;
105
END;
106
$$;
107

  
108

  
109
--
110
-- Name: taxon_name_is_safe(text); Type: FUNCTION; Schema: TNRS; Owner: -
111
--
112

  
113
CREATE FUNCTION taxon_name_is_safe(taxon_name text) RETURNS boolean
114
    LANGUAGE sql IMMUTABLE
115
    AS $_$
116
SELECT NOT ($1 = ANY("TNRS".unsafe_taxon_names()))
117
$_$;
118

  
119

  
120
--
121
-- Name: tnrs__batch_begin(); Type: FUNCTION; Schema: TNRS; Owner: -
122
--
123

  
124
CREATE FUNCTION tnrs__batch_begin() RETURNS trigger
125
    LANGUAGE plpgsql
126
    AS $$
127
BEGIN
128 103
	PERFORM util.seq__reset('pg_temp.tnrs__match_num__seq', 0);
129 104
	RETURN NULL;
130 105
END;
......
132 107

  
133 108

  
134 109
--
135
-- Name: tnrs__match_num__fill(); Type: FUNCTION; Schema: TNRS; Owner: -
110
-- Name: taxon_match__fill(); Type: FUNCTION; Schema: TNRS; Owner: -
136 111
--
137 112

  
138
CREATE FUNCTION tnrs__match_num__fill() RETURNS trigger
113
CREATE FUNCTION taxon_match__fill() RETURNS trigger
139 114
    LANGUAGE plpgsql
140 115
    AS $$
141
BEGIN
142
	IF new.match_num IS NULL THEN
143
		new.match_num = "TNRS".tnrs__match_num__next();
144
	END IF;
145
	RETURN new;
146
END;
147
$$;
148

  
149

  
150
--
151
-- Name: tnrs__match_num__next(); Type: FUNCTION; Schema: TNRS; Owner: -
152
--
153

  
154
CREATE FUNCTION tnrs__match_num__next() RETURNS bigint
155
    LANGUAGE sql
156
    AS $$
157
SELECT nextval('pg_temp.tnrs__match_num__seq');
158
$$;
159

  
160

  
161
--
162
-- Name: tnrs_populate_fields(); Type: FUNCTION; Schema: TNRS; Owner: -
163
--
164

  
165
CREATE FUNCTION tnrs_populate_fields() RETURNS trigger
166
    LANGUAGE plpgsql
167
    AS $$
168 116
DECLARE
169 117
	"Specific_epithet_is_plant" boolean :=
170 118
		(CASE
......
221 169

  
222 170

  
223 171
--
224
-- Name: FUNCTION tnrs_populate_fields(); Type: COMMENT; Schema: TNRS; Owner: -
172
-- Name: FUNCTION taxon_match__fill(); Type: COMMENT; Schema: TNRS; Owner: -
225 173
--
226 174

  
227
COMMENT ON FUNCTION tnrs_populate_fields() IS '
175
COMMENT ON FUNCTION taxon_match__fill() IS '
228 176
IMPORTANT: when changing this function, you must regenerate the derived cols:
229 177
UPDATE "TNRS".taxon_match SET "Name_submitted" = "Name_submitted"
230 178
runtime: 30 min ("5564082 rows affected, 1918900 ms execution time")
......
234 182

  
235 183

  
236 184
--
185
-- Name: taxon_match__match_num__fill(); Type: FUNCTION; Schema: TNRS; Owner: -
186
--
187

  
188
CREATE FUNCTION taxon_match__match_num__fill() RETURNS trigger
189
    LANGUAGE plpgsql
190
    AS $$
191
BEGIN
192
	IF new.match_num IS NULL THEN
193
		new.match_num = "TNRS".tnrs__match_num__next();
194
	END IF;
195
	RETURN new;
196
END;
197
$$;
198

  
199

  
200
--
201
-- Name: taxon_match_input__copy_to__insert(); Type: FUNCTION; Schema: TNRS; Owner: -
202
--
203

  
204
CREATE FUNCTION taxon_match_input__copy_to__insert() RETURNS trigger
205
    LANGUAGE plpgsql
206
    AS $$
207
BEGIN
208
	INSERT INTO "TNRS".taxon_match_input SELECT new.*;
209
	RETURN NULL;
210
END;
211
$$;
212

  
213

  
214
--
215
-- Name: taxon_name_is_safe(text); Type: FUNCTION; Schema: TNRS; Owner: -
216
--
217

  
218
CREATE FUNCTION taxon_name_is_safe(taxon_name text) RETURNS boolean
219
    LANGUAGE sql IMMUTABLE
220
    AS $_$
221
SELECT NOT ($1 = ANY("TNRS".unsafe_taxon_names()))
222
$_$;
223

  
224

  
225
--
226
-- Name: tnrs__match_num__next(); Type: FUNCTION; Schema: TNRS; Owner: -
227
--
228

  
229
CREATE FUNCTION tnrs__match_num__next() RETURNS bigint
230
    LANGUAGE sql
231
    AS $$
232
SELECT nextval('pg_temp.tnrs__match_num__seq');
233
$$;
234

  
235

  
236
--
237 237
-- Name: unsafe_taxon_names(); Type: FUNCTION; Schema: TNRS; Owner: -
238 238
--
239 239

  
......
312 312
$ make schemas/remake
313 313

  
314 314
to populate a new column:
315
ALTER TABLE "TNRS".taxon_match DISABLE TRIGGER tnrs_populate_fields; --speeds up update
315
ALTER TABLE "TNRS".taxon_match DISABLE TRIGGER taxon_match__fill; --speeds up update
316 316
UPDATE "TNRS".taxon_match SET "col" = value;
317 317
	-- runtime: 30 min ("5564201 rows affected, 1624829 ms execution time")
318
ALTER TABLE "TNRS".taxon_match ENABLE TRIGGER tnrs_populate_fields;
318
ALTER TABLE "TNRS".taxon_match ENABLE TRIGGER taxon_match__fill;
319 319
VACUUM ANALYZE "TNRS".taxon_match --remove previous rows; runtime: 1.5 min ("92633 ms")
320 320

  
321 321
to add a constraint: runtime: 3 min ("173620 ms")
......
770 770

  
771 771

  
772 772
--
773
-- Name: tnrs_pkey; Type: CONSTRAINT; Schema: TNRS; Owner: -; Tablespace: 
773
-- Name: taxon_match_pkey; Type: CONSTRAINT; Schema: TNRS; Owner: -; Tablespace: 
774 774
--
775 775

  
776 776
ALTER TABLE ONLY taxon_match
777
    ADD CONSTRAINT tnrs_pkey PRIMARY KEY (batch, match_num);
777
    ADD CONSTRAINT taxon_match_pkey PRIMARY KEY (batch, match_num);
778 778

  
779 779

  
780 780
--
......
785 785

  
786 786

  
787 787
--
788
-- Name: tnrs_Name_submitted_idx; Type: INDEX; Schema: TNRS; Owner: -; Tablespace: 
788
-- Name: taxon_match_Name_submitted_idx; Type: INDEX; Schema: TNRS; Owner: -; Tablespace: 
789 789
--
790 790

  
791
CREATE INDEX "tnrs_Name_submitted_idx" ON taxon_match USING btree ("Name_submitted");
791
CREATE INDEX "taxon_match_Name_submitted_idx" ON taxon_match USING btree ("Name_submitted");
792 792

  
793 793

  
794 794
--
795
-- Name: tnrs__valid_match; Type: INDEX; Schema: TNRS; Owner: -; Tablespace: 
795
-- Name: taxon_match__valid_match; Type: INDEX; Schema: TNRS; Owner: -; Tablespace: 
796 796
--
797 797

  
798
CREATE INDEX tnrs__valid_match ON taxon_match USING btree ("Name_submitted") WHERE is_valid_match;
798
CREATE INDEX taxon_match__valid_match ON taxon_match USING btree ("Name_submitted") WHERE is_valid_match;
799 799

  
800 800

  
801 801
--
......
806 806

  
807 807

  
808 808
--
809
-- Name: taxon_match_input__copy_to__insert; Type: TRIGGER; Schema: TNRS; Owner: -
809
-- Name: taxon_match__batch_begin; Type: TRIGGER; Schema: TNRS; Owner: -
810 810
--
811 811

  
812
CREATE TRIGGER taxon_match_input__copy_to__insert BEFORE INSERT ON taxon_match_input__copy_to FOR EACH ROW EXECUTE PROCEDURE taxon_match_input__copy_to__insert();
812
CREATE TRIGGER taxon_match__batch_begin BEFORE INSERT ON taxon_match_input__copy_to FOR EACH STATEMENT EXECUTE PROCEDURE taxon_match__batch_begin();
813 813

  
814 814

  
815 815
--
816
-- Name: tnrs__batch_begin; Type: TRIGGER; Schema: TNRS; Owner: -
816
-- Name: taxon_match__fill; Type: TRIGGER; Schema: TNRS; Owner: -
817 817
--
818 818

  
819
CREATE TRIGGER tnrs__batch_begin BEFORE INSERT ON taxon_match_input__copy_to FOR EACH STATEMENT EXECUTE PROCEDURE tnrs__batch_begin();
819
CREATE TRIGGER taxon_match__fill BEFORE INSERT OR UPDATE ON taxon_match FOR EACH ROW EXECUTE PROCEDURE taxon_match__fill();
820 820

  
821 821

  
822 822
--
823
-- Name: tnrs__match_num__fill; Type: TRIGGER; Schema: TNRS; Owner: -
823
-- Name: taxon_match__match_num__fill; Type: TRIGGER; Schema: TNRS; Owner: -
824 824
--
825 825

  
826
CREATE TRIGGER tnrs__match_num__fill BEFORE INSERT ON taxon_match FOR EACH ROW EXECUTE PROCEDURE tnrs__match_num__fill();
826
CREATE TRIGGER taxon_match__match_num__fill BEFORE INSERT ON taxon_match FOR EACH ROW EXECUTE PROCEDURE taxon_match__match_num__fill();
827 827

  
828 828

  
829 829
--
830
-- Name: tnrs_populate_fields; Type: TRIGGER; Schema: TNRS; Owner: -
830
-- Name: taxon_match_input__copy_to__insert; Type: TRIGGER; Schema: TNRS; Owner: -
831 831
--
832 832

  
833
CREATE TRIGGER tnrs_populate_fields BEFORE INSERT OR UPDATE ON taxon_match FOR EACH ROW EXECUTE PROCEDURE tnrs_populate_fields();
833
CREATE TRIGGER taxon_match_input__copy_to__insert BEFORE INSERT ON taxon_match_input__copy_to FOR EACH ROW EXECUTE PROCEDURE taxon_match_input__copy_to__insert();
834 834

  
835 835

  
836 836
--
......
850 850

  
851 851

  
852 852
--
853
-- Name: tnrs_batch_fkey; Type: FK CONSTRAINT; Schema: TNRS; Owner: -
853
-- Name: taxon_match_batch_fkey; Type: FK CONSTRAINT; Schema: TNRS; Owner: -
854 854
--
855 855

  
856 856
ALTER TABLE ONLY taxon_match
857
    ADD CONSTRAINT tnrs_batch_fkey FOREIGN KEY (batch) REFERENCES batch(id) ON UPDATE CASCADE ON DELETE CASCADE;
857
    ADD CONSTRAINT taxon_match_batch_fkey FOREIGN KEY (batch) REFERENCES batch(id) ON UPDATE CASCADE ON DELETE CASCADE;
858 858

  
859 859

  
860 860
--
trunk/schemas/vegbien.my.sql
15277 15277

  
15278 15278

  
15279 15279
--
15280
-- Name: taxon_match_input__copy_to__insert(); Type: FUNCTION; Schema: TNRS; Owner: -
15280
-- Name: taxon_match__batch_begin(); Type: FUNCTION; Schema: TNRS; Owner: -
15281 15281
--
15282 15282

  
15283 15283

  
15284 15284

  
15285 15285

  
15286 15286
--
15287
-- Name: taxon_name_is_safe(varchar(255)); Type: FUNCTION; Schema: TNRS; Owner: -
15287
-- Name: taxon_match__fill(); Type: FUNCTION; Schema: TNRS; Owner: -
15288 15288
--
15289 15289

  
15290 15290

  
15291 15291

  
15292 15292

  
15293 15293
--
15294
-- Name: tnrs__batch_begin(); Type: FUNCTION; Schema: TNRS; Owner: -
15294
-- Name: FUNCTION taxon_match__fill(); Type: COMMENT; Schema: TNRS; Owner: -
15295 15295
--
15296 15296

  
15297 15297

  
15298 15298

  
15299 15299

  
15300 15300
--
15301
-- Name: tnrs__match_num__fill(); Type: FUNCTION; Schema: TNRS; Owner: -
15301
-- Name: taxon_match__match_num__fill(); Type: FUNCTION; Schema: TNRS; Owner: -
15302 15302
--
15303 15303

  
15304 15304

  
15305 15305

  
15306 15306

  
15307 15307
--
15308
-- Name: tnrs__match_num__next(); Type: FUNCTION; Schema: TNRS; Owner: -
15308
-- Name: taxon_match_input__copy_to__insert(); Type: FUNCTION; Schema: TNRS; Owner: -
15309 15309
--
15310 15310

  
15311 15311

  
15312 15312

  
15313 15313

  
15314 15314
--
15315
-- Name: tnrs_populate_fields(); Type: FUNCTION; Schema: TNRS; Owner: -
15315
-- Name: taxon_name_is_safe(varchar(255)); Type: FUNCTION; Schema: TNRS; Owner: -
15316 15316
--
15317 15317

  
15318 15318

  
15319 15319

  
15320 15320

  
15321 15321
--
15322
-- Name: FUNCTION tnrs_populate_fields(); Type: COMMENT; Schema: TNRS; Owner: -
15322
-- Name: tnrs__match_num__next(); Type: FUNCTION; Schema: TNRS; Owner: -
15323 15323
--
15324 15324

  
15325 15325

  
......
15674 15674

  
15675 15675

  
15676 15676
--
15677
-- Name: tnrs_pkey; Type: CONSTRAINT; Schema: TNRS; Owner: -; Tablespace: 
15677
-- Name: taxon_match_pkey; Type: CONSTRAINT; Schema: TNRS; Owner: -; Tablespace: 
15678 15678
--
15679 15679

  
15680 15680
ALTER TABLE taxon_match
15681
    ADD CONSTRAINT tnrs_pkey PRIMARY KEY (batch, match_num);
15681
    ADD CONSTRAINT taxon_match_pkey PRIMARY KEY (batch, match_num);
15682 15682

  
15683 15683

  
15684 15684
USE geoscrub;
......
15709 15709

  
15710 15710

  
15711 15711
--
15712
-- Name: tnrs_Name_submitted_idx; Type: INDEX; Schema: TNRS; Owner: -; Tablespace: 
15712
-- Name: taxon_match_Name_submitted_idx; Type: INDEX; Schema: TNRS; Owner: -; Tablespace: 
15713 15713
--
15714 15714

  
15715
CREATE INDEX `tnrs_Name_submitted_idx` ON taxon_match  (`Name_submitted`);
15715
CREATE INDEX `taxon_match_Name_submitted_idx` ON taxon_match  (`Name_submitted`);
15716 15716

  
15717 15717

  
15718 15718
--
15719
-- Name: tnrs__valid_match; Type: INDEX; Schema: TNRS; Owner: -; Tablespace: 
15719
-- Name: taxon_match__valid_match; Type: INDEX; Schema: TNRS; Owner: -; Tablespace: 
15720 15720
--
15721 15721

  
15722 15722

  
......
15741 15741

  
15742 15742

  
15743 15743
--
15744
-- Name: taxon_match_input__copy_to__insert; Type: TRIGGER; Schema: TNRS; Owner: -
15744
-- Name: taxon_match__batch_begin; Type: TRIGGER; Schema: TNRS; Owner: -
15745 15745
--
15746 15746

  
15747 15747

  
15748 15748

  
15749 15749

  
15750 15750
--
15751
-- Name: tnrs__batch_begin; Type: TRIGGER; Schema: TNRS; Owner: -
15751
-- Name: taxon_match__fill; Type: TRIGGER; Schema: TNRS; Owner: -
15752 15752
--
15753 15753

  
15754 15754

  
15755 15755

  
15756 15756

  
15757 15757
--
15758
-- Name: tnrs__match_num__fill; Type: TRIGGER; Schema: TNRS; Owner: -
15758
-- Name: taxon_match__match_num__fill; Type: TRIGGER; Schema: TNRS; Owner: -
15759 15759
--
15760 15760

  
15761 15761

  
15762 15762

  
15763 15763

  
15764 15764
--
15765
-- Name: tnrs_populate_fields; Type: TRIGGER; Schema: TNRS; Owner: -
15765
-- Name: taxon_match_input__copy_to__insert; Type: TRIGGER; Schema: TNRS; Owner: -
15766 15766
--
15767 15767

  
15768 15768

  
......
15785 15785

  
15786 15786

  
15787 15787
--
15788
-- Name: tnrs_batch_fkey; Type: FK CONSTRAINT; Schema: TNRS; Owner: -
15788
-- Name: taxon_match_batch_fkey; Type: FK CONSTRAINT; Schema: TNRS; Owner: -
15789 15789
--
15790 15790

  
15791 15791
ALTER TABLE taxon_match
15792
    ADD CONSTRAINT tnrs_batch_fkey FOREIGN KEY (batch) REFERENCES batch(id) ON UPDATE CASCADE ON DELETE CASCADE;
15792
    ADD CONSTRAINT taxon_match_batch_fkey FOREIGN KEY (batch) REFERENCES batch(id) ON UPDATE CASCADE ON DELETE CASCADE;
15793 15793

  
15794 15794

  
15795 15795
--
trunk/schemas/vegbien.sql
19042 19042

  
19043 19043

  
19044 19044
--
19045
-- Name: taxon_match_input__copy_to__insert(); Type: FUNCTION; Schema: TNRS; Owner: -
19045
-- Name: taxon_match__batch_begin(); Type: FUNCTION; Schema: TNRS; Owner: -
19046 19046
--
19047 19047

  
19048
CREATE FUNCTION taxon_match_input__copy_to__insert() RETURNS trigger
19048
CREATE FUNCTION taxon_match__batch_begin() RETURNS trigger
19049 19049
    LANGUAGE plpgsql
19050 19050
    AS $$
19051 19051
BEGIN
19052
	INSERT INTO "TNRS".taxon_match_input SELECT new.*;
19053
	RETURN NULL;
19054
END;
19055
$$;
19056

  
19057

  
19058
--
19059
-- Name: taxon_name_is_safe(text); Type: FUNCTION; Schema: TNRS; Owner: -
19060
--
19061

  
19062
CREATE FUNCTION taxon_name_is_safe(taxon_name text) RETURNS boolean
19063
    LANGUAGE sql IMMUTABLE
19064
    AS $_$
19065
SELECT NOT ($1 = ANY("TNRS".unsafe_taxon_names()))
19066
$_$;
19067

  
19068

  
19069
--
19070
-- Name: tnrs__batch_begin(); Type: FUNCTION; Schema: TNRS; Owner: -
19071
--
19072

  
19073
CREATE FUNCTION tnrs__batch_begin() RETURNS trigger
19074
    LANGUAGE plpgsql
19075
    AS $$
19076
BEGIN
19077 19052
	PERFORM util.seq__reset('pg_temp.tnrs__match_num__seq', 0);
19078 19053
	RETURN NULL;
19079 19054
END;
......
19081 19056

  
19082 19057

  
19083 19058
--
19084
-- Name: tnrs__match_num__fill(); Type: FUNCTION; Schema: TNRS; Owner: -
19059
-- Name: taxon_match__fill(); Type: FUNCTION; Schema: TNRS; Owner: -
19085 19060
--
19086 19061

  
19087
CREATE FUNCTION tnrs__match_num__fill() RETURNS trigger
19062
CREATE FUNCTION taxon_match__fill() RETURNS trigger
19088 19063
    LANGUAGE plpgsql
19089 19064
    AS $$
19090
BEGIN
19091
	IF new.match_num IS NULL THEN
19092
		new.match_num = "TNRS".tnrs__match_num__next();
19093
	END IF;
19094
	RETURN new;
19095
END;
19096
$$;
19097

  
19098

  
19099
--
19100
-- Name: tnrs__match_num__next(); Type: FUNCTION; Schema: TNRS; Owner: -
19101
--
19102

  
19103
CREATE FUNCTION tnrs__match_num__next() RETURNS bigint
19104
    LANGUAGE sql
19105
    AS $$
19106
SELECT nextval('pg_temp.tnrs__match_num__seq');
19107
$$;
19108

  
19109

  
19110
--
19111
-- Name: tnrs_populate_fields(); Type: FUNCTION; Schema: TNRS; Owner: -
19112
--
19113

  
19114
CREATE FUNCTION tnrs_populate_fields() RETURNS trigger
19115
    LANGUAGE plpgsql
19116
    AS $$
19117 19065
DECLARE
19118 19066
	"Specific_epithet_is_plant" boolean :=
19119 19067
		(CASE
......
19170 19118

  
19171 19119

  
19172 19120
--
19173
-- Name: FUNCTION tnrs_populate_fields(); Type: COMMENT; Schema: TNRS; Owner: -
19121
-- Name: FUNCTION taxon_match__fill(); Type: COMMENT; Schema: TNRS; Owner: -
19174 19122
--
19175 19123

  
19176
COMMENT ON FUNCTION tnrs_populate_fields() IS '
19124
COMMENT ON FUNCTION taxon_match__fill() IS '
19177 19125
IMPORTANT: when changing this function, you must regenerate the derived cols:
19178 19126
UPDATE "TNRS".taxon_match SET "Name_submitted" = "Name_submitted"
19179 19127
runtime: 30 min ("5564082 rows affected, 1918900 ms execution time")
......
19183 19131

  
19184 19132

  
19185 19133
--
19134
-- Name: taxon_match__match_num__fill(); Type: FUNCTION; Schema: TNRS; Owner: -
19135
--
19136

  
19137
CREATE FUNCTION taxon_match__match_num__fill() RETURNS trigger
19138
    LANGUAGE plpgsql
19139
    AS $$
19140
BEGIN
19141
	IF new.match_num IS NULL THEN
19142
		new.match_num = "TNRS".tnrs__match_num__next();
19143
	END IF;
19144
	RETURN new;
19145
END;
19146
$$;
19147

  
19148

  
19149
--
19150
-- Name: taxon_match_input__copy_to__insert(); Type: FUNCTION; Schema: TNRS; Owner: -
19151
--
19152

  
19153
CREATE FUNCTION taxon_match_input__copy_to__insert() RETURNS trigger
19154
    LANGUAGE plpgsql
19155
    AS $$
19156
BEGIN
19157
	INSERT INTO "TNRS".taxon_match_input SELECT new.*;
19158
	RETURN NULL;
19159
END;
19160
$$;
19161

  
19162

  
19163
--
19164
-- Name: taxon_name_is_safe(text); Type: FUNCTION; Schema: TNRS; Owner: -
19165
--
19166

  
19167
CREATE FUNCTION taxon_name_is_safe(taxon_name text) RETURNS boolean
19168
    LANGUAGE sql IMMUTABLE
19169
    AS $_$
19170
SELECT NOT ($1 = ANY("TNRS".unsafe_taxon_names()))
19171
$_$;
19172

  
19173

  
19174
--
19175
-- Name: tnrs__match_num__next(); Type: FUNCTION; Schema: TNRS; Owner: -
19176
--
19177

  
19178
CREATE FUNCTION tnrs__match_num__next() RETURNS bigint
19179
    LANGUAGE sql
19180
    AS $$
19181
SELECT nextval('pg_temp.tnrs__match_num__seq');
19182
$$;
19183

  
19184

  
19185
--
19186 19186
-- Name: unsafe_taxon_names(); Type: FUNCTION; Schema: TNRS; Owner: -
19187 19187
--
19188 19188

  
......
19303 19303
$ make schemas/remake
19304 19304

  
19305 19305
to populate a new column:
19306
ALTER TABLE "TNRS".taxon_match DISABLE TRIGGER tnrs_populate_fields; --speeds up update
19306
ALTER TABLE "TNRS".taxon_match DISABLE TRIGGER taxon_match__fill; --speeds up update
19307 19307
UPDATE "TNRS".taxon_match SET "col" = value;
19308 19308
	-- runtime: 30 min ("5564201 rows affected, 1624829 ms execution time")
19309
ALTER TABLE "TNRS".taxon_match ENABLE TRIGGER tnrs_populate_fields;
19309
ALTER TABLE "TNRS".taxon_match ENABLE TRIGGER taxon_match__fill;
19310 19310
VACUUM ANALYZE "TNRS".taxon_match --remove previous rows; runtime: 1.5 min ("92633 ms")
19311 19311

  
19312 19312
to add a constraint: runtime: 3 min ("173620 ms")
......
19807 19807

  
19808 19808

  
19809 19809
--
19810
-- Name: tnrs_pkey; Type: CONSTRAINT; Schema: TNRS; Owner: -; Tablespace: 
19810
-- Name: taxon_match_pkey; Type: CONSTRAINT; Schema: TNRS; Owner: -; Tablespace: 
19811 19811
--
19812 19812

  
19813 19813
ALTER TABLE ONLY taxon_match
19814
    ADD CONSTRAINT tnrs_pkey PRIMARY KEY (batch, match_num);
19814
    ADD CONSTRAINT taxon_match_pkey PRIMARY KEY (batch, match_num);
19815 19815

  
19816 19816

  
19817 19817
SET search_path = geoscrub, pg_catalog;
......
19842 19842

  
19843 19843

  
19844 19844
--
19845
-- Name: tnrs_Name_submitted_idx; Type: INDEX; Schema: TNRS; Owner: -; Tablespace: 
19845
-- Name: taxon_match_Name_submitted_idx; Type: INDEX; Schema: TNRS; Owner: -; Tablespace: 
19846 19846
--
19847 19847

  
19848
CREATE INDEX "tnrs_Name_submitted_idx" ON taxon_match USING btree ("Name_submitted");
19848
CREATE INDEX "taxon_match_Name_submitted_idx" ON taxon_match USING btree ("Name_submitted");
19849 19849

  
19850 19850

  
19851 19851
--
19852
-- Name: tnrs__valid_match; Type: INDEX; Schema: TNRS; Owner: -; Tablespace: 
19852
-- Name: taxon_match__valid_match; Type: INDEX; Schema: TNRS; Owner: -; Tablespace: 
19853 19853
--
19854 19854

  
19855
CREATE INDEX tnrs__valid_match ON taxon_match USING btree ("Name_submitted") WHERE is_valid_match;
19855
CREATE INDEX taxon_match__valid_match ON taxon_match USING btree ("Name_submitted") WHERE is_valid_match;
19856 19856

  
19857 19857

  
19858 19858
SET search_path = geoscrub, pg_catalog;
......
19874 19874

  
19875 19875

  
19876 19876
--
19877
-- Name: taxon_match_input__copy_to__insert; Type: TRIGGER; Schema: TNRS; Owner: -
19877
-- Name: taxon_match__batch_begin; Type: TRIGGER; Schema: TNRS; Owner: -
19878 19878
--
19879 19879

  
19880
CREATE TRIGGER taxon_match_input__copy_to__insert BEFORE INSERT ON taxon_match_input__copy_to FOR EACH ROW EXECUTE PROCEDURE taxon_match_input__copy_to__insert();
19880
CREATE TRIGGER taxon_match__batch_begin BEFORE INSERT ON taxon_match_input__copy_to FOR EACH STATEMENT EXECUTE PROCEDURE taxon_match__batch_begin();
19881 19881

  
19882 19882

  
19883 19883
--
19884
-- Name: tnrs__batch_begin; Type: TRIGGER; Schema: TNRS; Owner: -
19884
-- Name: taxon_match__fill; Type: TRIGGER; Schema: TNRS; Owner: -
19885 19885
--
19886 19886

  
19887
CREATE TRIGGER tnrs__batch_begin BEFORE INSERT ON taxon_match_input__copy_to FOR EACH STATEMENT EXECUTE PROCEDURE tnrs__batch_begin();
19887
CREATE TRIGGER taxon_match__fill BEFORE INSERT OR UPDATE ON taxon_match FOR EACH ROW EXECUTE PROCEDURE taxon_match__fill();
19888 19888

  
19889 19889

  
19890 19890
--
19891
-- Name: tnrs__match_num__fill; Type: TRIGGER; Schema: TNRS; Owner: -
19891
-- Name: taxon_match__match_num__fill; Type: TRIGGER; Schema: TNRS; Owner: -
19892 19892
--
19893 19893

  
19894
CREATE TRIGGER tnrs__match_num__fill BEFORE INSERT ON taxon_match FOR EACH ROW EXECUTE PROCEDURE tnrs__match_num__fill();
19894
CREATE TRIGGER taxon_match__match_num__fill BEFORE INSERT ON taxon_match FOR EACH ROW EXECUTE PROCEDURE taxon_match__match_num__fill();
19895 19895

  
19896 19896

  
19897 19897
--
19898
-- Name: tnrs_populate_fields; Type: TRIGGER; Schema: TNRS; Owner: -
19898
-- Name: taxon_match_input__copy_to__insert; Type: TRIGGER; Schema: TNRS; Owner: -
19899 19899
--
19900 19900

  
19901
CREATE TRIGGER tnrs_populate_fields BEFORE INSERT OR UPDATE ON taxon_match FOR EACH ROW EXECUTE PROCEDURE tnrs_populate_fields();
19901
CREATE TRIGGER taxon_match_input__copy_to__insert BEFORE INSERT ON taxon_match_input__copy_to FOR EACH ROW EXECUTE PROCEDURE taxon_match_input__copy_to__insert();
19902 19902

  
19903 19903

  
19904 19904
--
......
19918 19918

  
19919 19919

  
19920 19920
--
19921
-- Name: tnrs_batch_fkey; Type: FK CONSTRAINT; Schema: TNRS; Owner: -
19921
-- Name: taxon_match_batch_fkey; Type: FK CONSTRAINT; Schema: TNRS; Owner: -
19922 19922
--
19923 19923

  
19924 19924
ALTER TABLE ONLY taxon_match
19925
    ADD CONSTRAINT tnrs_batch_fkey FOREIGN KEY (batch) REFERENCES batch(id) ON UPDATE CASCADE ON DELETE CASCADE;
19925
    ADD CONSTRAINT taxon_match_batch_fkey FOREIGN KEY (batch) REFERENCES batch(id) ON UPDATE CASCADE ON DELETE CASCADE;
19926 19926

  
19927 19927

  
19928 19928
--

Also available in: Unified diff