base62
Base62编码解码扩展
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pg_base62 | 0.0.1 | FUNC | MIT | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 4810 | base62 | 否 | 是 | 否 | 是 | 否 | 否 | - |
| 相关扩展 | base36 pg_base58 pg_polyline uri pg_curl url_encode pg_rewrite sepgsql |
|---|
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 0.0.1 | 1817161514 | pg_base62 | - |
| RPM | PIGSTY | 0.0.1 | 1817161514 | pg_base62_$v | - |
| DEB | PIGSTY | 0.0.1 | 1817161514 | postgresql-$v-base62 | - |
构建
您可以使用 pig build 命令构建 pg_base62 扩展的 RPM / DEB 包:
pig build pkg pg_base62 # 构建 RPM / DEB 包
安装
您可以直接安装 pg_base62 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
pig repo add pgsql -u # 添加仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install pg_base62; # 当前活跃 PG 版本安装
pig ext install -y pg_base62 -v 18 # PG 18
pig ext install -y pg_base62 -v 17 # PG 17
pig ext install -y pg_base62 -v 16 # PG 16
pig ext install -y pg_base62 -v 15 # PG 15
pig ext install -y pg_base62 -v 14 # PG 14
dnf install -y pg_base62_18 # PG 18
dnf install -y pg_base62_17 # PG 17
dnf install -y pg_base62_16 # PG 16
dnf install -y pg_base62_15 # PG 15
dnf install -y pg_base62_14 # PG 14
apt install -y postgresql-18-base62 # PG 18
apt install -y postgresql-17-base62 # PG 17
apt install -y postgresql-16-base62 # PG 16
apt install -y postgresql-15-base62 # PG 15
apt install -y postgresql-14-base62 # PG 14
创建扩展:
CREATE EXTENSION base62;
用法
提供使用 base62 方案(0-9、A-Z、a-z)进行编码和解码的数据类型。
CREATE EXTENSION base62;
类型
| 类型 | 存储 | 最大字符串长度 | 最大数值 |
|---|---|---|---|
base62 | 4 字节(int) | 6 字符 | 2,147,483,647 |
bigbase62 | 8 字节(bigint) | 11 字符 | 9,223,372,036,854,775,807 |
hugebase62 | 16 字节 | 20 字符 | (bytea 转换) |
示例
-- 编码/解码 base62
SELECT 2147483647::base62; -- '2LKcb1'
SELECT '2LKcb1'::base62::int; -- 2147483647
-- 用于更大数值的 bigbase62
SELECT 9223372036854775807::bigbase62; -- 'AzL8n0Y58m7'
SELECT 'AzL8n0Y58m7'::bigbase62::bigint; -- 9223372036854775807
-- hugebase62 与 bytea 转换
SELECT 'AzL8n0Y58m7AzL8n0Y58'::hugebase62;
SELECT 'AzL8n0Y58m7AzL8n0Y58'::hugebase62::bytea;
SELECT '\x960c06065a6ed8ffff1e7149f40b1800'::bytea::hugebase62;
-- 注意:base62 区分大小写
SELECT '2lkcb'::base62::int; -- 40933305
SELECT '2LKCB'::base62::int; -- 34635195