uplpgsql – PL/pgSQL compiled to native code
uplpgsql compiles PL/pgSQL to native code. It took over twenty years to get here, but here it is. On July 19, 2005, I demoed my optimizing PL/SQL compiler to Andy Astor, Denis Lussier, and Jim Mlodgenski at EnterpriseDB; PL/SQL packages, procedures, and functions ran on Postgres at native speed, not interpreted. While they didn't acquire it, they brought me on as a founding engineer focused on Oracle Database compatibility and performance. Then, on November 20, 2014, long after we'd both left, Denis suggested I make it a universal PL compiler that didn't care which dialect it…
In plain words
uplpgsql is a compiler that translates PL/pgSQL code into native machine code for execution on PostgreSQL databases. Rather than interpreting PL/pgSQL procedures and functions at runtime, the tool compiles them for native-speed performance. It is designed for database developers and administrators working with PostgreSQL who need faster execution of stored procedures, packages, and functions. The project represents over two decades of development focused on procedural language optimization.
written from the facts on this page · September 2026
From the sources
In the maker’s words, at launch
uplpgsql compiles PL/pgSQL to native code. It took over twenty years to get here, but here it is. On July 19, 2005, I demoed my optimizing PL/SQL compiler to Andy Astor, Denis Lussier, and Jim Mlodgenski at EnterpriseDB; PL/SQL packages, procedures, and functions ran on Postgres at native speed, not interpreted. While they didn't acquire it, they brought me on as a founding engineer focused on Oracle Database compatibility and performance. Then, on November 20, 2014, long after we'd both left, Denis suggested I make it a universal PL compiler that didn't care which dialect it was handed, with front-ends for PL/pgSQL, PL/SQL, SQL/PSM, and T-SQL. "Build it on top of your compiler," he said, "and call it the Universal Procedural Language." I did, but I kept it closed. uplpgsql is the modern PL/pgSQL version of that compiler, built using AI-assisted analysis and reconstruction of my prior work, now JIT-based and Apache licensed. Why? Because normal PL/pgSQL is a tree-walking interpreter: every IF, every loop iteration, every assignment costs a switch dispatch and call through exec_stmt. Postgres' built-in JIT doesn't help. uplpgsql compiles the control flow itself to native code through its own LLJIT instance. It has multi-tiered optimizations from truly native to direct Postgres function calls to helpers to an interpreted worst case. Postgres doesn't even need to be built --with-llvm. Independent benchmarks show 2-4x on ordinary stored procedures and up to 22x on heavy procedural and numerical work. Some functions are currently slower than interpreted; we're working on those regressions. Super-pre-alpha WIP. Building against PostgreSQL 20devel. Keep it away from anything and everything you care about. It's under heavy development by Joshua Drake (JD) of Command Prompt and me, with several other Postgres companies joining the effort. Still want to play with it? Build and use LANGUAGE uplpgsql instead of plpgsql. Docker coming soon.
More dev tools this month
the category →



Open-source GTM skills for technical founders
Dev tools · 29d ago · gtmcofounder.com


OpenTrailPaper is open-source bike computer firmware for the LilyGO T5S3 4.7" E-Paper PRO. It supports offline maps, GPX routes, FIT recording and Bluetooth sensors.
Dev tools · 1d ago · opentrailpaper.com
Launched alongside, July 2026
the whole month →- IR
I might be the only SRE on Earth with his own bowling center. It's a more in-depth gig than you'd think. My family and I bought an abandoned 8-lane bowling center in the rural mid-west. In our small town there weren't many recreation options for families. You've heard of a food desert? This is an R&R desert. It had been abandoned for a good reason. The roof leaks, the electrical system was constantly surging, and my 70-year-old bowling equipment (still) doesn't work perfectly. The system that keeps your score is particularly interesting to me. It's the thing you watch during your game, but…
Life & fun · Jul 2026
- EElevators▲1,680
Life & fun · Jul 2026 · john.fun
- 1W18 Words▲1,160
Life & fun · Jul 2026 · 18words.com
- BA
Over the past few months, our team has been building more and more slidedecks using web frontend technologies with coding harnesses like Claude Code, but a common complaint is to make even small edits we need to edit the code either manually or via the harness. To avoid this loop, I ended up creating Bento, a single HTML file with everything you need in a slide tool including animations and shared editing. There's no install or cloud login, everything works offline. The default deck is around 560 KB and it doesn't need to fetch anything once you got it. Open it in a browser and then you can…
Dev tools · Jul 2026 · bento.page
- GG
A few days ago I found myself trying out GLM 5.2 and was really positively impressed. The capabilities and security I was getting from this LLM are similar to those I've gotten from models like Claude or GPT, and this really surprised me. But then I thought, "I wonder how it would work on a normal computer like mine," and above all, "I wonder if it would work without going into OOM on a computer like mine." So I started working with the help of agents to test this possibility. I started converting the model to int4, understanding MTP usage, and if possible implementing DSA for long context.…
AI · Jul 2026 · github.com
