All large objects are placed in a single system table called
pg_largeobject. PostgreSQL also supports a storage system
called "TOAST" that automatically stores
values larger than a single database page into a secondary
storage area per table. This makes the large object facility
partially obsolete. One remaining advantage of the large object
facility is that it allows values up to 2 GB in size, whereas
TOASTed fields can be at most
1 GB. Also, large objects can be randomly modified using a
read/write API that is more efficient than performing such
operations using TOAST.
I have successfully loaded and retrieved an 8.1 GB object using lo_create()/lo_write()/lo_close() and \lo_export with PostgreSQL 8.3.3 on Linux 86_64, so I suspect the 2 GB size limit mentioned in this article is obsolete.