pglite_fusion

pglite_fusion

pglite_fusion : Embed an SQLite database in your PostgreSQL table

Overview

IDExtensionPackageVersionCategoryLicenseLanguage
3540
pglite_fusion
pglite_fusion
0.0.5
TYPE
MIT
Rust
AttributeHas BinaryHas LibraryNeed LoadHas DDLRelocatableTrusted
--sLd--
No
Yes
Yes
Yes
no
no
Relationships
See Also
duckdb_fdw
sqlite_fdw
prefix
semver
unit
pgpdf
md5hash
asn1oid

manual updated pgrx by Vonng

Packages

TypeRepoVersionPG Major CompatibilityPackage PatternDependencies
EXT
PIGSTY
0.0.5
18
17
16
15
14
13
pglite_fusion-
RPM
PIGSTY
0.0.5
18
17
16
15
14
13
pglite_fusion_$v-
DEB
PIGSTY
0.0.5
18
17
16
15
14
13
postgresql-$v-pglite-fusion-
Linux / PGPG18PG17PG16PG15PG14PG13
el8.x86_64
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
el8.aarch64
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
el9.x86_64
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
el9.aarch64
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
el10.x86_64
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
el10.aarch64
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
d12.x86_64
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
d12.aarch64
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
d13.x86_64
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
d13.aarch64
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
u22.x86_64
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
u22.aarch64
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
u24.x86_64
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
u24.aarch64
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PIGSTY 0.0.5
PackageVersionOSORGSIZEFile URL
pglite_fusion_180.0.5el8.x86_64pigsty1.2 MiBpglite_fusion_18-0.0.5-2PIGSTY.el8.x86_64.rpm
pglite_fusion_180.0.5el8.aarch64pigsty1.0 MiBpglite_fusion_18-0.0.5-2PIGSTY.el8.aarch64.rpm
pglite_fusion_180.0.5el9.x86_64pigsty1.3 MiBpglite_fusion_18-0.0.5-2PIGSTY.el9.x86_64.rpm
pglite_fusion_180.0.5el9.aarch64pigsty1.1 MiBpglite_fusion_18-0.0.5-2PIGSTY.el9.aarch64.rpm
pglite_fusion_180.0.5el10.x86_64pigsty1.1 MiBpglite_fusion_18-0.0.5-2PIGSTY.el10.x86_64.rpm
pglite_fusion_180.0.5el10.aarch64pigsty1.0 MiBpglite_fusion_18-0.0.5-2PIGSTY.el10.aarch64.rpm
postgresql-18-pglite-fusion0.0.5d12.x86_64pigsty2.0 KiBpostgresql-18-pglite-fusion_0.0.5-1PIGSTY~bookworm_amd64.deb
postgresql-18-pglite-fusion0.0.5d12.aarch64pigsty2.0 KiBpostgresql-18-pglite-fusion_0.0.5-1PIGSTY~bookworm_arm64.deb
postgresql-18-pglite-fusion0.0.5d13.x86_64pigsty2.0 KiBpostgresql-18-pglite-fusion_0.0.5-1PIGSTY~trixie_amd64.deb
postgresql-18-pglite-fusion0.0.5d13.aarch64pigsty2.0 KiBpostgresql-18-pglite-fusion_0.0.5-1PIGSTY~trixie_arm64.deb
postgresql-18-pglite-fusion0.0.5u22.x86_64pigsty1.8 KiBpostgresql-18-pglite-fusion_0.0.5-1PIGSTY~jammy_amd64.deb
postgresql-18-pglite-fusion0.0.5u22.aarch64pigsty1.8 KiBpostgresql-18-pglite-fusion_0.0.5-1PIGSTY~jammy_arm64.deb
postgresql-18-pglite-fusion0.0.5u24.x86_64pigsty1.9 KiBpostgresql-18-pglite-fusion_0.0.5-1PIGSTY~noble_amd64.deb
postgresql-18-pglite-fusion0.0.5u24.aarch64pigsty1.9 KiBpostgresql-18-pglite-fusion_0.0.5-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
pglite_fusion_170.0.5el8.x86_64pigsty1.2 MiBpglite_fusion_17-0.0.5-2PIGSTY.el8.x86_64.rpm
pglite_fusion_170.0.5el8.aarch64pigsty1.0 MiBpglite_fusion_17-0.0.5-2PIGSTY.el8.aarch64.rpm
pglite_fusion_170.0.5el9.x86_64pigsty1.3 MiBpglite_fusion_17-0.0.5-2PIGSTY.el9.x86_64.rpm
pglite_fusion_170.0.5el9.aarch64pigsty1.1 MiBpglite_fusion_17-0.0.5-2PIGSTY.el9.aarch64.rpm
pglite_fusion_170.0.5el10.x86_64pigsty1.1 MiBpglite_fusion_17-0.0.5-2PIGSTY.el10.x86_64.rpm
pglite_fusion_170.0.5el10.aarch64pigsty1.0 MiBpglite_fusion_17-0.0.5-2PIGSTY.el10.aarch64.rpm
postgresql-17-pglite-fusion0.0.5d12.x86_64pigsty1.1 MiBpostgresql-17-pglite-fusion_0.0.5-1PIGSTY~bookworm_amd64.deb
postgresql-17-pglite-fusion0.0.5d12.aarch64pigsty952.7 KiBpostgresql-17-pglite-fusion_0.0.5-1PIGSTY~bookworm_arm64.deb
postgresql-17-pglite-fusion0.0.5d13.x86_64pigsty1.2 MiBpostgresql-17-pglite-fusion_0.0.5-1PIGSTY~trixie_amd64.deb
postgresql-17-pglite-fusion0.0.5d13.aarch64pigsty976.2 KiBpostgresql-17-pglite-fusion_0.0.5-1PIGSTY~trixie_arm64.deb
postgresql-17-pglite-fusion0.0.5u22.x86_64pigsty1.2 MiBpostgresql-17-pglite-fusion_0.0.5-1PIGSTY~jammy_amd64.deb
postgresql-17-pglite-fusion0.0.5u22.aarch64pigsty1.1 MiBpostgresql-17-pglite-fusion_0.0.5-1PIGSTY~jammy_arm64.deb
postgresql-17-pglite-fusion0.0.5u24.x86_64pigsty1.2 MiBpostgresql-17-pglite-fusion_0.0.5-1PIGSTY~noble_amd64.deb
postgresql-17-pglite-fusion0.0.5u24.aarch64pigsty1.1 MiBpostgresql-17-pglite-fusion_0.0.5-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
pglite_fusion_160.0.5el8.x86_64pigsty1.2 MiBpglite_fusion_16-0.0.5-2PIGSTY.el8.x86_64.rpm
pglite_fusion_160.0.5el8.aarch64pigsty1.0 MiBpglite_fusion_16-0.0.5-2PIGSTY.el8.aarch64.rpm
pglite_fusion_160.0.5el9.x86_64pigsty1.3 MiBpglite_fusion_16-0.0.5-2PIGSTY.el9.x86_64.rpm
pglite_fusion_160.0.5el9.aarch64pigsty1.1 MiBpglite_fusion_16-0.0.5-2PIGSTY.el9.aarch64.rpm
pglite_fusion_160.0.5el10.x86_64pigsty1.1 MiBpglite_fusion_16-0.0.5-2PIGSTY.el10.x86_64.rpm
pglite_fusion_160.0.5el10.aarch64pigsty1.0 MiBpglite_fusion_16-0.0.5-2PIGSTY.el10.aarch64.rpm
postgresql-16-pglite-fusion0.0.5d12.x86_64pigsty1.1 MiBpostgresql-16-pglite-fusion_0.0.5-1PIGSTY~bookworm_amd64.deb
postgresql-16-pglite-fusion0.0.5d12.aarch64pigsty952.7 KiBpostgresql-16-pglite-fusion_0.0.5-1PIGSTY~bookworm_arm64.deb
postgresql-16-pglite-fusion0.0.5d13.x86_64pigsty1.2 MiBpostgresql-16-pglite-fusion_0.0.5-1PIGSTY~trixie_amd64.deb
postgresql-16-pglite-fusion0.0.5d13.aarch64pigsty975.7 KiBpostgresql-16-pglite-fusion_0.0.5-1PIGSTY~trixie_arm64.deb
postgresql-16-pglite-fusion0.0.5u22.x86_64pigsty1.2 MiBpostgresql-16-pglite-fusion_0.0.5-1PIGSTY~jammy_amd64.deb
postgresql-16-pglite-fusion0.0.5u22.aarch64pigsty1.1 MiBpostgresql-16-pglite-fusion_0.0.5-1PIGSTY~jammy_arm64.deb
postgresql-16-pglite-fusion0.0.5u24.x86_64pigsty1.2 MiBpostgresql-16-pglite-fusion_0.0.5-1PIGSTY~noble_amd64.deb
postgresql-16-pglite-fusion0.0.5u24.aarch64pigsty1.1 MiBpostgresql-16-pglite-fusion_0.0.5-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
pglite_fusion_150.0.5el8.x86_64pigsty1.2 MiBpglite_fusion_15-0.0.5-2PIGSTY.el8.x86_64.rpm
pglite_fusion_150.0.5el8.aarch64pigsty1.0 MiBpglite_fusion_15-0.0.5-2PIGSTY.el8.aarch64.rpm
pglite_fusion_150.0.5el9.x86_64pigsty1.3 MiBpglite_fusion_15-0.0.5-2PIGSTY.el9.x86_64.rpm
pglite_fusion_150.0.5el9.aarch64pigsty1.1 MiBpglite_fusion_15-0.0.5-2PIGSTY.el9.aarch64.rpm
pglite_fusion_150.0.5el10.x86_64pigsty1.1 MiBpglite_fusion_15-0.0.5-2PIGSTY.el10.x86_64.rpm
pglite_fusion_150.0.5el10.aarch64pigsty1.0 MiBpglite_fusion_15-0.0.5-2PIGSTY.el10.aarch64.rpm
postgresql-15-pglite-fusion0.0.5d12.x86_64pigsty1.1 MiBpostgresql-15-pglite-fusion_0.0.5-1PIGSTY~bookworm_amd64.deb
postgresql-15-pglite-fusion0.0.5d12.aarch64pigsty952.7 KiBpostgresql-15-pglite-fusion_0.0.5-1PIGSTY~bookworm_arm64.deb
postgresql-15-pglite-fusion0.0.5d13.x86_64pigsty1.2 MiBpostgresql-15-pglite-fusion_0.0.5-1PIGSTY~trixie_amd64.deb
postgresql-15-pglite-fusion0.0.5d13.aarch64pigsty976.0 KiBpostgresql-15-pglite-fusion_0.0.5-1PIGSTY~trixie_arm64.deb
postgresql-15-pglite-fusion0.0.5u22.x86_64pigsty1.2 MiBpostgresql-15-pglite-fusion_0.0.5-1PIGSTY~jammy_amd64.deb
postgresql-15-pglite-fusion0.0.5u22.aarch64pigsty1.1 MiBpostgresql-15-pglite-fusion_0.0.5-1PIGSTY~jammy_arm64.deb
postgresql-15-pglite-fusion0.0.5u24.x86_64pigsty1.2 MiBpostgresql-15-pglite-fusion_0.0.5-1PIGSTY~noble_amd64.deb
postgresql-15-pglite-fusion0.0.5u24.aarch64pigsty1.1 MiBpostgresql-15-pglite-fusion_0.0.5-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
pglite_fusion_140.0.5el8.x86_64pigsty1.2 MiBpglite_fusion_14-0.0.5-2PIGSTY.el8.x86_64.rpm
pglite_fusion_140.0.5el8.aarch64pigsty1.0 MiBpglite_fusion_14-0.0.5-2PIGSTY.el8.aarch64.rpm
pglite_fusion_140.0.5el9.x86_64pigsty1.3 MiBpglite_fusion_14-0.0.5-2PIGSTY.el9.x86_64.rpm
pglite_fusion_140.0.5el9.aarch64pigsty1.1 MiBpglite_fusion_14-0.0.5-2PIGSTY.el9.aarch64.rpm
pglite_fusion_140.0.5el10.x86_64pigsty1.1 MiBpglite_fusion_14-0.0.5-2PIGSTY.el10.x86_64.rpm
pglite_fusion_140.0.5el10.aarch64pigsty1.0 MiBpglite_fusion_14-0.0.5-2PIGSTY.el10.aarch64.rpm
postgresql-14-pglite-fusion0.0.5d12.x86_64pigsty1.1 MiBpostgresql-14-pglite-fusion_0.0.5-1PIGSTY~bookworm_amd64.deb
postgresql-14-pglite-fusion0.0.5d12.aarch64pigsty953.1 KiBpostgresql-14-pglite-fusion_0.0.5-1PIGSTY~bookworm_arm64.deb
postgresql-14-pglite-fusion0.0.5d13.x86_64pigsty1.2 MiBpostgresql-14-pglite-fusion_0.0.5-1PIGSTY~trixie_amd64.deb
postgresql-14-pglite-fusion0.0.5d13.aarch64pigsty975.7 KiBpostgresql-14-pglite-fusion_0.0.5-1PIGSTY~trixie_arm64.deb
postgresql-14-pglite-fusion0.0.5u22.x86_64pigsty1.2 MiBpostgresql-14-pglite-fusion_0.0.5-1PIGSTY~jammy_amd64.deb
postgresql-14-pglite-fusion0.0.5u22.aarch64pigsty1.1 MiBpostgresql-14-pglite-fusion_0.0.5-1PIGSTY~jammy_arm64.deb
postgresql-14-pglite-fusion0.0.5u24.x86_64pigsty1.2 MiBpostgresql-14-pglite-fusion_0.0.5-1PIGSTY~noble_amd64.deb
postgresql-14-pglite-fusion0.0.5u24.aarch64pigsty1.1 MiBpostgresql-14-pglite-fusion_0.0.5-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
pglite_fusion_130.0.5el8.x86_64pigsty1.2 MiBpglite_fusion_13-0.0.5-2PIGSTY.el8.x86_64.rpm
pglite_fusion_130.0.5el8.aarch64pigsty1.0 MiBpglite_fusion_13-0.0.5-2PIGSTY.el8.aarch64.rpm
pglite_fusion_130.0.5el9.x86_64pigsty1.3 MiBpglite_fusion_13-0.0.5-2PIGSTY.el9.x86_64.rpm
pglite_fusion_130.0.5el9.aarch64pigsty1.1 MiBpglite_fusion_13-0.0.5-2PIGSTY.el9.aarch64.rpm
pglite_fusion_130.0.5el10.x86_64pigsty1.1 MiBpglite_fusion_13-0.0.5-2PIGSTY.el10.x86_64.rpm
pglite_fusion_130.0.5el10.aarch64pigsty1.0 MiBpglite_fusion_13-0.0.5-2PIGSTY.el10.aarch64.rpm
postgresql-13-pglite-fusion0.0.5d12.x86_64pigsty1.1 MiBpostgresql-13-pglite-fusion_0.0.5-1PIGSTY~bookworm_amd64.deb
postgresql-13-pglite-fusion0.0.5d12.aarch64pigsty952.7 KiBpostgresql-13-pglite-fusion_0.0.5-1PIGSTY~bookworm_arm64.deb
postgresql-13-pglite-fusion0.0.5d13.x86_64pigsty1.2 MiBpostgresql-13-pglite-fusion_0.0.5-1PIGSTY~trixie_amd64.deb
postgresql-13-pglite-fusion0.0.5d13.aarch64pigsty975.7 KiBpostgresql-13-pglite-fusion_0.0.5-1PIGSTY~trixie_arm64.deb
postgresql-13-pglite-fusion0.0.5u22.x86_64pigsty1.2 MiBpostgresql-13-pglite-fusion_0.0.5-1PIGSTY~jammy_amd64.deb
postgresql-13-pglite-fusion0.0.5u22.aarch64pigsty1.1 MiBpostgresql-13-pglite-fusion_0.0.5-1PIGSTY~jammy_arm64.deb
postgresql-13-pglite-fusion0.0.5u24.x86_64pigsty1.2 MiBpostgresql-13-pglite-fusion_0.0.5-1PIGSTY~noble_amd64.deb
postgresql-13-pglite-fusion0.0.5u24.aarch64pigsty1.1 MiBpostgresql-13-pglite-fusion_0.0.5-1PIGSTY~noble_arm64.deb

