acdat
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
acdat | 0.1.1 | FTS | Apache-2.0 | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 2260 | acdat | 否 | 是 | 否 | 是 | 否 | 否 | acdat |
0.1.1 preserves the 0.1.0 SQL API and format-major-1 machine compatibility; fixed acdat schema; no preload required.
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 0.1.1 | 1817161514 | acdat | - |
| RPM | PIGSTY | 0.1.1 | 1817161514 | acdat_$v | - |
| DEB | PIGSTY | 0.1.1 | 1817161514 | postgresql-$v-acdat | - |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PIGSTY 0.1.1 el8.x86_64.pg18 : acdat_18 acdat_18-0.1.1-1PGSTY.el8.x86_64.rpm
| PIGSTY 0.1.1 el8.x86_64.pg17 : acdat_17 acdat_17-0.1.1-1PGSTY.el8.x86_64.rpm
| PIGSTY 0.1.1 el8.x86_64.pg16 : acdat_16 acdat_16-0.1.1-1PGSTY.el8.x86_64.rpm
| PIGSTY 0.1.1 el8.x86_64.pg15 : acdat_15 acdat_15-0.1.1-1PGSTY.el8.x86_64.rpm
| PIGSTY 0.1.1 el8.x86_64.pg14 : acdat_14 acdat_14-0.1.1-1PGSTY.el8.x86_64.rpm
|
| el8.aarch64 | PIGSTY 0.1.1 el8.aarch64.pg18 : acdat_18 acdat_18-0.1.1-1PGSTY.el8.aarch64.rpm
| PIGSTY 0.1.1 el8.aarch64.pg17 : acdat_17 acdat_17-0.1.1-1PGSTY.el8.aarch64.rpm
| PIGSTY 0.1.1 el8.aarch64.pg16 : acdat_16 acdat_16-0.1.1-1PGSTY.el8.aarch64.rpm
| PIGSTY 0.1.1 el8.aarch64.pg15 : acdat_15 acdat_15-0.1.1-1PGSTY.el8.aarch64.rpm
| PIGSTY 0.1.1 el8.aarch64.pg14 : acdat_14 acdat_14-0.1.1-1PGSTY.el8.aarch64.rpm
|
| el9.x86_64 | PIGSTY 0.1.1 el9.x86_64.pg18 : acdat_18 acdat_18-0.1.1-1PGSTY.el9.x86_64.rpm
| PIGSTY 0.1.1 el9.x86_64.pg17 : acdat_17 acdat_17-0.1.1-1PGSTY.el9.x86_64.rpm
| PIGSTY 0.1.1 el9.x86_64.pg16 : acdat_16 acdat_16-0.1.1-1PGSTY.el9.x86_64.rpm
| PIGSTY 0.1.1 el9.x86_64.pg15 : acdat_15 acdat_15-0.1.1-1PGSTY.el9.x86_64.rpm
| PIGSTY 0.1.1 el9.x86_64.pg14 : acdat_14 acdat_14-0.1.1-1PGSTY.el9.x86_64.rpm
|
| el9.aarch64 | PIGSTY 0.1.1 el9.aarch64.pg18 : acdat_18 acdat_18-0.1.1-1PGSTY.el9.aarch64.rpm
| PIGSTY 0.1.1 el9.aarch64.pg17 : acdat_17 acdat_17-0.1.1-1PGSTY.el9.aarch64.rpm
| PIGSTY 0.1.1 el9.aarch64.pg16 : acdat_16 acdat_16-0.1.1-1PGSTY.el9.aarch64.rpm
| PIGSTY 0.1.1 el9.aarch64.pg15 : acdat_15 acdat_15-0.1.1-1PGSTY.el9.aarch64.rpm
| PIGSTY 0.1.1 el9.aarch64.pg14 : acdat_14 acdat_14-0.1.1-1PGSTY.el9.aarch64.rpm
|
| el10.x86_64 | PIGSTY 0.1.1 el10.x86_64.pg18 : acdat_18 acdat_18-0.1.1-1PGSTY.el10.x86_64.rpm
| PIGSTY 0.1.1 el10.x86_64.pg17 : acdat_17 acdat_17-0.1.1-1PGSTY.el10.x86_64.rpm
| PIGSTY 0.1.1 el10.x86_64.pg16 : acdat_16 acdat_16-0.1.1-1PGSTY.el10.x86_64.rpm
| PIGSTY 0.1.1 el10.x86_64.pg15 : acdat_15 acdat_15-0.1.1-1PGSTY.el10.x86_64.rpm
| PIGSTY 0.1.1 el10.x86_64.pg14 : acdat_14 acdat_14-0.1.1-1PGSTY.el10.x86_64.rpm
|
| el10.aarch64 | PIGSTY 0.1.1 el10.aarch64.pg18 : acdat_18 acdat_18-0.1.1-1PGSTY.el10.aarch64.rpm
| PIGSTY 0.1.1 el10.aarch64.pg17 : acdat_17 acdat_17-0.1.1-1PGSTY.el10.aarch64.rpm
| PIGSTY 0.1.1 el10.aarch64.pg16 : acdat_16 acdat_16-0.1.1-1PGSTY.el10.aarch64.rpm
| PIGSTY 0.1.1 el10.aarch64.pg15 : acdat_15 acdat_15-0.1.1-1PGSTY.el10.aarch64.rpm
| PIGSTY 0.1.1 el10.aarch64.pg14 : acdat_14 acdat_14-0.1.1-1PGSTY.el10.aarch64.rpm
|
| d12.x86_64 | PIGSTY 0.1.1 d12.x86_64.pg18 : postgresql-18-acdat postgresql-18-acdat_0.1.1-1PGSTY~bookworm_amd64.deb
| PIGSTY 0.1.1 d12.x86_64.pg17 : postgresql-17-acdat postgresql-17-acdat_0.1.1-1PGSTY~bookworm_amd64.deb
| PIGSTY 0.1.1 d12.x86_64.pg16 : postgresql-16-acdat postgresql-16-acdat_0.1.1-1PGSTY~bookworm_amd64.deb
| PIGSTY 0.1.1 d12.x86_64.pg15 : postgresql-15-acdat postgresql-15-acdat_0.1.1-1PGSTY~bookworm_amd64.deb
| PIGSTY 0.1.1 d12.x86_64.pg14 : postgresql-14-acdat postgresql-14-acdat_0.1.1-1PGSTY~bookworm_amd64.deb
|
| d12.aarch64 | PIGSTY 0.1.1 d12.aarch64.pg18 : postgresql-18-acdat postgresql-18-acdat_0.1.1-1PGSTY~bookworm_arm64.deb
| PIGSTY 0.1.1 d12.aarch64.pg17 : postgresql-17-acdat postgresql-17-acdat_0.1.1-1PGSTY~bookworm_arm64.deb
| PIGSTY 0.1.1 d12.aarch64.pg16 : postgresql-16-acdat postgresql-16-acdat_0.1.1-1PGSTY~bookworm_arm64.deb
| PIGSTY 0.1.1 d12.aarch64.pg15 : postgresql-15-acdat postgresql-15-acdat_0.1.1-1PGSTY~bookworm_arm64.deb
| PIGSTY 0.1.1 d12.aarch64.pg14 : postgresql-14-acdat postgresql-14-acdat_0.1.1-1PGSTY~bookworm_arm64.deb
|
| d13.x86_64 | PIGSTY 0.1.1 d13.x86_64.pg18 : postgresql-18-acdat postgresql-18-acdat_0.1.1-1PGSTY~trixie_amd64.deb
| PIGSTY 0.1.1 d13.x86_64.pg17 : postgresql-17-acdat postgresql-17-acdat_0.1.1-1PGSTY~trixie_amd64.deb
| PIGSTY 0.1.1 d13.x86_64.pg16 : postgresql-16-acdat postgresql-16-acdat_0.1.1-1PGSTY~trixie_amd64.deb
| PIGSTY 0.1.1 d13.x86_64.pg15 : postgresql-15-acdat postgresql-15-acdat_0.1.1-1PGSTY~trixie_amd64.deb
| PIGSTY 0.1.1 d13.x86_64.pg14 : postgresql-14-acdat postgresql-14-acdat_0.1.1-1PGSTY~trixie_amd64.deb
|
| d13.aarch64 | PIGSTY 0.1.1 d13.aarch64.pg18 : postgresql-18-acdat postgresql-18-acdat_0.1.1-1PGSTY~trixie_arm64.deb
| PIGSTY 0.1.1 d13.aarch64.pg17 : postgresql-17-acdat postgresql-17-acdat_0.1.1-1PGSTY~trixie_arm64.deb
| PIGSTY 0.1.1 d13.aarch64.pg16 : postgresql-16-acdat postgresql-16-acdat_0.1.1-1PGSTY~trixie_arm64.deb
| PIGSTY 0.1.1 d13.aarch64.pg15 : postgresql-15-acdat postgresql-15-acdat_0.1.1-1PGSTY~trixie_arm64.deb
| PIGSTY 0.1.1 d13.aarch64.pg14 : postgresql-14-acdat postgresql-14-acdat_0.1.1-1PGSTY~trixie_arm64.deb
|
| u22.x86_64 | PIGSTY 0.1.1 u22.x86_64.pg18 : postgresql-18-acdat postgresql-18-acdat_0.1.1-1PGSTY~jammy_amd64.deb
| PIGSTY 0.1.1 u22.x86_64.pg17 : postgresql-17-acdat postgresql-17-acdat_0.1.1-1PGSTY~jammy_amd64.deb
| PIGSTY 0.1.1 u22.x86_64.pg16 : postgresql-16-acdat postgresql-16-acdat_0.1.1-1PGSTY~jammy_amd64.deb
| PIGSTY 0.1.1 u22.x86_64.pg15 : postgresql-15-acdat postgresql-15-acdat_0.1.1-1PGSTY~jammy_amd64.deb
| PIGSTY 0.1.1 u22.x86_64.pg14 : postgresql-14-acdat postgresql-14-acdat_0.1.1-1PGSTY~jammy_amd64.deb
|
| u22.aarch64 | PIGSTY 0.1.1 u22.aarch64.pg18 : postgresql-18-acdat postgresql-18-acdat_0.1.1-1PGSTY~jammy_arm64.deb
| PIGSTY 0.1.1 u22.aarch64.pg17 : postgresql-17-acdat postgresql-17-acdat_0.1.1-1PGSTY~jammy_arm64.deb
| PIGSTY 0.1.1 u22.aarch64.pg16 : postgresql-16-acdat postgresql-16-acdat_0.1.1-1PGSTY~jammy_arm64.deb
| PIGSTY 0.1.1 u22.aarch64.pg15 : postgresql-15-acdat postgresql-15-acdat_0.1.1-1PGSTY~jammy_arm64.deb
| PIGSTY 0.1.1 u22.aarch64.pg14 : postgresql-14-acdat postgresql-14-acdat_0.1.1-1PGSTY~jammy_arm64.deb
|
| u24.x86_64 | PIGSTY 0.1.1 u24.x86_64.pg18 : postgresql-18-acdat postgresql-18-acdat_0.1.1-1PGSTY~noble_amd64.deb
| PIGSTY 0.1.1 u24.x86_64.pg17 : postgresql-17-acdat postgresql-17-acdat_0.1.1-1PGSTY~noble_amd64.deb
| PIGSTY 0.1.1 u24.x86_64.pg16 : postgresql-16-acdat postgresql-16-acdat_0.1.1-1PGSTY~noble_amd64.deb
| PIGSTY 0.1.1 u24.x86_64.pg15 : postgresql-15-acdat postgresql-15-acdat_0.1.1-1PGSTY~noble_amd64.deb
| PIGSTY 0.1.1 u24.x86_64.pg14 : postgresql-14-acdat postgresql-14-acdat_0.1.1-1PGSTY~noble_amd64.deb
|
| u24.aarch64 | PIGSTY 0.1.1 u24.aarch64.pg18 : postgresql-18-acdat postgresql-18-acdat_0.1.1-1PGSTY~noble_arm64.deb
| PIGSTY 0.1.1 u24.aarch64.pg17 : postgresql-17-acdat postgresql-17-acdat_0.1.1-1PGSTY~noble_arm64.deb
| PIGSTY 0.1.1 u24.aarch64.pg16 : postgresql-16-acdat postgresql-16-acdat_0.1.1-1PGSTY~noble_arm64.deb
| PIGSTY 0.1.1 u24.aarch64.pg15 : postgresql-15-acdat postgresql-15-acdat_0.1.1-1PGSTY~noble_arm64.deb
| PIGSTY 0.1.1 u24.aarch64.pg14 : postgresql-14-acdat postgresql-14-acdat_0.1.1-1PGSTY~noble_arm64.deb
|
| u26.x86_64 | PIGSTY 0.1.1 u26.x86_64.pg18 : postgresql-18-acdat postgresql-18-acdat_0.1.1-1PGSTY~resolute_amd64.deb
| PIGSTY 0.1.1 u26.x86_64.pg17 : postgresql-17-acdat postgresql-17-acdat_0.1.1-1PGSTY~resolute_amd64.deb
| PIGSTY 0.1.1 u26.x86_64.pg16 : postgresql-16-acdat postgresql-16-acdat_0.1.1-1PGSTY~resolute_amd64.deb
| PIGSTY 0.1.1 u26.x86_64.pg15 : postgresql-15-acdat postgresql-15-acdat_0.1.1-1PGSTY~resolute_amd64.deb
| PIGSTY 0.1.1 u26.x86_64.pg14 : postgresql-14-acdat postgresql-14-acdat_0.1.1-1PGSTY~resolute_amd64.deb
|
| u26.aarch64 | PIGSTY 0.1.1 u26.aarch64.pg18 : postgresql-18-acdat postgresql-18-acdat_0.1.1-1PGSTY~resolute_arm64.deb
| PIGSTY 0.1.1 u26.aarch64.pg17 : postgresql-17-acdat postgresql-17-acdat_0.1.1-1PGSTY~resolute_arm64.deb
| PIGSTY 0.1.1 u26.aarch64.pg16 : postgresql-16-acdat postgresql-16-acdat_0.1.1-1PGSTY~resolute_arm64.deb
| PIGSTY 0.1.1 u26.aarch64.pg15 : postgresql-15-acdat postgresql-15-acdat_0.1.1-1PGSTY~resolute_arm64.deb
| PIGSTY 0.1.1 u26.aarch64.pg14 : postgresql-14-acdat postgresql-14-acdat_0.1.1-1PGSTY~resolute_arm64.deb
|
构建
您可以使用 pig build 命令构建 acdat 扩展的 RPM / DEB 包:
安装
您可以直接安装 acdat 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
使用 pig 或者是 apt/yum/dnf 安装扩展:
创建扩展:
用法
来源:
acdat 0.1.1 将大规模精确字面量模式词典编译为不可变的 Aho-Corasick Double-Array machine,再对每个 text 或 bytea 值执行一次扫描以完成匹配或替换。它适合策略规则、失陷指标、实体名称、脱敏别名等稳定且会被反复使用的词典。
核心流程
创建扩展、编译词典,并在大量输入上复用生成的 acdat.machine 值:
生产词典的源规则应保存在应用自有表中。acdat.compile() 的聚合重载可以直接从模式、ID、替换值和优先级记录构建确定性的 machine;一次编译后即可扫描大量输入。
匹配与替换
acdat.contains() 在首次命中后停止。acdat.matches() 返回 acdat.hit 行,其中包含模式 ID、字节与字符坐标以及优先级。acdat.replace() 执行字面量、非递归替换:
匹配策略包括 all_overlapping、leftmost_longest 和 leftmost_priority。替换只能使用非重叠策略。可通过 acdat.info() 检查已编译 machine,并在移动或校验产物时使用导出、验证、导入和指纹函数。
acdat.matches() 的 max_matches 默认值为 10000,acdat.replace() 的 max_output_bytes 默认值为 268435456。对于不可信或高命中输入,应设置更严格的上限,确保命中枚举和替换输出有界。
托管词典
可选的目录层用于发布不可变、内容寻址的 build,并以原子方式选择一个活动 build。其控制函数使用 SECURITY INVOKER,且不向 PUBLIC 授予执行权限:
应用表始终是事实源。逻辑备份包含目录元数据和活动 machine 载荷,但不会包含所有历史产物,因此应保留重建已退休或非活动版本所需的源模式。
兼容性与安全
0.1.1 已在 PostgreSQL 14 至 18 上测试,不需要预加载或重启服务器,没有外部扩展依赖,也不定义 GUC。控制文件将 schema 固定为 acdat,并设置 relocatable = false 和 trusted = false,因此 CREATE EXTENSION 需要超级用户。
0.1.1 保持 0.1.0 SQL API 与 format-major-1 machine 兼容,并提供 0.1.0 -> 0.1.1 扩展升级路径;同时加入可取消编译、保守的构建工作量预算和更快的物化扫描路径,而不改变持久化 machine 契约。
ACDAT 索引的是模式词典,而不是文档表:扫描已有大表时仍需读取候选行。匹配是精确且区分大小写的;扩展不提供正则表达式、模糊匹配、分词、自动大小写折叠、Unicode 规范化或文档侧索引。文本引擎支持 UTF-8 和单字节服务器编码,二进制数据应使用 bytea 接口。需要反复反向查询时,应将 (document_id, pattern_id) 命中物化到应用表中。
编译格式具备自描述和校验和,导入的产物会在使用前接受验证。卸载前应清点依赖:DROP EXTENSION acdat 会删除托管词典状态,而添加 CASCADE 还可能删除依赖 acdat.machine 的用户列或其他对象。
这个页面对您有帮助吗?
感谢反馈,我们会据此改进这篇文档。
哪里没有解决?(可选)