What's Changed
- chore: bump main branch version to 3.1.0-alpha by @github-actions[bot] in #25678
- ci: use CI token for bump main PRs by @cyliu0 in #25683
- fix(frontend): handle avg over empty window frame by @chenzl25 in #25675
- feat(frontend): keep sync log store node at fragment root by @EdwinaZhu in #25663
- fix(meta): skip recovered pending sink epochs by @wenym1 in #25690
- fix(frontend): disable unused prefix bloom hints by @Li0k in #25672
- fix(frontend): avoid comparing order subqueries by @wenym1 in #25686
- feat(iceberg): default snapshot expiration by @Li0k in #25700
- refactor(streaming): replace BatchTable with ReplicatedStateTable in temporal join by @wenym1 in #25319
- test(source): regression test for parquet file source with non-parquet objects by @lmatz in #25692
- feat: support alter compaction group config via sql by @Li0k in #24346
- feat(stream): support predicate pushdown for snapshot backfill by @chenzl25 in #25188
- ci: fix main-cron sink and opendal failures by @cyliu0 in #25695
- refactor(storage): reuse block meta keys in xor filter reader by @Li0k in #25706
- feat(meta): support consuming snapshot of batch refreshable job (meta part) by @wenym1 in #25251
- feat(frontend): log SQL for extended protocol by @zwang28 in #25702
- refactor(cdc): ban directly creating CDC tables from upstream database by @wcy-fdu in #25682
- feat(cdc): allow alter
debezium.heartbeat.interval.msfor Postgres CDC by @wcy-fdu in #25711 - feat(connector): allow altering Kafka SSL configs on the fly by @tabVersion in #25717
- feat(frontend): support consuming snapshot of batch refreshable job (frontend part) by @wenym1 in #25093
- test(source): deduplicate connector e2e coverage by @tabVersion in #25719
- fix(iceberg): revert snapshot expiration defaults by @Li0k in #25723
- ci: wait for elasticsearch health in sink test by @tabVersion in #25720
- ci: add autoupdate rebase workflow by @cyliu0 in #25685
- refactor(storage): deprecate merge_imm and simplify imm struct by @wenym1 in #24561
- chore(deps): Bump openssl from 0.10.79 to 0.10.80 by @dependabot[bot] in #25731
- chore(deps): Bump wasmtime from 36.0.7 to 36.0.9 by @dependabot[bot] in #25602
- chore(deps): Bump bytes from 1.5.0 to 1.11.1 in /integration_tests/feature-store/simulator by @dependabot[bot] in #24700
- chore(deps): Bump fs-err from 3.2.2 to 3.3.0 by @dependabot[bot] in #24760
- chore(deps): Bump tinyvec from 1.10.0 to 1.11.0 by @dependabot[bot] in #25084
- ci: reduce skipped auto-update rebase runs by @cyliu0 in #25735
- chore(deps): Bump comfy-table from 7.1.2 to 7.2.2 by @dependabot[bot] in #25023
- chore(deps): Bump rand from 0.8.5 to 0.8.6 in /integration_tests/feature-store/simulator by @dependabot[bot] in #25455
- fix(cdc): use shared source in direct offset injection test by @tabVersion in #25736
- chore(deps): Bump aws-sdk-sso from 1.87.0 to 1.98.0 by @dependabot[bot] in #25482
- chore(deps): Bump serial_test from 3.3.1 to 3.4.0 by @dependabot[bot] in #24841
- chore(deps): pin
serde_json < 1.0.147to prevent breaking change by @xiangjinwu in #25739 - feat(sink): support dynamic URL for HTTP sink by @wenym1 in #25699
- chore(deps): Bump protobufjs from 7.5.5 to 7.6.0 in /dashboard by @dependabot[bot] in #25729
- fix(frontend): redact user passwords in query logs by @wenym1 in #25740
- fix(iceberg): seperate iceberg snapshot expiration and compaction trigger by @chenzl25 in #25749
- fix(cdc): support quoted Postgres table names by @wenym1 in #25742
- chore(deps): Bump bytes from 1.5.0 to 1.11.1 in /integration_tests/feature-store/server by @dependabot[bot] in #24701
- feat(storage): add configurable SST xor filter kind by @Li0k in #25170
- fix(connector): suppress expected kafka enumerator UnknownGroup by @tabVersion in #25704
- chore(deps): Bump async-openai from 0.38.1 to 0.40.2 by @dependabot[bot] in #25759
- fix(ci): skip stale SST compat test for fixed versions by @cyliu0 in #25769
- fix(source): default NATS ack policy to explicit by @tabVersion in #25705
- chore(iceberg): bump lakekeeper by @chenzl25 in #25779
- refactor(storage): remove unused bloom filter implementation by @Li0k in #25773
- feat(compaction): support manual compact target level by @Li0k in #25765
- fix(iceberg): fix iceberg glue iam assume role token expiration by @chenzl25 in #25776
- fix(iceberg): support reading uuid/fixed columns as bytea by @yuhao-su in #25807
- doc(connector): update Lakehouse Iceberg REST notes by @xxhZs in #25671
- fix(pg-cdc): make composite-to-string schema unconditionally optional by @wcy-fdu in #25815
- chore(deps): Bump hyper from 1.9.0 to 1.10.0 by @dependabot[bot] in #25822
- chore: add RisingWave SLT authoring skill by @tabVersion in #25823
- feat(stream): support iceberg V3 sink with PK index on executor by @silver-ymz in #25416
- fix(stream): use table pk for stream table scan key by @wenym1 in #25783
- fix(iceberg): avoid shared default AWS credentials provider in Iceberg sink by @DZR-Github in #25829
- fix(frontend): trim MV pk order key by @wenym1 in #25804
- chore(grafana): display last oom timestamp as readable datetime by @xiangjinwu in #25827
- fix(pgwire): parse StartupMessage with empty value at end correctly by @xiangjinwu in #25803
- fix(connector): validate SQL Server sink targets and permissions by @wenym1 in #25831
- fix(storage): estimate SST filter serialized size by @Li0k in #25782
- refactor(meta): group diagnose actors by fragment by @yuhao-su in #25833
- fix(iceberg): resolve upsert sink primary key by index, not lower-cased name by @yuhao-su in #25846
- fix(iceberg): bump iceberg deps by @chenzl25 in #25855
- fix(meta): keep added workers in control stream manager by @wenym1 in #25836
- feat(iceberg): support cancel task for iceberg vacuum by @chenzl25 in #25415
- feat(connector): support timestamptz in StarRocks sink by @wenym1 in #25837
- fix(sink): add trailing slash to snowflake pipe stage path by @yuhao-su in #25851
- fix(cdc): keep TOAST replacement path active on tables without downstream by @wcy-fdu in #25865
- fix(iceberg): fix iceberg sink external table column id by @chenzl25 in #25854
- feat(pg-cdc): support TOAST unchanged-value placeholder for vector columns by @wcy-fdu in #25863
- feat(optimizer): support index selection for seletive backfill by @chenzl25 in #25207
- fix(storage): use blocked filters for non-L0 outputs by @Li0k in #25853
- fix(iceberg): reject sink column order mismatch to prevent silent data corruption by @yuhao-su in #25871
- refactor(meta): track manual iceberg compaction tasks by @Li0k in #25858
- fix(iceberg): protect compaction snapshots from GC by @Li0k in #25842
- refactor(streaming): replace BatchTable with ReplicatedStateTable in lookup executor by @wenym1 in #25331
- feat(config): bootstrap session defaults from
[session_init]in risingwave.toml by @hzxa21 in #25864 - fix(iceberg): Support for canceling a scheduled Iceberg compaction task. by @chenzl25 in #25840
- fix(frontend): include indexes in fragment DDL mapping by @wenym1 in #25903
- feat: support dropping columns for iceberg auto schema sink by @xxhZs in #25636
- fix(grafana): deduplicate relative resource queries by @arkbriar in #25908
- feat(storage): add
iceberg_compaction_enable_prefetchconfig to reduce object storage READ API calls by @tuantran0910 in #25786 - chore(deps): Bump async-openai from 0.40.2 to 0.41.0 by @dependabot[bot] in #25920
- fix(stream): handle stale cross-db MV retention misses by @wenym1 in #25884
- refactor(stream): dispatch stream node body by macro by @wenym1 in #25931
- fix(meta): finish recovered batch refresh jobs by @wenym1 in #25816
- refactor: ensure all meta store tables are empty during meta restore by @zwang28 in #25876
- feat(batch): push limit into iceberg scans by @chenzl25 in #25924
- feat(iceberg): default snapshot gate for compaction by @Li0k in #25687
- Fix panic for DISTINCT ON with aggregate and no GROUP BY by @wilmerdooley in #25905
- perf: store compact task assignments in memory form by @Li0k in #25951
- fix(stream): report recovered snapshot backfill row count by @wenym1 in #25952
- feat(frontend): support serverless backfill for sinks and indexes by @wenym1 in #25953
- feat(ddl): support resource group alter for databases, sinks and indexes by @wenym1 in #25954
- fix(stream): hoist join_matched_join_keys metric guard to executor scope by @rw-jarvis-bot[bot] in #25894
- fix(cdc): allow MySQL public key retrieval in Debezium by @wenym1 in #25933
- feat(meta): support periodic refresh run for batch refresh job by @wenym1 in #25271
- fix(binder): resolve conflicts between
FROMrelation names andCTEnames by @Standing-Man in #25767 - fix(iceberg): handle auto schema change edge cases by @chenzl25 in #25913
- feat(stream): support partitioned gapfill by @chenzl25 in #25287
- chore(grafana): fix PostgreSQL CDC slot WAL lag query by @wcy-fdu in #25961
- fix(metric): invalid promql in storage alert by @hzxa21 in #25134
- fix(pg-cdc): support arrays of enum in auto schema change by @wcy-fdu in #25959
- fix(stream): generate row id before watermark filter by @chenzl25 in #25975
- fix(meta): refresh write limits after compaction group rewrites by @hzxa21 in #25813
- feat(frontend): guard local fs connectors with frontend config by @hzxa21 in #25971
- chore: update main branch docker image to v3.0.0 by @cyliu0 in #25980
- fix(meta): skip batch refresh ack after reset by @wenym1 in #25977
- feat(sink): support turbopuffer sink by @wenym1 in #25984
- fix(storage): address SST filter follow-up comments by @Li0k in #25832
- fix(meta): guard pending compaction target ranges by @Li0k in #25946
- fix(cdc): avoid panic when schema change oneshot receiver is dropped during topology change by @wcy-fdu in #25989
- feat(cdc/monitor): add Postgres CDC WAL lag alert signal (20 GiB threshold) by @wcy-fdu in #25991
- chore(test): drop leftover UDT in pg cdc schema check test by @wcy-fdu in #25996
- feat: Support Pulsar
INCLUDE headersource columns by @tabVersion with @Copilot in #25794 - fix(meta): reject unsafe compaction group merges by @Li0k in #26002
- fix(storage): reuse catalog acquire path for shared compactor by @Li0k in #25987
- chore(toolchain): bump nightly 2025-10-10 → 2026-06-11 by @TennyZhuang in #25945
- fix(cdc): fix parallel cdc backfill recovery by @zwang28 in #25906
- refactor(debezium): fail fast on postgres when wal_status is lost by @zwang28 in #25993
- fix(stream): preserve sink into table conflict semantics by @hzxa21 in #26015
- fix(optimizer): allow unsafe impure project expressions by @wenym1 in #26024
- fix(test): fix time travel slt by @zwang28 in #26030
- fix(frontend): cancel subscription cursor fetch wait by @xxhZs in #25772
- feat(meta): support iceberg v3 exactly once commit by @silver-ymz in #25708
- test(sink): V3 iceberg sink fault injection test suite (madsim) by @silver-ymz in #25778
- fix(meta): add ON DELETE CASCADE foreign key for pending_sink_state by @yuhao-su in #26045
- fix(meta): fix table change log backward compatibility by @zwang28 in #26048
- feat(meta): expose in-flight gRPC handlers in await-tree dumps by @yuhao-su in #25900
- fix(connector): add pulsar source ack observability by @tabVersion in #25995
- fix(cdc): fix cdc backfill recovery by @zwang28 in #25907
- feat(frontend): allow snapshot-free sink queries by @wenym1 in #26023
- fix(sqlparser): correctly parse delimiters inside dollar-quoted string by @Standing-Man in #25599
- fix(stream): rate limit snapshot backfill chunks by @wenym1 in #26022
- fix(sqlparser): correctly parse escaped double-quoted identifiers by @Standing-Man in #25601
- perf(meta): reduce hummock versioning lock contention by @wenym1 in #26076
- fix(meta): fix epoch-continuity panic in finishing_jobs_collector by @yuhao-su in #26060
- feat(iceberg): derive iceberg v3 pk from upstream stream key by @silver-ymz in #25992
- feat(sink): support turbopuffer batching controls by @wenym1 in #26036
- test(sink): fix flaky V3 iceberg fault-injection convergence timeout by @silver-ymz in #26077
- feat(stream): deprecate no-shuffle backfill creation by @wenym1 in #25963
- feat(stream): support eowc gapfill by @chenzl25 in #25350
- refactor(cdc): support alter hostname and port for cdc source by @zwang28 in #26019
- feat(sink): support since_timestamp option by @wenym1 in #26043
- refactor(meta): add hummock lock timing metrics by @wenym1 in #26071
- fix(test): make counter per-instance by @zwang28 in #26090
- refactor(meta): split hummock timer task into per-handler loops by @Li0k in #24773
- fix(meta): defer serverless backfill provisioning by @wenym1 in #25962
- feat(stream): evaluate project chunks concurrently by @wenym1 in #26000
- feat(sink): support REPLACE SINK by @chenzl25 in #26039
- fix(cdc): parse MySQL binlog file seq independent of binlog basename by @yuhao-su in #25919
- fix(dynamodb): retry unprocessed batch write items by @xxhZs in #25985
- fix: fix snowflake decimal and stage path name by @xxhZs in #25169
- feat(connector): surface Kafka consumer group cleanup failures by @tabVersion in #26049
- fix(cdc/postgres): force-close PG connections on stop to release zombie replication slot by @wcy-fdu in #26082
- fix(dashboard): correct user alert signals by @chenzl25 in #26118
- fix(source): complete S3/GCS FULL_RELOAD refresh by @tabVersion in #26016
- fix(cdc): restart snapshot read correctly by @zwang28 in #26105
- fix(meta): bump madsim sqlx fork to fix pool num_idle underflow livelock by @yuhao-su in #26131
- feat(connector): expose Kafka rdkafka retry configs by @tabVersion in #26123
- feat(ctl): add MetaCommands::CreateMetaStoreSchema by @rw-jarvis-bot[bot] in #26154
- feat(expr): add metrics and retry for OpenAI embedding by @wenym1 in #26001
- feat(sink): fix clickhouse sink datetime64 bug by @xxhZs in #20909
- Revert "chore(deps): Bump hyper from 1.9.0 to 1.10.0 (#25822)" by @rw-jarvis-bot[bot] in #26135
- feat(stream): reuse locality backfill snapshot stream by @chenzl25 in #25887
- feat(sink): support serverless task for snowflake sink by @xxhZs in #25090
- feat(connector): ADLS Gen2 service-principal auth for Iceberg sink by @brlu1 in #26124
- refactor(expr): split sync and async expression traits by @wenym1 in #26122
- feat(risedev): add local search and document backends by @xxhZs in #25434
- fix(sink): support parameterized BigQuery decimal types in schema check by @xxhZs in #25401
- fix(connector): reject postgres sink tables with foreign keys by @xxhZs in #25114
- fix(meta): support large meta snapshot JSON lengths by @wenym1 in #26162
- refactor(connector): resolve iceberg catalog config by @chenzl25 in #26168
- fix: update maven download url by @silver-ymz in #26173
- test(iceberg): add Glue catalog e2e coverage by @chenzl25 in #26167
- feat(iceberg): support pk-index sink on iceberg V2 tables by @silver-ymz in #26116
- feat(sink): support Doris VARIANT by @xxhZs in #25451
- refactor(cdc): default time.precision.mode to microseconds by @zwang28 in #26035
- refactor(connector): share iceberg source scan planning by @chenzl25 in #26174
- fix(frontend): correct strictness of mirrored iceberg comparison pushdown by @yuhao-su in #26195
- chore(iceberg): improve iceberg logging by @chenzl25 in #26178
- fix(optimizer): preserve asof left join left predicates by @chenzl25 in #26198
- fix(meta): partially decode backup hummock sequences by @wenym1 in #26193
- refactor(connector): unify Postgres connection config across sink/source/batch/frontend by @wcy-fdu in #25476
- chore: change default linker on macOS by @silver-ymz in #26217
- fix(meta): don't panic on hummock timer child cancellation during shutdown by @yuhao-su in #26221
- feat(frontend): allow unsafe upsert sink primary key mismatch by @wenym1 in #26232
- fix(sink): handle Redshift JDBC schema changes by @xxhZs in #25937
- chore(deps): bump github.com/jackc/pgx/v5 from 5.9.0 to 5.9.2 in /integration_tests/client-library/go by @dependabot[bot] in #25460
- fix(connector): offload Iceberg JNI catalog operations by @chenzl25 in #26244
- fix(connector): support MariaDB CDC validation by @hzxa21 in #26234
- fix(grafana): remove stale error metric queries by @cyliu0 in #26245
- chore(deps): bump golang.org/x/crypto from 0.36.0 to 0.52.0 in /integration_tests/datagen by @dependabot[bot] in #26238
- fix(meta): clear iceberg maintenance for user-created sinks on cascade drop by @yuhao-su in #26228
- fix(grafana): dedup kube-state-metrics series in container termination panel/alert by @yuhao-su in #26240
- fix(optimizer): avoid rewriting LIKE ESCAPE as a binary expression by @Standing-Man in #26241
- fix(connector): decode sql server datetimeoffset snapshots by @zwang28 in #26263
- fix(meta): delete replaced sink internal table objects by @chenzl25 in #26266
- fix(meta): don't hold source worker split lock across enumerator on_tick by @yuhao-su in #26276
- feat(storage): stream meta snapshot backup payload by @wenym1 in #26267
- fix(meta): skip SourceManager::core touches for jobs without source fragments by @yuhao-su in #26277
- fix(meta): remove last_committed_barrier_time series when database has no streaming job by @yuhao-su in #26231
- fix(meta): drop recovered streaming jobs without actor info by @wenym1 in #26175
- fix(storage): support streaming upload fallback by @wenym1 in #26272
- fix(meta): handle partial graph reset during recovery by @wenym1 in #26271
- feat(meta): observability for source worker ticks by @yuhao-su in #26278
- fix: avoid panic on invalid index lookup selection by @zwang28 in #26287
- fix(stream): handle cross-db backfill creation stalls by @wenym1 in #26119
- feat: add table change log latency metrics by @zwang28 in #26292
- doc(metrics): add Prometheus metrics reference and inventory by @arkbriar in #25535
- fix(meta): redact credentials in state store URLs by @Standing-Man in #26160
- feat(sink): limit StarRocks stream load batch size by @xxhZs in #25750
- feat(connector): support Pulsar sink routing mode by @zwang28 in #26304
- feat(sink): validate create sink options by @xxhZs in #26256
- fix(connector): keep CDC LSN metric guards alive by @hzxa21 in #26301
- fix(meta): gate snapshot backfill merge on pending barriers by @wenym1 in #26288
- fix(meta): re-queue iceberg track at now on pre-dispatch failure by @yuhao-su in #26230
- fix(frontend): keep parameterized IN lists flat by @zwang28 in #26310
- fix(frontend): count(*) on iceberg tables must not ignore delete files by @silver-ymz in #26318
- feat(meta): pin backfill snapshots during time travel vacuum by @wenym1 in #26326
- feat(connector): allow altering OpenSearch sink batching by @zwang28 in #26334
- fix(ci): allow longer snapshot backfill merge lag by @wenym1 in #26340
- test(backfill): update cross-db MV SLT expectations by @wenym1 in #26342
- fix(meta): preserve pending forced checkpoints by @wenym1 in #26339
- fix(stream): handle invisible rows in replicated state table by @wenym1 in #26345
- fix(grafana): remove stale metric queries by @cyliu0 in #26302
- fix(stream): prioritize barriers during snapshot backfill by @wenym1 in #26346
- fix(meta): reconcile stale serving vnode mappings by @Li0k in #26352
- test(backfill): flush slow UDF input before sink backfill by @wenym1 in #26365
- fix(stream): support background DDL for temporal joins by @wenym1 in #26359
- fix(cdc): reject CDC table creation when Debezium column filter drops PK column by @wcy-fdu in #25691
- fix(cdc): guard against backward Postgres LSN updates in split state by @wcy-fdu in #25624
- fix(ci): deduplicate automated docs issues by @cyliu0 in #26343
- fix(mysql-cdc): compare unsigned pk with unsigned semantics in backfill buffer by @wcy-fdu in #25947
- test(iceberg): de-flake position-delete assertion and always clean up by @yuhao-su in #26332
- feat(expr): support volatile timestamp and uuid functions by @wenym1 in #26362
- fix(meta): preserve retained time travel versions during vacuum by @wenym1 in #26390
- refactor(meta): use sync lock for source worker shared split map by @yuhao-su in #26283
- refactor(frontend): migrate leaf plan nodes to generic cores by @chenzl25 in #26388
- fix(common): support Arrow TIME units in from-arrow conversion by @xiaozhiyan in #26224
- chore(frontend): remove legacy gap fill constructors by @chenzl25 in #26387
- refactor(storage): add more instrument_await for compactor by @zwang28 in #26199
- chore(deps): bump org.postgresql:postgresql from 42.7.7 to 42.7.12 in /java by @dependabot[bot] in #26383
- fix(frontend): apply ACL filtering to rw_sources by @hzxa21 in #26403
- feat(hummock): support table refill runtime state refresh by @MrCroxx in #24452
- feat(iceberg): support manifest rewrite maintenance by @chenzl25 in #26285
- fix(meta): clean dropped table change logs and watermarks by @wenym1 in #26413
- fix(stream): propagate sync log store watermarks by @chenzl25 in #26385
- fix(stream): rewind log reader on no-op sink config update by @wenym1 in #26412
- fix(common): return errors instead of panicking on out-of-range Arrow temporal values by @yuhao-su in #26398
- fix(cdc): fail fast on Debezium keepalive errors and avoid stop-time false positives by @wcy-fdu in #25233
- feat(pg-cdc): support arrays of user-defined composite types by @wcy-fdu in #25818
- chore(dashboard): migrate from npm to pnpm by @chrispaul-03 in #26407
- fix(meta): preserve pending barriers for since timestamp sinks by @wenym1 in #26420
- fix(binder): preserve nested lateral scopes by @chenzl25 in #26366
- perf(stream): apply LRU watermark to over-window partition cache at chunk boundaries by @yuhao-su in #26424
- fix(common): decode nested parquet columns by the declared field by @yuhao-su in #26354
- fix(meta): throttle snapshot backfill catch-up barriers by @wenym1 in #26423
- feat(meta): support typed fragment rate limits by @wenym1 in #26183
- refactor(connector): centralize Iceberg engine options by @chenzl25 in #26431
- chore(deps): Bump pg_interval from 0.4.2 to 0.6.0 by @dependabot[bot] in #25974
- chore(deps): Bump indexmap from 2.13.0 to 2.14.0 by @dependabot[bot] in #25299
- fix(meta): exclude internal tables from time travel epoch mappings by @wenym1 in #26443
- chore(deps): Bump async-nats from 0.47.0 to 0.49.1 by @dependabot[bot] in #25904
- feat: delete merger stage scanned delete file by @silver-ymz in #26268
- chore(deps): Bump quick-xml from 0.39.0 to 0.40.1 by @dependabot[bot] in #25745
- fix(binder): resolve qualified wildcards for schema-qualified relations by @hzxa21 in #26419
- test(sim): actually wait for recovery in kill-and-recover test helpers by @yuhao-su in #26282
- chore(deps): Bump sysinfo from 0.38.0 to 0.39.3 by @dependabot[bot] in #25843
- chore(deps): Bump rust-embed from 8.11.0 to 8.12.0 by @dependabot[bot] in #26449
- chore(deps): Bump redis from 1.0.2 to 1.2.4 by @dependabot[bot] in #26459
- feat: update dashboard UI by @chrispaul-03 in #26446
- chore(deps): Bump either from 1.15.0 to 1.17.0 by @dependabot[bot] in #26453
- chore(deps): Bump tokio-metrics from 0.4.0 to 0.5.1 by @dependabot[bot] in #26455
- chore(deps): Bump serial_test from 3.4.0 to 4.0.1 by @dependabot[bot] in #26456
- fix(iceberg): enable manifest rewrite for engine tables by default by @chenzl25 in #26471
- feat(sink): support turbopuffer num_shards by @wenym1 in #26197
- fix(common): make Timestamptz representability a construction-time invariant by @yuhao-su in #26399
- fix(mysql-cdc): map MySQL SERIAL to decimal by @raj921 in #26410
- feat(risedev): add local Redis sink test flow by @Ad-Bean in #26373
- fix(stream): keep consuming on a no-op sink config update by @yuhao-su in #26484
- chore(profile): emit line tables only in the dev profile by @yuhao-su in #26462
- fix(iceberg): preserve partition column when pruning hidden sink columns by @Standing-Man in #26356
- fix(storage): enforce scan range in forward SST iterator by @Li0k in #26480
- fix(meta): notify hummock for cache refill config by @zwang28 in #26464
- fix(frontend): resolve fixed backfill order for index scans by @chenzl25 in #26486
- fix(meta): limit pending barriers in partial graphs by @wenym1 in #26467
- ci: increase single-node e2e timeout by @cyliu0 in #26427
- fix(frontend): avoid catalog-user lock order inversion by @chenzl25 in #26488
- fix(test): update meta backup state store expectation by @zwang28 in #26487
- fix(pgwire): tolerate mixed-key JWKS for OAuth by @mattisonchao in #26416
- perf(storage): prune irrelevant SSTs before cache refill by @Li0k in #26429
- fix(sink): persist empty pre-commit epochs by @wenym1 in #26498
- fix(meta): reject inverted table change log epoch ranges by @wenym1 in #26478
- feat: report barrier metrics by partial graph by @wenym1 in #26495
- fix(test): query join state table counts directly by @wenym1 in #26500
- ci: optionally trigger main-cron from Docker image workflow by @wenym1 in #26463
- chore(deps): bump next from 16.2.10 to 16.2.11 in /dashboard by @dependabot[bot] in #26415
- chore(deps): Bump bitflags from 2.11.1 to 2.13.1 by @dependabot[bot] in #26457
- chore(deps): Bump aws-lc-rs from 1.16.2 to 1.17.3 by @dependabot[bot] in #26450
- chore(deps): Bump lru from 0.16.3 to 0.18.1 by @dependabot[bot] in #26458
- chore(deps): Bump com.amazon.redshift:redshift-jdbc42 from 2.1.0.33 to 2.2.2 in /java/connector-node/risingwave-jdbc-runner by @dependabot[bot] in #25677
- chore(deps): Bump com.amazon.redshift:redshift-jdbc42 from 2.1.0.33 to 2.2.2 in /java/connector-node/risingwave-sink-jdbc by @dependabot[bot] in #25664
- feat(iceberg): support per-table metadata relations by @chenzl25 in #26466
- feat(types): support variant type by @chenzl25 in #26080
- test: remove low-value tests by @chenzl25 in #26473
- feat(streaming): improve await-tree visibility for common waits by @chenzl25 in #26514
- doc: tighten user-facing PR label guidance by @hzxa21 in #26516
- chore(deps): Bump org.apache.logging.log4j:log4j-core from 2.25.3 to 2.25.4 in /java by @dependabot[bot] in #25325
- chore(deps): Bump org.postgresql:postgresql from 42.7.3 to 42.7.11 in /integration_tests/client-library/java by @dependabot[bot] in #25573
- chore(deps): bump org.eclipse.jetty:jetty-util from 12.0.33 to 12.0.35 in /java by @dependabot[bot] in #26414
- chore(deps): bump golang.org/x/net from 0.54.0 to 0.55.0 in /integration_tests/datagen by @dependabot[bot] in #26132
- feat(frontend): license WebSocket ingest by @hzxa21 in #26519
- chore(deps): bump quinn-proto from 0.11.14 to 0.11.16 by @dependabot[bot] in #26441
- test(stream): assert over-window metric deltas by @hzxa21 in #26538
- ci: increase standalone e2e timeout by @hzxa21 in #26539
- test: remove source-only options from file sink e2e by @hzxa21 in #26541
- fix(frontend): gate Iceberg engine schema changes by license by @chenzl25 in #26536
- chore: add actor_id and fragment_id in cdc backfill failure log by @hzxa21 in #25328
- chore(deps-dev): Bump com.fasterxml.jackson.core:jackson-databind from 2.19.2 to 2.22.0 in /java by @dependabot[bot] in #26034
- fix(cdc): fail initial backfill on invalid primary keys by @hzxa21 in #26513
- fix(cdc): diagnose postgres select privilege by @hzxa21 in #26079
- feat(batch): support await-tree dump for batch tasks by @chenzl25 in #26515
- fix(sink): wait for async truncate before reading next item by @wenym1 in #25883
- fix(meta): unify creating job catalog notifications by @wenym1 in #26557
- fix(iceberg): update dependencies for equality-delete read errors by @chenzl25 in #26555
- fix(storage): collect point get iterator stats by @Li0k in #26405
- fix(meta): cascade drop subscriptions with upstream objects by @wenym1 in #26171
- fix(batch): cap masked fragment mapping parallelism by @zwang28 in #26560
- refactor: introduce IcebergCompactionTaskId type by @silver-ymz in #26562
- chore(deps): Bump org.postgresql:postgresql from 42.7.11 to 42.7.12 in /integration_tests/client-library/java by @dependabot[bot] in #26520
- fix(frontend): prevent non-admin rename of admin-owned database by @hzxa21 in #26572
- fix(meta): persist worker resource metadata by @zwang28 in #26568
- fix(frontend): correct batch hop window order property by @chenzl25 in #26569
- refactor: extract position delete helpers and simplify pk-index writer by @silver-ymz in #26563
- fix(ci): upgrade through intermediate releases in back-compat tests by @wenym1 in #26590
- feat(frontend): log suppressed webhook errors by @hzxa21 in #26589
- fix: pass
--config-path /risingwave.tomlto compactor in standalone docker-compose files by @hzxa21 with @Copilot in #25092 - chore(deps-dev): Bump com.fasterxml.jackson.core:jackson-databind from 2.22.0 to 2.22.1 in /java by @dependabot[bot] in #26553
- fix(batch): mask serving workers with version mismatch by @zwang28 in #26559
- feat(storage): expose file cache submit queue threshold by @Li0k in #26599
- feat(iceberg): add variant type for iceberg source by @yuhao-su in #25165
- fix(pgwire): support configurable OAuth audience by @mattisonchao in #26531
- fix(storage): record meta refill success only on success by @zwang28 in #26591
- feat(batch): support lookup join on a lookup table with singleton distribution by @chenzl25 in #26597
- chore(deps): Bump opensearch from 2.3.0 to 2.4.0 by @dependabot[bot] in #25177
- fix: upgrade shaded Hadoop client runtime by @cyliu0 in #26614
- chore: upgrade Snowflake ADBC driver to 1.12.0 by @cyliu0 in #26613
- ci: restrict GitHub Actions token permissions by @cyliu0 in #26627
- fix(stream): count join matched rows directly by @zwang28 in #26554
- refactor(meta): support two-phase barrier command notifiers by @wenym1 in #26612
- refactor(storage): decouple table change logs from hummock versions by @wenym1 in #26561
- fix(meta): support subscription migration on MySQL by @wenym1 in #26592
- fix(metrics): retain cumulative guarded metrics for owner lifetime by @hzxa21 in #26408
- fix(risedev): skip unnecessary pgpass lookup by @chenzl25 in #26630
- fix(test): avoid logging Vault AppRole secret IDs by @hzxa21 in #26621
- fix(iceberg): bump dependencies for operator caching by @chenzl25 in #26642
- feat(connector): support Confluent's known types beyond protobuf WKT by @maybe-vibe in #25766
- feat(meta): model catalog object belong-to relations by @wenym1 in #26491
- chore(deps): bump redis from 1.0.2 to 1.2.4 by @dependabot[bot] in #26524
- fix(sink): throttle coordinator recovery retries by @chenzl25 in #26641
- doc: explain Buildkite approval for fork PRs by @cyliu0 in #26652
- feat: support initial cache refill policy by @zwang28 in #26603
- fix(frontend): derive scan ranges for SOME array predicates by @zwang28 in #26629
- fix(meta): tolerate exactly-once metadata cleanup during sink drop by @hzxa21 in #26631
- chore(deps): bump base64 from 0.22.1 to 0.23.1 by @dependabot[bot] in #26646
- fix(cdc): share type compatibility validation for schema changes by @zwang28 in #26448
- fix(grafana): set pod all value regex by @arkbriar in #26666
- fix(catalog): reject altering internal table schema by @wenym1 in #26644
- chore(deps): bump foyer to 0.22.3 by @Li0k in #26600
- feat(iceberg): support auto compaction type by @chenzl25 in #26643
- feat(frontend): support auto locality backfill mode by @chenzl25 in #25990
- feat: add pk-index compaction resolver stream operator by @silver-ymz in #26564
- ci: label external contributor PRs as community by @cyliu0 in #26683
- refactor(stream): load global watermark asynchronously by @wenym1 in #26640
- feat: wire pk-index compaction to stream task and iceberg compactor by @silver-ymz in #26565
- refactor(meta): label Hummock lock write operations by @zwang28 in #26698
- fix: update CI labels guide link in PR template by @howenyap in #26696
- fix(meta): preserve recoverable foreground jobs after recovery by @wenym1 in #26472
- feat(frontend): allow altering creating streaming jobs by @wenym1 in #26104
- fix(stream): keep sink into table upsert semantics with preserve_row_level_changes (#26713) by @risingwave-ci in #26720
- fix(sink): rate limit kafka producer backpressure warnings (#26746) by @risingwave-ci in #26749
- cherry-pick: ci: fix community PR labeling workflow (#26717) by @cyliu0 in #26721
- perf(meta): isolate version checkpoint runtime (#26756) by @risingwave-ci in #26767
- fix(connector): avoid Pub/Sub streaming pull flow-control stalls (#26817) by @risingwave-ci in #26819
- fix(pgwire): enforce password authentication flow (#26825) by @risingwave-ci in #26844
- fix(cdc): match MySQL schema-change columns case-insensitively (#26878) by @risingwave-ci in #26880
- fix(udf): support standard http/https endpoints in USING LINK (#26792) by @risingwave-ci in #26801
- fix(connector): preserve MySQL composite primary key order (#26847) by @risingwave-ci in #26885
- chore: polish user-facing messages across components (#25762) by @risingwave-ci in #26734
- fix(pgwire): stream query results incrementally (#26727) by @risingwave-ci in #26778
- fix(connector): isolate Pulsar ACK channels by actor (#26826) by @risingwave-ci in #26909
- cherry-pick perf(meta): reduce commit epoch sanity check meta-store IO by @zwang28 in #26781
- fix(connector): ack Pulsar messages for every split (#26892) by @zwang28 in #26955
- cherry-pick: feat(cdc): add MySQL binlog file lag alert (#26743) to release-3.1 by @rw-jarvis-bot[bot] in #26963
- feat(iceberg): backport compaction fixes to release-3.1 by @chenzl25 in #26898
- fix(meta): avoid snapshot race during resubscribe (#25728) by @risingwave-ci in #26970
- fix(stream): skip CDC snapshot reader when backfill disabled (#26650) by @risingwave-ci in #26977
- ci(pubsub): update expired emulator image (#26952) by @risingwave-ci in #27004
- chore: update version to v3.1.0-rc.1 by @cyliu0 in #27021
New Contributors
- @wilmerdooley made their first contribution in #25905
- @brlu1 made their first contribution in #26124
- @xiaozhiyan made their first contribution in #26224
- @raj921 made their first contribution in #26410
- @mattisonchao made their first contribution in #26416
- @maybe-vibe made their first contribution in #25766
Full Changelog: v3.0.3...v3.1.0-rc.1