From 0efdd1b9a662ac976a268c23c19c523095122524 Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Mon, 19 Aug 2024 20:38:04 +0200 Subject: [PATCH] restrict interpolation housenumbers to 0-999999 Ensures that the numbers fit into integers. --- lib-sql/functions/interpolation.sql | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib-sql/functions/interpolation.sql b/lib-sql/functions/interpolation.sql index 8bc9ad42..b0797df2 100644 --- a/lib-sql/functions/interpolation.sql +++ b/lib-sql/functions/interpolation.sql @@ -222,10 +222,11 @@ BEGIN -- formatted postcode and therefore 'postcode' contains a derived -- variant. CASE WHEN address ? 'postcode' THEN placex.postcode ELSE NULL::text END as postcode, - substring(address->'housenumber','[0-9]+')::integer as hnr + (address->'housenumber')::integer as hnr FROM placex, generate_series(1, array_upper(waynodes, 1)) nodeidpos WHERE osm_type = 'N' and osm_id = waynodes[nodeidpos]::BIGINT and address is not NULL and address ? 'housenumber' + and address->'housenumber' ~ '^[0-9]{1,6}$' and ST_Distance(NEW.linegeo, geometry) < 0.0005 ORDER BY nodeidpos LOOP -- 2.39.5