Skip to content

fix(catalog): honor format-version when creating tables - #1080

Open
zhjwpku wants to merge 1 commit into
apache:mainfrom
zhjwpku:fix/catalog-create-format-version
Open

zhjwpku wants to merge 1 commit into
apache:mainfrom
zhjwpku:fix/catalog-create-format-version

Conversation

@zhjwpku

@zhjwpku zhjwpku commented Nov 1, 2026

Copy link
Copy Markdown
Collaborator

SqlCatalog::CreateTable previously always created V2 tables and rejected an explicit format-version table property as a reserved key, preventing callers from selecting the table format version during creation.

Resolve the requested version in the shared TableMetadata::Make entry point, validate it before narrowing, and remove the control property before persisting table properties. Keep V2 as the default and preserve the explicit-version overload's reserved-property checks.

Preserve the initial version through staged create transactions. Initialize SQL and in-memory catalog create builders from the first version update and replay subsequent upgrades in order, allowing staged tables to upgrade before their create transaction commits.

Add parameterized coverage for supported and invalid versions, reserved properties, ordinary and staged creates, and staged V1/V2-to-V3 upgrades. Verify the version and properties after reload and in SQL metadata JSON.

SqlCatalog::CreateTable previously always created V2 tables and rejected
an explicit format-version table property as a reserved key, preventing
callers from selecting the table format version during creation.

Resolve the requested version in the shared TableMetadata::Make entry
point, validate it before narrowing, and remove the control property
before persisting table properties. Keep V2 as the default and preserve
the explicit-version overload's reserved-property checks.

Preserve the initial version through staged create transactions. Initialize
SQL and in-memory catalog create builders from the first version update
and replay subsequent upgrades in order, allowing staged tables to upgrade
before their create transaction commits.

Add parameterized coverage for supported and invalid versions, reserved
properties, ordinary and staged creates, and staged V1/V2-to-V3 upgrades.
Verify the version and properties after reload and in SQL metadata JSON.

This branch has not been deployed

No deployments
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