Release date: February 02, 2026
๐ Highlights
Region Repartition
- Support for region repartitioning is now available to manage data distribution. Users can dynamically adjust partitions using new SQL syntax:
ALTER TABLE <table> SPLIT PARTITION (<partition_expr>) TO (<partition_expr_list>);ALTER TABLE <table> MERGE PARTITION (<partition_expr_list>);
- Note: This feature is currently supported only in distributed mode with object storage enabled.
Performance & Query Optimization
- Optimized query execution with faster primary key filtering, improved PromQL planning using TSID, and enhanced query trace tuning for better observability and speed.
Breaking changes
- feat!: make heartbeat config only in metasrv by @fengjiachun in #7510
โ ๏ธ Compatibility notice
In the new version, the TableMeta.region_numbers field has been removed.
As older versions still depend on this field, downgrading from the new version to an older version may introduce compatibility issues. Specifically, an older version may fail or throw errors when reading data generated by the new version, since the region_numbers field is no longer present.
๐ Features
- feat: impl vector index building by @killme2008 in #7468
- feat: update
ApplyStagingManifestRequestto fetch manifest from central region by @WenyXu in #7493 - feat: impl
json_get_intfor new json type by @MichaelScofield in #7495 - feat(meta-srv): fallback to non-TLS connection when etcd TLS prefer mode fail by @WenyXu in #7507
- feat: implement
RemapManifestandApplyStagingManifestfor repartition procedure by @WenyXu in #7509 - feat: ingest jsonbench data through pipeline by @MichaelScofield in #7312
- feat: repartition grammar candy by @waynexia in #7518
- feat: adjust some args to gc worker by @discord9 in #7469
- feat(repartition): implement region deallocation for repartition procedure by @WenyXu in #7522
- feat: bump promql-parser to v0.7.1 by @waynexia in #7521
- feat: tune query traces by @waynexia in #7524
- feat: update special remote write label name by @sunng87 in #7527
- feat(repartition): implement region allocation for repartition procedure by @WenyXu in #7534
- feat(repartition): implement validation logic for repartition table by @WenyXu in #7538
- feat: integrate repartition procedure into
DdlManagerby @WenyXu in #7548 - feat: make grpc can handle metric engine request by @fengjiachun in #7508
- feat: always canonicalize partition expr by @waynexia in #7553
- feat: gc schd update repart mapping by @discord9 in #7517
- feat: impl vector index scan in storage by @killme2008 in #7528
- feat: add per-partition convert, result cache metrics by @evenyag in #7539
- feat(cli): support RaftEngine store backend for metadata snapshot operations by @WenyXu in #7467
- feat: enable pruning for manipulate plans by @waynexia in #7565
- feat: add sync region instruction for repartition procedure by @WenyXu in #7562
- feat: flush region before close when skip-wal is enabled by @v0y4g3r in #7549
- feat: support for types of series identifier in series divide plan by @waynexia in #7583
- feat: export import v2 rfc by @fengjiachun in #7499
- feat: debug/mem/symbol by @discord9 in #7573
- feat(meta): add repartition timeouts and metrics by @WenyXu in #7587
- feat: exact partition filter by @discord9 in #7571
- feat: add ddl timeout/wait options, repartition
WITHparsing, meta-client startup refactor by @WenyXu in #7589 - feat: gc worker on dropped region by @discord9 in #7537
- feat: use tsid on promql planner by @waynexia in #7590
- feat: implement view-based vector types by @waynexia in #7600
- feat: ser/de for HistogramFold&UnionDistinctOn by @discord9 in #7601
- feat: support TQL parsing in CREATE TRIGGER by @fengys1996 in #7599
- feat: UDF json_get with user specified return type by @sunng87 in #7554
- feat: ensure datanode plan's dist and ordering for tsid col by @waynexia in #7614
- feat: add
partial_droptoDropRequestby @WenyXu in #7597 - feat: partition rule simplifier by @waynexia in #7622
- feat: use arrow-pg for postgres data encoding by @sunng87 in #7591
- feat: impl vector index query by @killme2008 in #7564
- feat: BulkMemtable compact parts without encoding into Parquet by @evenyag in #7617
- feat: flow last non null by @discord9 in #7646
๐ Bug Fixes
- fix: align backend_tls default value with example config by @WenyXu in #7496
- fix: fix sqlness test error about double precision by @Standing-Man in #7476
- fix: dist planner rm col req when rm sort by @discord9 in #7512
- fix: pipeline loading issue by @shuiyisong in #7491
- fix: remove log_env_flags by @fengjiachun in #7529
- fix: simp expr recursively by @discord9 in #7523
- fix: precise filter time index if not in projection by @evenyag in #7531
- fix: incorrect timestamp index inference by @waynexia in #7530
- fix: fix SQL table identifier quoting for election by @WenyXu in #7541
- fix: fix topic region mapping sync and handle
region_not_foundin migration by @WenyXu in #7552 - fix: vector index metadata missing by @killme2008 in #7575
- fix: correctly parse json string that contain unicode code point literal by @MichaelScofield in #7520
- fix: fix nightly ci by @WenyXu in #7588
- fix(datanode): fetch region engine via
get_enginefor sync/remap operations by @WenyXu in #7594 - fix: read filter's column by @discord9 in #7579
- fix: clear unused range builders eagerly by @evenyag in #7569
- fix: unit tests for export module by @fengys1996 in #7607
- fix: correct histogram result by @waynexia in #7608
- fix: use phy table when need fitler by tsid/table id by @discord9 in #7609
- fix: unit tests when enterprise feature is enabled by @fengys1996 in #7618
- fix: flaky compaction test by @v0y4g3r in #7627
- fix: unit tests when enterprise feature is enabled by @fengys1996 in #7625
- fix(repartition): improve physical region allocation and compaction read path correctness by @WenyXu in #7621
- fix: gc update repart map properly by @discord9 in #7606
- fix: wrong relation used in promql planner time cast by @fengys1996 in #7624
- fix: clean up staging blob directory on clear by @WenyXu in #7642
- fix: get correct table info when insert create/alter table by @discord9 in #7641
- fix: send get file ref to all regions by @discord9 in #7640
๐ Refactor
- refactor: remove
region_numbersfromTableMetaandTableInfoby @WenyXu in #7519 - refactor: refactor
CreateTableProcedureto extract reusable components by @WenyXu in #7526 - refactor: remove duplications from mito by @waynexia in #7632
- refactor: SQL and gRPC server handlers by @waynexia in #7637
โก Performance
- perf: avoid boundary checks on accessing array items by @waynexia in #7570
- perf: accelerate pk filter by @waynexia in #7584
- perf: skip unnecessary label columns in promql query by @waynexia in #7602
๐จ Styling
๐งช Testing
- test(cli): fix snapshot test paths on Windows by @WenyXu in #7574
- test: add integration tests for repartition by @WenyXu in #7560
โ๏ธ Miscellaneous Tasks
- ci: update breaking change title level by @evenyag in #7497
- chore: add tests to comment column on information_schema by @waynexia in #7514
- chore: check for redundant pre-commit hooks by @Standing-Man in #7506
- chore: add grafana dashboard about trigger by @fengys1996 in #7536
- chore: add information extension to the plugins in frontend by @shuiyisong in #7542
- chore: sqlness redact time properly by @discord9 in #7543
- chore: sqlness fmt by @discord9 in #7551
- chore: upgrade DataFusion family by @MichaelScofield in #7558
- chore: batch requests in metric engine by @fengjiachun in #7535
- chore: aggr wrapper use return_field by @discord9 in #7582
- chore: add timestamp range to flight meta by @v0y4g3r in #7513
- chore: not ignore error now bug is fixed in #7579 by @discord9 in #7596
- ci: release only large page size binary for ARM platform by @MichaelScofield in #7593
- ci: run database connector tests for every PR by @sunng87 in #7612
- chore: skip database driver test when building nightly binary by @sunng87 in #7630
- ci: upgrade GCC in centos dev-builder for cxx crate compatibility by @killme2008 in #7643
- chore: bump version rc.1 by @WenyXu in #7645
- ci: remove db driver test from release as well by @sunng87 in #7650
All Contributors
We would like to thank the following contributors from the GreptimeDB community:
@MichaelScofield, @Standing-Man, @WenyXu, @discord9, @evenyag, @fengjiachun, @fengys1996, @killme2008, @shuiyisong, @sunng87, @v0y4g3r, @waynexia