perf(tradein): GIST index on (geom::geography) for estimator radius filter (#1189) #1924

Merged
bot-backend merged 2 commits from perf/1189-listings-geom-geography-gist into main 2026-06-26 17:12:50 +00:00

2 commits

Author SHA1 Message Date
cf165bfd66 review: wrap migration 134 in BEGIN/COMMIT (runner not --single-transaction)
All checks were successful
CI / changes (pull_request) Successful in 6s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
2026-06-26 22:12:05 +05:00
57456b5d10 perf(tradein): GIST index on (geom::geography) for estimator radius filter (#1189)
All checks were successful
CI / changes (pull_request) Successful in 6s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
Estimator analog query casts geom::geography for ST_DWithin, but listings_geom_idx
is gist(geom) → spatial predicate fell to Filter, geom index used only for
geom IS NOT NULL (54.5k-row scan, 180ms). Add gist((geom::geography)) expression
index → ST_DWithin uses it as Index Cond. Prod dry-run (BEGIN/CREATE/EXPLAIN/ROLLBACK):
180ms → 38ms (~4.7x). Additive, idempotent (IF NOT EXISTS), non-destructive.
2026-06-26 22:09:01 +05:00