Skip to content

Conversation

@teskje
Copy link
Contributor

@teskje teskje commented Dec 12, 2025

The logic for applying StateUpdates from the durable catalog previously only switched on the enable_for_item_parsing feature flags when applying item updates during bootstrap. Thus, the process would crash when updating an item that depends on disabled feature flag after the bootstrap phase.

We must respect enable_for_item_parsing also in steady-state, after bootstrap. The SQL contained in these StateUpdates has already been made durable in the catalog, so we can't reject it anymore and need to do our best to parse it.

This PR achieves that by merging the apply_updates and apply_updates_for_bootstrap methods into a single one that always enables enable_for_item_parsing features when applying item updates.

Motivation

  • This PR fixes a recognized bug.

Fixes https://github.com/MaterializeInc/database-issues/issues/9971

Checklist

  • This PR has adequate test coverage / QA involvement has been duly considered. (trigger-ci for additional test/nightly runs)
  • This PR has an associated up-to-date design doc, is a design doc (template), or is sufficiently small to not require a design.
  • If this PR evolves an existing $T ⇔ Proto$T mapping (possibly in a backwards-incompatible way), then it is tagged with a T-proto label.
  • If this PR will require changes to cloud orchestration or tests, there is a companion cloud PR to account for those changes that is tagged with the release-blocker label (example).
  • If this PR includes major user-facing behavior changes, I have pinged the relevant PM to schedule a changelog post.

@teskje teskje force-pushed the apply-always-enable_for_item_parsing branch from f253a5a to d749634 Compare December 12, 2025 13:19
The logic for applying `StateUpdate`s from the durable catalog
previously only switched on the `enable_for_item_parsing` feature flags
when applying item updates during bootstrap. Thus, the process would
crash when updating an item that depends on disabled feature flag after
the bootstrap phase.

We must respect `enable_for_item_parsing` also in steady-state, after
bootstrap. The SQL contained in these `StateUpdate`s has already been
made durable in the catalog, so we can't reject it anymore and need to
do our best to parse it.

This commit achieves that by merging the `apply_updates` and
`apply_updates_for_bootstrap` methods into a single one that always
enables `enable_for_item_parsing` features when applying item updates.
@teskje teskje force-pushed the apply-always-enable_for_item_parsing branch from d749634 to d601be3 Compare December 12, 2025 19:53
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