zstd

ZSTD压缩解压缩函数包

扩展总览

PIGSTY 第三方扩展: pg_zstd : ZSTD压缩解压缩函数包

基本信息

元数据

  • 默认版本: 1.1.2
  • PG大版本: 17,16,15,14,13
  • 动态加载: 无需动态加载
  • 需要DDL: 需要执行 CREATE EXTENSION DDL
  • 可重定位: 无法安装至任意模式下
  • 信任程度: 未知
  • 所需模式: 无
  • 所需扩展: 无

软件包

  • RPM仓库:PIGSTY
  • RPM包名:pg_zstd_$v*
  • RPM版本:1.1.2
  • RPM依赖:无
  • DEB仓库:PIGSTY
  • DEB包名:postgresql-$v-zstd
  • DEB版本:1.1.2
  • DEB依赖:无

最新版本

系统 架构 PG17 PG16 PG15 PG14 PG13
el8 x86_64 pg_zstd_17
PIGSTY 1.1.2
pg_zstd_16
PIGSTY 1.1.2
pg_zstd_15
PIGSTY 1.1.2
pg_zstd_14
PIGSTY 1.1.2
pg_zstd_13
PIGSTY 1.1.2
el8 aarch64 pg_zstd_17
PIGSTY 1.1.2
pg_zstd_16
PIGSTY 1.1.2
pg_zstd_15
PIGSTY 1.1.2
pg_zstd_14
PIGSTY 1.1.2
pg_zstd_13
PIGSTY 1.1.2
el9 x86_64 pg_zstd_17
PIGSTY 1.1.2
pg_zstd_16
PIGSTY 1.1.2
pg_zstd_15
PIGSTY 1.1.2
pg_zstd_14
PIGSTY 1.1.2
pg_zstd_13
PIGSTY 1.1.2
el9 aarch64 pg_zstd_17
PIGSTY 1.1.2
pg_zstd_16
PIGSTY 1.1.2
pg_zstd_15
PIGSTY 1.1.2
pg_zstd_14
PIGSTY 1.1.2
pg_zstd_13
PIGSTY 1.1.2
d12 x86_64 postgresql-17-zstd
PIGSTY 1.1.2
postgresql-16-zstd
PIGSTY 1.1.2
postgresql-15-zstd
PIGSTY 1.1.2
postgresql-14-zstd
PIGSTY 1.1.2
postgresql-13-zstd
PIGSTY 1.1.2
d12 aarch64 postgresql-17-zstd
PIGSTY 1.1.2
postgresql-16-zstd
PIGSTY 1.1.2
postgresql-15-zstd
PIGSTY 1.1.2
postgresql-14-zstd
PIGSTY 1.1.2
postgresql-13-zstd
PIGSTY 1.1.2
u22 x86_64 postgresql-17-zstd
PIGSTY 1.1.2
postgresql-16-zstd
PIGSTY 1.1.2
postgresql-15-zstd
PIGSTY 1.1.2
postgresql-14-zstd
PIGSTY 1.1.2
postgresql-13-zstd
PIGSTY 1.1.2
u22 aarch64 postgresql-17-zstd
PIGSTY 1.1.2
postgresql-16-zstd
PIGSTY 1.1.2
postgresql-15-zstd
PIGSTY 1.1.2
postgresql-14-zstd
PIGSTY 1.1.2
postgresql-13-zstd
PIGSTY 1.1.2
u24 x86_64 postgresql-17-zstd
PIGSTY 1.1.2
postgresql-16-zstd
PIGSTY 1.1.2
postgresql-15-zstd
PIGSTY 1.1.2
postgresql-14-zstd
PIGSTY 1.1.2
postgresql-13-zstd
PIGSTY 1.1.2
u24 aarch64 postgresql-17-zstd
PIGSTY 1.1.2
postgresql-16-zstd
PIGSTY 1.1.2
postgresql-15-zstd
PIGSTY 1.1.2
postgresql-14-zstd
PIGSTY 1.1.2
postgresql-13-zstd
PIGSTY 1.1.2

扩展安装

使用 pig 命令行工具安装 pg_zstd 扩展:

pig ext install pg_zstd; # 扩展名称
pig ext install zstd; # 标准包名

使用 Pigsty剧本 安装 pg_zstd 扩展:

./pgsql.yml -t pg_extension -e '{"pg_extensions": ["pg_zstd"]}' # -l <集群名>

YUM仓库 手工安装 pg_zstd RPM 包:

dnf install pg_zstd_17*;
dnf install pg_zstd_16*;
dnf install pg_zstd_15*;
dnf install pg_zstd_14*;
dnf install pg_zstd_13*;

APT仓库 手工安装 pg_zstd DEB 包:

apt install postgresql-17-zstd;
apt install postgresql-16-zstd;
apt install postgresql-15-zstd;
apt install postgresql-14-zstd;
apt install postgresql-13-zstd;

使用以下 SQL 命令在已经安装此扩展插件的 PG 集群上 启用 zstd 扩展:

CREATE EXTENSION zstd;

使用方法

Function Return Type
zstd_compress(data bytea [, dictionary bytea [, level integer ]]) bytea
zstd_decompress(data bytea [, dictionary bytea ]) bytea
zstd_length(data bytea) integer

zstd_compress compresses the provided data and returns a Zstandard frame. A preset dictionary may also be provided. The default compression level may also be overriden, valid values range from 1 (best speed) to 22 (best compression). The default level is 3.

If you want to override the compression level without using a dictionary, set dictionary to NULL.

zstd_decompress decompresses the provided Zstandard frame in data and returns the uncompressed data. A preset dictionary, matching the dictionary used to compress the data, may also be provided.

zstd_length returns the decompressed length of the provided Zstandard frame. If ZSTD_getFrameContentSize() is available it returns NULL if the length is unknown. If unavailable, it isn’t possible to distinguish the error, unknown decompressed length and zero decompressed length cases.

Example

Basic compress/decompress example:

CREATE EXTENSION zstd;

SELECT zstd_compress('hello world');
-- zstd_compress
-- --------------------------------------------
-- \x28b52ffd200b59000068656c6c6f20776f726c64

SELECT convert_from(zstd_decompress('\x28b52ffd200b59000068656c6c6f20776f726c64'), 'utf-8');
-- convert_from
-- --------------
--  hello world

Compress with level (1 for best speed, 22 for best compression, default to 3)

CREATE EXTENSION zstd;

SELECT zstd_compress('hello world',  NULL, 10);
-- zstd_compress
-- --------------------------------------------
-- \x28b52ffd200b59000068656c6c6f20776f726c64

SELECT convert_from(zstd_decompress('\x28b52ffd200b59000068656c6c6f20776f726c64'), 'utf-8');
-- convert_from
-- --------------
--  hello world




最后修改 2025-03-20: update extension version (52133a3)