Mercurial > gemma
changeset 4969:5621586e7a54 fairway-marks-import
Avoid checking the same condition twice
An entry should either be UPDATEd or INSERTed, if it's not already
in the database. Thus simply INSERT if there was no UPDATE.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Fri, 28 Feb 2020 17:55:55 +0100 |
parents | 1ba11ade2cf3 |
children | 5890e62e6d52 |
files | pkg/imports/fm.go |
diffstat | 1 files changed, 2 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/pkg/imports/fm.go Fri Feb 28 16:20:35 2020 +0100 +++ b/pkg/imports/fm.go Fri Feb 28 17:55:55 2020 +0100 @@ -435,7 +435,7 @@ (SELECT newfm FROM g), $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, %[3]s) - RETURNING validity + RETURNING 1 ) INSERT INTO waterway.fairway_marks_%[1]s ( geom, @@ -457,18 +457,7 @@ SELECT newfm, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, %[3]s FROM g - WHERE NOT EXISTS(SELECT 1 FROM waterway.fairway_marks_%[1]s - WHERE ( - validity, geom, - datsta, datend, persta, perend, objnam, nobjnm, inform, ninfom, - scamin, picrep, txtdsc, sordat, sorind, - %[2]s - ) IS NOT DISTINCT FROM ( - (SELECT validity FROM t), newfm, - $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, - %[3]s - ) - ) + WHERE NOT EXISTS(SELECT 1 FROM t) RETURNING id `