plx 1.2
plx 1.2 makes it nine dialects. Write a PostgreSQL function body in the language you already know; plx transpiles it to plpgsql at CREATE FUNCTION time and the standard plpgsql interpreter runs it. No language runtime is loaded into the backend, and the generated plpgsql is visible in the catalog.
Dialects (9)
plxruby · plxphp · plxjs · plxts (TypeScript) · plxpython3 · plxgo (Go) · plxcobol · plxplsql (Oracle PL/SQL) · plxtsql (Transact-SQL / SQL Server)
New since 1.1
- Four new dialects: Oracle PL/SQL, Transact-SQL (SQL Server), Go, and TypeScript. The SQL-family and Go dialects are restructuring front ends (own tokenizers/parsers); PL/SQL and TypeScript build on the near-plpgsql and JavaScript paths. See each chapter under
doc/. - COBOL tables:
OCCURS nmaps aWORKING-STORAGEitem to a PostgreSQL array, withWS-ARR(i)subscripts andPERFORM v OVER ARRAYiteration. - plpgsql completeness audit across dialects (OUT/INOUT/RETURNS TABLE/STRICT), a worked
examples/directory, anddoc/DEBUGGING.md+ aplx_source()helper. - Whole-project hardening: a fresh-eyes review of every front end plus mutation fuzzing of all nine dialects fixed real backend crashes, hangs, and wrong/invalid-output cases. The fuzzer (
test/fuzz.py) and corpus now cover all nine dialects and are crash- and hang-clean.
Compatibility
All 13 regression suites pass on PostgreSQL 13 through 18 (CI + local matrix). plx_strbuild's in-place fast path (amortized-O(1) string append) is accelerated on PostgreSQL 18; correct but unaccelerated on 13–17.
Install
Build from source (make && make install), then CREATE EXTENSION plx;. Upgrade from an earlier install with ALTER EXTENSION plx UPDATE TO '1.2';. A PGXN distribution zip (plx-1.2.0.zip) is attached.
See CHANGELOG.md for the full list.