Skip to content

spec: $regex 按 ADR-0049 退役 + $icontains 入算子词表与 FILTER_LOGIC_CASES(#4706 裁决 B 案 · 契约半边,先行) #5701

Description

@os-zhuang

Part of #4706(维护者 2026-08-06 裁决 B 案,裁决与三轴分析见该单 2026-08-06 两条评论)。契约半边,先行;驱动半边 Blocked-by 本单。

裁定摘录

$regex 退役:查询校验期响亮拒收,拒收信息点名替代物($icontains);同批新增 $icontains(大小写不敏感包含;$istartsWith / $iendsWith 仅当与既有算子族对称性成立时一并加,不强求)。排除项:五后端真正则(turso remote 线协议无法注册 REGEXP,结构性不可行)、维持现状(名实不符)。

本单范围(packages/spec)

  1. 词表:filter 算子 zod schema / 类型中移除 $regex(含 $options,它只被 $regex 消费 — 实施时核实),新增 $icontains;按 ADR-0049 / ADR-0087 退役路线处理注册表与转换记录(适用面按 spec-property-retirement playbook 判断 — 查询算子词表若不属 authorable-surface 轨道,如实记录即可,不硬套)。
  2. case-set:FILTER_LOGIC_CASES 新增 $icontains 用例 — 至少覆盖:双向大小写折叠命中、% / _ / 正则元字符作字面量处理(转义纪律沿 applyLike,见 driver-sql 的 LIKE 转义(自标 P0 的过滤器旁路)只在 SQLite 上验证过 —— live PG + MySQL 矩阵已存在、testkit 也已存在,LIKE 族一个用例都没接进去 #5589 的方言矩阵)、空串/非字符串比较值的拒收形态(循 ADR-0112 信封惯例);外加 $regex拒收 pin(校验期报错,信息含替代物指名)。case-set 落地即由 5×5 conformance 矩阵在各 driver 侧转成待实现红/DEBT — 这是设计内的推进机制。
  3. 全仓 $regex 使用面清点:examples / 测试 / 文档中现存用法随退役同 PR 翻转(裁决实施的 pin sweep 纪律:一轮翻完,翻后的断言仍承重)。

边界

归属:packages/specdomain:spec 座位(shared contract surfaces have one owner);domain:* 标签待分诊座位补。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions