¿Dónde almacena pg_lo_write su contenido?
-
05-07-2019 - |
Pregunta
Hay una función en nuestro sistema que escribe un archivo en un BLOB de postgres, la función es pg_lo_write
, nuestro sistema utiliza PHP, ADODB y PostgreSQL.
Lo que me gustaría saber es dónde se almacenan estos datos, ¿es un archivo en un directorio de Postgres, en una tabla?
¡Muchas gracias!
Información de respuesta
Gracias a Ben Fransen por la respuesta, el BLOB se almacena en la tabla pg_largeobject
. Estoy usando pgAdmin y la tabla está oculta a la vista, sin embargo, se puede acceder mediante una consulta.
SELECT * FROM pg_largeobject WHERE LOID = 123456
Solución
Corríjame si me equivoco, pero, por lo que sé, cuando almacena archivos en una base de datos, se almacenan como datos binarios. El valor binario de su archivo se almacena en su campo BLOB. Cuando intenta obtener ese archivo, el valor binario se reconstruye en el archivo original.
Otros consejos
Para futuras referencias, las secciones relevantes en el manual de PostgreSQL:
Capítulo 31. Objetos grandes, 31.2. Características de implementación .