Chapter 32. Large Objects

Table of Contents
32.1. Introduction
32.2. Implementation Features
32.3. Client Interfaces
32.3.1. Creating a Large Object
32.3.2. Importing a Large Object
32.3.3. Exporting a Large Object
32.3.4. Opening an Existing Large Object
32.3.5. Writing Data to a Large Object
32.3.6. Reading Data from a Large Object
32.3.7. Seeking in a Large Object
32.3.8. Obtaining the Seek Position of a Large Object
32.3.9. Truncating a Large Object
32.3.10. Closing a Large Object Descriptor
32.3.11. Removing a Large Object
32.4. Server-side Functions
32.5. Example Program

Large objects are not supported by Postgres-XL. Postgres-XL does not provide a consistent way to handle the large object as OIDs are inconsistent among cluster nodes.

PostgreSQL has a large object facility, which provides stream-style access to user data that is stored in a special large-object structure. Streaming access is useful when working with data values that are too large to manipulate conveniently as a whole.

This chapter describes the implementation and the programming and query language interfaces to PostgreSQL large object data. We use the libpq C library for the examples in this chapter, but most programming interfaces native to PostgreSQL support equivalent functionality. Other interfaces might use the large object interface internally to provide generic support for large values. This is not described here.