Postpass-Anfrage schlägt fehl

Hallo,

ich hab mich mal an postpass versucht, aber eine relativ einfache Anfrage funktioniert nicht.

Weiss jemand warum das nicht funktioniert?

overpass turbo

rennt da ins Limit.. obwohl der Bereich ganz klein ist..

Gruß Miche

Edit:
Code:

{{data:sql,server=https://postpass.geofabrik.de/api/0.2/}}

SELECT tags, geom
FROM postpass_pointlinepolygon
WHERE tags ? 'historic'
   OR tags->>'amenity'='place_of_worship'
   OR tags->>'geological' = 'palaeontological_site'
AND geom && {{bbox}}

Genaue Fehlermeldung:

Während des Ausführung der Overpass Query ist ein Fehler aufgetreten! Die Overpass API gab folgende Meldung zurück:
pq: total size of jsonb array elements exceeds the maximum of 268435455 bytes pq: total size of jsonb array elements exceeds the maximum of 268435455 bytes

Hallo @miche101,

magst du bitte, damit es dich Nachwelt leichter hat, aus diesem Beitrag Schlüsse zu ziehen, Folgendes in deinem Originalbeitrag ergänzen:

  • Fehlermeldung
  • Abfrage als Code-Block statt als Permalink (dann ist der Beitrag auch nützlich, wenn Overpass-Turbo die Permalink-Datenbank löscht)

Viele Grüße

Michael

1 Like

ok, ich glaube zwar nicht das die Nachwelt davon Profitiert.., weil glaub es gibt ein Problem bei der Abfragen Verarbeitung. aber ist geändert.

1 Like

Hallo Miche,

deine SQL-Query hat ein Problem mit “operator precedence”. AND bindet stärker als OR. Das ist wie bei Multiplikation und Addition. Deswegen brauchst du da Klammern:
(a+b+c) * d statt a + b + c*d

SELECT tags, geom
FROM postpass_pointlinepolygon
WHERE 
 (    tags ? 'historic'
   OR tags->>'amenity'='place_of_worship'
   OR tags->>'geological' = 'palaeontological_site'
 )
AND geom && {{bbox}}

Ohne Klammern liest der SQL-Interpreter das als:

( tags ? 'historic' ) OR 
( tags->>'amenity'='place_of_worship' ) OR 
( tags->>'geological' = 'palaeontological_site' AND geom && {{bbox}} )

und dann wirkt die Beschränkung auf die bbox nur noch für den letztem Term.
Schwupps suchst du nach allen historic tags und place_of_worships weltweit!

Das geht dann doch zuuuuuweit :scream:

1 Like

Danke für die gute Erklärung :smiling_face:. Probiere ich morgen aus.

Holt einen Mathe ein… Plus vor Oder :laughing::+1: