Re: PG11 Particionamiento y PKs

From: Jaime Casanova <jaime(dot)casanova(at)2ndquadrant(dot)com>
To: Stephen Amell <StephenAmell(at)inbox(dot)lv>
Cc: "pgsql-es-ayuda(at)lists(dot)postgresql(dot)org" <pgsql-es-ayuda(at)lists(dot)postgresql(dot)org>
Subject: Re: PG11 Particionamiento y PKs
Date: 2018-12-21 13:36:06
Message-ID: CAJGNTeMj03fPo5D9e89+S_t=_UVBpKvCUSEDy5wwg42141rjkw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Fri, 21 Dec 2018 at 08:17, Jaime Casanova
<jaime(dot)casanova(at)2ndquadrant(dot)com> wrote:
>
> On Thu, 20 Dec 2018 at 09:08, Stephen Amell <StephenAmell(at)inbox(dot)lv> wrote:
> >
> > Hola Lista!
> >
> > Como andan?
> >
> > Hoy les escribo porque tengo un problema con el nuevo particionamiento
> > de postgres 11, el objetivo es conservar la PK de una tabla
> > particionando por fecha.
> >
> > En un prototipo cree una tabla, copiando la idea de la original:
> >
> > CREATE TABLE public.daf
> > (
> > id serial NOT NULL,
> > fecha timestamp without time zone,
> > testo character varying(100),
> > PRIMARY KEY (id) ---> le digo que pk quiero
> > ) partition by range ( fecha ); ---> y por que quiero particionar
> >
> > No le gusta, ya lo veía venir por lo visto en la docu:
> >
> > ERROR: insufficient columns in PRIMARY KEY constraint definition
> > DETAIL: PRIMARY KEY constraint on table "daf" lacks column "fecha"
> > which is part of the partition key.
> > SQL state: 0A000
> >
> [...]
> >
> > Hasta acá, todo esperado, tengo dos id 5 para dos fechas distintas, pero
> > me mata no poder conservar la pk que necesito que es solo el campo ID.
> >
>
> Esto es un problema en 10, pero no en 11. La definición correcta de la tabla es:
>
> CREATE TABLE public.daf
> (
> id serial NOT NULL,
> fecha timestamp without time zone,
> testo character varying(100),
> PRIMARY KEY (id) INCLUDE (fecha)
> ) partition by range ( fecha );
>
> El include hace que el índice tenga el valor de fecha por lo que el
> sistema de particionamiento no molesta pero al no ser parte del índice
> la unicidad se verifica solo sobre id.
>

mmm... de hecho al hacer pruebas más completas, veo que es un bug que
acepte ese índice para particionar.
por qué puedo hacer que el id se repita en distintas particiones

--
Jaime Casanova www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2018-12-21 13:45:21 Re: PG11 Particionamiento y PKs
Previous Message Jaime Casanova 2018-12-21 13:17:52 Re: PG11 Particionamiento y PKs