mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-16 15:47:58 +00:00
Merge pull request #3190 from lonvia/fix-internal-server-errors
Fix more failing queries
This commit is contained in:
2
.github/workflows/ci-tests.yml
vendored
2
.github/workflows/ci-tests.yml
vendored
@@ -7,7 +7,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
|
|
||||||
|
|||||||
@@ -685,7 +685,8 @@ class PlaceSearch(AbstractSearch):
|
|||||||
if self.qualifiers:
|
if self.qualifiers:
|
||||||
place_sql = place_sql.where(self.qualifiers.sql_restrict(thnr))
|
place_sql = place_sql.where(self.qualifiers.sql_restrict(thnr))
|
||||||
|
|
||||||
numerals = [int(n) for n in self.housenumbers.values if n.isdigit()]
|
numerals = [int(n) for n in self.housenumbers.values
|
||||||
|
if n.isdigit() and len(n) < 8]
|
||||||
interpol_sql: SaColumn
|
interpol_sql: SaColumn
|
||||||
tiger_sql: SaColumn
|
tiger_sql: SaColumn
|
||||||
if numerals and \
|
if numerals and \
|
||||||
|
|||||||
@@ -136,10 +136,10 @@ def _deg(axis:str) -> str:
|
|||||||
return f"(?P<{axis}_deg>\\d+\\.\\d+)°?"
|
return f"(?P<{axis}_deg>\\d+\\.\\d+)°?"
|
||||||
|
|
||||||
def _deg_min(axis: str) -> str:
|
def _deg_min(axis: str) -> str:
|
||||||
return f"(?P<{axis}_deg>\\d+)[°\\s]+(?P<{axis}_min>[\\d.]+)?[′']*"
|
return f"(?P<{axis}_deg>\\d+)[°\\s]+(?P<{axis}_min>[\\d.]+)[′']*"
|
||||||
|
|
||||||
def _deg_min_sec(axis: str) -> str:
|
def _deg_min_sec(axis: str) -> str:
|
||||||
return f"(?P<{axis}_deg>\\d+)[°\\s]+(?P<{axis}_min>\\d+)[′'\\s]+(?P<{axis}_sec>[\\d.]+)?[\"″]*"
|
return f"(?P<{axis}_deg>\\d+)[°\\s]+(?P<{axis}_min>\\d+)[′'\\s]+(?P<{axis}_sec>[\\d.]+)[\"″]*"
|
||||||
|
|
||||||
COORD_REGEX = [re.compile(r'(?:(?P<pre>.*?)\s+)??' + r + r'(?:\s+(?P<post>.*))?') for r in (
|
COORD_REGEX = [re.compile(r'(?:(?P<pre>.*?)\s+)??' + r + r'(?:\s+(?P<post>.*))?') for r in (
|
||||||
r"(?P<ns>[NS])\s*" + _deg('lat') + r"[\s,]+" + r"(?P<ew>[EW])\s*" + _deg('lon'),
|
r"(?P<ns>[NS])\s*" + _deg('lat') + r"[\s,]+" + r"(?P<ew>[EW])\s*" + _deg('lon'),
|
||||||
|
|||||||
@@ -267,6 +267,26 @@ class TestStreetWithHousenumber:
|
|||||||
assert all(geom.name.lower() in r.geometry for r in results)
|
assert all(geom.name.lower() in r.geometry for r in results)
|
||||||
|
|
||||||
|
|
||||||
|
def test_very_large_housenumber(apiobj):
|
||||||
|
apiobj.add_placex(place_id=93, class_='place', type='house',
|
||||||
|
parent_place_id=2000,
|
||||||
|
housenumber='2467463524544', country_code='pt')
|
||||||
|
apiobj.add_placex(place_id=2000, class_='highway', type='residential',
|
||||||
|
rank_search=26, rank_address=26,
|
||||||
|
country_code='pt')
|
||||||
|
apiobj.add_search_name(2000, names=[1,2],
|
||||||
|
search_rank=26, address_rank=26,
|
||||||
|
country_code='pt')
|
||||||
|
|
||||||
|
lookup = FieldLookup('name_vector', [1, 2], 'lookup_all')
|
||||||
|
|
||||||
|
results = run_search(apiobj, 0.1, [lookup], [], hnrs=['2467463524544'],
|
||||||
|
details=SearchDetails())
|
||||||
|
|
||||||
|
assert results
|
||||||
|
assert [r.place_id for r in results] == [93, 2000]
|
||||||
|
|
||||||
|
|
||||||
class TestInterpolations:
|
class TestInterpolations:
|
||||||
|
|
||||||
@pytest.fixture(autouse=True)
|
@pytest.fixture(autouse=True)
|
||||||
|
|||||||
@@ -11,7 +11,11 @@ import pytest
|
|||||||
|
|
||||||
import nominatim.api.v1.helpers as helper
|
import nominatim.api.v1.helpers as helper
|
||||||
|
|
||||||
@pytest.mark.parametrize('inp', ['', 'abc', '12 23', 'abc -78.90, 12.456 def'])
|
@pytest.mark.parametrize('inp', ['',
|
||||||
|
'abc',
|
||||||
|
'12 23',
|
||||||
|
'abc -78.90, 12.456 def',
|
||||||
|
'40 N 60 W'])
|
||||||
def test_extract_coords_no_coords(inp):
|
def test_extract_coords_no_coords(inp):
|
||||||
query, x, y = helper.extract_coords_from_query(inp)
|
query, x, y = helper.extract_coords_from_query(inp)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user