omni_csv

Omnigres CSV 工具箱

概览

扩展包名版本分类许可证语言
omni_csv0.1.1FEATApache-2.0C
ID扩展名BinLibLoadCreateTrustReloc模式
2946omni_csvomni_csv

版本

类型仓库版本PG 大版本包名依赖
EXTPIGSTY0.1.11817161514omni_csv-
RPMPIGSTY0.1.11817161514omnigres_$v-
DEBPIGSTY0.1.11817161514postgresql-$v-omnigres-

构建

您可以使用 pig build 命令构建 omni_csv 扩展的 RPM / DEB 包:

pig build pkg omni_csv         # 构建 RPM / DEB 包

安装

您可以直接安装 omni_csv 扩展包的预置二进制包,首先确保 PGDGPIGSTY 仓库已经添加并启用:

pig repo add pgsql -u          # 添加仓库并更新缓存

使用 pig 或者是 apt/yum/dnf 安装扩展:

pig install omni_csv;          # 当前活跃 PG 版本安装
pig ext install -y omni_csv -v 18  # PG 18
pig ext install -y omni_csv -v 17  # PG 17
pig ext install -y omni_csv -v 16  # PG 16
pig ext install -y omni_csv -v 15  # PG 15
pig ext install -y omni_csv -v 14  # PG 14
dnf install -y omnigres_18       # PG 18
dnf install -y omnigres_17       # PG 17
dnf install -y omnigres_16       # PG 16
dnf install -y omnigres_15       # PG 15
dnf install -y omnigres_14       # PG 14
apt install -y postgresql-18-omnigres   # PG 18
apt install -y postgresql-17-omnigres   # PG 17
apt install -y postgresql-16-omnigres   # PG 16
apt install -y postgresql-15-omnigres   # PG 15
apt install -y postgresql-14-omnigres   # PG 14

创建扩展

CREATE EXTENSION omni_csv;

用法

omni_csv: CSV 工具箱

omni_csv 扩展提供 CSV 解析、检查和生成函数。

检查 CSV 结构

SELECT * FROM omni_csv.csv_info(E'name,age,city\nJohn,25,NYC\nJane,30,LA');
-- 返回: name, age, city(每列一行)

将 CSV 解析为记录

SELECT * FROM omni_csv.parse(E'name,age,city\nJohn,25,NYC\nJane,30,LA')
    AS t(name text, age text, city text);

需要使用 AS t(...) 子句指定列结构,并应与 CSV 结构匹配。

从查询结果生成 CSV

SELECT omni_csv.csv_agg(t)
FROM (SELECT name, age, city FROM employees ORDER BY name) t;

返回带标题和正确转义值的 CSV 文本。空结果集返回空字符串。

限制

  • 大型 CSV 字符串完全在内存中处理(无流式处理)
  • 列类型必须在 AS t(...) 子句中声明
  • 对于重复访问,建议将解析后的数据物化

最后修改 2026-03-14: update extension metadata (953cbd0)