From 8949fe28c4f890f3a6b582411317268ebc8e9674 Mon Sep 17 00:00:00 2001 From: Oliver Tonnhofer Date: Thu, 4 Feb 2016 17:07:35 +0100 Subject: [PATCH] fix delete of relations with single_id_space --- diff/deleter.go | 2 +- test/single_table.osc | 18 ++++++++++++++++++ test/single_table.osm | 25 ++++++++++++++++++++++++- test/single_table_test.go | 9 +++++++++ 4 files changed, 52 insertions(+), 2 deletions(-) diff --git a/diff/deleter.go b/diff/deleter.go index bf60f1e..f69f4ea 100644 --- a/diff/deleter.go +++ b/diff/deleter.go @@ -86,7 +86,7 @@ func (d *Deleter) deleteRelation(id int64, deleteRefs bool, deleteMembers bool) // delete from all tables to handle relations with tags from members // and relation_members e := element.OSMElem(elem.OSMElem) - e.Id = -e.Id + e.Id = d.RelId(e.Id) if err := d.delDb.DeleteElem(e); err != nil { return err } diff --git a/test/single_table.osc b/test/single_table.osc index 3f78162..c349766 100644 --- a/test/single_table.osc +++ b/test/single_table.osc @@ -5,4 +5,22 @@ + + + + + + + + + + + + + + + + + + diff --git a/test/single_table.osm b/test/single_table.osm index 4fefd24..fe9138b 100644 --- a/test/single_table.osm +++ b/test/single_table.osm @@ -124,7 +124,7 @@ - + @@ -144,4 +144,27 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/single_table_test.go b/test/single_table_test.go index cba5900..7c02bb1 100644 --- a/test/single_table_test.go +++ b/test/single_table_test.go @@ -183,3 +183,12 @@ func TestSingleTable_DuplicateIds2(t *testing.T) { }) assertGeomType(t, checkElem{"osm_all", RelOffset - 31101, "*", nil}, "Polygon") } + +func TestSingleTable_ModifiedRelation2(t *testing.T) { + // Modified relation is not inserted twice. Check for #88 + + rows := ts.queryRowsTags(t, "osm_all", RelOffset-32901) + if len(rows) != 1 { + t.Errorf("found duplicate row: %v", rows) + } +}