]> granicus.if.org Git - postgis/commitdiff
fix numeric in interpolate_from_address
authorRegina Obe <lr@pcorp.us>
Sat, 24 Sep 2016 06:31:01 +0000 (06:31 +0000)
committerRegina Obe <lr@pcorp.us>
Sat, 24 Sep 2016 06:31:01 +0000 (06:31 +0000)
References #3640 for PostGIS 2.3.0 (trunk) better fix

git-svn-id: http://svn.osgeo.org/postgis/trunk@15133 b70326c6-7e19-0410-871a-916f4a2858ee

extras/tiger_geocoder/geocode/interpolate_from_address.sql

index 3f15e5af52f7ddaac1f4a9cef25509432a30d516..899592cd4cbb16454bad68f79050f3251273d20e 100644 (file)
@@ -25,8 +25,8 @@ BEGIN
         RETURN NULL;
     END IF;
 
-       var_addr1 := to_number(COALESCE(NULLIF(trim(in_addr1),''),'0'), '999999');
-       var_addr2 := to_number(COALESCE(NULLIF(trim(in_addr2),''),'0'), '999999');
+       var_addr1 := to_number( CASE WHEN in_addr1 ~ '^[0-9]+$' THEN in_addr1 ELSE '0' END, '999999');
+       var_addr2 := to_number( CASE WHEN in_addr2 ~ '^[0-9]+$' THEN in_addr2 ELSE '0' END, '999999');
 
     IF geometrytype(in_road) = 'LINESTRING' THEN
       road := ST_Transform(in_road, utmzone(ST_StartPoint(in_road)) );