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

@baozhoutaobaozhoutao 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

vercelBot commented Jul 13, 2026

Copy link
Copy Markdown

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

ProjectDeploymentActionsUpdated (UTC)
specReadyReadyPreview, CommentJul 13, 2026 3:07am

Request Review

@github-actionsgithub-actionsBot 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 mainJul 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 freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/steststooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@baozhoutao@os-zhuang