Repository navigation
v26.49.0 release notes - #40469
Merged
Merged
v26.49.0 release notes#40469
Conversation
Adds the v26.49.0 section to doc/user/content/releases/_index.md and the v26.49 row to the self-managed operator compatibility table. Dates are provisional (Cloud 2026-11-05, Self-Managed 2026-11-06) and are set for real by the final snapshot. Draft with PR links: https://github.com/MaterializeInc/mz-skills/blob/main/data/mz-release-notes/v26.49.0/rc.1/release_notes.md Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JqfkJZGjcpeg5eG5iNdqKH
Adds the rc.2 increment to the v26.49.0 section: one Improvement, a new Agent Skills section, and one Bug Fix. Provisional dates are unchanged (Cloud 2026-11-05, Self-Managed 2026-11-06). Draft with PR links: https://github.com/MaterializeInc/mz-skills/blob/main/data/mz-release-notes/v26.49.0/rc.2/release_notes.md Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JqfkJZGjcpeg5eG5iNdqKH
Adds the rc.3 increment to the v26.49.0 section: one Bug Fix. Provisional dates are unchanged (Cloud 2026-11-05, Self-Managed 2026-11-06). Draft with PR links: https://github.com/MaterializeInc/mz-skills/blob/main/data/mz-release-notes/v26.49.0/rc.3/release_notes.md Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JqfkJZGjcpeg5eG5iNdqKH
v26.49.0 ships to Cloud on 2026-11-05, and v26.49.1 ships to Self-Managed on 2026-11-06. - Retitle the section v26.49.1 and mark its Cloud date as v26.49.0. - Add the Console's Hydration tab and the Freshness page on Self-Managed to Improvements, and the clusters list's swap-in-Disk fix to Bug Fixes. - Point the operator compatibility row at v26.49.1 and its #v26491 anchor. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Empty on purpose. The final snapshot of the v26.49.0 train carries no entries: MaterializeInc/release#635 states "No PRs in v26.49.0 require review", the compare v26.49.0-rc.3...v26.49.0 is the single version-bump commit a14e1a0, and the agent-skills window (2026-11-03T20:34:06Z, 2026-11-04T19:10:38Z] is empty. The real dates (Cloud 2026-11-05, Self-Managed 2026-11-06) are already on this branch: the v26.49.1 patch train reused this branch in 39e6b85 and produced the combined "## v26.49.1" section the house convention calls for when a patch ships in its parent's rollout week, with the Cloud version in parentheses. The compatibility YAML likewise already carries the v26.49.1 row dated 2026-11-06. This commit therefore touches no files; it exists so the branch's commit-subject ledger records that the final snapshot was applied. Two items still need the release owner, and are described in the PR body: the conflict with main's own "## v26.49.0" section from #40201, and the duplicate {#v26.49-improvements} anchor.
Adds the v26.49.0 section to doc/user/content/releases/_index.md and the v26.49 row to the self-managed operator compatibility table. Dates are provisional (Cloud 2026-11-05, Self-Managed 2026-11-06) and are set for real by the final snapshot. Draft with PR links: https://github.com/MaterializeInc/mz-skills/blob/main/data/mz-release-notes/v26.49.0/rc.1/release_notes.md Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JqfkJZGjcpeg5eG5iNdqKH
Adds the rc.2 increment to the v26.49.0 section: one Improvement, a new Agent Skills section, and one Bug Fix. Provisional dates are unchanged (Cloud 2026-11-05, Self-Managed 2026-11-06). Draft with PR links: https://github.com/MaterializeInc/mz-skills/blob/main/data/mz-release-notes/v26.49.0/rc.2/release_notes.md Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JqfkJZGjcpeg5eG5iNdqKH
Adds the rc.3 increment to the v26.49.0 section: one Bug Fix. Provisional dates are unchanged (Cloud 2026-11-05, Self-Managed 2026-11-06). Draft with PR links: https://github.com/MaterializeInc/mz-skills/blob/main/data/mz-release-notes/v26.49.0/rc.3/release_notes.md Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JqfkJZGjcpeg5eG5iNdqKH
v26.49.0 ships to Cloud on 2026-11-05, and v26.49.1 ships to Self-Managed on 2026-11-06. - Retitle the section v26.49.1 and mark its Cloud date as v26.49.0. - Add the Console's Hydration tab and the Freshness page on Self-Managed to Improvements, and the clusters list's swap-in-Disk fix to Bug Fixes. - Point the operator compatibility row at v26.49.1 and its #v26491 anchor. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Empty on purpose. The final snapshot of the v26.49.0 train carries no entries: MaterializeInc/release#635 states "No PRs in v26.49.0 require review", the compare v26.49.0-rc.3...v26.49.0 is the single version-bump commit a14e1a0, and the agent-skills window (2026-11-03T20:34:06Z, 2026-11-04T19:10:38Z] is empty. The real dates (Cloud 2026-11-05, Self-Managed 2026-11-06) are already on this branch: the v26.49.1 patch train reused this branch in 39e6b85 and produced the combined "## v26.49.1" section the house convention calls for when a patch ships in its parent's rollout week, with the Cloud version in parentheses. The compatibility YAML likewise already carries the v26.49.1 row dated 2026-11-06. This commit therefore touches no files; it exists so the branch's commit-subject ledger records that the final snapshot was applied. Two items still need the release owner, and are described in the PR body: the conflict with main's own "## v26.49.0" section from #40201, and the duplicate {#v26.49-improvements} anchor.
Keep the SQL Server Advisory and Improvements bullet from #40201 under the v26.49.1 heading, and drop the duplicate SQL Server bug fix line. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…o docs/v26.49.0-release-notes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
maheshwarip
reviewed
Nov 6, 2026
| ### Advisory {#v26.49-advisory} | ||
|
|
||
| - **Query plans may change when a SQL Server source table is re-created**: Starting with this release, a table created from a SQL Server source records at most one key, the `PRIMARY KEY` or `UNIQUE` constraint behind its CDC capture instance's index (see [Unique keys](/ingest-data/sql-server/#unique-keys)). Tables created before this release keep the keys they recorded at creation. If a re-created table had other `PRIMARY KEY` or `UNIQUE` constraints, views, indexes, and materialized views that depend on it can get a different plan, for example a `DISTINCT` over the columns of a no longer recorded constraint is kept instead of removed, and may use more memory or CPU as a result. Query results do not change. Before dropping a `PRIMARY KEY` or `UNIQUE` constraint that the capture instance does not use from a table created before this release, re-create the table in Materialize. | ||
| **Query plans and performance may change if a SQL Server source table is re-created**: Starting with this release, a table created from a SQL Server source records at most one key, the `PRIMARY KEY` or `UNIQUE` constraint behind its CDC capture instance's index. Previously, Materialize recorded every `PRIMARY KEY` and `UNIQUE` constraint on the upstream table. See [Unique keys](/ingest-data/sql-server/#unique-keys) to understand more. |
Contributor
There was a problem hiding this comment.
@val-materialize could I get your eyes on this one? I changed the wording from the original note because I couldn't understand it!
Contributor
There was a problem hiding this comment.
Happy to keep your wording. The one thing it misses: older tables still keep the extra keys, so they can return wrong results if one of those constraints is dropped upstream. Can you add a line like: “Tables created before this release keep every key they recorded. Before dropping a PRIMARY KEY or UNIQUE constraint that the capture instance does not use from one of these tables, re-create the table in Materialize.”
maheshwarip
enabled auto-merge (squash)
November 6, 2026 15:50
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
maheshwarip
approved these changes
Nov 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Dates in RC snapshots are provisional until the release ships. One commit is added per snapshot; the final snapshot sets the real dates.
1. This PR conflicts with
main, and the conflict is substantive. While this PR sat open, #40201 ("docs: describe which SQL Server constraint Materialize records as a key") merged tomainon 2026-11-05 and independently added its own## v26.49.0section — an### Advisory {#v26.49-advisory}plus an### Improvements {#v26.49-improvements}bullet. Both sides edit the same region of_index.md, somergeableisCONFLICTING.Two problems ride along with the conflict:
rc.1already published here as a Bug Fix ("Reduced the risk of new SQL Server source tables returning incorrect results after a unique constraint or primary key is dropped upstream…"). Recommendation: keep#40201's Advisory and Improvement and drop therc.1bug-fix bullet — the hand-written pair is more complete, carries the upgrade-impact guidance, and links/ingest-data/sql-server/#unique-keys.main's## v26.49.0carries{#v26.49-advisory}and{#v26.49-improvements}; this branch's combined section carries{#v26.49-improvements},{#v26.49-agent-skills}, and{#v26.49-bug-fixes}. Merging both defines#v26.49-improvementstwice on one page. Recommendation: rename this branch's three anchors to{#v26.49.1-improvements},{#v26.49.1-agent-skills},{#v26.49.1-bug-fixes}— which is what thev26.49.1snapshot's review notes intended — and leave{#v26.49-advisory}and{#v26.49-improvements}to#40201's section.#40201's review links already point at/releases/#v26.49-advisory, and the compatibility YAML's/releases/#v26491target is unaffected.2. Wording drift against the merged
v26.49.1snapshot. Commit39e6b854alanded here on 2026-11-05, before MaterializeInc/mz-skills#355 merged on 2026-11-06. Two entries read differently on the branch than in the merged snapshot — the hydration improvement is "Investigate hydration on the cluster details page" here versus "See how a cluster hydrated, and why it did not" there, and the Freshness and Disk-column bullets differ likewise. Resolving the conflict above is the natural moment to decide which wording ships.Note on the section heading
The
v26.49.1patch train reused this branch (commit39e6b854a) rather than opening its own, so this PR now publishes a single combined## v26.49.1section — this train'src.1–rc.3entries plus the threev26.49.1entries, with the Cloud version in parentheses. That is the house convention for a patch that ships in its parent's rollout week; compare the published## v26.48.2(*Released to Materialize Cloud: 2026-10-29 (v26.48.0)*). The compatibility YAML accordingly carries onev26.49.1row dated 2026-11-06, which is what actually shipped to Self-Managed that day.The
finalcommit for this train is therefore empty: its increment carries no entries (MaterializeInc/release#635 states "No PRs inv26.49.0require review",v26.49.0-rc.3...v26.49.0is the lone version-bump commit, and the agent-skills window is empty), and the real dates — Cloud 2026-11-05, Self-Managed 2026-11-06 — were already set by39e6b854a. It exists so the branch's commit-subject ledger records that the snapshot was applied.Decisions required (carried over from
rc.1)DROP INDEX(#39098): it now rejects drops that used to succeed. Call it out as a breaking change rather than an Improvement?mz profile initOAuth (#40319): omitted because the PR lists open items. Whichmzrelease carries it?enable_upsert_v2isfalse. Publish it?Snapshot drafts (with PR links) in mz-skills
Borderline PRs omitted: rc.1: 10 — rc.1/omitted.md#borderline, rc.2: 0, rc.3: 0, final: 0
🤖 Generated with Claude Code