Source

pig build pkg pglite_fusion;		# build rpm / deb with pig

Install

Make sure PGDG and PIGSTY repo available:

pig repo add pgdg pigsty -u   # add both repo and update cache

Install this extension with pig:

pig install pglite_fusion;		# install via package name, for the active PG version

pig install pglite_fusion -v 18;   # install for PG 18
pig install pglite_fusion -v 17;   # install for PG 17
pig install pglite_fusion -v 16;   # install for PG 16
pig install pglite_fusion -v 15;   # install for PG 15
pig install pglite_fusion -v 14;   # install for PG 14
pig install pglite_fusion -v 13;   # install for PG 13

Config this extension to shared_preload_libraries:

shared_preload_libraries = 'pglite_fusion';

Create this extension with:

CREATE EXTENSION pglite_fusion;

Usage

https://github.com/frectonz/pglite-fusion/blob/main/README.md

Here’s some demo usage.

-- Load PG extension
CREATE EXTENSION pglite_fusion;

-- Create a table with an SQLite column
CREATE TABLE people (
                        name     TEXT NOT NULL,
                        database SQLITE DEFAULT init_sqlite('CREATE TABLE todos (task TEXT)')
);

-- Insert a row into the people table
INSERT INTO people VALUES ('frectonz');

-- Create a todo for "frectonz"
UPDATE people
SET database = execute_sqlite(
        database,
        'INSERT INTO todos VALUES (''solve multitenancy'')'
               )
