+async def find_in_all_tables(conn: SearchConnection, place: ntyp.PlaceRef,
+ details: ntyp.LookupDetails
+ ) -> Tuple[Optional[SaRow], RowFunc[nres.BaseResultT]]:
+ """ Search for the given place in all data tables
+ and return the base information.
+ """
+ row = await find_in_placex(conn, place, details)
+ log().var_dump('Result (placex)', row)
+ if row is not None:
+ return row, nres.create_from_placex_row
+
+ row = await find_in_osmline(conn, place, details)
+ log().var_dump('Result (osmline)', row)
+ if row is not None:
+ return row, nres.create_from_osmline_row
+
+ row = await find_in_postcode(conn, place, details)
+ log().var_dump('Result (postcode)', row)
+ if row is not None:
+ return row, nres.create_from_postcode_row
+
+ row = await find_in_tiger(conn, place, details)
+ log().var_dump('Result (tiger)', row)
+ return row, nres.create_from_tiger_row
+
+
+async def get_detailed_place(conn: SearchConnection, place: ntyp.PlaceRef,
+ details: ntyp.LookupDetails) -> Optional[nres.DetailedResult]: