Repository navigation
v26.47.0 release notes - #39891
Merged
Merged
v26.47.0 release notes#39891
Conversation
This was referenced Oct 20, 2026
Adds the v26.47.0 section to the releases index and an operator compatibility row for v26.47. Dates are provisional (Cloud 2026-10-22, Self-Managed 2026-10-23) and are set for real by the final snapshot. Generated from the v26.47.0-rc.1 snapshot in mz-skills. Co-Authored-By: Claude Opus 5 <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Adds the rc.2 increment to the v26.47.0 section: two Bug Fixes (regexp_extract planning crash, Iceberg nested-column sink stall). Provisional dates are unchanged (Cloud 2026-10-22, Self-Managed 2026-10-23) — both snapshots anchor on the v26.47.0-rc.1 tag, so the operator-compatibility row needs no edit either. Co-Authored-By: Claude Opus 5 <[email protected]>
Adds the rc.3 increment to the v26.47.0 section: one bug fix. Dates are unchanged (Cloud 2026-10-22, Self-Managed 2026-10-23) and already match this snapshot, so the operator-compatibility YAML needs no edit.
Adds the rc.4 increment to the v26.47.0 section: one bug fix. Dates are unchanged (Cloud 2026-10-22, Self-Managed 2026-10-23) and already match this snapshot, so the operator-compatibility YAML needs no edit.
rc.5 adds no new published entries. Its one materialize PR (#40046) repairs a regression from #40036, which rc.4 published as a Bug Fix, so this commit amends that existing bullet instead of adding a new one: deployments using password, SASL, or OIDC authentication have no separate internal SQL port and continue to be probed on the external one. #40046 itself is recorded as Borderline rather than published — the crashloop it fixes was introduced and fixed inside this same unreleased train, so no shipped version could have hit it. Provisional dates are unchanged from rc.4 (Cloud 2026-10-22, Self-Managed 2026-10-23); the final snapshot sets them for real.
Marks the v26.47.0 section final. No file changes: the final snapshot's increment is empty, and the dates it sets for real are the same pair every RC snapshot estimated. - Content: the tracking issue for the final snapshot holds no PRs, only the unassociated "release: bump to version v26.47.0" commit (bed2349), so there is nothing to add to _index.md. The v26.47.0-rc.5 and v26.47.0 tags are 14h28m apart with that bump the only thing between them. - Dates: Cloud 2026-10-22, Self-Managed 2026-10-23 are now the real dates. Both _index.md date lines and the operator-compatibility row's Release date already carry them, so neither file needs an edit. - Verification pass over the whole assembled section (not just this increment) found nothing to change: rc.5's cross-snapshot rewrite of the liveness-probe bullet is already applied and must not be applied twice; the human edit replacing rc.1's incorrect "ALL COLUMNS NULLABLE" improvement with the EXCLUDE ALL NOT NULL CONSTRAINTS feature section is correct against the v26.47.0 tag and is deliberately left as is, as are the stripped PR citations. This commit exists so the branch's commit-subject ledger records that the final snapshot was applied.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Adding a table still restarts the source dataflow, and a restart before the snapshot finishes pauses the other tables while the replication stream replays, so don't promise ingestion never pauses. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
… notes Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
maheshwarip
force-pushed
the
docs/v26.47.0-release-notes
branch
from
October 23, 2026 14:29
23b3f26 to
2001ca5
Compare
maheshwarip
approved these changes
Oct 23, 2026
maheshwarip
enabled auto-merge (squash)
October 23, 2026 14:31
maheshwarip
disabled auto-merge
October 23, 2026 14:35
maheshwarip
enabled auto-merge (squash)
October 23, 2026 14:35
maheshwarip
disabled auto-merge
October 23, 2026 14:36
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.
Release notes for the v26.47.0 train. One commit was added per snapshot; the
finalsnapshot sets the real dates. All six snapshots (rc.1–rc.5,final) are now applied — this branch is complete and ready for review.TRY_CAST,EXCLUDE ALL NOT NULL CONSTRAINTS), 7 Improvements, 13 Bug Fixes —rc.1contributed all of it except the top four Bug Fixes:rc.2added two, andrc.3andrc.4one each.rc.5added no new entries; it amendedrc.4's probe-port Bug Fix instead (see below).finaladds nothing at all — its tracking issue holds only the unassociatedrelease: bump to version v26.47.0commit (bed23494d), and thev26.47.0-rc.5andv26.47.0tags are 14h28m apart with that bump the only thing between them. Its commit is empty and exists to record on the branch that the snapshot was applied.v26.47.0-rc.1tag, and the real dates confirmed it — the five RCs compressed into one week rather than pushing the train out — so no published date text changed in thefinalcommit.v26.47, release date2026-10-23.main, whose newest section is## v26.45.1— v26.46.0's section is still on its own unmerged branch (v26.46.0 release notes #39690). Expect a top-of-list conflict when both merge;v26.47.0goes abovev26.46.0.✅ Corrections already on this branch — a
finalverification pass over the whole assembled section confirmed these and deliberately left them alone:rc.1named a syntax that does not exist. It published "CREATE TABLE ... FROM SOURCEnow accepts anALL COLUMNS NULLABLEoption", taking the name from #39680's title and body. At thev26.47.0tag the option isEXCLUDE ALL NOT NULL CONSTRAINTS(TableFromSourceOptionName::ExcludeAllNotNullConstraints), andNULLABLEis not a lexer keyword at all, so the published syntax would have been a parse error for anyone who copied it. A human editor caught this and replaced the bullet with the{#v26.47-exclude-not-null-constraints}feature section now on the branch. Therc.1snapshot directory in mz-skills still carries the wrong wording — snapshot directories are the record of what was reviewed at the time and are left untouched.rc.5's cross-snapshot rewrite is applied once, including the "Deployments using password, SASL, or OIDC authentication have no separate internal SQL port and continue to be probed on the external one" clause.final; this branch is the last place to act on themrc.4artifact handed to a customer or used for an upgrade rehearsal? This decides a published entry. #40036 (published as a Bug Fix byrc.4) made the operator probeenvironmentd's internal SQL port unconditionally, which crashloops deployments using Password, SASL, or OIDC authentication — they have no internal SQL port. #40046 fixed that roughly seven hours later, inside this same unreleased train, so no shipped build (v26.46.1probes the external port unconditionally) could have hit it. It is therefore recorded as Borderline rather than published as a Bug Fix of its own, and its substance folded intorc.4's bullet as a scoping clause. If anrc.4build did reach anyone, the crashloop was reachable and #40046 should be published in its own right. Note the author wrote an explicit positive release-note line for it, which is why this is flagged rather than quietly dropped.CREATE TABLE ... FROM SOURCE), #39836 (replacement materialized views), #39830 (Kafka sink headers, noted as "GA in v26.47"). None changes code, so all three were held; drafted wording for each is inomitted.md. Which are actually GA in v26.47.0 and should be announced? Note v26.46.0 published Kafka sink message attribution as private preview — if the header goes GA here, this release should say so rather than repeat the preview framing.rc.2): restores the read throughput GCS deployments lost when #39351 — already shipped — forced HTTP/2 and collapsed per-request connections into one. It is selected bypersist_blob_http_pool, verified to default tooffat thev26.47.0-rc.2tag, and the author notes "the default should eventually be 'GCS-only'". Ispersist_blob_http_poolbeing set togcsfor v26.47.0? If so this is a clear win to publish for GCP users, who carry the regression today; drafted wording is in rc.2'somitted.md.SUBSCRIBEsoft assertions (#37611, #39764, both held): drafted as Bug Fixes, then pulled back. Both failures come fromsoft_assert_or_log!, which panics only where soft assertions are enabled and otherwise logs; neither PR says what a release build does. Are soft assertions on in the environments customers run? If yes, both are publishable as drafted inomitted.md.freshness-page-CNS164, off in both Cloud and self-managed, and the LaunchDarkly flag is not yet created. If it is turned on for v26.47.0, this likely deserves a Feature heading.storage_persist_sink_description_lookaheadisDuration::ZEROat the tag. Publish if the lookahead is being enabled.compute_mv_sink_shared_batch_max_bytesis0at the tag. Publish (with the latency cost stated) if the staged rollout reaches customers in this release.enable_mcp_protocol_2026_07_28isfalseat the tag. If the revision is being served, these belong together as one Improvement.aligned_to→aligned_to_expressionandat→at_expressionand changes their type. It is a breaking change for anyone selecting them, in a schema documented as unstable — it may warrant more prominence than a bullet.ALTER SINK ... SET FROM(fromrc.3's #37653): the PR records a pre-existing gap it does not fix — afterSET FROM, the old upstream relation stays held, and therefore un-compactable, until the sink is dropped orenvironmentdrestarts. It is not something this release changed, so it is out of these notes, but it is a real footgun for the blue/green pattern thatsql/alter-sink.mdrecommendsSET FROMfor. Should theALTER SINKpage or the blue/green guide call it out?rc.4's #40036): the probe-port change alters the generatedenvironmentdStatefulSet, so after upgrading the operator, existing environments report pending changes and pick up the new port on their next rollout — they are not restarted on their own. That is an upgrade consequence rather than something the release changed, so it is out of the notes, but a Self-Managed operator who cannot account for the pending-changes state may read it as a problem. The v26.47 upgrade guide looks like the right venue.Snapshot drafts (with PR links) in mz-skills:
Borderline PRs omitted: rc.1: 14 — omitted.md#borderline, rc.2: 2 — omitted.md#borderline, rc.3: 0 — omitted.md#borderline, rc.4: 0 — omitted.md#borderline, rc.5: 1 — omitted.md#borderline, final: 0 — omitted.md#borderline
🤖 Generated with Claude Code