[Mapnik-de] FEHLER: Wert »4000000000« ist außerhalb des gültigen Bereichs für Typ integer

Nachtigall, Jens (init) Jens.Nachtigall at init.de
Do Apr 30 12:18:33 CEST 2015


Hallo Michael,

ja, das war's. Danke. Das Problem ist auch in einigen der anderen Views. Im Anhang ein patch, würde mich freue, wenn ihr es ins repository aufnehmen könntet.

Inhaltlich lag es übrigens daran, dass popuplation bei Asien 4 Mrd beträgt.

Grüße,
Jens


-----Ursprüngliche Nachricht-----
Von: Michael Meier [mailto:michael.meier at fau.de] 
Gesendet: Mittwoch, 29. April 2015 14:29
An: Nachtigall, Jens (init); 'mapnik-de at lists.openstreetmap.de'
Betreff: Re: [Mapnik-de] FEHLER: Wert »4000000000« ist außerhalb des gültigen Bereichs für Typ integer

On 04/29/2015 12:16 PM, Nachtigall, Jens (init) wrote:
> beim Rendern der Welt (mapnik, tirex, german style) kriege ich diesen Fehler:
> FEHLER:  Wert »4000000000« ist außerhalb des gültigen Bereichs für Typ 
> integer
> ANWEISUNG:  SELECT ST_AsBinary("way") AS geom,"name","place" FROM (select way,place,get_localized_placename(name,"name:de",int_name,"name:en",false) as name,ref
>                 from view_osmde_point
>                 where place in ('country','state','continent')
>                 order by population desc
>                ) as placenames WHERE "way" && 
> ST_SetSRID('BOX3D(9392582.035682455 4383204.949985144,15654303.3928041 10644926.30710679)'::box3d, 900913) Ich vermute, das liegt daran, dass population mittlerweile über 4 Mrd liegt?! Gibt es einen Workaround?

Ja. Der Bug ist in der view view_osmde_point, die castet naemlich auf "integer" - was wie du schon ganz richtig bemerkt hast zu klein ist.
Casten auf "bigint" schafft Abhilfe.
also in views/view-point.sql sowas wie
> -CASE WHEN tags->'population' ~ '^[0-9]+$' THEN 
> (tags->'population')::integer ELSE 0 END as "population",
> +CASE WHEN tags->'population' ~ '^[0-9]+$' THEN 
> +(tags->'population')::bigint ELSE 0 END as "population",
und dann damit die view neu anlegen.
--
Michael Meier, Zentrale Systeme
Friedrich-Alexander-Universitaet Erlangen-Nuernberg Regionales Rechenzentrum Erlangen Martensstrasse 1, 91058 Erlangen, Germany
Tel.: +49 9131 85-28973, Fax: +49 9131 302941 michael.meier at fau.de www.rrze.fau.de
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : population_bigger_than_int.diff
Dateityp    : application/octet-stream
Dateigröße  : 1762 bytes
Beschreibung: population_bigger_than_int.diff
URL         : <https://lists.openstreetmap.de/pipermail/mapnik-de/attachments/20150430/1dec167f/population_bigger_than_int.diff>