Re: Change default of jit to off

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Greg Sabino Mullane <htamfids@gmail.com>
Cc: Adrien Nayrat <adrien.nayrat@anayrat.info>, Christoph Berg <myon@debian.org>, Euler Taveira <euler@eulerto.com>, Pierre Ducroquet <p.psql@pinaraf.info>, Jelte Fennema <postgres@jeltef.nl>, Álvaro Herrera <alvherre@kurilemu.de>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Andreas Karlsson <andreas@proxel.se>, Anthonin Bonnefoy <anthonin.bonnefoy@datadoghq.com>, pgsql-hackers <pgsql-hackers@postgresql.org>, Michael Banck <mbanck@gmx.net>
Date: 2026-02-03T17:13:46Z
Lists: pgsql-hackers
Hi,

+1 for disabling it by default. Particularly with partitioning having become
much more common since jit compilation was added, combined with LLVM getting a
lot slower over time, that's unfortunately the right call until some
substantial improvements are made.


On 2026-02-03 12:03:51 -0500, Greg Sabino Mullane wrote:
> Given that so many places are already disabling it, +1 to disabling by
> default - unless someone can come up with a costing tweak so it doesn't
> fire when it shouldn't - but right now that seems something only humans can
> truly determine.

I think it needs more than a costing tweak. The most important thing would be
to get caching (there's progress, albeit very slow one, towards that), so the
downside of JIT compilation doesn't hit you over and over.

Relatedly, we often end up with the almost-same expression being jit compiled
many times in partitioned workloads, which is one of the main sources of high
jit compilation times.

We also need to just increase the benefit of JIT compilation further, the code
we generate leaves a *lot* on the table, particularly for more complicated
expressions, where the gain also can be the biggest.

Greetings,

Andres Freund



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. jit: Change the default to off.