lolor
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
lolor | 1.2.2 | ETL | PostgreSQL | C |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 9570 | lolor | No | Yes | No | Yes | Yes | No | lolor |
| Related | spock snowflake |
|---|
works on pgedge kernel fork. Requires lolor.node
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.2.2 | 1817161514 | lolor | - |
| RPM | PIGSTY | 1.2.2 | 1817161514 | lolor_$v | pgedge_$v |
| DEB | PIGSTY | 1.2.2 | 1817161514 | pgedge-$v-lolor | pgedge-$v |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PIGSTY MISS | PIGSTY 1.2.2 el8.x86_64.pg17 : lolor_17 lolor_17-1.2.2-1PIGSTY.el8.x86_64.rpm
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el8.aarch64 | PIGSTY MISS | PIGSTY 1.2.2 el8.aarch64.pg17 : lolor_17 lolor_17-1.2.2-1PIGSTY.el8.aarch64.rpm
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el9.x86_64 | PIGSTY MISS | PIGSTY 1.2.2 el9.x86_64.pg17 : lolor_17 lolor_17-1.2.2-1PIGSTY.el9.x86_64.rpm
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el9.aarch64 | PIGSTY MISS | PIGSTY 1.2.2 el9.aarch64.pg17 : lolor_17 lolor_17-1.2.2-1PIGSTY.el9.aarch64.rpm
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el10.x86_64 | PIGSTY MISS | PIGSTY 1.2.2 el10.x86_64.pg17 : lolor_17 lolor_17-1.2.2-1PIGSTY.el10.x86_64.rpm
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el10.aarch64 | PIGSTY MISS | PIGSTY 1.2.2 el10.aarch64.pg17 : lolor_17 lolor_17-1.2.2-1PIGSTY.el10.aarch64.rpm
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| d12.x86_64 | PIGSTY MISS | PIGSTY 1.2.2 d12.x86_64.pg17 : pgedge-17-lolor pgedge-17-lolor_1.2.2-1PIGSTY~bookworm_amd64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| d12.aarch64 | PIGSTY MISS | PIGSTY 1.2.2 d12.aarch64.pg17 : pgedge-17-lolor pgedge-17-lolor_1.2.2-1PIGSTY~bookworm_arm64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| d13.x86_64 | PIGSTY MISS | PIGSTY 1.2.2 d13.x86_64.pg17 : pgedge-17-lolor pgedge-17-lolor_1.2.2-1PIGSTY~trixie_amd64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| d13.aarch64 | PIGSTY MISS | PIGSTY 1.2.2 d13.aarch64.pg17 : pgedge-17-lolor pgedge-17-lolor_1.2.2-1PIGSTY~trixie_arm64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| u22.x86_64 | PIGSTY MISS | PIGSTY 1.2.2 u22.x86_64.pg17 : pgedge-17-lolor pgedge-17-lolor_1.2.2-1PIGSTY~jammy_amd64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| u22.aarch64 | PIGSTY MISS | PIGSTY 1.2.2 u22.aarch64.pg17 : pgedge-17-lolor pgedge-17-lolor_1.2.2-1PIGSTY~jammy_arm64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| u24.x86_64 | PIGSTY MISS | PIGSTY 1.2.2 u24.x86_64.pg17 : pgedge-17-lolor pgedge-17-lolor_1.2.2-1PIGSTY~noble_amd64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| u24.aarch64 | PIGSTY MISS | PIGSTY 1.2.2 u24.aarch64.pg17 : pgedge-17-lolor pgedge-17-lolor_1.2.2-1PIGSTY~noble_arm64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
Build
You can build the RPM / DEB packages for lolor using pig build:
pig build pkg lolor # build RPM / DEB packages
Install
You can install lolor directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:
pig repo add pgsql -u # Add repo and update cache
Install the extension using pig or apt/yum/dnf:
pig install lolor; # Install for current active PG version
pig ext install -y lolor -v 17 # PG 17
dnf install -y lolor_17 # PG 17
apt install -y pgedge-17-lolor # PG 17
Create Extension:
CREATE EXTENSION lolor;
Usage
lolor: Logical-replication-friendly replacement for PostgreSQL large objects
Makes PostgreSQL large objects compatible with logical replication by storing them in non-catalog tables.
Enabling
CREATE EXTENSION lolor;
Configure the node identifier in postgresql.conf:
lolor.node = 1 -- unique node ID (1 to 2^28)
Optionally adjust the search path:
SET search_path = lolor, "$user", public, pg_catalog;
Large Object Operations
Once installed, the standard lo_* functions are redirected to use lolor’s tables:
-- Create a large object
SELECT lo_create(0);
-- Import a file into a large object
SELECT lo_import('/path/to/file.bin');
-- Export a large object to a file
SELECT lo_export(oid, '/path/to/output.bin');
-- Open, read, write, seek, close
SELECT lo_open(oid, x'40000'::int); -- INV_WRITE
SELECT lowrite(fd, 'data'::bytea);
SELECT loread(fd, 1024);
SELECT lo_close(fd);
-- Delete a large object
SELECT lo_unlink(oid);
Replication Setup
Add lolor tables to your replication set:
-- For spock/pgedge replication
SELECT spock.repset_add_table('default', 'lolor.pg_largeobject');
SELECT spock.repset_add_table('default', 'lolor.pg_largeobject_metadata');
Internal Tables
The extension manages large objects in:
lolor.pg_largeobject- stores object data chunkslolor.pg_largeobject_metadata- stores object metadata
Limitations
- Native PostgreSQL large object functionality cannot be used while lolor is active
- Migration of existing native large objects to lolor is not supported
ALTER LARGE OBJECT,GRANT ON LARGE OBJECT,COMMENT ON LARGE OBJECT, andREVOKE ON LARGE OBJECTare not supported- Requires PostgreSQL 16 or newer
Feedback
Was this page helpful?
Thanks for the feedback! Please let us know how we can improve.
Sorry to hear that. Please let us know how we can improve.