Below is a list of some major changes that we don't want you to miss.
Exciting New Features ✨
- User Stage (#8519)
- add internal and legacy internal stage support (#8526)
- implement user stage support along with stateful tests (#8556)
- implement multiple catalog AST (#8608)
- hive predict pushdown (#8469)
- suport substr && order by with null values compatible with hive functions (#8558)
- only display available roles in
SHOW ROLESstatement (#8553)
- support mydumper dump data (#8500)
- add common auth module and support file token on sharing endpoint (#8607)
- adaptive string hash table (#7971)
- implement logging format for databend-query (#8466)
Code Refactor 🎉
- add internal error and merge other not needed errors (#8581)
interpreter_common.rsto common (#8593)
- remove legacy crate codes (#8412)
- avoid extra memcpy (#8569)
- migrate serializations to expression (#8582)
- make block meta easier to be cloned (#8548)
- cast timestamp to variant string instead of variant int (#8580)
Thoughtful Bug Fix 🔧
- fed mysqldump 5.7.16
- select view column not exists (#8543)
- div nullable(Int) with null value should not err (#8495)
CURRENT ROLEbehavior with
AUTH ROLEis set (#8546)
Let's take a look at what's new at Datafuse Labs & Databend each week.
String Adaptive Hash Table
String Adaptive Hash Table is one of the Databend community's projects in the Open Source Promotion Plan 2022. @usamoi helped us with this important work, which has now been merged into Databend repository and has resulted in a 20% - 50% performance improvement in certain scenarios.
String Adaptive Hash Table is designed for the key to be a string type, and different data structures are applied to optimise the insertion and reading based on the different lengths of the key.
- PR | adaptive string hash table
- Paper | SAHA: A String Adaptive Hash Table for Analytical Databases
- GitHub - usamoi/saha
RFC: User Stage
Databend only supports named internal stage:
CREATE STAGE @my_stage; COPY INTO my_table FROM @my_stage;
However, named internal stages are complex to be used in some cases. Especially for users who only use stages to load data. By supporting the user stage, they can copy data more efficiently:
COPY INTO my_table from @~;
Meet issues you may be interested in and try to solve it.
Mutex<HashMap> by Using DashMap
DashMap is an implementation of a concurrent associative array/hashmap in Rust. it tries to be very simple to use and to be a direct replacement for
Using DashMap will bring two advantages:
- Code will be cleaner, and
- Potential performance improvement
If you find it interesting, try to solve it or participate in discussions and PR reviews. Or you can click on https://link.databend.rs/i-m-feeling-lucky to pick up a good first issue, good luck!
You can check the changelogs of Databend nightly to learn about our latest developments.
Thanks a lot to the contributors for their excellent work this week.
Please join the DatafuseLabs Community if you are interested in Databend.
We are looking forward to seeing you try our code. We have a strong team behind you to ensure a smooth experience in trying our code for your projects. If you are a hacker passionate about database internals, feel free to play with our code.
You can submit issues for any problems you find. We also highly appreciate any of your pull requests.