Skip to content

feat(codegen-csharp)!: drop uuid_array/text_array dbColumnType; uuid[] from field.uuid+isArray (phase 1)#116

Closed
dmealing wants to merge 1 commit into
mainfrom
worktree-agent-ab5661cbc8a986746
Closed

feat(codegen-csharp)!: drop uuid_array/text_array dbColumnType; uuid[] from field.uuid+isArray (phase 1)#116
dmealing wants to merge 1 commit into
mainfrom
worktree-agent-ab5661cbc8a986746

Conversation

@dmealing

Copy link
Copy Markdown
Member

Summary

  • Remove uuid_array and text_array from the C# @dbColumnType closed value-set (DbConstants.cs). The loader now rejects both with ERR_BAD_ATTR_VALUE. Array-ness is derived from isArray: true on the field — no explicit override needed.
  • Confirm field.uuid isArray:true already emits ICollection<Guid> + .PrimitiveCollection(...) via the existing scalar-array path (ScalarFor("uuid") == "Guid"). No codegen fix needed — behaviour was already correct.
  • Add TDD tests: 2 loader tests asserting uuid_array/text_array are rejected; 3 codegen tests asserting field.uuid isArray:trueICollection<Guid> + PrimitiveCollection (compile-checked).

Part of dbColumnType slim-and-derive Phase 1.

Changed files

  • server/csharp/MetaObjects/Persistence/Db/DbConstants.cs — remove DB_COLUMN_TYPE_UUID_ARRAY, DB_COLUMN_TYPE_TEXT_ARRAY constants and from VALID_DB_COLUMN_TYPES
  • server/csharp/MetaObjects/Loader/ValidationPasses.cs — remove uuid_array/text_array arm from the subtype-pairing switch
  • server/csharp/MetaObjects.Conformance.Tests/R6Plan2LoaderTests.cs — 2 new tests asserting removed values are ERR_BAD_ATTR_VALUE
  • server/csharp/MetaObjects.Codegen.Tests/ScalarArrayCodegenTests.cs — 3 new tests for field.uuid isArray:trueICollection<Guid> + PrimitiveCollection (+ compile check)

Test evidence

Full C# suite: 668 + 42 + 251 + 290 = 1251 passing, 1 skip (pre-existing), 0 failures (dotnet test).

Note

db.json description and fixtures/registry-conformance/expected-registry.json are cross-port shared files; updating them must be coordinated across all 5 ports as a follow-on cross-port PR (not in scope for this C#-only phase-1 PR).

Test plan

  • dotnet test --filter "FullyQualifiedName~R6Plan2LoaderTests" — 2 new + 10 existing pass
  • dotnet test --filter "FullyQualifiedName~ScalarArrayCodegenTests" — 3 new + 10 existing pass
  • Full dotnet test — all green

🤖 Generated with Claude Code

https://claude.ai/code/session_01LuZWKnWzYGVnESijL7uuky

…] from field.uuid+isArray (phase 1)

Remove the vestigial uuid_array and text_array values from the C# @dbColumnType
closed value-set. The loader now rejects them with ERR_BAD_ATTR_VALUE. Array-ness
is derived from field.uuid/field.string isArray:true — no explicit override needed.

Confirm field.uuid isArray:true already emits ICollection<Guid> + PrimitiveCollection
via the existing scalar-array path (ScalarFor("uuid")=="Guid"). Add TDD tests.

Part of dbColumnType slim-and-derive Phase 1.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LuZWKnWzYGVnESijL7uuky
@dmealing

Copy link
Copy Markdown
Member Author

Folded into the integrated Phase-1 PR (feat/dbcolumntype-slim-derive) which merges all five ports atomically — that's the one that lands. Keeping this open for per-port review history.

@dmealing

Copy link
Copy Markdown
Member Author

Landed via the integrated Phase-1 PR #121 (squash-merged to main).

@dmealing dmealing closed this Jun 30, 2026
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