Skip to content


Release date: May 18, 2024

👍 Highlights

  • Flow Engine: which brings continuous aggregation capabilities.
  • Column Type Modification: allows you to effortlessly alter the data type of columns within a table without the hassle of rebuilding the table or manually migrating data.
  • Cluster Management Information Table: allows querying for information about the cluster. This functionality aids administrators in monitoring and managing the health status of the database cluster, facilitating prompt issue detection and resolution.
  • Append-only Tables: You can now create tables in Append-only mode by setting the append mode during table creation.
  • DROP DATABASE: enables swift deletion of all tables and resources under a database instance.
  • EXPLAIN ANALYZE <QUERY>: analyze and optimize query statements swiftly in distributed mode.

Breaking changes

🚀 Features

🐛 Bug Fixes

  • fix(readme): fix link of Ingester-js by @DiamondMofeng in #3668
  • fix: DeserializedValueWithBytes::from_inner misusing by @WenyXu in #3676
  • fix: cli export "create table" with quoted names by @dimbtp in #3684
  • fix(alter_table): ignore request outdated error by @WenyXu in #3715
  • fix: remove ttl option from metadata region by @waynexia in #3726
  • fix: set is_time_index properly on updating physical table's schema by @waynexia in #3770
  • fix: the dropping_regions guards should be dropped on procedure done by @MichaelScofield in #3771
  • fix: operating region guards should be dropped when procedure is done by @MichaelScofield in #3775
  • fix: consider both db param and extended db header in Prometheus HTTP API by @waynexia in #3776
  • fix: do not remove deletion markers when window time range overlaps by @v0y4g3r in #3773
  • fix: promql scalar when input empty batch by @Taylor-lagrange in #3779
  • fix: post process result on query full column name of prom labels API by @waynexia in #3793
  • fix: fix fuzz test ci by @WenyXu in #3795
  • fix: prune row groups correctly for columns with the same name by @evenyag in #3802
  • fix: push down order hint of the query again by @evenyag in #3797
  • fix: wrong handler implementation of prometheus remote write by @waynexia in #3826
  • fix: broken link in contributing guide by @waynexia in #3831
  • fix: compiler warnings on Windows by @evenyag in #3844
  • fix: count_wildcard_to_time_index_rule doesn't handle table reference properly by @waynexia in #3847
  • fix: retrieve all info instead of checking on demand by @WenyXu in #3846
  • fix: register regions during procedure recovery by @WenyXu in #3859
  • fix: return metric name instead of query in Prometheus /series API by @waynexia in #3864
  • fix: add data type to vector cache key by @evenyag in #3876
  • fix: memory leak in unit test of telemetry by @waynexia in #3897
  • by @waynexia
  • fix: sort unstable HTTP result in label values query by @waynexia in #3920
  • fix: potential deadlock by @WenyXu in #3930
  • fix(metric engine): label mismatch in metric engine by @v0y4g3r in #3927
  • fix: prevent exporting metric physical table data by @WenyXu in #3970
  • fix: prevent registering logical regions with AliveKeeper by @WenyXu in #3965
  • fix: changing column data type can't process type alias by @killme2008 in #3972
  • fix: tql parser hang on abnormal input by @waynexia in #3977

🚜 Refactor

  • refactor: pass http method to metasrv http handler by @tisonkun in #3667
  • refactor(flow): func spec api&use Error not EvalError in mfp by @discord9 in #3657
  • refactor: bundle the lightweight axum test client by @tisonkun in #3669
  • refactor: refactor alter table procedure by @WenyXu in #3678
  • refactor: drop table procedure by @WenyXu in #3688
  • refactor: check error type before logging by @sunng87 in #3697
  • refactor: Move manifest manager lock to MitoRegion by @evenyag in #3689
  • refactor: use toml2docs to generate config docs by @zyy17 in #3704
  • refactor: remove redundant try_flush invocations by @tisonkun in #3706
  • refactor: merge RegionHandleResult into RegionHandleResponse by @tisonkun in #3721
  • refactor(meta): Ensure all moving values remain unchanged between two transactions by @WenyXu in #3727
  • refactor: avoid unnecessary cloning by @WenyXu in #3734
  • refactor: avoid unnecessary alloc by using unwrap_or_else by @etolbakov in #3742
  • refactor(flow): split and other minor changes by @discord9 in #3750
  • refactor: move the version string to common by @MichaelScofield in #3783
  • refactor: simplify the PaginationStream by @WenyXu in #3787
  • refactor(flow): refine comments and code by @zhongzc in #3785
  • refactor: log statement on error by Display by @tisonkun in #3803
  • refactor: refactor DatanodeManager to NodeManager by @WenyXu in #3811
  • refactor: DfUdfAdapter to bridge ScalaUdf by @tisonkun in #3814
  • refactor: remove location_opt and DebugFormat by @waynexia in #3830
  • refactor: use secrecy SerectString to hold secrets option by @tisonkun in #3804
  • refactor: rename flow task to flow by @WenyXu in #3833
  • refactor: remove catalog prefix by @WenyXu in #3835
  • refactor: remove TableMetaKey trait by @WenyXu in #3837
  • refactor: move database client to test by @dimbtp in #3820
  • refactor: remove re-export from logging by @waynexia in #3865
  • refactor: passing QueryContext to RegionServer by @Kelvinyu1117 in #3829
  • refactor: add the main cli entry point struct Command{} and simplify main() by @zyy17 in #3850
  • refactor: move Plugins to and use rwlock by @zyy17 in #3862
  • refactor(logstore): remove Entry::namemspace by @v0y4g3r in #3875
  • refactor: move mirror insertion tasks to the background runtime by @WenyXu in #3879
  • refactor: remove MixOptions and use StandaloneOptions only by @zyy17 in #3893
  • refactor: add procedure_loader macro by @WenyXu in #3906
  • refactor: make txn easy to use by @fengjiachun in #3905
  • refactor: Remove PhysicalPlan trait and use ExecutionPlan directly by @evenyag in #3894
  • refactor: refactor frontend cache by @WenyXu in #3912
  • refactor: rename metasrv_addr to metasrv_addrs by @fengjiachun in #3921
  • refactor: add tracing options in xOptions by @zyy17 in #3919
  • refactor: add Configurable trait by @zyy17 in #3917
  • refactor(naming): use the better naming for pubsub by @zyy17 in #3960

📚 Documentation

⚡ Performance

🧪 Testing

  • test: Add tests for KvBackend trait implement by @realtaobo in #3700
  • test: introduce unstable fuzz create table test by @WenyXu in #3788
  • test: give windows file watcher more time by @sunng87 in #3953
  • test: gracefully shutdown postgres client in sql tests by @evenyag in #3958

⚙️ Miscellaneous Tasks


New Contributors

All Contributors

We would like to thank the following contributors from the GreptimeDB community:

@CookiePieWw, @DiamondMofeng, @KKould, @Kelvinyu1117, @MichaelScofield, @Taylor-lagrange, @WenyXu, @ZonaHex, @dimbtp, @discord9, @etolbakov, @evenyag, @fengjiachun, @irenjj, @killme2008, @realtaobo, @shuiyisong, @sunng87, @tisonkun, @tizee, @v0y4g3r, @waynexia, @zhongzc, @zyy17