annotate schema/updates/1008/01.import-delete.sql @ 4605:7650d2431f86 geoserver_sql_views

Separate schema and table name Since a GeoServer data source is bound to a specific database schema, names have to be given without schema qualification. Since we cannot use regclass for names of SQL views, the name is now a varchar. This way it's more straightforward to store schema and name separately.
author Tom Gottfried <tom@intevation.de>
date Thu, 05 Sep 2019 11:33:01 +0200
parents 4f2f34f5d14d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4033
4f2f34f5d14d Schema: delete only import entry that are for deletion.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
1 DROP FUNCTION import.del_import();
4f2f34f5d14d Schema: delete only import entry that are for deletion.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
2
4f2f34f5d14d Schema: delete only import entry that are for deletion.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
3 CREATE OR REPLACE FUNCTION import.del_import(imp_id int) RETURNS void AS
4f2f34f5d14d Schema: delete only import entry that are for deletion.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
4 $$
4f2f34f5d14d Schema: delete only import entry that are for deletion.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
5 DECLARE
4f2f34f5d14d Schema: delete only import entry that are for deletion.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
6 tmp RECORD;
4f2f34f5d14d Schema: delete only import entry that are for deletion.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
7 BEGIN
4f2f34f5d14d Schema: delete only import entry that are for deletion.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
8 FOR tmp IN
4f2f34f5d14d Schema: delete only import entry that are for deletion.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
9 SELECT * FROM import.track_imports WHERE import_id = imp_id AND NOT deletion
4f2f34f5d14d Schema: delete only import entry that are for deletion.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10 LOOP
4f2f34f5d14d Schema: delete only import entry that are for deletion.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
11 EXECUTE format('DELETE FROM %s WHERE id = $1', tmp.relation) USING tmp.key;
4f2f34f5d14d Schema: delete only import entry that are for deletion.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
12 END LOOP;
4f2f34f5d14d Schema: delete only import entry that are for deletion.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
13 END;
4f2f34f5d14d Schema: delete only import entry that are for deletion.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14 $$
4f2f34f5d14d Schema: delete only import entry that are for deletion.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
15 LANGUAGE plpgsql;
4f2f34f5d14d Schema: delete only import entry that are for deletion.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
16