On Thu, 2024-01-18 at 19:50 -0500, Kirk Wolak wrote: > I did a little more checking and the reason I did not see the link MIGHT be because EXPLAIN did not show a JIT attempt. > I tried to use settings that FORCE a JIT... But to no avail. > > I am now concerned that the problem is more hidden in my use case. Meaning I CANNOT conclude it is fixed. > But I know of NO WAY to force a JIT (I lowered costs to 1, etc. ). > > You don't know a way to force at least the JIT analysis to happen? (because I already knew if JIT was off, the leak wouldn't happen).
If you set the limits to 0, you can trigger it easily:
SET jit = on; SET jit_above_cost = 0; SET jit_inline_above_cost = 0; SET jit_optimize_above_cost = 0;
Okay,
I Did exactly this (just now). But the EXPLAIN does not contain the JIT?
------------------------------------------------------------------------------- Sort (cost=5458075.88..5477861.00 rows=7914047 width=12) Sort Key: seid -> HashAggregate (cost=3910139.62..4280784.00 rows=7914047 width=12) Group Key: seid, fr_field_name, st_field_name Planned Partitions: 128 -> Seq Scan on parts (cost=0.00..1923249.00 rows=29850000 width=12) Filter: ((seid <> 497) AND ((partnum)::text >= '1'::text)) (7 rows)
From a FUTURE email, I noticed pg_jit_available()
and it's set to f??
Okay, so does this require a special BUILD command?
postgres=# select pg_jit_available(); pg_jit_available ------------------ f (1 row)
postgres=# \dconfig *jit* List of configuration parameters Parameter | Value -------------------------+--------- jit | on jit_above_cost | 100000 jit_debugging_support | off jit_dump_bitcode | off jit_expressions | on jit_inline_above_cost | 500000 jit_optimize_above_cost | 500000 jit_profiling_support | off jit_provider | llvmjit jit_tuple_deforming | on (10 rows)