v0.12.0
Release date: February 27, 2025
Breaking changes
- refactor!: unify the option names across all components by @fengjiachun in #5457
- refactor!: unify the option names across all components part2 by @fengjiachun in #5476
- feat!: unify all index creation grammars by @waynexia in #5486
- refactor!: remove datetime type by @fengjiachun in #5506
- feat!: support alter skipping index by @waynexia in #5538
🚀 Features
- feat: Address different Metrics for Prometheus queries in the Dashboard and fix typo in metric name by @Stephan3555 in #5441
- feat(metric-engine): support to write rows with sparse primary key encoding by @WenyXu in #5424
- feat: add CORS headers for http interfaces by @sunng87 in #5447
- feat: mirror insert request to flownode in async by @waynexia in #5444
- feat: expose http endpoint for flownode and metasrv by @waynexia in #5437
- feat: provide options to disable or customize http corss-origin settings by @sunng87 in #5450
- feat(cli): add proxy options by @discord9 in #5459
- feat: add vec_add function by @zhongzc in #5471
- feat: write memtable in parallel by @waynexia in #5456
- feat: update topic-region map when create and drop table by @CookiePieWw in #5423
- feat: move pipelines to the first-class endpoint by @waynexia in #5480
- feat: pipeline dispatcher part 2: execution by @sunng87 in #5409
- feat: add metadata method to puffin reader by @zhongzc in #5501
- feat: update dashboard to v0.7.9 by @ZonaHex in #5508
- feat: change puffin stager eviction policy by @zhongzc in #5511
- feat: update dashboard to v0.7.10-rc by @ZonaHex in #5512
- feat: support server-side keep-alive for mysql and pg protocols by @waynexia in #5496
- feat: implement Jaeger query APIs by @zyy17 in #5452
- feat: alias database matcher for promql by @sunng87 in #5522
- feat: speed up read/write cache and stager eviction by @evenyag in #5531
- feat: window sort supports where on fields and time index by @evenyag in #5527
- feat: add stager nofitier to collect metrics by @zhongzc in #5530
- feat(promql): add series count metrics by @waynexia in #5534
- feat: add snapshot seqs field to query context by @discord9 in #5477
- feat: drop noneffective regex filter by @waynexia in #5544
- feat(log-query): support specifying exclusive/inclusive for between filter by @waynexia in #5546
- feat: collect stager metrics by @evenyag in #5553
- feat: update dashboard to v0.7.10 by @ZonaHex in #5562
- feat: allow purging a given puffin file in staging area by @zhongzc in #5558
- feat(promql): supports sort, sort_desc etc. functions by @killme2008 in #5542
- feat(log-query): implement the first part of log query expr by @waynexia in #5548
- feat: submit node's cpu cores number to metasrv in heartbeat by @MichaelScofield in #5571
- feat: flow type on creating procedure by @fengjiachun in #5572
- feat: remap flow route address by @fengjiachun in #5565
- feat: enable gzip for prometheus query handlers and ignore NaN values in prometheus response by @WenyXu in #5576
- feat: implement uddsketch function to calculate percentile by @waynexia in #5574
- feat: support UNNEST by @waynexia in #5580
- feat: support to generate json output for explain analyze in http api by @waynexia in #5567
- feat: run sqlness in parallel by @waynexia in #5499
- feat: unify puffin name passed to stager by @zhongzc in #5564
- feat: remove default inverted index for physical table by @waynexia in #5583
- feat: impl
hll_state
,hll_merge
andhll_calc
for incremental distinct counting by @waynexia in #5579 - feat: update dashboard to v0.7.11 by @ZonaHex in #5597
- feat(promql): ignore invalid input in histogram plan by @waynexia in #5607
- feat(promql): implement subquery by @waynexia in #5606
- feat: introduce
prom_round
fn by @WenyXu in #5604 - feat(promql-planner): introduce vector matching binary operation by @WenyXu in #5578
🐛 Bug Fixes
- fix: unexpected warning on applying bloom by @zhongzc in #5431
- fix: arm actions test failed by @yihong0618 in #5433
- fix: install x86-64 protoc on android dev-builder by @zyy17 in #5443
- fix: drop unused numpy code since pyo3 rustpython do not support any more by @yihong0618 in #5442
- fix: flush table panic when table has interval column close #3235 by @yihong0618 in #5422
- fix: remove metric engine's internal column from promql's query by @waynexia in #5032
- fix: better error handler for the time range close #5449 by @yihong0618 in #5453
- fix: no need for special case since datafusion updated by @yihong0618 in #5458
- fix: don't transform Limit in TypeConversionRule, StringNormalizationRule and DistPlannerAnalyzer by @evenyag in #5472
- fix: introduce gc task for metadata store by @WenyXu in #5461
- fix: lose decimal precision when using decimal type as tag by @evenyag in #5481
- fix: Delete statement not supported in metric engine close #4649 by @yihong0618 in #5473
- fix: unquote flow_name in create flow expr by @discord9 in #5483
- fix: force recycle region dir after gc duration by @evenyag in #5485
- fix: cross compiling for aarch64 targets and allow customizing page size by @v0y4g3r in #5487
- fix: close issue #5466 by do not shortcut the drop command by @yihong0618 in #5467
- fix: refactor pgkv using prepare_cache about 10% better by @yihong0618 in #5497
- fix: drop useless clone and for loop second by @yihong0618 in #5507
- fix: use fixed
tonistiigi/binfmt:qemu-v7.0.0-28
image version instead of latest version to avoid segmentation fault by @zyy17 in #5516 - fix(query_range): skip data field on errors by @WenyXu in #5520
- fix(promql): unescape matcher values by @WenyXu in #5521
- fix: old typo by @waynexia in #5532
- fix(jaeger): return error when no tracing table by @zyy17 in #5539
- fix(promql): ignore filters for non-existent labels by @WenyXu in #5519
- fix: promql join operation won't consider time index by @waynexia in #5535
- fix: information_schema.cluster_info be covered by the same id by @fengjiachun in #5555
- fix: correct promql behavior on nonexistent columns by @waynexia in #5547
- fix: window sort support alias time index by @evenyag in #5543
- fix(promql-planner): remove le tag in ctx by @WenyXu in #5560
- fix(promql-planner): correct AND/UNLESS operator behavior by @WenyXu in #5557
- fix(promql-planner): update ctx field columns of OR operator by @WenyXu in #5556
- fix: broken link in AUTHOR.md by @waynexia in #5581
- fix: avoid run labeler job concurrently by @waynexia in #5584
- fix: correct
inverted_indexed_column_ids
behavior by @WenyXu in #5586 - fix: remove cached and uploaded files on failure by @evenyag in #5590
- fix: update show create table output for fulltext index by @evenyag in #5591
- fix: all heartbeat channel need to check leader by @fengjiachun in #5593
- fix(metasrv): reject ddl when metasrv is follower by @v0y4g3r in #5599
- fix(prom): preserve the order of series in
PromQueryResult
by @WenyXu in #5601 - fix: flow heartbeat retry by @discord9 in #5600
- fix(metasrv): clean expired nodes in memory by @v0y4g3r in #5592
🚜 Refactor
- refactor(mito): Allow creating multiple files in ParquetWriter by @v0y4g3r in #5291
- refactor: pull column filling logic out of mito worker loop by @waynexia in #5455
- refactor: otlp logs insertion by @shuiyisong in #5479
- refactor: change traversal order during index construction by @zhongzc in #5498
- refactor: refactor region server request handling by @WenyXu in #5504
- refactor: refactor pg kvbackend impl in preparation for other rds kvbackend by @CookiePieWw in #5494
- refactor: use global type alias for pipeline input by @sunng87 in #5568
📚 Documentation
- docs: the year is better to show in 2025 by @yihong0618 in #5468
- docs: fix memory perf command wrong by @yihong0618 in #5470
- docs: revise the author list by @beryl678 in #5575
⚡ Performance
- perf: optimize writing non-null primitive value by @waynexia in #5460
- perf: optimize time series memtable ingestion by @waynexia in #5451
- perf: better performance for LastNonNullIter close #5229 about 10x times faster by @yihong0618 in #5518
- perf: optimize table creation speed in metric engine by @WenyXu in #5503
- perf: optimize table alteration speed in metric engine by @WenyXu in #5526
- perf: close issue 4974 by do not delete columns when drop logical region about 100 times faster by @yihong0618 in #5561
⚙️ Miscellaneous Tasks
- ci: allow skipping tests as required tasks by @sunng87 in #5436
- ci: unify all protoc version to 29.3 by @zyy17 in #5434
- ci: switch to nix flakes for more reproducible builds by @sunng87 in #5426
- ci: update dev-builder version to fix build android image failed by @zyy17 in #5445
- chore: update toolchain to
2024-12-25
by @shuiyisong in #5430 - chore: avoid necessary cloning by @WenyXu in #5454
- ci: move components to flakes so it won't affect builders by @sunng87 in #5464
- chore: update pprof by @discord9 in #5488
- chore: revert "docs: add TM to logos" by @sunng87 in #5495
- ci: safe ci using zizmor check by @yihong0618 in #5491
- ci: run nightly jobs only on greptimedb repo by @MichaelScofield in #5505
- chore: set now as timestamp field default value by @paomian in #5502
- ci: docbot requires pull_request_target by @sunng87 in #5514
- chore: use the same version of chrono-tz by @yihong0618 in #5523
- ci: use the repository variable to pass to image-name by @daviderli614 in #5517
- chore: add section marker for extenal dependencies by @sunng87 in #5536
- ci: use s5cmd upload artifacts by @daviderli614 in #5550
- ci: don't push nightly latest image by @daviderli614 in #5551
- chore: improve grafana dashboard by @daviderli614 in #5559
- chore: format all toml files by @yihong0618 in #5529
- chore: support Loki's structured metadata for ingestion by @shuiyisong in #5541
Build
New Contributors
- @beryl678 made their first contribution in #5575
- @Stephan3555 made their first contribution in #5441
All Contributors
We would like to thank the following contributors from the GreptimeDB community:
@CookiePieWw, @MichaelScofield, @Stephan3555, @WenyXu, @ZonaHex, @beryl678, @daviderli614, @discord9, @evenyag, @fengjiachun, @killme2008, @ozewr, @paomian, @shuiyisong, @sunng87, @v0y4g3r, @waynexia, @yihong0618, @zhongzc, @zyy17