Skip to content

pg_synonym

Table and view aliases synchronized with target DDL.

pg_synonym : Table and view aliases synchronized with target DDL.

Overview

ID Extension Package Version Category License Language
9220 pg_synonym pg_synonym 1.0 SIM PostgreSQL SQL
Attribute Has Binary Has Library Need Load Has DDL Relocatable Trusted
--s-d-- No Yes No Yes no no
Relationships
Schemas synonym
Release 1.0.0 installs SQL 1.0. Requires PG15+ and superuser installation for event triggers; no preload. Invoker-security views retain target privileges/RLS; manual synonym view edits can break synchronization.

Packages

Type Repo Version PG Major Compatibility Package Pattern Dependencies
EXT PIGSTY 1.0 18 17 16 15 14 pg_synonym -
RPM PIGSTY 1.0.0 18 17 16 15 14 pg_synonym_$v -
DEB PIGSTY 1.0.0 18 17 16 15 14 postgresql-$v-pg-synonym -
Linux / PG PG18 PG17 PG16 PG15 PG14
el8.x86_64 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 N/A
el8.aarch64 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 N/A
el9.x86_64 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 N/A
el9.aarch64 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 N/A
el10.x86_64 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 N/A
el10.aarch64 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 N/A
d12.x86_64 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 N/A
d12.aarch64 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 N/A
d13.x86_64 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 N/A
d13.aarch64 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 N/A
u22.x86_64 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 N/A
u22.aarch64 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 N/A
u24.x86_64 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 N/A
u24.aarch64 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 N/A
u26.x86_64 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 N/A
u26.aarch64 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 PIGSTY 1.0.0 N/A
Package Version OS ORG SIZE File URL
pg_synonym_18 1.0.0 el8.x86_64 pigsty 29.7 KiB pg_synonym_18-1.0.0-1PGSTY.el8.x86_64.rpm
pg_synonym_18 1.0.0 el8.aarch64 pigsty 29.8 KiB pg_synonym_18-1.0.0-1PGSTY.el8.aarch64.rpm
pg_synonym_18 1.0.0 el9.x86_64 pigsty 29.7 KiB pg_synonym_18-1.0.0-1PGSTY.el9.x86_64.rpm
pg_synonym_18 1.0.0 el9.aarch64 pigsty 29.8 KiB pg_synonym_18-1.0.0-1PGSTY.el9.aarch64.rpm
pg_synonym_18 1.0.0 el10.x86_64 pigsty 29.8 KiB pg_synonym_18-1.0.0-1PGSTY.el10.x86_64.rpm
pg_synonym_18 1.0.0 el10.aarch64 pigsty 30.0 KiB pg_synonym_18-1.0.0-1PGSTY.el10.aarch64.rpm
postgresql-18-pg-synonym 1.0.0 d12.x86_64 pigsty 22.2 KiB postgresql-18-pg-synonym_1.0.0-1PGSTY~bookworm_amd64.deb
postgresql-18-pg-synonym 1.0.0 d12.aarch64 pigsty 22.5 KiB postgresql-18-pg-synonym_1.0.0-1PGSTY~bookworm_arm64.deb
postgresql-18-pg-synonym 1.0.0 d13.x86_64 pigsty 22.2 KiB postgresql-18-pg-synonym_1.0.0-1PGSTY~trixie_amd64.deb
postgresql-18-pg-synonym 1.0.0 d13.aarch64 pigsty 22.5 KiB postgresql-18-pg-synonym_1.0.0-1PGSTY~trixie_arm64.deb
postgresql-18-pg-synonym 1.0.0 u22.x86_64 pigsty 22.9 KiB postgresql-18-pg-synonym_1.0.0-1PGSTY~jammy_amd64.deb
postgresql-18-pg-synonym 1.0.0 u22.aarch64 pigsty 22.9 KiB postgresql-18-pg-synonym_1.0.0-1PGSTY~jammy_arm64.deb
postgresql-18-pg-synonym 1.0.0 u24.x86_64 pigsty 22.4 KiB postgresql-18-pg-synonym_1.0.0-1PGSTY~noble_amd64.deb
postgresql-18-pg-synonym 1.0.0 u24.aarch64 pigsty 22.5 KiB postgresql-18-pg-synonym_1.0.0-1PGSTY~noble_arm64.deb
postgresql-18-pg-synonym 1.0.0 u26.x86_64 pigsty 22.4 KiB postgresql-18-pg-synonym_1.0.0-1PGSTY~resolute_amd64.deb
postgresql-18-pg-synonym 1.0.0 u26.aarch64 pigsty 22.6 KiB postgresql-18-pg-synonym_1.0.0-1PGSTY~resolute_arm64.deb
Package Version OS ORG SIZE File URL
pg_synonym_17 1.0.0 el8.x86_64 pigsty 29.6 KiB pg_synonym_17-1.0.0-1PGSTY.el8.x86_64.rpm
pg_synonym_17 1.0.0 el8.aarch64 pigsty 29.8 KiB pg_synonym_17-1.0.0-1PGSTY.el8.aarch64.rpm
pg_synonym_17 1.0.0 el9.x86_64 pigsty 29.7 KiB pg_synonym_17-1.0.0-1PGSTY.el9.x86_64.rpm
pg_synonym_17 1.0.0 el9.aarch64 pigsty 29.8 KiB pg_synonym_17-1.0.0-1PGSTY.el9.aarch64.rpm
pg_synonym_17 1.0.0 el10.x86_64 pigsty 29.8 KiB pg_synonym_17-1.0.0-1PGSTY.el10.x86_64.rpm
pg_synonym_17 1.0.0 el10.aarch64 pigsty 30.0 KiB pg_synonym_17-1.0.0-1PGSTY.el10.aarch64.rpm
postgresql-17-pg-synonym 1.0.0 d12.x86_64 pigsty 22.2 KiB postgresql-17-pg-synonym_1.0.0-1PGSTY~bookworm_amd64.deb
postgresql-17-pg-synonym 1.0.0 d12.aarch64 pigsty 22.4 KiB postgresql-17-pg-synonym_1.0.0-1PGSTY~bookworm_arm64.deb
postgresql-17-pg-synonym 1.0.0 d13.x86_64 pigsty 22.2 KiB postgresql-17-pg-synonym_1.0.0-1PGSTY~trixie_amd64.deb
postgresql-17-pg-synonym 1.0.0 d13.aarch64 pigsty 22.4 KiB postgresql-17-pg-synonym_1.0.0-1PGSTY~trixie_arm64.deb
postgresql-17-pg-synonym 1.0.0 u22.x86_64 pigsty 23.3 KiB postgresql-17-pg-synonym_1.0.0-1PGSTY~jammy_amd64.deb
postgresql-17-pg-synonym 1.0.0 u22.aarch64 pigsty 23.3 KiB postgresql-17-pg-synonym_1.0.0-1PGSTY~jammy_arm64.deb
postgresql-17-pg-synonym 1.0.0 u24.x86_64 pigsty 22.3 KiB postgresql-17-pg-synonym_1.0.0-1PGSTY~noble_amd64.deb
postgresql-17-pg-synonym 1.0.0 u24.aarch64 pigsty 22.4 KiB postgresql-17-pg-synonym_1.0.0-1PGSTY~noble_arm64.deb
postgresql-17-pg-synonym 1.0.0 u26.x86_64 pigsty 22.4 KiB postgresql-17-pg-synonym_1.0.0-1PGSTY~resolute_amd64.deb
postgresql-17-pg-synonym 1.0.0 u26.aarch64 pigsty 22.6 KiB postgresql-17-pg-synonym_1.0.0-1PGSTY~resolute_arm64.deb
Package Version OS ORG SIZE File URL
pg_synonym_16 1.0.0 el8.x86_64 pigsty 29.6 KiB pg_synonym_16-1.0.0-1PGSTY.el8.x86_64.rpm
pg_synonym_16 1.0.0 el8.aarch64 pigsty 29.8 KiB pg_synonym_16-1.0.0-1PGSTY.el8.aarch64.rpm
pg_synonym_16 1.0.0 el9.x86_64 pigsty 29.7 KiB pg_synonym_16-1.0.0-1PGSTY.el9.x86_64.rpm
pg_synonym_16 1.0.0 el9.aarch64 pigsty 29.8 KiB pg_synonym_16-1.0.0-1PGSTY.el9.aarch64.rpm
pg_synonym_16 1.0.0 el10.x86_64 pigsty 29.8 KiB pg_synonym_16-1.0.0-1PGSTY.el10.x86_64.rpm
pg_synonym_16 1.0.0 el10.aarch64 pigsty 30.0 KiB pg_synonym_16-1.0.0-1PGSTY.el10.aarch64.rpm
postgresql-16-pg-synonym 1.0.0 d12.x86_64 pigsty 22.2 KiB postgresql-16-pg-synonym_1.0.0-1PGSTY~bookworm_amd64.deb
postgresql-16-pg-synonym 1.0.0 d12.aarch64 pigsty 22.4 KiB postgresql-16-pg-synonym_1.0.0-1PGSTY~bookworm_arm64.deb
postgresql-16-pg-synonym 1.0.0 d13.x86_64 pigsty 22.2 KiB postgresql-16-pg-synonym_1.0.0-1PGSTY~trixie_amd64.deb
postgresql-16-pg-synonym 1.0.0 d13.aarch64 pigsty 22.4 KiB postgresql-16-pg-synonym_1.0.0-1PGSTY~trixie_arm64.deb
postgresql-16-pg-synonym 1.0.0 u22.x86_64 pigsty 23.3 KiB postgresql-16-pg-synonym_1.0.0-1PGSTY~jammy_amd64.deb
postgresql-16-pg-synonym 1.0.0 u22.aarch64 pigsty 23.3 KiB postgresql-16-pg-synonym_1.0.0-1PGSTY~jammy_arm64.deb
postgresql-16-pg-synonym 1.0.0 u24.x86_64 pigsty 22.3 KiB postgresql-16-pg-synonym_1.0.0-1PGSTY~noble_amd64.deb
postgresql-16-pg-synonym 1.0.0 u24.aarch64 pigsty 22.6 KiB postgresql-16-pg-synonym_1.0.0-1PGSTY~noble_arm64.deb
postgresql-16-pg-synonym 1.0.0 u26.x86_64 pigsty 22.4 KiB postgresql-16-pg-synonym_1.0.0-1PGSTY~resolute_amd64.deb
postgresql-16-pg-synonym 1.0.0 u26.aarch64 pigsty 22.6 KiB postgresql-16-pg-synonym_1.0.0-1PGSTY~resolute_arm64.deb
Package Version OS ORG SIZE File URL
pg_synonym_15 1.0.0 el8.x86_64 pigsty 29.6 KiB pg_synonym_15-1.0.0-1PGSTY.el8.x86_64.rpm
pg_synonym_15 1.0.0 el8.aarch64 pigsty 29.8 KiB pg_synonym_15-1.0.0-1PGSTY.el8.aarch64.rpm
pg_synonym_15 1.0.0 el9.x86_64 pigsty 29.7 KiB pg_synonym_15-1.0.0-1PGSTY.el9.x86_64.rpm
pg_synonym_15 1.0.0 el9.aarch64 pigsty 29.8 KiB pg_synonym_15-1.0.0-1PGSTY.el9.aarch64.rpm
pg_synonym_15 1.0.0 el10.x86_64 pigsty 29.8 KiB pg_synonym_15-1.0.0-1PGSTY.el10.x86_64.rpm
pg_synonym_15 1.0.0 el10.aarch64 pigsty 30.0 KiB pg_synonym_15-1.0.0-1PGSTY.el10.aarch64.rpm
postgresql-15-pg-synonym 1.0.0 d12.x86_64 pigsty 22.2 KiB postgresql-15-pg-synonym_1.0.0-1PGSTY~bookworm_amd64.deb
postgresql-15-pg-synonym 1.0.0 d12.aarch64 pigsty 22.8 KiB postgresql-15-pg-synonym_1.0.0-1PGSTY~bookworm_arm64.deb
postgresql-15-pg-synonym 1.0.0 d13.x86_64 pigsty 22.2 KiB postgresql-15-pg-synonym_1.0.0-1PGSTY~trixie_amd64.deb
postgresql-15-pg-synonym 1.0.0 d13.aarch64 pigsty 22.4 KiB postgresql-15-pg-synonym_1.0.0-1PGSTY~trixie_arm64.deb
postgresql-15-pg-synonym 1.0.0 u22.x86_64 pigsty 23.3 KiB postgresql-15-pg-synonym_1.0.0-1PGSTY~jammy_amd64.deb
postgresql-15-pg-synonym 1.0.0 u22.aarch64 pigsty 23.3 KiB postgresql-15-pg-synonym_1.0.0-1PGSTY~jammy_arm64.deb
postgresql-15-pg-synonym 1.0.0 u24.x86_64 pigsty 22.3 KiB postgresql-15-pg-synonym_1.0.0-1PGSTY~noble_amd64.deb
postgresql-15-pg-synonym 1.0.0 u24.aarch64 pigsty 22.4 KiB postgresql-15-pg-synonym_1.0.0-1PGSTY~noble_arm64.deb
postgresql-15-pg-synonym 1.0.0 u26.x86_64 pigsty 22.4 KiB postgresql-15-pg-synonym_1.0.0-1PGSTY~resolute_amd64.deb
postgresql-15-pg-synonym 1.0.0 u26.aarch64 pigsty 22.6 KiB postgresql-15-pg-synonym_1.0.0-1PGSTY~resolute_arm64.deb

