onesparse
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
one_sparse | 1.0.0 | FEAT | Apache-2.0 | C |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 2980 | onesparse | No | Yes | No | Yes | No | No | onesparse |
| Related | age pgrouting postgis |
|---|
PG18 only; upstream release v1.0.0 ships extension SQL version 0.1.0
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.0.0 | 1817161514 | one_sparse | - |
| RPM | PIGSTY | 1.0.0 | 1817161514 | onesparse_$v | graphblas, lagraph |
| DEB | PIGSTY | 1.0.0 | 1817161514 | postgresql-$v-onesparse | libgraphblas10, liblagraph1, liblagraphx1 |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PIGSTY 1.0.0 el8.x86_64.pg18 : onesparse_18 onesparse_18-1.0.0-1PIGSTY.el8.x86_64.rpm
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el8.aarch64 | PIGSTY 1.0.0 el8.aarch64.pg18 : onesparse_18 onesparse_18-1.0.0-1PIGSTY.el8.aarch64.rpm
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el9.x86_64 | PIGSTY 1.0.0 el9.x86_64.pg18 : onesparse_18 onesparse_18-1.0.0-1PIGSTY.el9.x86_64.rpm
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el9.aarch64 | PIGSTY 1.0.0 el9.aarch64.pg18 : onesparse_18 onesparse_18-1.0.0-1PIGSTY.el9.aarch64.rpm
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el10.x86_64 | PIGSTY 1.0.0 el10.x86_64.pg18 : onesparse_18 onesparse_18-1.0.0-1PIGSTY.el10.x86_64.rpm
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el10.aarch64 | PIGSTY 1.0.0 el10.aarch64.pg18 : onesparse_18 onesparse_18-1.0.0-1PIGSTY.el10.aarch64.rpm
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| d12.x86_64 | PIGSTY 1.0.0 d12.x86_64.pg18 : postgresql-18-onesparse postgresql-18-onesparse_1.0.0-1PIGSTY~bookworm_amd64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| d12.aarch64 | PIGSTY 1.0.0 d12.aarch64.pg18 : postgresql-18-onesparse postgresql-18-onesparse_1.0.0-1PIGSTY~bookworm_arm64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| d13.x86_64 | PIGSTY 1.0.0 d13.x86_64.pg18 : postgresql-18-onesparse postgresql-18-onesparse_1.0.0-1PIGSTY~trixie_amd64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| d13.aarch64 | PIGSTY 1.0.0 d13.aarch64.pg18 : postgresql-18-onesparse postgresql-18-onesparse_1.0.0-1PIGSTY~trixie_arm64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| u22.x86_64 | PIGSTY 1.0.0 u22.x86_64.pg18 : postgresql-18-onesparse postgresql-18-onesparse_1.0.0-1PIGSTY~jammy_amd64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| u22.aarch64 | PIGSTY 1.0.0 u22.aarch64.pg18 : postgresql-18-onesparse postgresql-18-onesparse_1.0.0-1PIGSTY~jammy_arm64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| u24.x86_64 | PIGSTY 1.0.0 u24.x86_64.pg18 : postgresql-18-onesparse postgresql-18-onesparse_1.0.0-1PIGSTY~noble_amd64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| u24.aarch64 | PIGSTY 1.0.0 u24.aarch64.pg18 : postgresql-18-onesparse postgresql-18-onesparse_1.0.0-1PIGSTY~noble_arm64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
Build
You can build the RPM / DEB packages for one_sparse using pig build:
pig build pkg one_sparse # build RPM / DEB packages
Install
You can install one_sparse 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 one_sparse; # Install for current active PG version
pig ext install -y one_sparse -v 18 # PG 18
dnf install -y onesparse_18 # PG 18
apt install -y postgresql-18-onesparse # PG 18
Create Extension:
CREATE EXTENSION onesparse;
Usage
Sources: homepage, intro docs, Matrix, Vector, and Algorithms.
OneSparse is a PostgreSQL extension that binds SuiteSparse:GraphBLAS into Postgres and exposes sparse linear algebra and graph algorithms as new types, functions, and operators.
The docs treat matrix as the core type, with vector and scalar built on top of the same model.
Core Setup
CREATE EXTENSION onesparse;
SET search_path TO public,onesparse;
SELECT 'int32'::matrix;
SELECT 'int32'::vector;
SELECT 'int32:42'::scalar;
The intro docs note that OneSparse keeps its API in the onesparse schema, and the matrix/vector pages show the same search_path pattern for interactive use.
Matrix and Vector
The matrix page shows common operations such as constructing, printing, drawing, resizing, casting, and aggregating matrices.
The vector page shows the matching vector API, including nvals, size, set_element, get_element, eadd, emult, reduce_scalar, choose, and apply.
SELECT print('int32(4:4)'::matrix);
SELECT draw('int32(4:4)[1:2:1 2:3:2 3:1:3]'::matrix);
SELECT eadd('int32[0:1 1:2 2:3]'::vector, 'int32[0:1 1:2 2:3]'::vector, 'plus_int32');
SELECT reduce_scalar('int32[0:1 1:2 2:3]'::vector, 'plus_monoid_int32');
Graph Algorithms
The getting-started docs use graph examples built from Matrix Market files and random graphs. They highlight these algorithms:
bfs(graph, 1)for level and parent BFSsssp(cast_to(graph, 'int32'), 1::bigint, 1)for single-source shortest pathpagerank(graph)for ranking vertices by link structuretriangle_centrality(graph)for triangle-based centralitybetweenness(graph, ARRAY[...])andsquare_clustering(graph)for additional graph analysis
Representative example from the docs:
SELECT draw(triu(graph), (SELECT level FROM bfs(graph, 1)), false, false, true, 0.5)
FROM karate;
The same guide also shows graph loading with mmread(...) and graph visualization with draw(...).
Scope
The documentation set is broad. This stub captures the core interface and the main examples that repeat across the intro, matrix, vector, and algorithms pages, without reproducing the full GraphBLAS catalog.
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.