From: Regina Obe Date: Thu, 25 Jun 2015 18:36:29 +0000 (+0000) Subject: #2734 TIGER geocoder geocode_intersection gives no results with omitted zipcode X-Git-Tag: 2.2.0rc1~331 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ec9beaf5eb276bd50b64bd4265e88ff05f1a62b6;p=postgis #2734 TIGER geocoder geocode_intersection gives no results with omitted zipcode git-svn-id: http://svn.osgeo.org/postgis/trunk@13705 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/extras/tiger_geocoder/geocode/geocode_intersection.sql b/extras/tiger_geocoder/geocode/geocode_intersection.sql index f49adb4a1..a71656669 100644 --- a/extras/tiger_geocoder/geocode/geocode_intersection.sql +++ b/extras/tiger_geocoder/geocode/geocode_intersection.sql @@ -54,7 +54,7 @@ BEGIN || ') AS f LEFT JOIN (SELECT * FROM addr WHERE addr.statefp = $1) As addr ON (addr.tlid = f.tlid AND addr.statefp = f.statefp) WHERE $5::text[] IS NULL OR addr.zip = ANY($5::text[]) OR addr.zip IS NULL ORDER BY CASE WHEN lower(f.fullname) = $6 THEN 0 ELSE 1 END - LIMIT 5000 + LIMIT 50000 ), a2 AS (SELECT f.*, addr.fromhn, addr.tohn, addr.side , addr.zip FROM (SELECT * FROM featnames @@ -63,7 +63,7 @@ BEGIN || ' ) AS f LEFT JOIN (SELECT * FROM addr WHERE addr.statefp = $1) AS addr ON (addr.tlid = f.tlid AND addr.statefp = f.statefp) WHERE $5::text[] IS NULL OR addr.zip = ANY($5::text[]) or addr.zip IS NULL ORDER BY CASE WHEN lower(f.fullname) = $7 THEN 0 ELSE 1 END - LIMIT 5000 + LIMIT 50000 ), e1 AS (SELECT e.the_geom, e.tnidf, e.tnidt, a.*, CASE WHEN a.side = ''L'' THEN e.tfidl ELSE e.tfidr END AS tfid @@ -71,7 +71,7 @@ BEGIN INNER JOIN edges AS e ON (e.statefp = a.statefp AND a.tlid = e.tlid) WHERE e.statefp = $1 ORDER BY CASE WHEN lower(a.name) = $4 THEN 0 ELSE 1 END + CASE WHEN lower(e.fullname) = $7 THEN 0 ELSE 1 END - LIMIT 1000) , + LIMIT 5000) , e2 AS (SELECT e.the_geom, e.tnidf, e.tnidt, a.*, CASE WHEN a.side = ''L'' THEN e.tfidl ELSE e.tfidr END AS tfid FROM (SELECT * FROM edges WHERE statefp = $1) AS e INNER JOIN a2 AS a ON (e.statefp = a.statefp AND a.tlid = e.tlid) @@ -80,7 +80,7 @@ BEGIN WHERE (lower(e.fullname) = $7 or lower(a.name) LIKE $4 || ''%'') ORDER BY CASE WHEN lower(a.name) = $4 THEN 0 ELSE 1 END + CASE WHEN lower(e.fullname) = $7 THEN 0 ELSE 1 END - LIMIT 100 + LIMIT 5000 ), segs AS (SELECT DISTINCT ON(e1.tlid, e1.side) CASE WHEN e1.tnidf = e2.tnidf OR e1.tnidf = e2.tnidt THEN