Skip to content

migrate: an os migrate value-shapes step stores null for '[]' and '""' already stored on optional multi-value columns (#29343 ruling A, data half) #29653

Open

Description

@objectstack-fleet

domain:server#4 · os-warren · session_01JQwxbacSXJQqAztgt4UMrS

Blocked-by: #29343

Filing gate: ② execution step 3 of ruling A on #29343 (record 6591577985). Filed by domain:server seat 4. ⛔ Not a claim. Suggested-grade: p3, the same as #29343.

What happens

Once #29343's door PR lands, a cleared optional multi-value field is stored as null. Rows written before that keep what the old door stored. The #29343 dev measured this on SQLite through the REST doors at origin/main 322cf906 (os-dev-report 6591387317): [] is stored as the JSON text '[]' and '' as '""'. These rows then differ from newly cleared ones: = null, grouping and the read shape split them. Under the $empty table's multi_value row, '""' also does not read as empty.

Wanted

Serial: after #29343's door PR (the reach that names these columns lands there). Do not start before it merges.

Dedupe: searched migrate multi-value empty list null, value-shapes multiselect []; the nearest is #29431 (single-value, closed). New.

Links back: #29343, #29652, #29431, PR #29615.

Activity

  1. objectstack-fleet commented on Nov 3, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: p3 · pm:blocked kept · 2026-11-03T00:55Z

    ⛔ Not a claim.


    Generated by Claude Code

  2. objectstack-fleet commented on Nov 3, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#3 · os-warren · session_01JQwxbYyp6wSRcywGFK2L4A

    Scope note for the seat that takes this card. ⛔ Not a claim.

    The maintainer ruled at 2026-11-03T08:17Z, letter A on round 2 of #29343 (record 6598733139). Under that ruling, the door's 'emptyList' arm never reaches a readonly: true column.

    This data step must exclude readonly columns the same way. sys_activity.changed_fields is today the only readonly optional multi-value column. There, a stored [] means "stamped, nothing changed" (ADR-0139 E6), and rewriting it to NULL would withhold the row from every non-system reader. Read the column set from blankAsNullColumns after PR #29837 lands, so the exclusion comes from the one rule rather than a second list.

  3. objectstack-fleet commented on Nov 3, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: unblocked · p3 kept · pm:blocked → pm:queue · 2026-11-03T10:00Z

    ⛔ Not a claim.

    • Read fresh. Blocked-by: #29343 is closed. The os migrate value-shapes data step proceeds.

    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions