Skip to content

Releases: risinglightdb/risinglight

v0.2: cascades optimizer, SIMD, and better storage

20 Dec 19:48
0265c50
Compare
Choose a tag to compare

After 9 months' development, we are happy to announce a new version of RisingLight. Major changes in this version:

  • New cascades-style binder / planner / optimizer framework powered by egg.
  • New SIMD expression evaluation design with better performance.
  • More efficient storage with better encoding and predicate push-downs.
  • Better docs on the storage layer.

Thanks for your support!

What's Changed

  • docs: migrate to new Slack community by @skyzh in #606
  • docs: add architecture overview by @skyzh in #609
  • feat(executor): introduce DataChunkBuilder and split chunks in TopN by @wangqiim in #610
  • deps: upgrade prost 0.10 by @alissa-tung in #613
  • feat(storage): record first_key in block_index_builder by @adlternative in #598
  • feat(executor): introduce DataChunkBuilder and split chunks in Order … by @wangqiim in #612
  • chore(ci): install protoc by direct download by @skyzh in #614
  • feat(executor): implement SortMergeJoin executor by @D2Lark in #600
  • chore(test): add more test case by @D2Lark in #616
  • docs: add instructions to install protobuf by @skyzh in #617
  • docs: add badges of dbdb.io, crates.io and docs.rs by @skyzh in #621
  • feat(storage): add support composite sort key in MergeIterator by @BaymaxHWY in #622
  • executor: use DataChunkbuilder to refactor ValuesExecutor by @JayiceZ in #623
  • build: bump toolchain and deps, remove unused dep by @TennyZhuang in #629
  • fix: make header correct when using group by by @shmiwy in #624
  • refactor(planner): use AggInputRefResolver to handle group by expr by @Fedomn in #630
  • feat(binder): support “primary key (a, b)” syntax by @shmiwy in #631
  • feat: support multi ordered primary key by @shmiwy in #633
  • community: add xxchan as maintainer by @skyzh in #634
  • docs: add overview of storage by @skyzh in #635
  • refactor(executor): refactor CopyFromFile using DataChunkBuilder by @noneback in #637
  • fix(planner): enhance group by illegal column validation by @Fedomn in #642
  • feat: use ref-cast for BlobRef cast by @Kikkon in #643
  • feat(storage): support range-filter scan by sort key by @shmiwy in #644
  • feat(optimizer): push the filter down below the agg by @lokax in #648
  • binder: primary key should by-default be non-null by @Ted-Jiang in #649
  • chore: remove Mutex in database/schema/table catalog by @chowc in #650
  • feat: support sort agg by @Kikkon in #646
  • fix: typo and clippy warnings by @yuzi-neko in #652
  • feat(binder): support Having clause and more flexible OrderBy by @lokax in #651
  • chore(sqllogictest): use libtest-mimic as test harness by @skyzh in #656
  • chore(test): ensure single thread runtime for sqllogictest by @skyzh in #657
  • feat(test): add sqlplannertest by @skyzh in #661
  • feat(cli): support multi-line interactive mode by @Gun9niR in #662
  • chore: upgrade dependencies by @wangrunji0408 in #663
  • fix: 'unsupported command' everywhere by @cadl in #664
  • fix: typo by @gogim1 in #665
  • feat(storage): use variable size encoding to compress rle count by @xinchengxx in #666
  • fix: create table with invalid primary keys constraints by @gogim1 in #667
  • chore: bump dependencies by @skyzh in #672
  • docs: add logo for RisingLight by @skyzh in #671
  • fix: append NULLs when inserting value with incomplete columns by @gogim1 in #673
  • feat(storage): support dict encoding by @Kikkon in #668
  • feat(optimizer): support column pruning for some operators by @lokax in #653
  • fix(storage): reserve correct size by @lokax in #678
  • chore: bump dependencies, toolchain, and adapt to new sqlparser by @skyzh in #681
  • chore: add github codespace devcontainer configuration by @yeya24 in #680
  • refactor: refactor risinglight-sqllogictest by @xxchan in #682
  • refactor: remove unnecessary current dir by @xxchan in #683
  • storage: use Arc during pin and unpin by @chaixuqing in #685
  • chore(storage): select compaction strategy using statistics by @chaixuqing in #689
  • feat(planner): plan select distinct by @lokax in #686
  • feat(executor): support perfect hash aggregate by @lokax in #690
  • fix: add row_handler to schema by @yinfredyue in #692
  • chore: bump toolchain and update dependencies by @wangrunji0408 in #695
  • feat: introduce ordered float by @wangrunji0408 in #699
  • feat(storage): support dict encoding in primitive column builder by @Kikkon in #701
  • feat: make binary operations auto-vectorized by @lokax in #700
  • feat: introduce next-gen planner & optimizer by @wangrunji0408 in #702
  • feat(binder): introduce egg binder for queries by @wangrunji0408 in #705
  • fix(storage): checksum BlockType in block header by @unconsolable in #704
  • feat(planner): support distinct on by @wangrunji0408 in #706
  • refactor(type): unify DataTypeKind by @wangrunji0408 in #708
  • feat(storage): generic nullable block encoding by @unconsolable in #709
  • feat(binder): egg binder for drop statement by @eliasyaoyc in #711
  • feat(planner_v2): add type checker by @wangrunji0408 in #717
  • refactor(storage): replace primitive nullable encoding with generic way by @unconsolable in #713
  • feat(binder): new binder for copy, delete and create_table by @eliasyaoyc in #719
  • fix(type): add NULL type and fix type analysis by @wangrunji0408 in #721
  • feat(planner_v2): support explain by @wangrunji0408 in #722
  • refactor(executor): simply drop the futures to cancel a query by @wangrunji0408 in #720
  • feat(planner_v2): cost function and multi-stage optimization by @wangrunji0408 in #723
  • feat: introduce executor v2 for the new planner by @wangrunji0408 in #725
  • feat(planner_v2): support standalone VALUES clause by @wangrunji0408 in #726
  • feat(storage): support NULL on blob and char columns by @unconsolable in #724
  • refactor(fetch size): add fast return and compare ROWSET MAX OUTPUT by @eliasyaoyc in #716
  • feat(executor_v2): migrate executors to run TPCH by @wangrunji0408 in #727
  • feat(planner_v2): pass all sqllogictests by @wangrunji0408 in #728
  • chore: enable query engine v2 by default by @wangrunji0408 in #729
  • feat(rt): support tokio-console by @wangrun...
