Skip to content

fix(sql,job): 修复字段截断破坏 JSON 结构的问题 - #16

Merged
lyman merged 2 commits into
mainfrom
fix/dev-release-version-format
Jun 16, 2026
Merged

fix(sql,job): 修复字段截断破坏 JSON 结构的问题#16
lyman merged 2 commits into
mainfrom
fix/dev-release-version-format

Conversation

@hellozepp

@hellozepp hellozepp commented Jun 16, 2026

Copy link
Copy Markdown
Collaborator

问题

cz-cli sqlcz-cli job result 对超长字段值进行截断时,直接将截断标记(如 ...(truncated, 24605 chars))嵌入字段值字符串,导致 JSON/JSONL 输出结构被破坏,agent 无法解析结果。

变更

核心修复:按 format 区分截断行为

  • json / jsonl / csv:保证截断后JSON 结构始终完整
  • table:格子里显示 ...(N chars)

ai_message 报告截断信息

触发截断时统一通过 ai_message 上报,包含:

  • 受影响的列名及原始长度
  • 获取完整数据的完整操作指引(--no-truncate > output.json

示例:

Field(s) truncated to 3000 chars: 'long_col' (24605 chars). To get full values, re-run with --no-truncate and redirect to a file, e.g.: cz-cli sql "<SQL>" --no-truncate > output.json

job result 新增 --no-truncate

cz-cli job result 补充 --no-truncate 选项,与 cz-cli sql 行为对齐。

测试

# json 格式:结构完整,ai_message 有提示
cz-cli sql "SELECT REPEAT('x', 5000) AS long_col" --sync --format json

# table 格式:格子里显示 ...(5000 chars)
cz-cli sql "SELECT REPEAT('x', 5000) AS long_col" --sync --format table

# 完整数据写文件
cz-cli sql "SELECT REPEAT('x', 5000) AS long_col" --sync --no-truncate > output.json

lin.zhang and others added 2 commits June 16, 2026 20:29
Co-Authored-By: cz-cli <noreply@clickzetta.com>
- truncateLargeFields 按 format 区分行为:json/jsonl/csv 干净截断不插标记,
  table 格式在格子里显示 ...(N chars)
- 截断信息统一通过 ai_message 上报,包含受影响列名、原始长度及重定向到文件的完整用法
- job result 新增 --no-truncate 选项,与 cz-cli sql 行为对齐

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@lyman
lyman merged commit a4c6aa5 into main Jun 16, 2026
@hellozepp
hellozepp deleted the fix/dev-release-version-format branch June 16, 2026 13:25
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.

2 participants