Source

pig build pkg pg_synonym;		# build rpm/deb

Install

Make sure PGDG and PIGSTY repo available:

pig repo add pgsql -u   # add both repo and update cache

Install this extension with pig:

pig install pg_synonym;		# install via package name, for the active PG version

pig install pg_synonym -v 18;   # install for PG 18
pig install pg_synonym -v 17;   # install for PG 17
pig install pg_synonym -v 16;   # install for PG 16
pig install pg_synonym -v 15;   # install for PG 15

Create this extension with:

CREATE EXTENSION pg_synonym;

Usage

Sources:

pg_synonym maintains table and view aliases as invoker-security views. Release 1.0.0 installs extension version 1.0; PostgreSQL 15 or later and superuser installation are required. It needs no preload or server restart.

Core Workflow

CREATE EXTENSION pg_synonym;
CREATE SCHEMA app;
CREATE SCHEMA erp;
CREATE TABLE erp.customers (id bigint PRIMARY KEY, name text);
SELECT synonym.create('app.customer', 'erp.customers');
INSERT INTO app.customer VALUES (1, 'Ada');
SELECT * FROM app.customer;
SELECT * FROM synonym.list;

All helpers live in the synonym schema.

Operations and Permissions

synonym.create can register an alias before its target exists; event triggers resolve it later. Target renames follow the object identity, and supported column changes rebuild the alias. synonym.refresh() reconciles aliases manually. synonym.drop removes one, with optional if_exists => true.

Access through an alias still checks target permissions and row security. Creating an alias requires creation rights in its schema and usage rights on the target schema. Removing one requires ownership, role membership or superuser rights.

Boundaries

Targets include ordinary, partitioned and foreign tables, views and materialized views. Aliases to aliases, cross-database objects, functions and sequences are unsupported. Use a query for copying data out; the alias is not a substitute for target DDL or truncation. Merging through a view requires PostgreSQL 17 or later.

Manual changes to an alias view can break synchronization. Dependent views may block destructive target changes, and rebuilding an alias can reset grants applied directly to it. Dropping the extension leaves ordinary alias views behind; plan their cleanup separately.