-- etldoc: layer_aerodrome_label[shape=record fillcolor=lightpink, style="rounded,filled", label="layer_aerodrome_label | z10+" ] ; CREATE OR REPLACE FUNCTION layer_aerodrome_label(bbox geometry, zoom_level integer) RETURNS TABLE ( osm_id bigint, geometry geometry, name text, name_en text, name_de text, tags hstore, class text, iata text, icao text, ele int, ele_ft int ) AS $$ SELECT -- etldoc: osm_aerodrome_label_point -> layer_aerodrome_label:z10_ osm_id, geometry, name, COALESCE(NULLIF(name_en, ''), name) AS name_en, COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de, tags, CASE %%FIELD_MAPPING: class %% ELSE 'other' END AS class, NULLIF(iata, '') AS iata, NULLIF(icao, '') AS icao, substring(ele FROM E'^(-?\\d+)(\\D|$)')::int AS ele, round(substring(ele FROM E'^(-?\\d+)(\\D|$)')::int * 3.2808399)::int AS ele_ft FROM osm_aerodrome_label_point WHERE geometry && bbox AND zoom_level >= 10; $$ LANGUAGE SQL STABLE -- STRICT PARALLEL SAFE;