Chapter 33. Large Objects Table of Contents 33.1. Introduction 33.2. Implementation Features 33.3. Client Interfaces 33.3.1. Creating a Large Object 33.3.2. Importing a Large Object 33.3.3. Exporting a Large Object 33.3.4. Opening an Existing Large Object 33.3.5. Writing Data to a Large Object 33.3.6. Reading Data from a Large Object 33.3.7. Seeking in a Large Object 33.3.8. Obtaining the Seek Position of a Large Object 33.3.9. Truncating a Large Object 33.3.10. Closing a Large Object Descriptor 33.3.11. Removing a Large Object 33.4. Server-Side Functions 33.5. Example Program 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.