IF debug_flag THEN
RAISE NOTICE 'reduced Street: %', result.streetName;
END IF;
- -- the post direction might be portion of fullStreet after reducedStreet
+ -- the post direction might be portion of fullStreet after reducedStreet and type
-- reducedStreet: 24 fullStreet: Country Road 24, N or fullStreet: Country Road 24 N
tempString := regexp_replace(fullStreet, streetType || ws || '+' || reducedStreet,'');
IF tempString > '' THEN
END IF;
reducedStreet := substring(fullStreet, '^(.*)' || ws || '+'
|| streetType);
- IF COALESCE(reducedStreet,'') = '' THEN --reduced street can't be blank
+ IF COALESCE(trim(reducedStreet),'') = '' THEN --reduced street can't be blank
reducedStreet := fullStreet;
streetType := NULL;
result.streetTypeAbbrev := NULL;
tempString := trim(regexp_replace(fullStreet, reducedStreet || ws || '+' || streetType,''));
IF tempString > '' THEN
tempString := abbrev FROM direction_lookup WHERE
- tempString ILIKE '%' || name || '%' AND texticregexeq(reducedStreet || ws || '+' || streetType, '(?i)(' || name || ')' || ws || '+|$')
+ tempString ILIKE '%' || name || '%'
+ AND texticregexeq(fullStreet || ' ', '(?i)' || reducedStreet || ws || '+' || streetType || ws || '+(' || name || ')' || ws || '+')
ORDER BY length(name) DESC LIMIT 1;
IF tempString IS NOT NULL THEN
result.postDirAbbrev = trim(tempString);
529||Main|St||Apt 201|Boston|MA|02129|t
529||Main|St||Apt 201|Boston|MA|02129|t
529||Main|St||Apt 201|Boston|MA||t
+#1108a|529||Main|St||Suite 201|Boston|MA|02129|t
#1073a|212||3rd|Ave|N||MINNEAPOLIS|MN|553404|t
#1073b|212||3rd|Ave|N||MINNEAPOLIS|MN|55401|t
#1073c|529||Main|St|||Boston|MA|021|t
SELECT * FROM normalize_address('529 Main Street, Apt 201, Boston, MA');
--This one fails so lead out for now
---SELECT * FROM normalize_address('529 Main Street, Suite 201, Boston, MA 02129');
+SELECT '#1108a' As ticket, * FROM normalize_address('529 Main Street, Suite 201, Boston, MA 02129');
-- Partial and Mangled zipcodes
SELECT '#1073a' As ticket, * FROM normalize_address('212 3rd Ave N, MINNEAPOLIS, MN 553404');