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
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 |