]> granicus.if.org Git - postgis/commitdiff
fix formatting was causing miss parsing of zips
authorRegina Obe <lr@pcorp.us>
Wed, 1 May 2013 05:05:16 +0000 (05:05 +0000)
committerRegina Obe <lr@pcorp.us>
Wed, 1 May 2013 05:05:16 +0000 (05:05 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@11332 b70326c6-7e19-0410-871a-916f4a2858ee

extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_normalize_address.sql

index 98f7e46f5aec7e69ca35f30a41e4fe666a1ae284..0091702a2248e7981a046f68125b62ec4e7ca9ed 100644 (file)
@@ -1,52 +1,52 @@
---$Id$-\r
--- pagc_normalize_address(addressString)\r
--- This takes an address string and parses it into address (internal/street)\r
--- street name, type, direction prefix and suffix, location, state and\r
--- zip code, depending on what can be found in the string.\r
--- This is a drop in replacement for packaged normalize_address\r
--- that uses the pagc address standardizer C library instead\r
--- USAGE: SELECT * FROM tiger.pagc_normalize_address('One Devonshire Place, PH 301, Boston, MA 02109');\r
-SELECT tiger.SetSearchPathForInstall('tiger');\r
-CREATE OR REPLACE FUNCTION pagc_normalize_address(in_rawinput character varying)\r
-  RETURNS norm_addy AS\r
-$$\r
-DECLARE\r
-  result norm_addy;\r
-  var_rec RECORD;\r
-  var_parse_rec RECORD;\r
-  rawInput VARCHAR;\r
-\r
-BEGIN\r
---$Id$-\r
-  result.parsed := FALSE;\r
-\r
-  rawInput := trim(in_rawinput);\r
-  var_parse_rec := parse_address(rawInput);\r
-  result.location := var_parse_rec.city;\r
-  result.stateAbbrev := trim(var_parse_rec.state);\r
-  result.zip := var_parse_rec.zip;\r
-\r
- var_rec := standardize_address('pagc_lex'\r
-       , 'pagc_gaz'\r
-       , 'pagc_rules'\r
-, COALESCE(var_parse_rec.address1,''), \r
-   COALESCE(var_parse_rec.city || ', ','') || COALESCE(var_parse_rec.state || ' ', '') || COALESCE(var_parse_rec.zip,'') ) ;\r
\r
- -- For address number only put numbers and stop if reach a non-number e.g. 123-456 will return 123\r
-  result.address := to_number(substring(var_rec.house_num, '[0-9]+'), '99999999999');\r
-   --get rid of extraneous spaces before we return\r
-  --result.zip := var_rec.postcode;\r
-  result.streetName := trim(var_rec.name);\r
-  --result.location := trim(var_rec.city);\r
-  --result.stateAbbrev := trim(rec.state);\r
-  --this should be broken out separately like pagc, but normalizer doesn't have a slot for it\r
-  result.streettypeAbbrev := trim(COALESCE(var_rec.suftype, var_rec.pretype)); \r
-  result.preDirAbbrev := trim(var_rec.predir);\r
-  result.postDirAbbrev := trim(var_rec.sufdir);\r
-  result.internal := trim(var_rec.unit);\r
-  result.parsed := TRUE;\r
-  RETURN result;\r
-END\r
-$$\r
-  LANGUAGE plpgsql IMMUTABLE\r
+--$Id$-
+-- pagc_normalize_address(addressString)
+-- This takes an address string and parses it into address (internal/street)
+-- street name, type, direction prefix and suffix, location, state and
+-- zip code, depending on what can be found in the string.
+-- This is a drop in replacement for packaged normalize_address
+-- that uses the pagc address standardizer C library instead
+-- USAGE: SELECT * FROM tiger.pagc_normalize_address('One Devonshire Place, PH 301, Boston, MA 02109');
+SELECT tiger.SetSearchPathForInstall('tiger');
+CREATE OR REPLACE FUNCTION pagc_normalize_address(in_rawinput character varying)
+  RETURNS norm_addy AS
+$$
+DECLARE
+  result norm_addy;
+  var_rec RECORD;
+  var_parse_rec RECORD;
+  rawInput VARCHAR;
+
+BEGIN
+--$Id$-
+  result.parsed := FALSE;
+
+  rawInput := trim(in_rawinput);
+  var_parse_rec := parse_address(rawInput);
+  result.location := var_parse_rec.city;
+  result.stateAbbrev := trim(var_parse_rec.state);
+  result.zip := var_parse_rec.zip;
+
+ var_rec := standardize_address('pagc_lex'
+       , 'pagc_gaz'
+       , 'pagc_rules'
+, COALESCE(var_parse_rec.address1,''), 
+   COALESCE(', ' || var_parse_rec.city,'') || COALESCE(', ' || var_parse_rec.state, '') || COALESCE(' ' || var_parse_rec.zip,'')  ) ;
+ -- For address number only put numbers and stop if reach a non-number e.g. 123-456 will return 123
+  result.address := to_number(substring(var_rec.house_num, '[0-9]+'), '99999999999');
+   --get rid of extraneous spaces before we return
+  result.zip := COALESCE(var_rec.postcode,result.zip);
+  result.streetName := trim(var_rec.name);
+  result.location := trim(var_rec.city);
+  result.stateAbbrev := trim(var_rec.state);
+  --this should be broken out separately like pagc, but normalizer doesn't have a slot for it
+  result.streettypeAbbrev := trim(COALESCE(var_rec.suftype, var_rec.pretype)); 
+  result.preDirAbbrev := trim(var_rec.predir);
+  result.postDirAbbrev := trim(var_rec.sufdir);
+  result.internal := trim(var_rec.unit);
+  result.parsed := TRUE;
+  RETURN result;
+END
+$$
+  LANGUAGE plpgsql IMMUTABLE
   COST 100;
\ No newline at end of file