Hola a todos, tengo una base de datos con una tabla con  la siguiente estructura:

CREATE TABLE videos (
    id int8 NULL,
    dato bytea NULL
);


y en ella se almacenen archivos binarios, no esta en mis manos modificar su estructura,  y a la hora de leer una fila especifica me da el siguiente error(en esa tabla tengo 5 registros):


select * from videos where id=2;

 SQL Error [XX000]: ERROR: invalid memory alloc request size 1180388273

todas las demás filas las puedo obtener sin problemas

si consulto el tamaño de los binarios obtengo:

select id,length(dato) as ta from videos

id, tam

3    10156992
2    590194135
5    193216177
9    381569680
6    424544121

como ven el id 2 tiene un tamaño de 590 MB(es la única que pasa de los 500 MB), tengo entendido que se puede almacenar hasta 1 GB


el size que me retorna el error(1180388273) es prácticamente el doble que el tamaño del binario qye da error

 :O

si consulto la tabla del toast que almacena la información de dicha tabla obtengo

select  chunk_id,count (chunk_seq)  from pg_toast.pg_toast_245165 group by 1

chunk_id, count

245203    5089
245205    295689
245207    96802
245209    191168
245211    212698



¿Tienen alguna idea de como solucionar esto o pista a seguir?

He cambiado de disco ,  de servidor y de SO a CentOS 7  pasa lo mismo


Estoy usando PG en su versión:

PostgreSQL 10.5 (Ubuntu 10.5-1.pgdg16.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 5.4.0-6ubuntu1~16.04.10) 5.4.0 20160609, 64-bit

Y la plataforma es:

Linux anthony-EliteBook 4.15.0-36-generic #39~16.04.1-Ubuntu SMP Tue Sep 25 08:59:23 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux



Saludos



Reply via email to