Skip to content

fix(objectql): apply defaultValue on explicit null at insert (#2706)#2868

Merged
os-zhuang merged 1 commit into
mainfrom
claude/github-issue-2706-f522d9
Jul 13, 2026
Merged

fix(objectql): apply defaultValue on explicit null at insert (#2706)#2868
os-zhuang merged 1 commit into
mainfrom
claude/github-issue-2706-f522d9

Conversation

@baozhoutao

@baozhoutao baozhoutao commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

背景

修复 #2706 中归属本仓库(objectql)的子问题。

排查结论

改动

applyFieldDefaults 原判据为 out[f.name] !== undefined,只有"省略"字段才回填 default;表单把未选控件序列化成显式 null 时会落库 null(current_user 令牌与静态默认都不生效)。

  • 判据改为 out[f.name] != null:insert 时"省略"与"显式 null"一视同仁,都视为"未提供值"并回填 default。
  • 空串 '' 仍视为真实值,不覆盖。
  • 仅影响 insert 路径:applyFieldDefaults 只在 insert() 调用,update() 从不调用它,因此 update 的"置 null"语义完全不受影响。
  • 更新函数文档注释,明确 omitted / explicit null 均按"未提供"处理的语义。

测试

新增两条回归测试(engine.test.ts):

  • 显式 owner:null, status:null → 回填 current_user + 静态默认;
  • 显式 status:'' → 保留空串不覆盖。

packages/objectql 全部 48 条测试通过。

Refs #2706(本仓库子项 #1/#2;#3 归 objectui,保留 issue 开启)

@vercel

vercel Bot commented Jul 13, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
spec Ready Ready Preview, Comment Jul 13, 2026 3:07am

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation tests tooling size/s labels Jul 13, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 1 package(s): @objectstack/objectql.

13 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:

  • content/docs/concepts/metadata-lifecycle.mdx (via @objectstack/objectql)
  • content/docs/data-modeling/formulas.mdx (via packages/objectql)
  • content/docs/deployment/migration-from-objectql.mdx (via @objectstack/objectql)
  • content/docs/deployment/vercel.mdx (via @objectstack/objectql)
  • content/docs/kernel/services-checklist.mdx (via @objectstack/objectql)
  • content/docs/kernel/services.mdx (via @objectstack/objectql)
  • content/docs/permissions/authentication.mdx (via @objectstack/objectql)
  • content/docs/plugins/index.mdx (via @objectstack/objectql)
  • content/docs/plugins/packages.mdx (via @objectstack/objectql)
  • content/docs/protocol/objectos/index.mdx (via @objectstack/objectql)
  • content/docs/protocol/objectql/state-machine.mdx (via @objectstack/objectql)
  • content/docs/releases/implementation-status.mdx (via @objectstack/objectql)
  • content/docs/releases/v9.mdx (via @objectstack/objectql)

Advisory only. To re-verify, run the docs-accuracy-audit workflow scoped to these files:
node scripts/docs-audit/affected-docs.mjs origin/main → pass the list as args.docs.

@os-zhuang os-zhuang merged commit 8f4a261 into main Jul 13, 2026
16 checks passed
@os-zhuang os-zhuang deleted the claude/github-issue-2706-f522d9 branch July 13, 2026 05:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/s tests tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants