Skip to content
documentdb_core

documentdb_core

documentdb : Core API surface for DocumentDB on PostgreSQL

Overview

ID Extension Package Version Category License Language
9010
documentdb_core
documentdb
0.114
SIM
MIT
C
Attribute Has Binary Has Library Need Load Has DDL Relocatable Trusted
--sLd--
No
Yes
Yes
Yes
no
no
Relationships
Need By
documentdb
documentdb_distributed
See Also
mongo_fdw
rum
pg_jsonschema
jsquery
pg_cron
postgis
vector
Siblings
documentdb
documentdb_distributed
documentdb_extended_rum

Packages

Type Repo Version PG Major Compatibility Package Pattern Dependencies
EXT
PIGSTY
0.114
18
17
16
15
14
documentdb -
RPM
PIGSTY
0.114
18
17
16
15
14
documentdb_$v postgresql$v-contrib, pg_cron_$v, pgvector_$v, rum_$v, postgis36_$v
DEB
PIGSTY
0.114
18
17
16
15
14
postgresql-$v-documentdb postgresql-$v-cron, postgresql-$v-pgvector, postgresql-$v-rum, postgresql-$v-postgis-3
Linux / PG PG18 PG17 PG16 PG15 PG14
el8.x86_64
PIGSTY 0.114
PIGSTY 0.114
PIGSTY 0.114
PIGSTY 0.114
N/A
el8.aarch64
PIGSTY 0.114
PIGSTY 0.114
PIGSTY 0.114
PIGSTY 0.114
N/A
el9.x86_64
PIGSTY 0.114
PIGSTY 0.114
PIGSTY 0.114
PIGSTY 0.114
N/A
el9.aarch64
PIGSTY 0.114
PIGSTY 0.114
PIGSTY 0.114
PIGSTY 0.114
N/A
el10.x86_64
PIGSTY 0.114
PIGSTY 0.114
PIGSTY 0.114
PIGSTY 0.114
N/A
el10.aarch64
PIGSTY 0.114
PIGSTY 0.114
PIGSTY 0.114
PIGSTY 0.114
N/A
d12.x86_64
PIGSTY 0.114
PIGSTY 0.114
PIGSTY 0.114
PIGSTY 0.114
N/A
d12.aarch64
PIGSTY 0.114
PIGSTY 0.114
PIGSTY 0.114
PIGSTY 0.114
N/A
d13.x86_64
PGDG 0.114
PGDG 0.114
PGDG 0.114
PGDG 0.114
N/A
d13.aarch64
PGDG 0.114
PGDG 0.114
PGDG 0.114
PGDG 0.114
N/A
u22.x86_64
PIGSTY 0.114
PIGSTY 0.114
PIGSTY 0.114
PIGSTY 0.114
N/A
u22.aarch64
PIGSTY 0.114
PIGSTY 0.114
PIGSTY 0.114
PIGSTY 0.114
N/A
u24.x86_64
PIGSTY 0.114
PIGSTY 0.114
PIGSTY 0.114
PIGSTY 0.114
N/A
u24.aarch64
PIGSTY 0.114
PIGSTY 0.114
PIGSTY 0.114
PIGSTY 0.114
N/A
u26.x86_64
PGDG 0.114
PGDG 0.114
PGDG 0.114
PGDG 0.114
N/A
u26.aarch64
PGDG 0.114
PGDG 0.114
PGDG 0.114
PGDG 0.114
N/A

Source

pig build pkg documentdb;		# build rpm/deb

Install

Make sure PGDG and PIGSTY repo available:

pig repo add pgsql -u   # add both repo and update cache

Install this extension with pig:

pig install documentdb;		# install via package name, for the active PG version
pig install documentdb_core;		# install by extension name, for the current active PG version

pig install documentdb_core -v 18;   # install for PG 18
pig install documentdb_core -v 17;   # install for PG 17
pig install documentdb_core -v 16;   # install for PG 16
pig install documentdb_core -v 15;   # install for PG 15

Config this extension to shared_preload_libraries:

shared_preload_libraries = 'pg_documentdb, pg_documentdb_core';

Create this extension with:

CREATE EXTENSION documentdb_core;

Usage

Sources:

documentdb_core is the low-level BSON type and operator layer used by DocumentDB. It is normally installed as a dependency of documentdb; by itself it does not provide collection CRUD, the MongoDB wire protocol, or the gateway.

Configure and Install

pg_documentdb_core must be loaded through shared_preload_libraries, followed by a PostgreSQL restart:

shared_preload_libraries = 'pg_documentdb_core'

For a complete single-node stack, the official helper also preloads pg_cron and pg_documentdb. Install the parent extension in normal deployments:

CREATE EXTENSION documentdb CASCADE;

Direct installation is useful only for low-level BSON work:

CREATE EXTENSION documentdb_core;

The extension is superuser-only and non-relocatable.

BSON Workflow

SELECT '{"name":"Ada","score":42}'::documentdb_core.bson;

SELECT documentdb_core.bson_get_value_text(
  '{"name":"Ada","score":42}'::documentdb_core.bson,
  'name'
);

Use explicit schema qualification unless documentdb_core is in search_path.

Important Objects

  • documentdb_core.bson stores BSON documents.
  • documentdb_core.bsonquery represents BSON query values used by the DocumentDB planner and operator layer.
  • documentdb_core.bsonsequence represents sequences of BSON values.
  • bson_get_value and bson_get_value_text, also exposed through -> and ->>, extract a path from a BSON document.
  • bson_from_bytea, bson_to_bytea, bson_json_to_bson, and bson_to_json_string support serialization boundaries.
  • bson_btree_ops and bson_hash_ops provide comparison and hashing support required by higher layers.

Operational Boundaries

BSON comparison, indexing, and numeric semantics follow DocumentDB’s implementation and should not be assumed to match PostgreSQL jsonb. Most objects are infrastructure for documentdb; applications seeking collections and MongoDB commands should use the parent extension or gateway rather than building directly on internal types.

Version 0.114-0 keeps documentdb_core aligned with the rest of the DocumentDB stack. The upstream changelog does not identify a separate end-user core API migration for this release, so no new standalone workflow is claimed.

Last updated on