From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Kirill Reshke <reshkekirill(at)gmail(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: CREATE SCHEMA ... CREATE M.V. support |
Date: | 2024-11-11 10:09:53 |
Message-ID: | 202411111009.ckna4vp7ahyk@alvherre.pgsql |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hello Kirill
On 2024-Nov-11, Kirill Reshke wrote:
> I was exploring the PostgreSQL parser and discovered a very
> interesting feature. Users can create schema along with schema objects
> in single SQL.
Yeah, it's pretty cool.
> Support for materialized views began in 9.3. Perhaps, then, this is
> simply something that was overlooked for support?
Yeah, I don't know why but people seem generally uninterested in
expanding support of commands under CREATE SCHEMA, which I think is a
pity. However, keep in mind that the set of commands allowed is
dictated by the SQL standard, which says
<schema definition> ::=
CREATE SCHEMA <schema name clause>
[ <schema character set or path> ]
[ <schema element>... ]
<schema element> ::=
<table definition>
| <view definition>
| <domain definition>
| <character set definition>
| <collation definition>
| <transliteration definition>
| <assertion definition>
| <trigger definition>
| <user-defined type definition>
| <user-defined cast definition>
| <user-defined ordering definition>
| <transform definition>
| <schema routine>
| <sequence generator definition>
| <grant statement>
| <role definition>
Materialized views are not in the SQL standard, so if we do decide to
support them under CREATE SCHEMA, it would be an extension to the
standard. (IMO it's quite a natural one at that.)
> It appears that supporting this is as simple as changing this parser's
> non-terminal [2]. However, perhaps there are justifications for why we
> forbid this?
>
> [2] https://git.postgresql.org/cgit/postgresql.git/tree/src/backend/parser/gram.y?h=14e87ffa5c543b5f30ead7413084c25f7735039f#n1580
I don't think so, or at least I'm not aware of them.
Looking at the object list in the standard document, it looks like we're
missing quite some stuff there.
> P.S. is this the correct place to make this question?
No, this is more a pgsql-hackers question.
--
Álvaro Herrera Breisgau, Deutschland — https://www.EnterpriseDB.com/
"¿Cómo puedes confiar en algo que pagas y que no ves,
y no confiar en algo que te dan y te lo muestran?" (Germán Poo)
From | Date | Subject | |
---|---|---|---|
Next Message | David Lynam | 2024-11-11 11:23:10 | Question About Native Support for SQL:2011 Temporal Tables in PostgreSQL |
Previous Message | Achilleas Mantzios - cloud | 2024-11-11 08:27:01 | Re: Duplicate key error |