Read more

v0.1.3: special release for crates.io

04 Apr 06:16
c69c802
Compare
Choose a tag to compare

RisingLight is finally available as a crate on crates.io! There're a lot of bug fixes and new small features in v0.1.3.

What's Changed

  • feat: map filter inputref by @XieJiann in #548
  • fix(storage): delete RowSets when drop table by @BaymaxHWY in #555
  • chore(storage): use get_or_try_insert_with for block cache by @BaymaxHWY in #556
  • feat(array): improve 15x performance by @sundy-li in #554
  • chore(storage): remove TODO comment by @BaymaxHWY in #557
  • fix(executor): Char and Varchar's length limit not respected by @xiaoyong-z in #558
  • chore: remove header in DataChunk. by @RinChanNOWWW in #560
  • fix(executor): output no chunks from dummy by @skyzh in #561
  • feat(tracing): add minitrace to RisingLight by @WindowsXp-Beta in #550
  • test: do not detect tests in build.rs by @xxchan in #564
  • binder: plan not optimal for count(*) with filter by @xiaoyong-z in #559
  • feat(ci): parallism test by @skyzh in #568
  • fix(storage): ignore duplicated deletion by @skyzh in #569
  • fix(ci): sqllogictest not running by @skyzh in #570
  • chore(storage) improve flush logging by @kwannoel in #571
  • docs: update roadmap issue by @skyzh in #573
  • chore: use published crates by @xxchan in #575
  • release: bump to v0.1.1 by @skyzh in #576
  • feat(array) introduce DataChunkBuilder and split chunks in NestedLoop… by @BaymaxHWY in #567
  • refactor(executor): refactor ArrayImpl::Bool for cheap cloning by @kwannoel in #577
  • refactor(array): cheap clone for all arrays by @skyzh in #579
  • feat(function): add function definition by @MingjiHan99 in #581
  • chore: bump rust toolchain to 2022-03-09 by @skyzh in #583
  • refactor(storage): remove Arc from Arc by @kwannoel in #585
  • feat(tracing): make minitrace a cli option by @D2Lark in #586
  • chore(tracing): remove enable_tracing option from db interface by @skyzh in #587
  • feat(storage): report statistics after finishing table scan (#474) by @adlternative in #594
  • chore: bump toolchain and adapt to new portable simd API by @Y7n05h in #595
  • feat(executor):optimize NestedLoopJoin's memory usage by @BaymaxHWY in #599
  • chore: switch sqlparser-rs to crates.io version by @wangrunji0408 in #602
  • chore: bump to v0.1.3 by @skyzh in #603
  • chore: update contributors by @skyzh in #605

New Contributors

Full Changelog: v0.1...v0.1.3

Thanks all for your contributions!

> select * from pg_catalog.contributors
+----------------+
| github_id      |
+----------------+
| BaymaxHWY      |
| D2Lark         |
| Fedomn         |
| LiuYuHui       |
| MingjiHan99    |
| PsiACE         |
| RinChanNOWWW   |
| Sunt-ing       |
| TennyZhuang    |
| WindowsXp-Beta |
| Y7n05h         |
| adlternative   |
| alissa-tung    |
| arkbriar       |
| kwannoel       |
| likg227        |
| ludics         |
| nanderstabel   |
| pleiadesian    |
| rapiz1         |
| skyzh          |
| st1page        |
| sundy-li       |
| tabVersion     |
| wangrunji0408  |
| xiaoyong-z     |
| xxchan         |
| yingjunwu      |
| zehaowei       |
| zzl200012      |
+----------------+

v0.1: The Initial Release

03 Mar 03:19
53ccdf9
Compare
Choose a tag to compare

After about half a year's development, we finally release RisingLight v0.1. RisingLight is an embed database, with an interactive shell built-in, and supports running a few TPC-H queries.

> select * from pg_catalog.contributors
+----------------+
| github_id      |
+----------------+
| Fedomn         |
| LiuYuHui       |
| MingjiHan99    |
| PsiACE         |
| Sunt-ing       |
| TennyZhuang    |
| WindowsXp-Beta |
| alissa-tung    |
| arkbriar       |
| likg227        |
| ludics         |
| nanderstabel   |
| pleiadesian    |
| rapiz1         |
| skyzh          |
| st1page        |
| tabVersion     |
| wangrunji0408  |
| xiaoyong-z     |
| xxchan         |
| yingjunwu      |
| zehaowei       |
| zzl200012      |
+----------------+