fix(leads): replace ::interval cast with make_interval (psycopg v3 trap) (#1383 follow-up) #1707

Merged
lekss361 merged 1 commit from fix/admin-leads-interval-cast-1694 into main 2026-06-17 18:42:12 +00:00
Owner

Проблема (ревью #1694)

admin_leads.py:141 и 5 идентичных мест в analytics_queries.py (функции, вызываемые из admin_leads-роутов) использовали (:m || ' months')::interval — psycopg v3 CAST trap (:x::type запрещён правилом проекта).

Решение

6 случаев → make_interval(months => :m) (чище чем CAST(... AS interval)). Логика окон сохранена.

Verify

ruff clean; pytest -k "lead or admin_lead"4 passed, 1 skipped; live-DB sanity make_interval(months => 12) ok.

NB: фикс атомарный — 2 файла в одном коммите (6 трапов в функциях одного роута).

## Проблема (ревью #1694) `admin_leads.py:141` и 5 идентичных мест в `analytics_queries.py` (функции, вызываемые из admin_leads-роутов) использовали `(:m || ' months')::interval` — psycopg v3 CAST trap (`:x::type` запрещён правилом проекта). ## Решение 6 случаев → `make_interval(months => :m)` (чище чем `CAST(... AS interval)`). Логика окон сохранена. ## Verify `ruff` clean; `pytest -k "lead or admin_lead"` → **4 passed, 1 skipped**; live-DB sanity `make_interval(months => 12)` ok. NB: фикс атомарный — 2 файла в одном коммите (6 трапов в функциях одного роута).
lekss361 added 1 commit 2026-06-17 18:29:04 +00:00
fix(leads): replace ::interval cast with make_interval (psycopg v3 trap) (#1383 follow-up)
Some checks failed
CI / changes (push) Has been cancelled
CI / backend-tests (push) Has been cancelled
CI / frontend-tests (push) Has been cancelled
CI / openapi-codegen-check (push) Has been cancelled
CI / changes (pull_request) Successful in 8s
CI / backend-tests (pull_request) Has been cancelled
CI / frontend-tests (pull_request) Has been cancelled
CI / openapi-codegen-check (pull_request) Has been cancelled
bcb348da40
(:bind || ' months')::interval is a psycopg v3 SyntaxError — the driver
sees '::' immediately after the bind placeholder token and chokes.
Replace all 6 occurrences (admin_leads.py + analytics_queries.py) with
make_interval(months => :bind) which is unambiguous to the parser and
semantically identical.
lekss361 merged commit 8022be6b2f into main 2026-06-17 18:42:12 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#1707
No description provided.