Databend is an open source elastic and reliable Modern Cloud Data Warehouse, it offers blazing fast query and combines elasticity, simplicity, low cost of the cloud, built to make the Data Cloud easy.
Below is a list of some major changes that we don't want you to miss.
- new table engine:
- clickhouse http handler support TsvWithNamesAndTypes (#5898)
- add benchmark scripts of metasrv (#5865)
- support remove stage files (#5788)
- support struct data type (#5940)
- support some common optimizer rules to refine optimizer framework (#5877)
- support predicate push down through join (#5914)
- support constant folding (#5924)
- support left outer join and right outer join (#5972)
- support semi and anti join in new planner (#5869)
- support set operators in parser and planner (#5833)
- support table statements in new planner (#5907)
DDL STAGEfor new planner framework (#5821)
- support rename database in new planner (#5887)
alter/drop viewin new planner (#5862 & #5920)
- migrate CREATE/DROP ROLE statement to new planner (#5935)
- row base serializer (#5791)
- renaming for better readability (#5879)
- list/remove stage files from meta api (#5857)
- use unboxed_simple to simple GAT in async-trait (#5999)
- add meta grpc client network metrics (#5978)
- improve clickhouse http handler (#5933)
- use micromarshal to make references clearer (#5974)
Build / Testing / CI
- use fuse engine instead of memory engine in test (#5530)
- fix read quoted string (#5870)
- corretly handle catalog in statements (#5909)
- fix correlated subquery with joins (#5947)
- server panic when exceeds max active sessions (#5928)
- fix status cause mysql client hang (#5961)
ProcessorExecutorStreamlost data (#5983)
- fix incorrect return datatype of function if (#5980)
Let's learn a weekly tip from Databend.
Using Join with Databend
As you can see, one of the major efforts of Databend in recent times has been the development and migration to the new Planner. We have implemented support for Join on the new Planner to better accommodate multi-table queries.
To use JOIN, you must enable the new Databend planner first. To do so, perform the following command in the SQL client:
A join allows you to combine columns from two or more tables into a single result set. Databend supports the following join types:
- Inner Join
- Natural Join
- Cross Join
- Left Join
- Right Join
Let's see a
CROSS JOIN example
A cross join returns a result set that includes each row from the first table joined with each row from the second table.
SELECT select_list FROM table_a CROSS JOIN table_b
Imagine we have the following tables:
Table "vip_info": This table stores the VIP client information.
| Client_ID | Region | | --------- | --------- | | 101 | Toronto | | 102 | Quebec | | 103 | Vancouver |
Table "gift": This table lists the gift options for the VIP clients.
| Gift | | --------- | | Croissant | | Donut | | Coffee | | Soda |
The following command returns a result set that assigns each gift option to each VIP client:
select * from vip_info cross join gift;
| Client_ID | Region | Gift | | --------- | --------- | --------- | | 101 | Toronto | Croissant | | 101 | Toronto | Donut | | 101 | Toronto | Coffee | | 101 | Toronto | Soda | | 102 | Quebec | Croissant | | 102 | Quebec | Donut | | 102 | Quebec | Coffee | | 102 | Quebec | Soda | | 103 | Vancouver | Croissant | | 103 | Vancouver | Donut | | 103 | Vancouver | Coffee | | 103 | Vancouver | Soda |
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.