remove members of deleted relation from InsertedWaysCache

master
Oliver Tonnhofer 2013-08-01 14:07:06 +02:00
parent c38105b3d1
commit b5d578175f
2 changed files with 15 additions and 0 deletions

14
cache/ways.go vendored
View File

@ -133,6 +133,20 @@ func (p *InsertedWaysCache) PutMembers(members []element.Member) error {
return p.db.Write(p.wo, batch)
}
func (p *InsertedWaysCache) DeleteMembers(members []element.Member) error {
batch := levigo.NewWriteBatch()
defer batch.Close()
for _, m := range members {
if m.Type != element.WAY {
continue
}
keyBuf := idToKeyBuf(m.Id)
batch.Delete(keyBuf)
}
return p.db.Write(p.wo, batch)
}
func (p *InsertedWaysCache) IsInserted(id int64) (bool, error) {
keyBuf := idToKeyBuf(id)
data, err := p.db.Get(p.ro, keyBuf)

View File

@ -58,6 +58,7 @@ func (d *Deleter) deleteRelation(id int64) {
d.delDb.Delete(m.Table.Name, elem.Id)
deleted = true
}
d.osmCache.InsertedWays.DeleteMembers(elem.Members)
if deleted && d.expireTiles != nil {
for _, m := range elem.Members {
if m.Way == nil {