WHERE name = 'frectonz';

-- Create a todo for "frectonz"
UPDATE people
SET database = execute_sqlite(
        database,
        'INSERT INTO todos VALUES (''buy milk'')'
               )
WHERE name = 'frectonz';

-- Fetch frectonz's info
SELECT
    name,
    (
        SELECT json_agg(get_sqlite_text(sqlite_row, 0))
        FROM query_sqlite(
                database,
                'SELECT * FROM todos'
             )
    ) AS todos
FROM
    people
WHERE
    name = 'frectonz';

API Doc

empty_sqlite

Creates an empty SQLite database and returns it as a binary object. This can be used to initialize an empty SQLite database in a PostgreSQL column.

Example Usage:

SELECT empty_sqlite();

query_sqlite

Executes a SQL query on a SQLite database stored as a binary object and returns the result as a table of JSON-encoded rows. This function is useful for querying SQLite databases stored in PostgreSQL columns.

Parameters:

  • sqlite: The SQLite database to query, stored as a binary object.
  • query: The SQL query string to execute on the SQLite database.

Example Usage:

SELECT * FROM query_sqlite(
        database,
        'SELECT * FROM todos'
              );

execute_sqlite

Executes a SQL statement (such as INSERT, UPDATE, or DELETE) on a SQLite database stored as a binary object. The updated SQLite database is returned as a binary object, allowing further operations on it.

