Using binary large objects
What if someone wants to store a picture, Word document, or PDF, in a database? For this, PostgreSQL has a large object facility that provides stream-style access to user data, which is stored in a special large-object structure. Streaming access is useful when you are working with data values that are too large to manipulate conveniently as a whole.
The large object implementation breaks large objects into chunks and stores them in rows in the database. A B-tree index guarantees fast searches for the correct chunk number when doing random-access reads and writes.
How do we implement it? As this book is intended to teach you the basics, let's look at how to create/implement large objects:
Creating a large object
You can use the lo_creat
function to create a large object. The syntax is as follows:
Oid lo_creat(PGconn *conn, int mode);
The return value is Oid
.
Here's an example:
inv_oid = lo_creat(conn, INV_READ|INV_WRITE);
The Oid lo_create(PGconn *conn, Oid lobjId)...