Skip to content

feat(blob): add create-time schema contract checks#251

Merged
JingsongLi merged 1 commit intoapache:mainfrom
QuakeWang:feat/blob-schema-contract
Apr 16, 2026
Merged

feat(blob): add create-time schema contract checks#251
JingsongLi merged 1 commit intoapache:mainfrom
QuakeWang:feat/blob-schema-contract

Conversation

@QuakeWang
Copy link
Copy Markdown
Contributor

Purpose

Linked issue: part of #228

This PR hardens the create-time schema contract for BLOB columns.

After BlobType groundwork landed, Rust still relied on scattered runtime rejections for some invalid table shapes. This change moves the basic table-creation checks to schema construction so invalid BLOB table definitions fail earlier and more consistently.

This PR is intentionally limited to create-time validation. It does not add .blob file-format dispatch or read path support.

Brief change log

  • add create-time BLOB validation in Schema::new()
  • require data-evolution.enabled = true when top-level BLOB columns exist
  • reject tables whose top-level columns are all BLOB
  • reject top-level BLOB columns in partition keys
  • add schema-level tests for the accepted and rejected cases
  • update the existing table_write test fixture to satisfy the new schema contract

Tests

API and Format

Documentation

Copy link
Copy Markdown
Contributor

@JingsongLi JingsongLi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

@JingsongLi JingsongLi merged commit 8880c7a into apache:main Apr 16, 2026
8 checks passed
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.

2 participants