Mercurial > gemma
diff pkg/imports/wg.go @ 3645:02951a62e8c6
'Historicise' bottlenecks on import
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Wed, 12 Jun 2019 17:11:15 +0200 |
parents | a5448426e4e2 |
children | 0ec5c8ec1e44 |
line wrap: on
line diff
--- a/pkg/imports/wg.go Wed Jun 12 17:10:49 2019 +0200 +++ b/pkg/imports/wg.go Wed Jun 12 17:11:15 2019 +0200 @@ -124,6 +124,14 @@ AND measure_date <@ CAST($2 AS tstzrange) ` + moveBNSQL = ` +UPDATE waterway.bottlenecks +-- Associate bottlenecks to matching gauge version +SET gauge_validity = $2 +WHERE isrs_astext(gauge_location) = $1 + AND lower(validity) <@ CAST($2 AS tstzrange) +` + fixValiditySQL = ` UPDATE waterway.gauges SET -- Set enddate of old entry to new startdate in case of overlap: @@ -199,7 +207,8 @@ return nil, err } - var eraseGaugeStmt, insertStmt, moveGMStmt, fixValidityStmt, updateStmt, + var eraseGaugeStmt, insertStmt, moveGMStmt, moveBNStmt, + fixValidityStmt, updateStmt, deleteReferenceWaterLevelsStmt, isNtSDepthRefStmt, insertWaterLevelStmt *sql.Stmt for _, x := range []struct { @@ -209,6 +218,7 @@ {eraseGaugeSQL, &eraseGaugeStmt}, {insertGaugeSQL, &insertStmt}, {moveGMSQL, &moveGMStmt}, + {moveBNSQL, &moveBNStmt}, {fixValiditySQL, &fixValidityStmt}, {updateGaugeSQL, &updateStmt}, {deleteReferenceWaterLevelsSQL, &deleteReferenceWaterLevelsStmt}, @@ -365,8 +375,8 @@ unchanged++ continue } - // Move gauge measurements to new matching gauge version, - // if applicable + // Move gauge measurements and bottlenecks to new matching + // gauge version, if applicable if _, err = tx.StmtContext(ctx, moveGMStmt).ExecContext(ctx, code.String(), &validity, @@ -378,6 +388,17 @@ unchanged++ continue } + if _, err = tx.StmtContext(ctx, moveBNStmt).ExecContext(ctx, + code.String(), + &validity, + ); err != nil { + feedback.Warn(handleError(err).Error()) + if err2 := tx.Rollback(); err2 != nil { + return nil, err2 + } + unchanged++ + continue + } // Set end of validity of old version to start of new version // in case of overlap if _, err = tx.StmtContext(ctx, fixValidityStmt).ExecContext(