zstd
pg_zstd : Zstandard compression algorithm implementation in PostgreSQL
Overview
| ID | Extension | Package | Version | Category | License | Language |
|---|---|---|---|---|---|---|
| 4030 | zstd
|
pg_zstd
|
1.1.2 |
UTIL
|
ISC
|
C
|
| Attribute | Has Binary | Has Library | Need Load | Has DDL | Relocatable | Trusted |
|---|---|---|---|---|---|---|
--s-d-r
|
No
|
Yes
|
No
|
Yes
|
yes
|
no
|
| Relationships | |
|---|---|
| See Also | gzip
bzip
http
pg_net
pg_curl
pgjq
pgjwt
pg_smtp_client
|
+varatt.h
Packages
| Type | Repo | Version | PG Major Compatibility | Package Pattern | Dependencies |
|---|---|---|---|---|---|
| EXT | PIGSTY
|
1.1.2 |
18
17
16
15
14
13
|
pg_zstd |
- |
| RPM | PIGSTY
|
1.1.2 |
18
17
16
15
14
13
|
pg_zstd_$v* |
- |
| DEB | PIGSTY
|
1.1.2 |
18
17
16
15
14
13
|
postgresql-$v-zstd |
- |
| Linux / PG | PG18 | PG17 | PG16 | PG15 | PG14 | PG13 |
|---|---|---|---|---|---|---|
el8.x86_64
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
el8.aarch64
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
el9.x86_64
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
el9.aarch64
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
el10.x86_64
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
el10.aarch64
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
d12.x86_64
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
d12.aarch64
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
d13.x86_64
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
d13.aarch64
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
u22.x86_64
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
u22.aarch64
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
u24.x86_64
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
u24.aarch64
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
PIGSTY 1.1.2
|
Source
pig build pkg pg_zstd; # build rpm / deb with pigInstall
Make sure PGDG and PIGSTY repo available:
pig repo add pgdg pigsty -u # add both repo and update cacheInstall this extension with pig:
pig install pg_zstd; # install via package name, for the active PG version
pig install zstd; # install by extension name, for the current active PG version
pig install zstd -v 18; # install for PG 18
pig install zstd -v 17; # install for PG 17
pig install zstd -v 16; # install for PG 16
pig install zstd -v 15; # install for PG 15
pig install zstd -v 14; # install for PG 14
pig install zstd -v 13; # install for PG 13Create this extension with:
CREATE EXTENSION zstd;Usage
| 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 worldCompress 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