Skip to content

feat: 增加有界字符串聚合和可空结果元数据 - #284

Merged
maikebing merged 16 commits into
mainfrom
codex/issue223-string-aggregation
Oct 12, 2026
Merged

maikebing merged 16 commits into
mainfrom
codex/issue223-string-aggregation

Conversation

@maikebing

@maikebing maikebing commented Oct 11, 2026 •

Copy link
Copy Markdown
Member

关系表查询此前缺少 StringAgg/string.Join 所需的字符串聚合。现在提供 string_agg(value, delimiter) 和双参数 group_concat,支持分组、JOIN 和相关单列子查询,返回可空 String 元数据。

变更点

  • STRING/NULL 输入跳过 NULL,保留空字符串、重复值和 Unicode;空集合与全 NULL 返回 NULL,NULL 分隔符按空字符串处理,输入次序不保证。
  • 参数分隔符经现有绑定处理;明确拒绝 DISTINCT、内部 ORDER BY、OVER 和 measurement 扩展。
  • 输入表达式仅求值一次;长度检查、查询/数据库内存预算与取消处理绑定根查询资源,成功结果预留随根查询释放。

对应 ROADMAP

测试说明

  • 最终 Core 39/39,真实 REST/h2c 17/17;实际 TRX、最终源码及执行 DLL hash 独立核验。
  • 覆盖分组、JOIN、相关子查询、空结果元数据、UDF 覆盖、溢出预算、共享预算、spill/cancellation 后恢复;五运行审计无存活或未知身份,17 TEMP 对象已清理。
  • 最终完整 restore、原 CI Format Check 和默认 whitespace check 全部通过。
  • 初次远程 15/17 的 DBNull fixture 错误和 Core 38/39 的既有 CAST 聚合限制保留;修正新测试使用既有 raw null 和 concat(sum) 合同,没有混入 [Chloe][SQL] 🚧 允许 CAST 包装聚合投影并保留类型语义 #254 CAST 修复。
  • 正式 NuGet、FreeSql StringAgg/string.Join 和完整 NativeAOT 宿主发布 NOT_RUN。

是否破坏兼容

  • 是(说明原因及迁移方案)
  • 否

CHANGELOG 更新

  • 已更新 [Unreleased]。

本次正常集成当前主分支、已刷新 #213/#269 与 Outbox 前置;生产和测试源文件逐字保持,原39/39及17/17作为先前定向证据保留。本次最终完整restore/原CI Format Check通过后提交;新提交 f81b4ac 的全量CI独立核验,旧head结果不赋给新提交。

dependabot Bot and others added 16 commits October 3, 2026 00:34
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.38.1 to 4.38.2.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@v4.38.1...v4.38.2)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.38.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
updated-dependencies:
- dependency-name: SkiaSharp
  dependency-version: 4.153.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
updated-dependencies:
- dependency-name: Microsoft.ML.OnnxRuntime
  dependency-version: 1.31.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
  dependency-version: 4.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@maikebing
maikebing merged commit 6ed3a7e into main Oct 12, 2026
11 of 12 checks passed
@maikebing
maikebing deleted the codex/issue223-string-aggregation branch October 15, 2026 04:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant