Summary
Together with our global community of contributors, GreptimeDB continues to evolve and flourish as a growing open-source project. We are grateful to each and every one of you.
Below are the highlights among recent commits:
Show database options: we add some SQLs to show the options (like the "TTL") of each database.
Support shortened interval expressions: interval expressions now have their "shorten" version (like "
y
" is short for "year
").Make DBeaver able to connect to GreptimeDB: DBeaver is a commonly used database tool, now it can connect to GreptimeDB as well.
Contributors
For the past two weeks, our community has been super active with a total of 78 PRs merged. 5 PRs from 3 individual contributors merged successfully and lots pending to be merged.
👏 Thank you to all our individual contributors for continuously submitting and merging numerous PRs. Many more PRs from other individual contributors are also awaiting merging.
🎉 A warm welcome to @CookiePieWw, @irenjj, and @KKould, who have officially joined the community as new Committers. Your hard work is greatly appreciated.
@CookiePieWw has been submitting and merging PRs since April 2024, contributing 11 effective PRs so far, with more awaiting merging, meeting our criteria for Committer promotion. @irenjj has contributed 8 PRs, making significant contributions to table management and FLOW task management. @KKould has contributed 5 PRs, implementing challenging features such as table creation and column type changes.
Due to the quality and effective contributions of these individual contributors, the community has voted to promote them as new Committers. Looking forward to your continued contributions!
The current list of GreptimeDB Committers (in alphabetical order):
A big THANK YOU to all our members and contributors! It is people like you who are making GreptimeDB a great product. Let's build an even greater community together.
Highlights of Recent PRs
db#4172 Re-implement region Failover based on region migration
The original region Failover implementation has many issues. For example, it does not interact with Remote WAL, which might cause some data loss. So we decide to make region Failover great again, by re-Implementing it based on our region migration procedure. You can track the process here: db#4161.
db#4174 Show database options
The database could have options like "TTL". In this PR, we add a "SHOW FULL DATABASES
" SQL to show the options in each database:
mysql> show full databases;
+--------------------+--------------+
| Database | Options |
+--------------------+--------------+
| greptime_private | |
| hertzbeat | ttl='30days' |
| information_schema | |
| public | |
+--------------------+--------------+
The database options can also be shown by querying information_schemas
:
mysql> select schema_name, options from information_schema.schemata;
+--------------------+--------------+
| schema_name | options |
+--------------------+--------------+
| greptime_private | |
| hertzbeat | ttl='30days' |
| information_schema | |
| public | |
+--------------------+--------------+
db#4178 Optimize the http output performance, saving up to 70% CPU
This PR optimized the conversion from RecordBatch
to HttpRecordsOutput
, by introducing the column first iteration and reducing some unnecessary clones, etc. The CPU consumption is saved up to 70% from this improvement.
db#4182 db#4220 Support shortened interval expressions
This PR makes shortened interval expressions available. For example, you can use "y
" for "year
" in interval expressions. Other shortened are:
m
for minutess
for secondsw
for weeksd
for days
You can mix the usage of shortened and normal expressions together:
SELECT INTERVAL '7 days' - INTERVAL '1d';
+----------------------------------------------------------------------------------------------+
| IntervalMonthDayNano("129127208515966861312") - IntervalMonthDayNano("18446744073709551616") |
+----------------------------------------------------------------------------------------------+
| 0 years 0 mons 6 days 0 hours 0 mins 0.000000000 secs |
+----------------------------------------------------------------------------------------------+
And casting to shortened interval is also supported:
SELECT '3y2mon'::INTERVAL;
+---------------------------------------------------------+
| IntervalMonthDayNano("3010670175542044828554670112768") |
+---------------------------------------------------------+
| 0 years 38 mons 0 days 0 hours 0 mins 0.000000000 secs |
+---------------------------------------------------------+
db#4218 Make DBeaver able to connect to GreptimeDB
DBeaver can submit some special statements upon connecting to the database. Previously GreptimeDB did not support all of them, which could cause some issues when DBeaver is trying to connect to it. This PR is trying to resolve the problem, to let DBeaver users able to query GreptimeDB.
Good First Issue
db#3884 Remove unnecessary traits and wrapper types from the query crate
In GreptimeDB, most implementations of querying simply forward requests to Datafusion. Since we are highly coupled with Datafusion and have no plan to support another query engine, we could remove these types.
Keywords: Query, Datafusion
Difficulty: Easy