lolor
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
lolor | 1.2.2 | ETL | PostgreSQL | C |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 9580 | lolor | No | Yes | No | Yes | Yes | No | lolor |
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 | 18.6 | 1817161514 | pgedge-$v | - |
| DEB | PIGSTY | 18.6 | 1817161514 | pgedge-$v | - |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PIGSTY 18.6 el8.x86_64.pg18 : pgedge-18 pgedge-18-18.6-2PGSTY.el8.x86_64.rpm
| PIGSTY 17.11 el8.x86_64.pg17 : pgedge-17 pgedge-17-17.11-2PGSTY.el8.x86_64.rpm
| PIGSTY 16.15 el8.x86_64.pg16 : pgedge-16 pgedge-16-16.15-2PGSTY.el8.x86_64.rpm
| PIGSTY 15.19 el8.x86_64.pg15 : pgedge-15 pgedge-15-15.19-2PGSTY.el8.x86_64.rpm
| N/A |
| el8.aarch64 | PIGSTY 18.6 el8.aarch64.pg18 : pgedge-18 pgedge-18-18.6-2PGSTY.el8.aarch64.rpm
| PIGSTY 17.11 el8.aarch64.pg17 : pgedge-17 pgedge-17-17.11-2PGSTY.el8.aarch64.rpm
| PIGSTY 16.15 el8.aarch64.pg16 : pgedge-16 pgedge-16-16.15-2PGSTY.el8.aarch64.rpm
| PIGSTY 15.19 el8.aarch64.pg15 : pgedge-15 pgedge-15-15.19-2PGSTY.el8.aarch64.rpm
| N/A |
| el9.x86_64 | PIGSTY 18.6 el9.x86_64.pg18 : pgedge-18 pgedge-18-18.6-2PGSTY.el9.x86_64.rpm
| PIGSTY 17.11 el9.x86_64.pg17 : pgedge-17 pgedge-17-17.11-2PGSTY.el9.x86_64.rpm
| PIGSTY 16.15 el9.x86_64.pg16 : pgedge-16 pgedge-16-16.15-2PGSTY.el9.x86_64.rpm
| PIGSTY 15.19 el9.x86_64.pg15 : pgedge-15 pgedge-15-15.19-2PGSTY.el9.x86_64.rpm
| N/A |
| el9.aarch64 | PIGSTY 18.6 el9.aarch64.pg18 : pgedge-18 pgedge-18-18.6-2PGSTY.el9.aarch64.rpm
| PIGSTY 17.11 el9.aarch64.pg17 : pgedge-17 pgedge-17-17.11-2PGSTY.el9.aarch64.rpm
| PIGSTY 16.15 el9.aarch64.pg16 : pgedge-16 pgedge-16-16.15-2PGSTY.el9.aarch64.rpm
| PIGSTY 15.19 el9.aarch64.pg15 : pgedge-15 pgedge-15-15.19-2PGSTY.el9.aarch64.rpm
| N/A |
| el10.x86_64 | PIGSTY 18.6 el10.x86_64.pg18 : pgedge-18 pgedge-18-18.6-2PGSTY.el10.x86_64.rpm
| PIGSTY 17.11 el10.x86_64.pg17 : pgedge-17 pgedge-17-17.11-2PGSTY.el10.x86_64.rpm
| PIGSTY 16.15 el10.x86_64.pg16 : pgedge-16 pgedge-16-16.15-2PGSTY.el10.x86_64.rpm
| PIGSTY 15.19 el10.x86_64.pg15 : pgedge-15 pgedge-15-15.19-2PGSTY.el10.x86_64.rpm
| N/A |
| el10.aarch64 | PIGSTY 18.6 el10.aarch64.pg18 : pgedge-18 pgedge-18-18.6-2PGSTY.el10.aarch64.rpm
| PIGSTY 17.11 el10.aarch64.pg17 : pgedge-17 pgedge-17-17.11-2PGSTY.el10.aarch64.rpm
| PIGSTY 16.15 el10.aarch64.pg16 : pgedge-16 pgedge-16-16.15-2PGSTY.el10.aarch64.rpm
| PIGSTY 15.19 el10.aarch64.pg15 : pgedge-15 pgedge-15-15.19-2PGSTY.el10.aarch64.rpm
| N/A |
| d12.x86_64 | PIGSTY 18.6 d12.x86_64.pg18 : pgedge-18 pgedge-18_18.6-2PGSTY~bookworm_amd64.deb
| PIGSTY 17.11 d12.x86_64.pg17 : pgedge-17 pgedge-17_17.11-2PGSTY~bookworm_amd64.deb
| PIGSTY 16.15 d12.x86_64.pg16 : pgedge-16 pgedge-16_16.15-2PGSTY~bookworm_amd64.deb
| PIGSTY 15.19 d12.x86_64.pg15 : pgedge-15 pgedge-15_15.19-2PGSTY~bookworm_amd64.deb
| N/A |
| d12.aarch64 | PIGSTY 18.6 d12.aarch64.pg18 : pgedge-18 pgedge-18_18.6-2PGSTY~bookworm_arm64.deb
| PIGSTY 17.11 d12.aarch64.pg17 : pgedge-17 pgedge-17_17.11-2PGSTY~bookworm_arm64.deb
| PIGSTY 16.15 d12.aarch64.pg16 : pgedge-16 pgedge-16_16.15-2PGSTY~bookworm_arm64.deb
| PIGSTY 15.19 d12.aarch64.pg15 : pgedge-15 pgedge-15_15.19-2PGSTY~bookworm_arm64.deb
| N/A |
| d13.x86_64 | PIGSTY 18.6 d13.x86_64.pg18 : pgedge-18 pgedge-18_18.6-2PGSTY~trixie_amd64.deb
| PIGSTY 17.11 d13.x86_64.pg17 : pgedge-17 pgedge-17_17.11-2PGSTY~trixie_amd64.deb
| PIGSTY 16.15 d13.x86_64.pg16 : pgedge-16 pgedge-16_16.15-2PGSTY~trixie_amd64.deb
| PIGSTY 15.19 d13.x86_64.pg15 : pgedge-15 pgedge-15_15.19-2PGSTY~trixie_amd64.deb
| N/A |
| d13.aarch64 | PIGSTY 18.6 d13.aarch64.pg18 : pgedge-18 pgedge-18_18.6-2PGSTY~trixie_arm64.deb
| PIGSTY 17.11 d13.aarch64.pg17 : pgedge-17 pgedge-17_17.11-2PGSTY~trixie_arm64.deb
| PIGSTY 16.15 d13.aarch64.pg16 : pgedge-16 pgedge-16_16.15-2PGSTY~trixie_arm64.deb
| PIGSTY 15.19 d13.aarch64.pg15 : pgedge-15 pgedge-15_15.19-2PGSTY~trixie_arm64.deb
| N/A |
| u22.x86_64 | PIGSTY 18.6 u22.x86_64.pg18 : pgedge-18 pgedge-18_18.6-2PGSTY~jammy_amd64.deb
| PIGSTY 17.11 u22.x86_64.pg17 : pgedge-17 pgedge-17_17.11-2PGSTY~jammy_amd64.deb
| PIGSTY 16.15 u22.x86_64.pg16 : pgedge-16 pgedge-16_16.15-2PGSTY~jammy_amd64.deb
| PIGSTY 15.19 u22.x86_64.pg15 : pgedge-15 pgedge-15_15.19-2PGSTY~jammy_amd64.deb
| N/A |
| u22.aarch64 | PIGSTY 18.6 u22.aarch64.pg18 : pgedge-18 pgedge-18_18.6-2PGSTY~jammy_arm64.deb
| PIGSTY 17.11 u22.aarch64.pg17 : pgedge-17 pgedge-17_17.11-2PGSTY~jammy_arm64.deb
| PIGSTY 16.15 u22.aarch64.pg16 : pgedge-16 pgedge-16_16.15-2PGSTY~jammy_arm64.deb
| PIGSTY 15.19 u22.aarch64.pg15 : pgedge-15 pgedge-15_15.19-2PGSTY~jammy_arm64.deb
| N/A |
| u24.x86_64 | PIGSTY 18.6 u24.x86_64.pg18 : pgedge-18 pgedge-18_18.6-2PGSTY~noble_amd64.deb
| PIGSTY 17.11 u24.x86_64.pg17 : pgedge-17 pgedge-17_17.11-2PGSTY~noble_amd64.deb
| PIGSTY 16.15 u24.x86_64.pg16 : pgedge-16 pgedge-16_16.15-2PGSTY~noble_amd64.deb
| PIGSTY 15.19 u24.x86_64.pg15 : pgedge-15 pgedge-15_15.19-2PGSTY~noble_amd64.deb
| N/A |
| u24.aarch64 | PIGSTY 18.6 u24.aarch64.pg18 : pgedge-18 pgedge-18_18.6-2PGSTY~noble_arm64.deb
| PIGSTY 17.11 u24.aarch64.pg17 : pgedge-17 pgedge-17_17.11-2PGSTY~noble_arm64.deb
| PIGSTY 16.15 u24.aarch64.pg16 : pgedge-16 pgedge-16_16.15-2PGSTY~noble_arm64.deb
| PIGSTY 15.19 u24.aarch64.pg15 : pgedge-15 pgedge-15_15.19-2PGSTY~noble_arm64.deb
| N/A |
| u26.x86_64 | PIGSTY 18.6 u26.x86_64.pg18 : pgedge-18 pgedge-18_18.6-2PGSTY~resolute_amd64.deb
| PIGSTY 17.11 u26.x86_64.pg17 : pgedge-17 pgedge-17_17.11-2PGSTY~resolute_amd64.deb
| PIGSTY 16.15 u26.x86_64.pg16 : pgedge-16 pgedge-16_16.15-2PGSTY~resolute_amd64.deb
| PIGSTY 15.19 u26.x86_64.pg15 : pgedge-15 pgedge-15_15.19-2PGSTY~resolute_amd64.deb
| N/A |
| u26.aarch64 | PIGSTY 18.6 u26.aarch64.pg18 : pgedge-18 pgedge-18_18.6-2PGSTY~resolute_arm64.deb
| PIGSTY 17.11 u26.aarch64.pg17 : pgedge-17 pgedge-17_17.11-2PGSTY~resolute_arm64.deb
| PIGSTY 16.15 u26.aarch64.pg16 : pgedge-16 pgedge-16_16.15-2PGSTY~resolute_arm64.deb
| PIGSTY 15.19 u26.aarch64.pg15 : pgedge-15 pgedge-15_15.19-2PGSTY~resolute_arm64.deb
| N/A |
Build
You can build the RPM / DEB packages for lolor using pig build:
Install
You can install lolor directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:
Install the extension using pig or apt/yum/dnf:
Create Extension:
Usage
Sources:
- v1.2.2 README
- Control file
- Version 1.2.2 migration
- Usage reference
- Release notes
lolor1.2.2 stores large-object chunks and metadata in ordinary tables so logical replication can include them. Enabling it replaces the database’s native large-object routines; it is a database-wide behavior change, not an independent object store.
Configure and Enable
Assign each writing node a distinct nonzero lolor.node before creating large objects. Upstream documents values from 1 through 2^28. Configure the server’s parameter and create the extension in each participating database:
The control file fixes schema lolor, declares trusted installation and disallows relocation. The upstream README requires PostgreSQL 16 or newer; the current Pigsty pgEdge bundle has separately tested builds for 15–18. That packaging result does not establish support for arbitrary stock PostgreSQL 15 installations.
Large Object Workflow
Standard calls such as lo_create(), lo_get(), lo_put() and lo_unlink() use the replacement routines. Descriptor-based access through lo_open(), loread(), lowrite() and lo_close() must stay within the same transaction. File import/export operates on server-side paths and remains subject to the relevant function and filesystem privileges.
The extension uses lolor.pg_largeobject and lolor.pg_largeobject_metadata. Existing catalog routines are retained with renamed originals so disabling or removing the extension can restore the native function names.
Replication
With a configured Spock replication set, include both tables:
Install compatible versions and coordinate node identifiers and object ownership on every node. Creating the extension alone does not create a logical-replication topology.
Upgrade and Boundaries
Version 1.2.2 repairs extension and major-version upgrade behavior and adds lolor.disable(), lolor.enable() and lolor.is_enabled(). Update lolor before running pg_upgrade; the fix does not retroactively repair a major upgrade already attempted with older extension files:
Disabling changes which native function names are active; it does not migrate stored large objects. Native large-object migration is not provided. Native large-object functionality and lolor storage cannot be used interchangeably while lolor is enabled. Upstream excludes ALTER LARGE OBJECT, GRANT ON LARGE OBJECT, COMMENT ON LARGE OBJECT and REVOKE ON LARGE OBJECT. Plan backup, restore and replication for both ordinary tables.
Was this page helpful?
Thanks—your feedback helps us improve this page.
What got in the way? (optional)