diff --git a/src/current/_data/releases.yml b/src/current/_data/releases.yml
index 3a88340f52b..bf9ce539405 100644
--- a/src/current/_data/releases.yml
+++ b/src/current/_data/releases.yml
@@ -10177,4 +10177,59 @@
docker_arm_experimental: false
docker_arm_limited_access: false
source: true
- previous_release: v26.1.0-alpha.2
\ No newline at end of file
+ previous_release: v26.1.0-alpha.2
+
+- release_name: v26.1.0-beta.2
+ major_version: v26.1
+ release_date: '2026-01-07'
+ release_type: Testing
+ go_version: go1.25.5
+ sha: 81333ed32949ad7f7599c1ad1b77078d9e07ccb9
+ has_sql_only: true
+ has_sha256sum: true
+ mac:
+ mac_arm: true
+ mac_arm_experimental: true
+ mac_arm_limited_access: false
+ windows: true
+ linux:
+ linux_arm: true
+ linux_arm_experimental: false
+ linux_arm_limited_access: false
+ linux_intel_fips: true
+ linux_arm_fips: false
+ docker:
+ docker_image: cockroachdb/cockroach-unstable
+ docker_arm: true
+ docker_arm_experimental: false
+ docker_arm_limited_access: false
+ source: true
+ previous_release: v26.1.0-beta.1
+
+
+- release_name: v25.4.3
+ major_version: v25.4
+ release_date: '2026-01-09'
+ release_type: Production
+ go_version: go1.25.5
+ sha: 71d853623f0d1f589fd5c727a1c4aec8a43e62e0
+ has_sql_only: true
+ has_sha256sum: true
+ mac:
+ mac_arm: true
+ mac_arm_experimental: true
+ mac_arm_limited_access: false
+ windows: true
+ linux:
+ linux_arm: true
+ linux_arm_experimental: false
+ linux_arm_limited_access: false
+ linux_intel_fips: true
+ linux_arm_fips: false
+ docker:
+ docker_image: cockroachdb/cockroach
+ docker_arm: true
+ docker_arm_experimental: false
+ docker_arm_limited_access: false
+ source: true
+ previous_release: v25.4.2
diff --git a/src/current/_includes/releases/v25.4/v25.4.3.md b/src/current/_includes/releases/v25.4/v25.4.3.md
new file mode 100644
index 00000000000..1778ec89b8b
--- /dev/null
+++ b/src/current/_includes/releases/v25.4/v25.4.3.md
@@ -0,0 +1,73 @@
+## v25.4.3
+
+Release Date: January 9, 2026
+
+{% include releases/new-release-downloads-docker-image.md release=include.release %}
+
+
SQL language changes
+
+- Fixed a bug where creating a routine could create unnecessary column dependencies when the routine references columns through CHECK constraints (including those for RLS policies and hash-sharded indexes) or partial index predicates. These unnecessary dependencies prevented dropping the column without first dropping the routine. The fix is gated behind the session setting `use_improved_routine_deps_triggers_and_computed_cols`, which is off by default prior to v26.1. [#159441][#159441]
+
+Operational changes
+
+- Successfully completed automatic SQL stats collecton jobs are now automatically purged rather than being retained for the full default job retention period. [#159412][#159412]
+
+Bug fixes
+
+- Fixed a bug where a SQL statement with side effects (e.g., `INSERT`) inside a PL/pgSQL routine could be dropped if it used an `INTO` clause and none of the target variables were referenced. This bug had been present since v23.2. [#158346][#158346]
+- Fixed a bug that could cause incorrect query results when using prepared statements with NULL placeholders. The bug has existed since v21.2 and violated SQL NULL-equality semantics by returning rows with NULL values when the result set should have been empty.
+
+ From v21.2 to v25.3, the bug occurred when all of the following were true:
+
+ - The query was run with an explicit or implicit prepared statement
+ - The query had an equality filter on a placeholder and a UNIQUE column
+ - The column contained NULL values
+ - The placeholder was assigned to NULL during execution
+
+ Starting in v25.4, the requirements were loosened: the column no longer needed to be UNIQUE, and the bug could reproduce if the column was included in any index. [#159062][#159062]
+- Fixed a bug where `TRUNCATE` did not behave correctly with respect to the `schema_locked` storage parameter, and was not being blocked when Logical Data Replication (LDR) was in use. This behavior was incorrect and has been fixed. [#159404][#159404]
+- Fixed a bug that caused newly-created routines to incorrectly prevent dropping columns that were not directly referenced, most notably columns referenced by computed column expressions. The fix is gated behind the session setting `use_improved_routine_deps_triggers_and_computed_cols`, which is off by default prior to v26.1. [#159441][#159441]
+- Fixed a bug that allowed columns to be dropped despite being referenced by a routine. This could occur when a column was only referenced as a target column in the SET clause of an UPDATE statement within the routine. This fix only applies to newly-created routines. In versions prior to v26.1, the fix must be enabled by setting the session variable `prevent_update_set_column_drop`. [#159441][#159441]
+- Fixed a race condition that could occur during context cancellation of an incoming snapshot. [#159535][#159535]
+- Fixed a bug that could cause a panic during changefeed startup if an error occurred while initializing the metrics controller. [#159548][#159548]
+- Fixed a memory accounting issue that could occur when a lease expired due to a SQL liveness session-based timeout. [#159622][#159622]
+- Fixed an issue where long-running transactions with many statements could cause unbounded memory growth in the SQL statistics subsystem. When a transaction includes a large number of statements, the SQL statistics ingester now automatically flushes buffered statistics before the transaction commits. As a side effect, the flushed statement statistics might not have an associated transaction fingerprint ID because the transaction has not yet completed. In such cases, the transaction fingerprint ID cannot be backfilled after the fact. [#159646][#159646]
+- Fixed a bug causing a query predicate to be ignored
+ when the predicate is on a column following one or more ENUM columns in an
+ index, the predicate constrains the column to multiple values, and a lookup
+ join to the index is chosen for the query plan. This bug was introduced in
+ 24.3.0 and present in all versions since. [#159777][#159777]
+- Fixed a race condition where queries run after revoking `BYPASSRLS` could return wrong results because cached plans failed to notice the change immediately. [#160086][#160086]
+- Fixed a bug where renaming a column that participated in multiple hash-sharded indexes would fail. [#160087][#160087]
+- Fixed a deadlock that could occur when a
+ statistics creation task panicked.
+
+ 🤖 Generated with [Claude Code](https://claude.com/claude-code)
+
+ Co-Authored-By: Claude Sonnet 4.5 [#160584][#160584]
+
+
+
+- `AFTER` triggers now use a cache for descriptor lookups of `TG_TABLE_SCHEMA`, which can significantly reduce trigger planning latency. [#158908][#158908]
+- Add a new session variable,
+ `distsql_prevent_partitioning_soft_limited_scans`, which, when true,
+ prevents scans with soft limits from being planned as multiple
+ TableReaders by the physical planner. This should decrease the initial
+ setup costs of some fully-distributed query plans. [#160603][#160603]
+
+
+[#159646]: https://github.com/cockroachdb/cockroach/pull/159646
+[#160086]: https://github.com/cockroachdb/cockroach/pull/160086
+[#158908]: https://github.com/cockroachdb/cockroach/pull/158908
+[#158346]: https://github.com/cockroachdb/cockroach/pull/158346
+[#159535]: https://github.com/cockroachdb/cockroach/pull/159535
+[#159622]: https://github.com/cockroachdb/cockroach/pull/159622
+[#160087]: https://github.com/cockroachdb/cockroach/pull/160087
+[#159412]: https://github.com/cockroachdb/cockroach/pull/159412
+[#159777]: https://github.com/cockroachdb/cockroach/pull/159777
+[#159441]: https://github.com/cockroachdb/cockroach/pull/159441
+[#159062]: https://github.com/cockroachdb/cockroach/pull/159062
+[#159404]: https://github.com/cockroachdb/cockroach/pull/159404
+[#159548]: https://github.com/cockroachdb/cockroach/pull/159548
+[#160584]: https://github.com/cockroachdb/cockroach/pull/160584
+[#160603]: https://github.com/cockroachdb/cockroach/pull/160603