Parameters:

  • sqlite: The SQLite database to execute the SQL query on, stored as a binary object.
  • query: The SQL statement to execute on the SQLite database.
Example Usage:
UPDATE people
SET database = execute_sqlite(
        database,
        'INSERT INTO todos VALUES (''solve multitenancy'')'
               )
WHERE name = 'frectonz';

init_sqlite

Creates an SQLite database with an initialization query already applied on it. This can be used to initialize a SQLite database with the expected tables already created.

Parameters:

  • query: The SQL statement to execute on the SQLite database.
Example Usage:

CREATE TABLE people (
                        name     TEXT NOT NULL,
                        database SQLITE DEFAULT init_sqlite('CREATE TABLE todos (task TEXT)')
);

get_sqlite_text

Extracts a text value from a specific column in a row returned by query_sqlite. Use this function to retrieve text values from query results.

Parameters:

  • sqlite_row: A row from the results of query_sqlite.
  • index: The index of the column to extract from the row.

Example Usage:

SELECT get_sqlite_text(sqlite_row, 0)
FROM query_sqlite(database, 'SELECT * FROM todos');

get_sqlite_integer

Extracts an integer value from a specific column in a row returned by query_sqlite. Use this function to retrieve integer values from query results.

Parameters:

  • sqlite_row: A row from the results of query_sqlite.
  • index: The index of the column to extract from the row.

Example Usage:

SELECT get_sqlite_integer(sqlite_row, 1)
FROM query_sqlite(database, 'SELECT * FROM todos');

get_sqlite_real

Extracts a real (floating-point) value from a specific column in a row returned by query_sqlite. Use this function to retrieve real number values from query results.

Parameters:

  • sqlite_row: A row from the results of query_sqlite.
  • index: The index of the column to extract from the row.

Example Usage:

SELECT get_sqlite_real(sqlite_row, 2)
FROM query_sqlite(database, 'SELECT * FROM todos');
Last updated on