plproxy
Overview
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 2520 | plproxy | No | Yes | No | Yes | No | No | - |
PIGSTY RPM and PGDG DEB are aligned at 2.12.0.; Upstream COPYRIGHT text matches ISC.
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| EXT | MIXED | 2.12.0 | 1817161514 | plproxy | - |
| RPM | PIGSTY | 2.12.0 | 1817161514 | plproxy_$v | - |
| DEB | PGDG | 2.12.0 | 1817161514 | postgresql-$v-plproxy | - |
Build
You can build the RPM packages for plproxy using pig build:
Install
You can install plproxy directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:
Install the extension using pig or apt/yum/dnf:
Create Extension:
Usage
Sources:
PL/Proxy is a PostgreSQL procedural language handler that enables remote procedure calls between PostgreSQL databases, with optional sharding.
Create the Extension
Language Statements
PL/Proxy functions use four types of statements:
Cluster selection – connect to a pre-configured cluster:
Direct connection – use a connection string:
Execution Modes
RUN ON hash – route to a specific partition based on a hash:
RUN ON ALL – execute on all databases in parallel:
RUN ON ANY – randomly select a server:
Cluster Configuration
Clusters are configured using SQL/MED (Management of External Data):
Caveats
- PL/Proxy routes function calls, not arbitrary cross-database transactions. Design remote functions to be retry-safe and keep transaction boundaries explicit.
- Cluster definitions and user mappings can expose connection details; protect catalog access and prefer restricted remote roles.
- Release 2.12.0 fixes quoted-identifier parsing in
SELECT, a null-pointer issue inplproxy_fdw_validator, Windows builds, and PostgreSQL 19 compatibility. Existing SQL objects do not need a new usage pattern, but databases upgraded from an older extension version should run the matchingALTER EXTENSION plproxy UPDATEpath.
Was this page helpful?
Thanks—your feedback helps us improve this page.
What got in the way? (optional)