On Fri, Jan 19, 2024 at 4:20 AM Laurenz Albe <[email protected]>
wrote:
> 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)