Skip to content

Carry typed DB9 missing-column values in the Cop request #1515

Description

@dbsid

Feature Request

Describe the problem

DB9 rows can be physically shorter than their logical table descriptor after historical ADD COLUMN operations. The DB9 Cop request currently carries column type metadata but not the logical value for a physically absent suffix. A paired CSE executor therefore cannot preserve projection, predicate, ordering, limit, and aggregate-input semantics for those rows without a versioned protocol field.

Describe the feature

Add an optional typed missing_value field to Db9ColumnInfo.

Field presence must distinguish missing metadata from an explicit Db9Null. DB9 Cop codec v4 will require the paired CSE runtime to materialize the logical row before pushed operators observe it. Mixed codec versions fail closed.

This is an additive protobuf change. The exact DB9 Cop codec boundary, not protobuf wire compatibility alone, controls rollout.

Compatibility and rollout

  • Existing protobuf readers ignore the additive field.
  • DB9/CSE bump their exact runtime codec from v3 to v4.
  • Deploy codec-v4 CSE to every TiKV node before enabling the matching DB9 pushdown path.
  • Keep pushdown disabled during a mixed pair.

Related implementation:

Tracking design and acceptance:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions