onesparse
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
one_sparse | 1.0.0 | FEAT | Apache-2.0 | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 2620 | onesparse | 否 | 是 | 否 | 是 | 否 | 否 | onesparse |
| 相关扩展 | age pgrouting postgis |
|---|
PG18 only; upstream release v1.0.0 ships extension SQL version 0.1.0
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| 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 |
| u26.x86_64 | PIGSTY 1.0.0 u26.x86_64.pg18 : postgresql-18-onesparse postgresql-18-onesparse_1.0.0-1PIGSTY~resolute_amd64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| u26.aarch64 | PIGSTY 1.0.0 u26.aarch64.pg18 : postgresql-18-onesparse postgresql-18-onesparse_1.0.0-1PIGSTY~resolute_arm64.deb
| PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
构建
您可以使用 pig build 命令构建 one_sparse 扩展的 RPM / DEB 包:
pig build pkg one_sparse # 构建 RPM / DEB 包
安装
您可以直接安装 one_sparse 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
pig repo add pgsql -u # 添加仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install one_sparse; # 当前活跃 PG 版本安装
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 onesparse;
用法
来源:homepage, release v1.0.0, control file at v1.0.0, intro docs, matrix docs, vector docs, algorithm examples
OneSparse 是一个把 SuiteSparse:GraphBLAS 绑定进 Postgres 的 PostgreSQL 扩展,它把稀疏线性代数和图算法暴露为新的类型、函数与运算符。文档将 matrix 视为核心类型,vector 和 scalar 建立在同一模型之上。v1.0.0 release 已存在,但该标签下的 extension control file 仍声明 SQL default_version = '0.1.0'。
核心设置
CREATE EXTENSION onesparse;
SET search_path TO public,onesparse;
SELECT 'int32'::matrix;
SELECT 'int32'::vector;
SELECT 'int32:42'::scalar;
文档站点按 matrix、vector 和 scalar 组织 API,交互示例主要依赖类型转换和构造器。
Matrix 与 Vector
matrix 页面展示了构造、print()、draw()、赋值、提取、cast_to()、调整大小和聚合等常见操作。vector 页面记录了对应的向量 API,包括 nvals(), size(), eadd(), emult(), reduce_scalar(), choose() 和 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');
图算法
示例页使用 Matrix Market 输入与 draw(...) 图形可视化。文档列出的图算法包括:
bfs(graph, 1),用于 level 和 parent BFSsssp(cast_to(graph, 'int32'), 1::bigint, 1),用于单源最短路径pagerank(graph),用于按链接结构给顶点排序triangle_centrality(graph),用于基于三角形的中心性betweenness(graph, ARRAY[...])和square_clustering(graph),用于补充图分析
文档中的代表性示例:
SELECT draw(triu(graph), (SELECT level FROM bfs(graph, 1)), false, false, true, 0.5)
FROM karate;
同一份指南还展示了使用 mmread('/home/postgres/onesparse/demo/karate.mtx') 加载图。