# HG changeset patch # User Tom Gottfried # Date 1582908955 -3600 # Node ID 5621586e7a54781bfc8fcbc656c899c54ba6f858 # Parent 1ba11ade2cf35a36187fa5aaf3285b491994622f 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. diff -r 1ba11ade2cf3 -r 5621586e7a54 pkg/imports/fm.go --- 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 `