github risingwavelabs/risingwave v3.1.0-rc.1

pre-release4 hours ago

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.ms for 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.147 to 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_prefetch config 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 FROM relation names and CTE names 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 header source 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.toml to 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

Full Changelog: v3.0.3...v3.1.0-rc.1

Don't miss a new risingwave release

NewReleases is sending notifications on new releases.