From efac4a135a13690a964b1b6aaa046d084df70f29 Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Fri, 6 Apr 2018 22:20:21 +0200 Subject: [PATCH] do not apply limit to house number place searches Searches for house numbers are already limited by the number of parent places. In fact, the limit assumed that every parent place has exactly one match against the given housenumber. That is not true in reality and so we were dropping relevant results. Fixes #329. --- lib/SearchDescription.php | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/lib/SearchDescription.php b/lib/SearchDescription.php index 276f4c98..6345f50f 100644 --- a/lib/SearchDescription.php +++ b/lib/SearchDescription.php @@ -436,7 +436,7 @@ class SearchDescription //now search for housenumber, if housenumber provided if ($this->sHouseNumber && !empty($aResults)) { $aNamedPlaceIDs = $aResults; - $aResults = $this->queryHouseNumber($oDB, $aNamedPlaceIDs, $iLimit); + $aResults = $this->queryHouseNumber($oDB, $aNamedPlaceIDs); if (empty($aResults) && $this->looksLikeFullAddress()) { $aResults = $aNamedPlaceIDs; @@ -717,7 +717,7 @@ class SearchDescription return $aResults; } - private function queryHouseNumber(&$oDB, $aRoadPlaceIDs, $iLimit) + private function queryHouseNumber(&$oDB, $aRoadPlaceIDs) { $aResults = array(); $sPlaceIDs = Result::joinIdsByTable($aRoadPlaceIDs, Result::TABLE_PLACEX); @@ -731,7 +731,6 @@ class SearchDescription $sSQL .= 'WHERE parent_place_id in ('.$sPlaceIDs.')'; $sSQL .= " AND transliteration(housenumber) ~* E'".$sHouseNumberRegex."'"; $sSQL .= $this->oContext->excludeSQL(' AND place_id'); - $sSQL .= " LIMIT $iLimit"; Debug::printSQL($sSQL); @@ -759,7 +758,6 @@ class SearchDescription $sSQL .= $iHousenumber.'>=startnumber and '; $sSQL .= $iHousenumber.'<=endnumber'; $sSQL .= $this->oContext->excludeSQL(' AND place_id'); - $sSQL .= " limit $iLimit"; Debug::printSQL($sSQL); @@ -776,7 +774,6 @@ class SearchDescription $sSQL .= ' WHERE parent_place_id in ('.$sPlaceIDs.')'; $sSQL .= " AND housenumber = '".$this->sHouseNumber."'"; $sSQL .= $this->oContext->excludeSQL(' AND place_id'); - $sSQL .= " limit $iLimit"; Debug::printSQL($sSQL); @@ -798,7 +795,6 @@ class SearchDescription $sSQL .= $iHousenumber.'>=startnumber and '; $sSQL .= $iHousenumber.'<=endnumber'; $sSQL .= $this->oContext->excludeSQL(' AND place_id'); - $sSQL .= " limit $iLimit"; Debug::printSQL($sSQL); -- 2.39.5