Mercurial > gemma
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 |
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 |