agora inbox for pgsql-committers@postgresql.org
help / color / mirror / Atom feedFrom: Tom Lane <tgl@sss.pgh.pa.us>
To: pgsql-committers@lists.postgresql.org
Subject: pgsql: Support more object types within CREATE SCHEMA.
Date: Mon, 06 Apr 2026 19:16:37 +0000
Message-ID: <E1w9pR6-003HJS-2v@gemulon.postgresql.org> (raw)
Support more object types within CREATE SCHEMA.
Having rejected the principle that we should know how to re-order
the sub-commands of CREATE SCHEMA, there is not really anything
except a little coding to stop us from supporting more object types.
This patch adds support for creating functions (including procedures
and aggregates), operators, types (including domains), collations,
and text search objects.
SQL:2021 specifies that we should allow functions, procedures,
types, domains, and collations, so this moves us a great deal
closer to full SQL compatibility of CREATE SCHEMA. What remains
missing from their list are casts, transforms, roles, and some
object types we don't support yet (e.g. CREATE CHARACTER SET).
Supporting casts or transforms would be problematic because
they don't have names at all, let alone schema-qualified names,
so it'd be quite a stretch to say that they belong to a schema.
Roles likewise are not schema-qualified, plus they are global
to a cluster, making it even less reasonable to consider them
as belonging to a schema. So I don't see us trying to complete
the list.
User-defined aggregates and operators are outside the spec's ken,
as are text search objects, so adding them does not do anything for
spec compatibility. But they go along with these other object types,
plus it takes no additional code to support them since they are
represented as DefineStmts like some variants of CREATE TYPE.
It would indeed take some effort to reject them.
Author: Kirill Reshke <reshkekirill@gmail.com>
Author: Jian He <jian.universality@gmail.com>
Author: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/CALdSSPh4jUSDsWu3K58hjO60wnTRR0DuO4CKRcwa8EVuOSfXxg@mail.gmail.com
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/d516974840f4059d331ae6057ede3e4edd3c6747
Modified Files
--------------
doc/src/sgml/ref/create_schema.sgml | 25 +++-
src/backend/parser/gram.y | 3 +
src/backend/parser/parse_utilcmd.c | 88 +++++++++++++
src/bin/psql/tab-complete.in.c | 22 ++--
src/fe_utils/psqlscan.l | 22 ++--
.../test_ddl_deparse/expected/create_schema.out | 38 +++++-
.../modules/test_ddl_deparse/sql/create_schema.sql | 18 ++-
src/test/regress/expected/create_schema.out | 142 ++++++++++++++++++++-
src/test/regress/sql/create_schema.sql | 76 ++++++++++-
9 files changed, 408 insertions(+), 26 deletions(-)
Message-ID: <E1w9pR6-003HJS-2v@gemulon.postgresql.org>
Permalink: ../E1w9pR6-003HJS-2v@gemulon.postgresql.org/
Also on: postgresql.org/message-id/E1w9pR6-003HJS-2v@gemulon.postgresql.org
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-committers@postgresql.org
Cc: tgl@sss.pgh.pa.us, pgsql-committers@lists.postgresql.org
Subject: Re: pgsql: Support more object types within CREATE SCHEMA.
In-Reply-To: <E1w9pR6-003HJS-2v@gemulon.postgresql.org>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox