{"id":24390414,"url":"https://github.com/pgedge/lolor","last_synced_at":"2026-03-07T14:31:33.039Z","repository":{"id":241793634,"uuid":"768580620","full_name":"pgEdge/lolor","owner":"pgEdge","description":"PostgreSQL Large Object LOgical Replication (LOLOR)","archived":false,"fork":false,"pushed_at":"2025-12-05T19:20:39.000Z","size":244,"stargazers_count":42,"open_issues_count":4,"forks_count":5,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-12-09T03:55:23.241Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.pgedge.com/get-started/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"postgresql","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pgEdge.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-03-07T10:53:00.000Z","updated_at":"2025-12-08T16:47:48.000Z","dependencies_parsed_at":"2024-05-30T04:37:26.320Z","dependency_job_id":"6e2f9807-bb6b-49b9-8393-ea9aa4611418","html_url":"https://github.com/pgEdge/lolor","commit_stats":null,"previous_names":["pgedge/lolor"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/pgEdge/lolor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgEdge%2Flolor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgEdge%2Flolor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgEdge%2Flolor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgEdge%2Flolor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pgEdge","download_url":"https://codeload.github.com/pgEdge/lolor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgEdge%2Flolor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30217430,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T14:02:48.375Z","status":"ssl_error","status_checked_at":"2026-03-07T14:02:43.192Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-19T16:17:25.317Z","updated_at":"2026-03-07T14:31:33.013Z","avatar_url":"https://github.com/pgEdge.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# lolor\n\nlolor is an extension that makes Postgres' Large Objects compatible with Logical Replication.\n\n## Table of Contents\n- [lolor Overview](docs/index.md)\n- [Building and Installing lolor](docs/install_configure.md)\n- [Basic Configuration](README.md#configuring-lolor)\n- [Using lolor](docs/using_lolor.md)\n- [Limitations](README.md#limitations)\n\nPostgreSQL supports large objects as related chunks as described in the [pg_largeobject](https://www.postgresql.org/docs/current/catalog-pg-largeobject.html) table. Large objects provide stream-style access to user data stored in a special large-object structure in the catalog. Large objects stored in catalog tables require special handling during replication; the lolor extension allows for the storage of large objects in non-catalog tables, aiding in replication of large objects.\n\nlolor creates and manages large object related tables in the `lolor` schema:\n\n```\nlolor.pg_largeobject\nlolor.pg_largeobject_metadata\n```\n\nPostgreSQL large objects allow you to store huge files within the database. Each large object is recognised by an OID that is assigned at the time of its creation. lolor stores objects in smaller segments within a separate system table and generates associated OIDs for large objects that are distinct from those of native large objects.\n\nUse of the lolor extension requires Postgres 16 or newer.\n\n### Building and Installing lolor\n\nYou can also compile and install the extension from the source code, with the same guidelines as any other Postgres extension constructed using PGXS.\nMake sure that your PATH environment variable includes the directory where `pg_config` (under your Postgres installation) is located.\n\n```\nexport PATH=/opt/pg17/bin:$PATH\n\n# compile\nmake USE_PGXS=1\n# install, might be requiring sudo for the installation step\nmake USE_PGXS=1 install\n```\n\nAfter installing the lolor extension, connect to your Postgres database and create the extension with the command:\n\n```\nCREATE EXTENSION lolor;\n```\n\n### Configuring lolor\n\nYou must set the `lolor.node` parameter before using the extension. The value can be from 1 to 2^28; the value is used to help in generation of new large object OID.\n\n```\nlolor.node = 1\n```\n\nYou can also change the `search_path` to pick large object related tables from the `lolor` schema:\n\n```\nset search_path=lolor,\"$user\",public,pg_catalog\n```\n\nAny existing methods in `pg_catalog.lo_*` are renamed to `pg_catalog.lo_*_orig`, and new versions of these methods are introduced.\nIf you remove the extension, the renamed `pg_catalog.lo_*_orig` functions are restored to their initial names.\n\nWhile using `pgedge` replication with large objects, you must have the tables `pg_largeobject` and `pg_largeobject_metadata` in your replication set; use \nthe following commands to add the tables:\n\n```\n./pgedge spock repset-add-table spock_replication_set 'lolor.pg_largeobject' lolor_db\n./pgedge spock repset-add-table spock_replication_set 'lolor.pg_largeobject_metadata' lolor_db\n```\n\n### Limitations\n\n- Native large object functionality cannot be used while you are using the lolor extension.\n- Native large object migration to the lolor feature is not available yet.\n- lolor does not support the following statements: `ALTER LARGE OBJECT`, `GRANT ON LARGE OBJECT`, `COMMENT ON LARGE OBJECT`, and `REVOKE ON LARGE OBJECT`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpgedge%2Flolor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpgedge%2Flolor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpgedge%2Flolor/lists"}