From: Regina Obe Date: Thu, 25 Apr 2013 10:07:00 +0000 (+0000) Subject: #2260: revise to use new API structure of pagc standardizer X-Git-Tag: 2.1.0beta2~83 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=adf0cc8d4961ad2585030c62352579f754935970;p=postgis #2260: revise to use new API structure of pagc standardizer git-svn-id: http://svn.osgeo.org/postgis/trunk@11324 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_normalize_address.sql b/extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_normalize_address.sql index b2ac33e41..98f7e46f5 100644 --- a/extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_normalize_address.sql +++ b/extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_normalize_address.sql @@ -26,11 +26,12 @@ BEGIN result.stateAbbrev := trim(var_parse_rec.state); result.zip := var_parse_rec.zip; - var_rec := (SELECT standardize_address( 'select seq, word::text, stdword::text, token from tiger.pagc_gaz union all select seq, word::text, stdword::text, token from tiger.pagc_lex ' - , 'select seq, word::text, stdword::text, token from tiger.pagc_gaz order by id' - , 'select * from tiger.pagc_rules order by id' -, 'select 0::int4 as id, ' || quote_literal(COALESCE(var_parse_rec.address1,'')) || '::text As micro, - ' || quote_literal(COALESCE(var_parse_rec.city || ', ','') || COALESCE(var_parse_rec.state || ' ', '') || COALESCE(var_parse_rec.zip,'')) || '::text As macro') As pagc_addr ) ; + 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 diff --git a/extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql b/extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql index df24a95b3..c93562362 100644 --- a/extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql +++ b/extras/tiger_geocoder/tiger_2011/pagc_normalize/pagc_tables.sql @@ -21,6 +21,13 @@ BEGIN CREATE TABLE pagc_rules (id serial NOT NULL primary key,rule text); GRANT SELECT ON pagc_rules TO public; END IF; + IF NOT EXISTS(SELECT table_name FROM information_schema.columns WHERE table_schema = 'tiger' AND table_name = 'pagc_gaz' AND data_type='text') THEN + -- its probably old table structure change type of lex and gaz columns + ALTER TABLE tiger.pagc_lex ALTER COLUMN word TYPE text; + ALTER TABLE tiger.pagc_lex ALTER COLUMN stdword TYPE text; + ALTER TABLE tiger.pagc_gaz ALTER COLUMN word TYPE text; + ALTER TABLE tiger.pagc_gaz ALTER COLUMN stdword TYPE text; + END IF; END; $$ language plpgsql;