Обсуждение: large objects in 7.3
I have a few questions about “large objects” in postreSQL 7.3 .
I see from the documentation that
(1) there is a table name pg_largeobject that seems to be the place where large objects are stored.
(2) Likewise there are psql commands (lo_list, lo_import, lo_export, lo_unlink) … lo_list seems to work,
but the others require some parameters, the format of which is not documented)
(2) there is an example where server side built-in functions are used to apparently do 2 things
(a) import a large object into pg_largeobject, and assign it an loid
(b) and then insert that loid into the oid column in table “image”
CREATE TABLE image ( name text, raster oid ); INSERT INTO image (name, raster) VALUES ('beautiful image', lo_import('/etc/motd')); SELECT lo_export(image.raster, '/tmp/motd') FROM image WHERE name = 'beautiful image';
One question is …
is this actually what’s going on (can’t find any other documentation) ?
another question is … how does one use \lo_import in psql?
and finally
the test program does not run on a remote database. Is there any way to manipulate large objects
(import, export, read, write, etc.) on a remote database?
Thanks,
Dick Wieland
---
"Dick Wieland" <dick.wieland@wiline.com> writes:
> another question is . how does one use \lo_import in psql?
See the psql man page, about halfway down --- the \lo_xxx commands are
in alphabetical order along with the other backslash commands, under
the heading "Meta-Commands".
> and finally
> the test program does not run on a remote database.
It would if you ran it as postgres superuser ;-). But realistically you
probably want to import/export files to your own filesystem, not the
server's filesystem. For this you want client-side operations ---
either psql's \lo_xxx commands, or the libpq large-object functions they
are built upon.
regards, tom lane