Mercurial > gemma
diff pkg/imports/wa.go @ 2758:a996f2ca9fa5
Simplified savepoint handling.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Thu, 21 Mar 2019 15:43:02 +0100 |
parents | 7cb027be277d |
children | 1b6840093eac |
line wrap: on
line diff
--- a/pkg/imports/wa.go Thu Mar 21 14:29:47 2019 +0100 +++ b/pkg/imports/wa.go Thu Mar 21 15:43:02 2019 +0100 @@ -200,7 +200,7 @@ feedback.Info("Using EPSG: %d", epsg) - const featureSavepoint = "feature" + savepoint := Savepoint(ctx, tx, "feature") for _, feature := range rfc.Features { if feature.Properties == nil || feature.Geometry.Coordinates == nil { @@ -234,24 +234,18 @@ if err := json.Unmarshal(*feature.Geometry.Coordinates, &p); err != nil { return err } - if err := Savepoint(ctx, tx, featureSavepoint); err != nil { + if err := savepoint(func() error { + _, err := insertStmt.ExecContext( + ctx, + p.asWKB(), + epsg, + catccl, + dirimp, + ) return err - } - if _, err := insertStmt.ExecContext( - ctx, - p.asWKB(), - epsg, - catccl, - dirimp, - ); err != nil { + }); err != nil { feedback.Warn(handleError(err).Error()) - if err = RollbackToSavepoint(ctx, tx, featureSavepoint); err != nil { - return err - } } else { - if err = ReleaseSavepoint(ctx, tx, featureSavepoint); err != nil { - return err - } features++ } default: