Обсуждение: Re: pgsql: Foreign keys on partitioned tables

Поиск
Список
Период
Сортировка

Re: pgsql: Foreign keys on partitioned tables

От
Robert Haas
Дата:
On Wed, Apr 4, 2018 at 1:03 PM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:
> Foreign keys on partitioned tables
>
> Author: Álvaro Herrera
> Discussion: https://postgr.es/m/20171231194359.cvojcour423ulha4@alvherre.pgsql
> Reviewed-by: Peter Eisentraut

The commit message here was so brief that I had to read the
documentation to figure out exactly what this feature was.  In so
doing, I ran across this, which seems to need some cleanup:

+      Also, while it's possible to define <literal>PRIMARY KEY</literal>
+      constraints on partitioned tables, it is not supported to create foreign
+      keys cannot that reference them.  This restriction will be lifted in a
+      future release.

Generally, I think we're better off not committing to doing things in
a future release because we never really know what will happen in the
future, but the biggest problem here is that "it is not supported to
create foreign keys cannot that reference them" doesn't make any
sense.  I think you mean something like "creating foreign keys that
reference a partitioned table is not supported".

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: pgsql: Foreign keys on partitioned tables

От
Alvaro Herrera
Дата:
Robert Haas wrote:
> On Wed, Apr 4, 2018 at 1:03 PM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:
> > Foreign keys on partitioned tables
> >
> > Author: Álvaro Herrera
> > Discussion: https://postgr.es/m/20171231194359.cvojcour423ulha4@alvherre.pgsql
> > Reviewed-by: Peter Eisentraut
> 
> The commit message here was so brief that I had to read the
> documentation to figure out exactly what this feature was.

I wrote three draft commit messages, and they all seemed to be saying
something so obvious (just repeating the commit title) that I decided
not to repeat myself.  Evidently that was a mistake.

> In so doing, I ran across this, which seems to need some cleanup:
> 
> +      Also, while it's possible to define <literal>PRIMARY KEY</literal>
> +      constraints on partitioned tables, it is not supported to create foreign
> +      keys cannot that reference them.  This restriction will be lifted in a
> +      future release.
> 
> Generally, I think we're better off not committing to doing things in
> a future release because we never really know what will happen in the
> future,

True.  I removed that sentence, leaving a "yet" that hints to the future
without making (I hope) too much of a promise.

> but the biggest problem here is that "it is not supported to
> create foreign keys cannot that reference them" doesn't make any
> sense.  I think you mean something like "creating foreign keys that
> reference a partitioned table is not supported".

Yeah, I edited this a few times and evidently one word from some
previous iteration ("cannot") escaped deletion.  I liked your wording so
I used it.

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


Re: pgsql: Foreign keys on partitioned tables

От
Robert Haas
Дата:
On Fri, Apr 6, 2018 at 4:49 PM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:
> Robert Haas wrote:
>> On Wed, Apr 4, 2018 at 1:03 PM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:
>> > Foreign keys on partitioned tables
>> >
>> > Author: Álvaro Herrera
>> > Discussion: https://postgr.es/m/20171231194359.cvojcour423ulha4@alvherre.pgsql
>> > Reviewed-by: Peter Eisentraut
>>
>> The commit message here was so brief that I had to read the
>> documentation to figure out exactly what this feature was.
>
> I wrote three draft commit messages, and they all seemed to be saying
> something so obvious (just repeating the commit title) that I decided
> not to repeat myself.  Evidently that was a mistake.

Mainly I couldn't tell which direction(s) had been permitted without
looking within.

Not a huge deal, just mentioning it.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company