Server-side functions tailored for manipulating large objects from SQL are listed in Table 34.1.
Table 34.1. SQL-oriented Large Object Functions
||Create a large object and store data there, returning its OID.
||Write data at the given offset.||
||Extract contents or a substring thereof.||
There are additional server-side functions corresponding to each
of the client-side functions described earlier; indeed, for the
most part the client-side functions are simply interfaces to the
equivalent server-side functions. The ones just as convenient to
call via SQL commands are
lo_export. Here are examples of their
CREATE TABLE image ( name text, raster oid ); SELECT lo_creat(-1); -- returns OID of new, empty large object SELECT lo_create(43213); -- attempts to create large object with OID 43213 SELECT lo_unlink(173454); -- deletes large object with OID 173454 INSERT INTO image (name, raster) VALUES ('beautiful image', lo_import('/etc/motd')); INSERT INTO image (name, raster) -- same as above, but specify OID to use VALUES ('beautiful image', lo_import('/etc/motd', 68583)); SELECT lo_export(image.raster, '/tmp/motd') FROM image WHERE name = 'beautiful image';
lo_export functions behave
considerably differently from their client-side analogs. These two
functions read and write files in the server's file system, using
the permissions of the database's owning user. Therefore, their use
is restricted to superusers. In contrast, the client-side import
and export functions read and write files in the client's file
system, using the permissions of the client program. The
client-side functions do not require superuser privilege.
The functionality of
lo_write is also available via
server-side calls, but the names of the server-side functions
differ from the client side interfaces in that they do not contain
underscores. You must call these functions as
If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.