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]}"