From 05fbfd1e1d2787973a23a2d3dc1ebf568457bce7 Mon Sep 17 00:00:00 2001 From: Andrey Epifancev Date: Thu, 29 Oct 2026 12:11:25 +0400 Subject: [PATCH] =?UTF-8?q?perf(form4):=20jit=3Doff=20=D0=BD=D0=B0=20v=5Ff?= =?UTF-8?q?orm4=5Fsheet=5Fjsonb=20=E2=80=94=20=D0=BA=D0=BE=D0=BC=D0=BF?= =?UTF-8?q?=D0=B8=D0=BB=D1=8F=D1=86=D0=B8=D1=8F=20JIT=20=D0=B4=D0=BE=D1=80?= =?UTF-8?q?=D0=BE=D0=B6=D0=B5=20=D0=B2=D1=8B=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Haiku 5.5 --- api/alembic/versions/sql/0050_form4_sheet_sum.sql | 1 + api/tests/integration/test_form4_sheet_sums.py | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/api/alembic/versions/sql/0050_form4_sheet_sum.sql b/api/alembic/versions/sql/0050_form4_sheet_sum.sql index 5261c66..46bea3d 100644 --- a/api/alembic/versions/sql/0050_form4_sheet_sum.sql +++ b/api/alembic/versions/sql/0050_form4_sheet_sum.sql @@ -7,6 +7,7 @@ CREATE OR REPLACE FUNCTION v3.v_form4_sheet_jsonb(p_form_id integer, p_sheet cha RETURNS TABLE(row_type character varying, depth integer, sort_order bigint, data jsonb) LANGUAGE sql STABLE + SET jit TO 'off' -- оценка плана выше порога JIT, компиляция дороже выполнения (AURORA-1846) AS $function$ -- ═══ 1. Базовые INPUT-строки с расширенной иерархией ═══════════════════════ WITH inp_raw AS ( diff --git a/api/tests/integration/test_form4_sheet_sums.py b/api/tests/integration/test_form4_sheet_sums.py index b3a35bf..7b8423a 100644 --- a/api/tests/integration/test_form4_sheet_sums.py +++ b/api/tests/integration/test_form4_sheet_sums.py @@ -342,3 +342,14 @@ def test_cell_patch_returns_updated_ancestor_sums(f4, client): _, groups, items, _ = check_sums(f4) assert Decimal(str(groups[prog]["plan"]["q1"])) == 25 assert Decimal(str(items[prj]["plan"]["q1"])) == 25 + + +def test_jit_off_on_sheet_jsonb(f4): + """AURORA-1846: v_form4_sheet_jsonb выполняется с jit=off (оценка плана выше порога JIT).""" + rows = f4.sql( + """SELECT p.proname, COALESCE(p.proconfig, '{}') FROM pg_proc p + JOIN pg_namespace n ON n.oid = p.pronamespace + WHERE n.nspname = 'v3' AND p.proname = 'v_form4_sheet_jsonb'""" + ) + assert len(rows) == 1, rows + assert "jit=off" in rows[0][1], f"нет SET jit = off: {rows[0][1]}"