Re: CREATE SCHEMA ... CREATE DOMAIN support
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Michael Paquier <michael@paquier.xyz>
Cc: jian he <jian.universality@gmail.com>,
Kirill Reshke <reshkekirill@gmail.com>,
Peter Eisentraut <peter@eisentraut.org>,
PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-12-02T02:15:23Z
Lists: pgsql-hackers
Michael Paquier <michael@paquier.xyz> writes:
> If I'm parsing the spec right, the doc mentions in its 5)~6) of the
> syntax rules in CREATE SCHEMA that non-schema-qualified objects should
> use the new schema name defined in the CREATE SCHEMA query. So that
> pretty much settles the rules to use when having a new object that has
> a reference to a non-qualified object created in the same CREATE
> SCHEMA query?
I don't see where you're getting that from? DB2 says that unqualified
reference names (not to be confused with unqualified creation-target
names) are taken to be in the new schema, but I don't see any
corresponding restriction in the spec.
What I do see (11.1 SR 6 in SQL:2021) is:
If <schema path specification> is not specified, then a <schema
path specification> containing an implementation-defined <schema
name list> that contains the <schema name> contained in <schema
name clause> is implicit.
What I read this as is that the "search path" during schema-element
creation must include at least the new schema, but can also include
some other schemas as defined by the implementation. That makes
our behavior compliant, because we can define the other schemas
as those in the session's prevailing search_path. (DB2's behavior
is also compliant, but they're defining the path as containing only
the new schema.)
Also, if SQL intended to constrain the search path for unqualified
identifiers to be only the new schema, they'd hardly need a concept
of <schema path specification> at all.
regards, tom lane
Commits
-
Don't try to re-order the subcommands of CREATE SCHEMA.
- a9c350d9ee66 19 (unreleased) landed
-
Execute foreign key constraints in CREATE SCHEMA at the end.
- 404db8f9edbb 19 (unreleased) landed
-
Support more object types within CREATE SCHEMA.
- d516974840f4 19 (unreleased) landed