hat jemand von euch, der seine DB mit den Diffs und osm2pgsql aktuell hält, das gleiche Problem?
Reading in file: /osm/db/planet3/diffs/2019/02/11/2019-02-11T10:33:01.osc
Using XML parser.
node cache: stored: 1591(100.00%), storage efficiency: 17.37% (dense blocks: 1, sparse nodes: 484), hit rate: 28.31%
Osm2pgsql failed due to ERROR: insert_rel failed: FEHLER: Wert »42698« ist außerhalb des gültigen Bereichs für Typ smallint
(7)
Arguments were: 2632934, 4616, 42698, {6116226169,......
Grund ist die Anzahl von 42698 Members in dieser Route. Dort flippt osm2pgsql aus, da der Wert (in osm2pgsql?) maximal 36767 sein darf.
der Bug in Osm2pgsql ist im März 2017 schon einmal aufgetreten und behoben worden. Alle Versionen ab 0.90.2 und 0.92.1 haben das Problem nicht. Die Lösung ist, einfach nur 32767 Mitglieder der Relation in die Tabelle planet_osm_relations zu schreiben.
Gibt es denn auf der Server-Seite ein kein offizielles Limit für die Anzahl der Mitglieder? Wenn man nur 2000 Punkte in einem Weg haben darf, dann sollte doch auch bei den Relationen irgendein Limit existieren?
Nein und es hat wohl vor zwei Jahren schon mal geknallt, als die Brasilianer irgendeinen Import durchgeführt haben und eine Relation von denen 70000 Member enthielt.
Naja, generell betrifft das ja nicht nur osm2pgsql. Ich würde es deutlich besser finden, wenn die API wirklich extreme Sachen zurückweisen würde. Ich kann heute bestimmt eine Relation mit 1 Mio. Member anlegen, ohne dass das abgelehnt würde (wahrscheinlich läuft das aber ewig).
Vermutlich würde das am erähnten “max number of objects per changeset” Limit scheitern, zumindest, wenn Du es in einem CS versuchst.
Aber ich würde mal als vernünftiges Limit bei der Mitgliederzahl einen Wert wie 32767 ansetzen. Wenn dann doch mal einer noch mehr Inseln in einem MP-See erfassen will, kann man es ja immer noch höher setzen.
Ein amoklaufendes Script oder JOSM Plugin o.ä. reicht ja schon, um solche Sachen zu produzieren, und anschließend hätten viele Leute viel Arbeit damit, Ihre Datenbanken aufzuräumen.
Wie ich gerade auf OSM Talk geschrieben habe, wird der neue cgimap-basierte Changeset-Upload ein Limit von 32’000 Relationsmitgliedern haben. Die handvoll Relationen, die dieses Limit überschreiten, müssten dann vor dem Upload entsprechend verkleinert werden (sofern euer Editor nicht vorher schon abgeraucht ist).
Ah, interessant. Gibt es da schon einen geplannte Release-Termin? Frage mich gerade, ob man in die Editoren schon jetzt eine entsprechende Prüfung einbauen sollte?