We recommend all users currently using version v0.4 to upgrade to v0.4.2 or above, as there is a serious bug in the query filter pushdown for memtable.
What's Changed
Highlights
- Query and Storage Performance
- Introduced the completely redesigned engine, Mito2, specifically tailored for time-series data, boasting a performance boost of 5x~20x compared to v0.3.
- Inspired by Cassandra, we've incorporated the TWCS (Time Window Compaction Strategy) compaction method.
- Support new object storage: Google Cloud Storage.
- Stability and Reliability
- Expanded our 'sqlness' test scenarios.
- Based on our improved Chaos Testing cases, v0.4 boasts enhanced distributed robustness.
- Leveraged the Procedure framework to support DDL operations like Create, Alter, and Drop Table, harmonizing both standalone and distributed implementations.
- Reconstructed the entire distributed architecture, optimized the heartbeat protocol, making the distributed version run more effective and stable.
- User Experience Improvements
- Launched an entirely new Dashboard.
- Enhanced range select grammar, now supporting nested use with regular functions.
- Refined the DESC TABLE user experience.
- Support external tables in the Apache ORC format.
- Support for the gRPC protocol in both row and col format.
- Integration and Others
- Support GreptimeDB metrics output in Vector.
- Facilitated the initiation of GreptimeDB clusters using KubeBlocks.
- Integrated with EMQX.
- Builds for CentOS, Windows, and Android.
- Released official client SDKs for JS, Erlang, and C++.
Feature
- feat: support gcs storage by @NiwakaDev in #1781
- feat: support where in show by @NiwakaDev in #1829
- feat: implement drop table procedure by @WenyXu in #1872
- feat!: rename WITH parameter ENDPOINT_URL to ENDPOINT by @WenyXu in #1904
- feat: add
deregister_schema
toCatalogManager
by @NiwakaDev in #1911 - feat: switch to using create table procedure by @WenyXu in #1861
- feat: dedup rows while flushing memtables by @evenyag in #1916
- feat(mito2): Define basic structs for MitoEngine by @evenyag in #1928
- feat: add logical plan based prepare statement for postgresql by @sunng87 in #1813
- feat(config-endpoint): add initial implementation by @etolbakov in #1896
- feat: manual compact api by @v0y4g3r in #1912
- feat: meta procedure options by @WenyXu in #1937
- feat: switch to using drop table procedure by @WenyXu in #1901
- feat: support desc [table] <table_name> by @waynexia in #1944
- feat: implement truncate table parser by @DevilExileSu in #1932
- feat:add check port before start sqlness test by @Gump9 in #1895
- feat: implement alter table procedure by @WenyXu in #1878
- feat: simplify the usage of channel_manage by @fengjiachun in #1949
- feat: invalidate table cache after altering by @WenyXu in #1951
- feat: ask leader by @fengjiachun in #1957
- feat(mito): Implement WorkerGroup to handle requests by @evenyag in #1950
- feat: support append entries from multiple regions at a time by @v0y4g3r in #1959
- feat: update dashboard to v0.3.0 by @ZonaHex in #1968
- feat: expose metasrv
datanode_client_options
by @WenyXu in #1965 - feat: tool to migrate table metadata values by @MichaelScofield in #1971
- feat: impl time type by @killme2008 in #1961
- feat: support where in show databases by @NiwakaDev in #1962
- feat: initial implementation for OpenTelemetry otlp/http by @sunng87 in #1974
- feat: add timers for promql query by @sunng87 in #1994
- feat(mito): Define Version and metadata builders for mito2 by @evenyag in #1989
- feat: status_code in response header by @fengjiachun in #1982
- feat: truncate table execute by @DevilExileSu in #2002
- feat: Add more tags for OTLP metrics protocol by @sunng87 in #2003
- feat: benchmark table metadata managers by @MichaelScofield in #2008
- feat: add orc stream by @gobraves in #1981
- feat(mito): create region in mito2 engine by @evenyag in #1999
- feat: (upload binary s3)add nightly build tag by @daviderli614 in #2011
- feat: region lease improve by @fengjiachun in #2004
- feat:
trace_id
in query context by @shuiyisong in #2014 - feat(mito): Port parquet writer and reader to mito2 by @evenyag in #2018
- feat: set and retrieve trace id in log macro by @waynexia in #2016
- feat: accept influxdb request without timestamp even if table doesn't exist by @NiwakaDev in #2041
- feat: impl interval type by @QuenKar in #1952
- feat: rewrite the release pipeline to make it clean by @zyy17 in #2038
- feat(mito): Implement open for RegionManifestManager by @evenyag in #2036
- feat: prepare for implementing considering partition key in the distributed planner by @waynexia in #2000
- feat(mito): Implement open and close for mito2 regions by @evenyag in #2052
- feat: make the gRPC channel between Frontend and Datanode configurable by @sunray-ley in #2044
- feat: add Catalog and Schema Manager by @WenyXu in #2037
- feat: necessary
Hash
derive for types by @discord9 in #2075 - feat: impl pubsub in metasrv by @fengys1996 in #2045
- feat: improve
/label
and/labels
APIs in prometheus server by @waynexia in #2087 - feat(mito): preparation to implementing write by @evenyag in #2085
- feat: define region group and sequence by @waynexia in #2100
- feat(mito): Implement mito2 Wal by @evenyag in #2103
- feat: truncate region by @DevilExileSu in #2097
- feat: conversion between interval and gRPC by @QuenKar in #2064
- feat: add schema and catalog key migration tool by @WenyXu in #2048
- feat(information_schema): implement
table_factory
method by @zhongzc in #2108 - feat: return metasrv leader addr by @WenyXu in #2110
- feat: truncate table in standalone mode by @DevilExileSu in #2090
- feat: use server inferenced types on statement describe by @sunng87 in #2032
- feat: Add write method to memtable trait by @evenyag in #2123
- feat: Support RangeSelect LogicalPlan rewrite by @Taylor-lagrange in #2058
- feat: print build output if it's failed in sqlness by @MichaelScofield in #2152
- feat: impl duration type by @QuenKar in #2117
- feat: compatible with postgres interval type by @QuenKar in #2146
- feat!: enable telemetry by default by @killme2008 in #2137
- feat(mito): Write wal and memtable by @evenyag in #2135
- feat(mito): checkpoint for mito2 by @waynexia in #2142
- feat!: switch to new catalog/schema key by @WenyXu in #2140
- feat: add table route manager and upgrade tool by @WenyXu in #2145
- feat: redact secrets in sql when logging by @MichaelScofield in #2141
- feat: implement metric for MergeScanExec by @waynexia in #2166
- feat: row wise converter by @v0y4g3r in #2162
- feat!: add deserializer for Partition by @WenyXu in #2169
- feat: define region server and related requests by @waynexia in #2160
- feat(mito): Defines the read Batch struct for mito2 by @evenyag in #2174
- feat: handle multiple grpc deletes by @NiwakaDev in #2150
- feat: grpc handler result by @fengjiachun in #2107
- feat: don't enable telemetry for debug building by @killme2008 in #2177
- feat: move region metadata to store-api by @waynexia in #2181
- feat(mito): Implement SST format for mito2 by @evenyag in #2178
- feat: implement query API for RegionServer by @waynexia in #2197
- feat: update dashboard to v0.3.1 by @ZonaHex in #2192
- feat: row write protocol by @fengjiachun in #2189
- feat: streaming do_get by @niebayes in #2171
- feat: Implement a basical range select query by @Taylor-lagrange in #2138
- feat(mito2): time series memtable by @v0y4g3r in #2208
- feat(mito): Support handling RegionWriteRequest by @evenyag in #2218
- feat(mito): Implement operations like concat and sort for Batch by @evenyag in #2203
- feat: remove checkpoint_on_startup by @killme2008 in #2228
- feat: implement Flight and gRPC services for RegionServer by @waynexia in #2226
- feat: types sqlness tests by @killme2008 in #2073
- feat: rewrite the dist analyzer by @waynexia in #2238
- feat(mito): merge reader for mito2 by @evenyag in #2210
- feat: dist row inserter by @fengjiachun in #2231
- feat: apply rewriter to subquery exprs by @waynexia in #2245
- feat(mito2): concat and projection by @v0y4g3r in #2243
- feat: upgrade desc table output by @fengjiachun in #2256
- feat: prometheus row inserter by @fengjiachun in #2263
- feat(mito): Skeleton for scanning a region by @evenyag in #2230
- feat: impl region engine for mito by @waynexia in #2269
- feat(mito2): WAL replay by @v0y4g3r in #2264
- feat: avoid confusion in desc table by @fengjiachun in #2272
- feat: create distributed Mito2 table by @MichaelScofield in #2246
- feat(mito): Flush framework for mito2 by @evenyag in #2262
- feat(mito2): add file purger and cooperate with scheduler to purge sst files by @Nateiru in #2251
- feat: schema level opts by @shuiyisong in #2283
- feat: update dashboard to v0.3.2 by @ZonaHex in #2295
- feat: sqlness test for interval type by @QuenKar in #2265
- feat: update dashboard to v0.3.3 by @ZonaHex in #2339
- feat: migrate region server and mito2 engine by @waynexia in #2364
- feat: convert sql number to values with target type by @waynexia in #2370
- feat: use the latest command line options for sqlness runner by @waynexia in #2371
- feat: engine name in heartbeat by @fengjiachun in #2377
- feat: atomic metadata by @fengjiachun in #2366
- feat(mito): Add writable flag to region by @evenyag in #2349
- feat!: add engine name to DatanodeTableValue by @fengjiachun in #2395
- feat: set readonly first when deregister region by @fengjiachun in #2391
- feat: remove deprecated metadata keys by @fengjiachun in #2398
- feat: region storage path by @fengjiachun in #2404
- feat: reserve internal column by @Nateiru in #2396
- feat: implement truncate region for mito2 by @DevilExileSu in #2335
- feat: reopen corresponding regions on starting datanode by @waynexia in #2399
- feat: move table operations from frontend to operator crate by @killme2008 in #2411
- feat: clap wrapper around sqlness by @Lilit0x in #2400
- feat: heartbeat request with header by @fengjiachun in #2412
- feat!: unify naming with options by @fengjiachun in #2416
- feat: sync regions between RegionServer and RegionAliveKeeper by @WenyXu in #2417
- feat: scope spawned task with trace id by @waynexia in #2419
- feat(mito): Implements compaction scheduler by @evenyag in #2413
- feat: all distributed time together by @fengjiachun in #2423
- feat: migrate file engine from table to reigon by @zhongzc in #2365
- feat: start services after first heartbeat response processed by @WenyXu in #2424
- feat: type alias by @killme2008 in #2331
- feat: impl duration datatype and vectors by @QuenKar in #2180
- feat: make scripts table work again by @killme2008 in #2420
- feat: type conversion between Values by @QuenKar in #2394
- feat(mito): make use of options in RegionCreate/OpenRequest by @evenyag in #2436
- feat(mito): Allow to retry create request and alter request by @evenyag in #2447
- feat: open region in parallel by @waynexia in #2451
- feat: bring back sqlness and integration tests by @waynexia in #2448
- feat: supports binary data type by @killme2008 in #2454
- feat: limit grpc message size by @TheWaWaR in #2459
- feat: support for show full tables by @Lilit0x in #2410
- feat: update proto and remove create_if_not_exists by @evenyag in #2467
- feat: implement storage for OTLP histogram by @sunng87 in #2282
- feat: re-support query engine execute dml by @zhongzc in #2484
- feat: distribute truncate table in region server by @DevilExileSu in #2414
- feat: stack trace style debug print for error by @waynexia in #2489
- feat(mito): Add cache manager by @evenyag in #2488
- feat: push down filters to region engine by @zhongzc in #2513
- feat: defensively specify limit parameter for file stream by @zhongzc in #2517
- feat: pushdown aggr, limit and sort plan by @waynexia in #2495
- feat: support greatest function by @NiwakaDev in #2490
- feat: enable tcp no_delay by default for internal services by @WenyXu in #2527
- feat: the schema of RegionMetadata is not output during debug by @Nateiru in #2498
- feat(mito): Cache repeated vector for tags by @evenyag in #2523
- feat: improve object storage cache by @killme2008 in #2522
- feat: enable no delay for mysql, opentsdb, http by @WenyXu in #2530
- feat: dist plan optimize part 2 by @waynexia in #2543
- feat: android image builder dockerfile by @v0y4g3r in #2541
- feat: renaming kv directory to metadata by @Lilit0x in #2549
- feat(mito): add metrics to mito engine by @evenyag in #2556
- feat: memtable filter push down by @v0y4g3r in #2539
- feat: add basic metrics to query by @waynexia in #2559
- feat: add compaction metrics by @v0y4g3r in #2560
- feat: add metrics for region server by @fengjiachun in #2552
Refactor
- refactor: implement Display for TableRouteKey by @WenyXu in #1879
- refactor: release push binary by @daviderli614 in #1883
- refactor: support special characters in table keys by @v0y4g3r in #1893
- refactor: TableNameKey and DatanodeTableKey by @MichaelScofield in #1868
- refactor: unify KvBackend and KvStore by @MichaelScofield in #1890
- refactor: add curl binary in docker image by @zyy17 in #1898
- refactor: Define RegionId as a new type by @evenyag in #1903
- refactor: remove unused code by @WenyXu in #1913
- refactor: change logging level for mysql error log by @sunng87 in #1938
- refactor: remove misdirectional alias "Request as GreptimeRequest" by @waynexia in #1940
- refactor(mito): define manifest related API by @waynexia in #1942
- refactor: remote catalog uses memory by @MichaelScofield in #1926
- refactor(mito): port manifest storage to mito2 by @waynexia in #1948
- refactor:remove
common_error::prelude
by @Gump9 in #1946 - refactor: let metasrv returns ref always by @fengjiachun in #1954
- refactor(mito): define region metadata by @waynexia in #1960
- refactor(mito2): implement serialize/deserialize for RegionMetadata by @waynexia in #1964
- refactor: move heartbeat configuration into an independent section by @Kree0 in #1976
- refactor: trying to replace TableGlobalValue, part 1 by @MichaelScofield in #1956
- refactor: move DatanodeAlterTable after InvalidateTableCache by @WenyXu in #1978
- refactor(mito2): implement RegionManifestManager by @waynexia in #1984
- refactor: Separating statement parse func by @Gump9 in #1975
- refactor!: trying to replace TableGlobalValue, part 2 by @MichaelScofield in #1985
- refactor: improve semantics of session and query context by @sunng87 in #2009
- refactor: unify the greptime artifacts building by @zyy17 in #2015
- refactor: query context by @shuiyisong in #2022
- refactor: arrange lease kvs randomly in lease_based selector by @fengys1996 in #2028
- refactor: don't set the build jobs when nproc is not found by @zyy17 in #2034
- refactor: create_current_timestamp_vector by using VectorOp::cast by @parkma99 in #2042
- refactor: common semantic-type by @fengjiachun in #2057
- refactor(mito): mv mito2 request by @evenyag in #2086
- refactor: use workspace dependencies for internal modules by @sunng87 in #2119
- refactor:
auth
crate by @shuiyisong in #2148 - refactor: KeyValues return ValueRef by @v0y4g3r in #2170
- refactor: improve the image building performance by @zyy17 in #2175
- refactor!: move prometheus routes to default http server by @shawnh2 in #2005
- refactor: prevent dist table from invoking
scan
by @zhongzc in #2179 - refactor: refactor table metadata manager by @WenyXu in #2159
- refactor: grpc insert by @fengjiachun in #2188
- refactor!: update table metadata in single txn by @WenyXu in #2172
- refactor: add
ThinTable
to proxy tables from infoschema by @zhongzc in #2193 - refactor: apply numbers to
ThinTable
by @zhongzc in #2202 - refactor: unite key serialization method by @WenyXu in #2195
- refactor(table): eliminate calls to DistTable.insert by @zhongzc in #2219
- refactor(table): eliminate calls to DistTable.delete by @zhongzc in #2225
- refactor: remove associate type in scheduler to simplify it #2153 by @Nateiru in #2194
- refactor: use Batch::sort_and_dedup instead of Values::sort_in_place by @v0y4g3r in #2235
- refactor: use table id instead of table ident by @WenyXu in #2233
- refactor(script): not to call
scan_to_stream
on table by @zhongzc in #2241 - refactor(frontend): TableScan instead of
scan_to_stream
forCOPY TO
by @zhongzc in #2244 - refactor(table): cleanup dist table by @zhongzc in #2255
- refactor: query_ctx from http middleware by @shuiyisong in #2253
- refactor: set default metasrv procedure retry times to 12 by @WenyXu in #2242
- refactor(table): remove Table impl for system by @zhongzc in #2270
- refactor: collecting memory usage during scan by @shuiyisong in #2353
- refactor: migrate OpenDal to 0.39 by @WenyXu in #2383
- refactor: remove table ident by @MichaelScofield in #2368
- refactor: catalog managers by @killme2008 in #2405
- refactor: rename common-function-macro subcrate by @waynexia in #2418
- refactor: rename coordination to require_lease_before_startup by @WenyXu in #2431
- refactor: RegionRequestHandler -> RegionQueryHandler by @zhongzc in #2439
- refactor: remove the old mito engine by @waynexia in #2443
- refactor: remove
source
andlocation
in snafu display by @shuiyisong in #2428 - refactor: unify table metadata cache invalidator by @WenyXu in #2449
- refactor: remove SqlStatementExecutor by @waynexia in #2464
- refactor: not allowed int64 type as time index by @QuenKar in #2460
- refactor(mito): remove #[allow(dead_code)] by @evenyag in #2479
- refactor: datetime time unit by @QuenKar in #2469
- refactor: simplify
warn!
anderror!
macros by @waynexia in #2503 - refactor: check push result out of loop by @WenyXu in #2511
- refactor: extract
plugins
crate by @shuiyisong in #2487 - refactor: de/encode protobuf-encoded byte array with base64 by @WenyXu in #2545
- refactor!: compare with origin bytes during the transactions by @WenyXu in #2538
- refactor: refactor cache invalidator by @WenyXu in #2540
Fix
- fix: fix broken CI 😢 by @WenyXu in #1884
- fix: resolve catalog and schema in dist planner by @waynexia in #1891
- fix: before/after order by @v0y4g3r in #1907
- fix: remove useless mirror subsitution and RUN command by @v0y4g3r in #1918
- fix: immediately reschedule a compaction after compaction by @v0y4g3r in #1882
- fix: cast orc data against output schema by @WenyXu in #1922
- fix: fix uncaught error by @WenyXu in #1924
- fix: fix uncaught error 🥲 by @WenyXu in #1929
- fix: fix broken CI by @WenyXu in #1933
- fix: fix frontend meta client option issue by @WenyXu in #1939
- fix(ci): add merge queue trigger by @waynexia in #1980
- fix: compile error after #1971 is merged by @MichaelScofield in #1979
- fix(status_endpoint): add default value for hostname by @etolbakov in #1972
- fix: fix wait procedure watcher bug by @WenyXu in #1987
- fix: alter procedure table not found issue by @WenyXu in #1993
- fix: avoid large vector allocation on large query span by @waynexia in #2006
- fix: checkpoint metadata file dirty caching by @killme2008 in #2020
- fix: fix parking_lot unresolved by @WenyXu in #2025
- fix: etcd range pagenation in table metadata migration tool by @MichaelScofield in #2035
- fix: window inferer by @v0y4g3r in #2033
- fix: restore 'aarch64/compile-python.sh' to fix the failed release temporarily by @zyy17 in #2046
- fix: auth in grpc by @shuiyisong in #2056
- fix: incorrect github token secret name by @zyy17 in #2061
- fix(deps): update greptime-proto rev to the one after merge by @waynexia in #2063
- fix: add the missing 'TARGET' in Makefile by @zyy17 in #2066
- fix: remove openssl from reqwest and use rustls instead by @sunng87 in #2081
- fix: incorrect argument name: 'disable_run_tests' -> 'disable-run-tests' by @zyy17 in #2079
- fix: session features by @DevilExileSu in #2084
- fix:
arc()
usage in non-test code by @shuiyisong in #2091 - fix(timestamp): add trim for the input date string by @etolbakov in #2078
- fix: add the missing 'NIGHTLY_RELEASE_PREFIX' and fail fast in 'allocate-runners' job by @zyy17 in #2093
- fix: introduce
taplo.toml
and sortCargo.toml
by @shuiyisong in #2096 - fix: wrong action url prompt by @zyy17 in #2099
- fix: disable region failover in sqlness test by @waynexia in #2102
- fix: fix version output empty error: '$GITHUB_ENV' -> '$GITHUB_OUTPUT' by @zyy17 in #2104
- fix: var compare error(yet another stupid mistake) by @zyy17 in #2122
- fix: bugs related to merge scan by @waynexia in #2118
- fix: add 'image-name' argument to correct the invalid image namespace(mix with image-name) by @zyy17 in #2126
- fix: set the correct working dir before building the artifacts by @zyy17 in #2129
- fix: correct the schema used by TypeConversionRule by @waynexia in #2132
- fix(table): return correct table types by @zhongzc in #2131
- fix: deserialize TableInfoValue with missing field by @MichaelScofield in #2134
- fix: correct grpc metric labels by @sunng87 in #2136
- fix: let information_schema know itself by @waynexia in #2149
- fix: runs sqlness test on windows-latest-8-cores by @MichaelScofield in #2158
- fix: several clippy error/warnings after upgrading toolchain by @waynexia in #2156
- fix: make "explain" executable in repl by @MichaelScofield in #2157
- fix(metasrv)!: do not overwrite boolean options unconditionally by @waynexia in #2161
- fix: print_anonymous_usage_data_disclaimer at wrong place by @killme2008 in #2167
- fix: normalize otlp string keys by @sunng87 in #2168
- fix: panic on truncate table in distributed mode by @evenyag in #2173
- fix: invalid err msg by @fengjiachun in #2196
- fix: support to copy from parquet with typecast by @WenyXu in #2201
- fix: skip partition clause in show create table by @waynexia in #2200
- fix: auth in prometheus gateway service by @shuiyisong in #2206
- fix: specify input ordering and distribution for prom plan by @waynexia in #2204
- fix: some TODO in sqlness cases and refactor meta-client error by @killme2008 in #2207
- fix: add
user_info
extension to prom_store handler by @shuiyisong in #2212 - fix: fix ddl client can not update leader addr by @WenyXu in #2205
- fix: table options can't be found in distributed mode by @NiwakaDev in #2209
- fix!: resolve residual issues with removing prometheus port by @sunng87 in #2227
- fix: dist planner has wrong behavior in table with multiple partitions by @waynexia in #2237
- fix: parse large timestamp by @v0y4g3r in #2185
- fix: invalidate cache after altering by @WenyXu in #2239
- fix: fix test_scheduler_continuous_stop in scheduler by @Nateiru in #2252
- fix: fix RegionAliveKeeper does not find the table after restarting by @WenyXu in #2249
- fix: promql planner should clear its states on each selector by @waynexia in #2247
- fix: the inconsistent order of input/output in range select by @Taylor-lagrange in #2229
- fix: quote ident on rendered SQL by @waynexia in #2248
- fix: align region numbers to real regions by @WenyXu in #2257
- fix: keep region failover state not changed upon failure by @MichaelScofield in #2261
- fix: fix typoes by @WenyXu in #2268
- fix: open region does not register catalog/schema by @WenyXu in #2271
- fix: use RegionId region number instead by @WenyXu in #2273
- fix: deregister table after keeper closes table by @WenyXu in #2278
- fix: skip procedure if target route is not found by @WenyXu in #2277
- fix: json compatibility to
null
by @shuiyisong in #2287 - fix: qualify inputs on handling join in promql by @waynexia in #2297
- fix: panic in try_into_vector() by @evenyag in #2351
- fix: gRPC max mesage size limitation by @killme2008 in #2375
- fix: update sqlness result in distributed mode by @waynexia in #2381
- fix: make test-integration able to compile by @MichaelScofield in #2384
- fix: querying temporary table by @waynexia in #2387
- fix: alter table procedure forgets to update next column id by @evenyag in #2385
- fix(mito): incorrect field index in ProjectionMapper by @evenyag in #2388
- fix: update sqlness result for order_by by @waynexia in #2389
- fix: alter table procedure panics while renaming table by @evenyag in #2397
- fix: enable ignored promql unit tests by @waynexia in #2403
- fix: resolve more integration tests by @MichaelScofield in #2406
- fix: validate partition columns by @MichaelScofield in #2393
- fix: generate region path with given prefix by @waynexia in #2409
- fix: missing datanode id on keep lease by @fengjiachun in #2415
- fix: update several sqlness results by @waynexia in #2422
- fix: render comment in SHOW CREATE TABLE by @waynexia in #2427
- fix: fix incorrect matches by @WenyXu in #2430
- fix: check version before alter region by @WenyXu in #2433
- fix: compile error after updating protos by @killme2008 in #2435
- fix: type cast bugs found by sqlness by @waynexia in #2438
- fix: parse i64 to different kinds of timestamp by @QuenKar in #2440
- fix: fix open region missing path by @WenyXu in #2441
- fix: fix alter table verification by @WenyXu in #2437
- fix: remark region as inactive on leader changed by @fengjiachun in #2446
- fix: add slash after generated region_dir by @waynexia in #2463
- fix: test on windows by @fengjiachun in #2462
- fix(mito): compaction scheduler schedules more tasks than expected by @evenyag in #2466
- fix(mito): reset is_sorted to true after the merger finishing one series by @evenyag in #2474
- fix(mito): normalize region dir in RegionOpener by @evenyag in #2475
- fix: print root cause error message to user facing interface by @MichaelScofield in #2486
- fix: dn doesn't have chance to send a heartbeat to the new leader by @WenyXu in #2471
- fix: convert datetime to chrono datetime by @zhongzc in #2497
- fix: check for table scan before expanding by @waynexia in #2491
- fix(mito): fix region drop task runs multiple times but never clean the dir by @evenyag in #2504
- fix: re-create heartbeat stream ASAP by @WenyXu in #2499
- fix: allow
.
(dot) literal in table name by @MichaelScofield in #2483 - fix: drop table 0 rows affected by @fengjiachun in #2515
- fix: missing file engine with default options by @zhongzc in #2519
- fix: open region missing options by @WenyXu in #2473
- fix: mysql timezone settings by @sunng87 in #2534
- fix: timestamp range filter by @v0y4g3r in #2533
- fix(mito): pruning for mito2 by @evenyag in #2525
- fix: carry
dbname
from frontend to datanode by @shuiyisong in #2520 - fix: compiler errors under
pprof
andmem-prof
features by @evenyag in #2537 - fix: schema validation is skipped once we need to fill a column by @evenyag in #2548
- fix: check table exists before allocating table id by @WenyXu in #2546
- fix: adds back http_timeout for frontend subcommand by @killme2008 in #2555
- fix(mito): Do not write to memtables if writing wal is failed by @evenyag in #2561
- fix: human_time mismatch by @QuenKar in #2558
- fix: support multi addrs while using etcd by @fengjiachun in #2562
Others
- ci: allow update release (except release note) if it already exists by @evenyag in #1887
- docs: add tsbs benchmark result of v0.3.2 by @evenyag in #1888
- chore: bump proto to 917ead6 by @WenyXu in #1892
- chore: bump orc-rust to 0.2.4 by @WenyXu in #1894
- ci: skip sqlness test on docs update by @evenyag in #1900
- ci: fix sqlness action in docs.yml doesn't have same name as develop.yml by @evenyag in #1902
- docs(rfcs): Add table engine refactor RFC by @evenyag in #1899
- ci: fix typo and check typo in docs ci by @evenyag in #1905
- ci: use enterprise ACR by @zyy17 in #1908
- test: add unit test for distributed limit pushdown by @waynexia in #1917
- chore: add interceptor for prometheus query by @shuiyisong in #1919
- chore: bump latest greptime-proto version by @v0y4g3r in #1920
- chore: add rate limit status code by @shuiyisong in #1923
- chore: grpc-timeput = 10s by @fengjiachun in #1934
- chore: upgrade toml version by @shuiyisong in #1945
- chore(prom)!: rename prometheus(remote storage) to prom-store and promql(HTTP server) to prometheus by @etolbakov in #1931
- docs: fix playground section by @sunng87 in #1973
- test: add ddl idempotent tests of datanode by @WenyXu in #1966
- test(storage): fix schedule_duplicate_tasks test by @evenyag in #1990
- docs: fix incorrect document URL by @sunray-ley in #2012
- chore: rename tag github env by @daviderli614 in #2019
- chore: return error in arrow array convert function by @QuenKar in #2043
- chore: add version reporter by @paomian in #2007
- chore: make
tables()
return kv instead of key only by @shuiyisong in #2047 - chore(ci): run clippy, coverage and sqlness in parallel by @waynexia in #2050
- chore(deps): bump datafusion to the latest commit by @waynexia in #1967
- chore: remove unused dependencies by @gongzhengyang in #2055
- docs: rfc of metric engine by @waynexia in #1925
- chore: modify the directory of release bucket and remove unused files by @zyy17 in #2059
- docs: update SDK list by @waynexia in #2062
- chore: update Cargo.lock by @zyy17 in #2068
- chore!: modify install.sh to adapt the new release package format by @zyy17 in #2077
- chore: add meter-core dependency by @fengys1996 in #2088
- ci: add nightly build workflow by @zyy17 in #2089
- chore: typo by @fengjiachun in #2092
- ci: require cargo.lock up to date by @sunng87 in #2094
- docs: rfc of refactoring table trait by @waynexia in #2106
- chore: upgrade rust toolchain to latest nightly by @MichaelScofield in #2049
- chore!: change logstore namespace prefix by @v0y4g3r in #1998
- ci: add dev-build by @zyy17 in #2114
- ci: fix error import path by @zyy17 in #2120
- ci: fix incorrect variable name by @zyy17 in #2121
- ci: add 'upload-to-s3' option and disable it in dev build by @zyy17 in #2124
- perf: change current schema and catalog to borrow, clone only necessary by @gongzhengyang in #2116
- chore: rename dockerhub registry password by @daviderli614 in #2127
- test: add conditional compilation flag for datanode mock module by @sunng87 in #2130
- ci: add working dir and some minor changes of create-version.sh by @zyy17 in #2133
- build: on windows by @MichaelScofield in #2054
- ci: add retry for uploading artifacts to s3 by @zyy17 in #2147
- build: update protobuf-build to support apple silicon by @xie-zheng in #2143
- docs: rfc of update metadata in single txn by @WenyXu in #2165
- chore: minor
auth
crate change by @shuiyisong in #2176 - ci: cancel in-progress actions on new commit by @waynexia in #2182
- ci: fallback to run_id to avoid cancelling other jobs by @evenyag in #2186
- chore: fix collect region stat on non-base table by @shuiyisong in #2190
- chore: remove allow-unused by @WenyXu in #2184
- chore: add table region key to delete in upgrade tool by @shuiyisong in #2214
- chore: fix clippy by @WenyXu in #2232
- chore: try from value by @discord9 in #2236
- chore: write to mito2 by @v0y4g3r in #2250
- chore: change version to 0.4.0-nightly by @killme2008 in #2258
- ci: upload the latest artifacts to 'latest/' directory of S3 bucket in scheduled and formal release by @zyy17 in #2276
- chore: change error messages by @killme2008 in #2379
- chore: decrease mutable write buffer limit by @evenyag in #2390
- chore: add
#[serde(default)]
to new addedengine
field by @shuiyisong in #2402 - docs: fix cargo doc errors and warnings by @evenyag in #2421
- test: more integration test cases for external table by @zhongzc in #2429
- test: fix some integration tests by @zhongzc in #2432
- chore: type alias typo by @fengjiachun in #2452
- ci: make upload-to-s3 configurable(for now, it's false) by @zyy17 in #2456
- test: revert ignored tests by @killme2008 in #2455
- ci: expand upload retry timeout by @zyy17 in #2461
- chore: bump opendal to 0.40 by @WenyXu in #2465
- chore: remove unused region_stats method form table by @fengjiachun in #2458
- chore: typo by @fengjiachun in #2470
- chore: refactor options by @fengjiachun in #2476
- chore: fix typo by @zyy17 in #2477
- chore: add integration test for issue2437 by @NiwakaDev in #2481
- chore: tune return msg by @shuiyisong in #2506
- docs: add event banner by @Wenjie0329 in #2518
- perf(mito): Use a heap to merge batches for the same key by @evenyag in #2521
- chore(mito): change default batch size/row group size by @evenyag in #2550
- chore: bump version to 0.4.0 by @evenyag in #2563
- chore: update Cargo.lock by @evenyag in #2564
New Contributors
- @Gump9 made their first contribution in #1895
- @Kree0 made their first contribution in #1976
- @gobraves made their first contribution in #1981
- @sunray-ley made their first contribution in #2012
- @parkma99 made their first contribution in #2042
- @gongzhengyang made their first contribution in #2055
- @xie-zheng made their first contribution in #2143
- @shawnh2 made their first contribution in #2005
- @niebayes made their first contribution in #2171
- @Nateiru made their first contribution in #2194
- @Lilit0x made their first contribution in #2400
- @TheWaWaR made their first contribution in #2459
- @Wenjie0329 made their first contribution in #2518
Full Changelog: v0.3.2...v0.4.0