-- 151_clean_bare_street_aliases.sql
--
-- CONTEXT: house_address_aliases — кэш матчинга листинг→дом (normalized_address → house_id).
--   6338 из 21720 (29%) алиасов — «голые улицы» БЕЗ номера дома (normalized_address вида
--   «екатеринбург улица мамина сибиряка»). Любой безномерный листинг (Яндекс-SERP часто без
--   номера дома) матчился в такой алиас (Tier-2b match в matching/houses.py) → сваливание
--   ЧУЖИХ листингов в один дом (прод: house 131237 «Мамина-Сибиряка 126» стянул 8 разных
--   Мамина-номеров + голую улицу → ложная доля). Матчер захардненен (P1, PR #2082): больше
--   НЕ создаёт и НЕ матчит голые алиасы. Эта миграция удаляет УЖЕ НАКОПЛЕННЫЙ сток.
--
-- WHAT: DELETE алиасов без хвостового номера дома (последний токен начинается с цифры).
--   KEEP:   «улица вайнера 66», «мамина сибиряка 126а», «улица 8 марта 5» (номер дома есть).
--   DELETE: «улица мамина сибиряка», «улица 8 марта» (цифра в НАЗВАНИИ улицы, не номер дома).
--   Регэксп идентичен Python-хелперу has_house_number ('(?:^|\s)\d\S*$', PR #2082).
--
-- SAFETY / IDEMPOTENCY: house_address_aliases — РЕГЕНЕРИРУЕМЫЙ кэш матчинга; матчер
--   пересоздаёт корректные (номерные) алиасы на следующем матче. DELETE НЕ трогает
--   listings.house_id_fk, house_sources, houses — только кэш-таблицу алиасов. Повторный
--   прогон удалит 0 (предикат стабилен). Таблица ~21.7k строк → DELETE мгновенный, без
--   длинных локов. Деплой-раннер гонит файл через psql -v ON_ERROR_STOP=on БЕЗ
--   --single-transaction → транзакцию открывает САМ файл (BEGIN/COMMIT ниже).
--
-- DEPENDENCIES: PR #2082 (P1-гард в matching/houses.py уже в проде — голые алиасы не
--   регенерируют после удаления). house_address_aliases.normalized_address (мигр. cross-source
--   matching). NB нумерации: последний занятый = 150; следующий sequential = 151
--   (`ls tradein-mvp/backend/data/sql | grep '^15'` + открытые PR — дубля basename нет).
--
-- Deploy order: после 150_sale_share_listing_geo_filter.sql.

BEGIN;

DELETE FROM house_address_aliases
WHERE normalized_address !~ '(^|[[:space:]])[0-9][^[:space:]]*$';

COMMIT;
