v0.2.0
We are very happy to announce the release of Kùzu 0.2.0! This is a major release with some new features and a set of improvements at the core that should make Kùzu faster behind the scenes.
- RDFGraphs: You can now use Kùzu to store and query RDF graphs via Cypher!
- Extensions framework and our first extension:
httpfs
for accessing files over HTTP(S) servers and on S3 - Improved, parallelized hash index builder, with added optimizations (this results in improved bulk loading performance)
- Improved disk-based CSR implementation to speed up data ingestion via CREATE statements
- Added constant compression
- Several improvements to Kùzu’s command line interface
- Support for the UUID data type
- Improvements to our testing framework
We welcome feedback and encourage you to read the finer details in our blog post and docs!
What's Changed
- Remove CompressionAlg::getValue by @benjaminwinger in #2317
- Add LTO Support by @Riolku in #2482
- finish add tryMultiply to check overflow by @AEsir777 in #2484
- make: rewrite makefile by @Riolku in #2486
- ci: build everything first by @Riolku in #2490
- tidy: enforce adding override by @Riolku in #2489
- cmake: don't build python by default by @Riolku in #2491
- ci: move clangd and clang-tidy to own job by @Riolku in #2494
- cmake: always generate compile commands by @Riolku in #2496
- tidy: splitup main from analyzer by @Riolku in #2497
- Pytest cleanup by @benjaminwinger in #2493
- tidy: check for non-virtual destructors by @Riolku in #2498
- Fix multiplatform test by @mewim in #2504
- OpenCypher regression test - MATCH clause by @russell-liu in #2310
- OpenCypher regression test - MATCH WHERE clause by @russell-liu in #2410
- OpenCypher regression test - RETURN clause by @russell-liu in #2301
- OpenCypher regression test - WITH WHERE clause by @russell-liu in #2431
- tidy: enable performance checks by @Riolku in #2505
- tidy: force explicit constructors by @Riolku in #2507
- ci: check clang-tidy on macOS by @Riolku in #2512
- tidy: remove trivial constructors by @Riolku in #2511
- Add DataChunkCollection by @ray6080 in #2503
- Capture read only db message in query result by @andyfengHKU in #2508
- Hide catalog content by @andyfengHKU in #2502
- tidy: enable cert checks by @Riolku in #2518
- Unify csv and rdf reader config by @andyfengHKU in #2515
- Fix shell by @acquamarin in #2532
- tidy: add const checks by @Riolku in #2525
- Add NQUAD file type, add multiple rdf file scanner by @andyfengHKU in #2531
- cmake: build single-file-header with cmake by @Riolku in #2526
- finish adding timestamp_ns/ms/sec/tz datatypes by @AEsir777 in #2506
- cmake: rewrite grammar generation by @Riolku in #2540
- cmake: enable Wall by @Riolku in #2541
- cmake: make header creation depend on libkuzu by @Riolku in #2543
- cmake: enable Wextra by @Riolku in #2542
- Fix macOS binary architecture setting in CI build by @mewim in #2549
- make: remove shell target by @Riolku in #2551
- Fix benchmark query q21 by @mewim in #2548
- rust: disable scripts by @Riolku in #2550
- Skip rdf-spb test by @acquamarin in #2552
- Constant compression by @benjaminwinger in #2516
- OpenCypher regression test - RETURN ORDER BY clause by @russell-liu in #2488
- OpenCypher regression test - RETURN SKIP LIMIT clause by @russell-liu in #2483
- Remove some cases of unnecessary std::move on return by @benjaminwinger in #2555
- Fix issue 2558 by @andyfengHKU in #2560
- CALL storage_info by @ray6080 in #2547
- rework table schema constructors by @andyfengHKU in #2562
- antlr4: suppress unused parameters by @Riolku in #2559
- Fix incorrect unsigned int in rtrim by @ray6080 in #2563
- Replace worker thread busy loop with condition_variable by @mewim in #2538
- reader/csv: avoid lseek for getting offset by @Riolku in #2569
- Clean up index in-mem overflow file by @ray6080 in #2564
- Rdf copy rework by @andyfengHKU in #2568
- Remove busy wait completely in TaskScheduler by @mewim in #2573
- Init global state within pipeline by @andyfengHKU in #2577
- Cleanup logical type construction by @benjaminwinger in #2571
- Fix issue 2572 by @andyfengHKU in #2582
- Set null values when scanning serial columns by @benjaminwinger in #2583
- Replace reinterpret_cast and ku_dynamic_cast on pointers with ku_dynamic_ptr_cast by @ray6080 in #2561
- Fix issue-2578 by @andyfengHKU in #2581
- OpenCypher regression test - WITH clause by @russell-liu in #2411
- Fix rust CI on windows by @benjaminwinger in #2591
- Fix issue 2587 by @ray6080 in #2592
- Implement virtualFileSystem by @acquamarin in #2586
- Issue 2588 by @andyfengHKU in #2590
- update Cypher reserved keywords to fix failing tck tests by @russell-liu in #2557
- Fix issue 2589 by @andyfengHKU in #2594
- Unify ku_dynamic_cast and ku_dynamic_ptr_cast with pointer-only check by @benjaminwinger in #2593
- Support disabling CMake options through the makefile by @benjaminwinger in #2492
- common: add copy constructor macros by @Riolku in #2596
- Add missing headers which are required with gcc 13 by @benjaminwinger in #2595
- If the wal file is truncated, don't attempt to read off the end by @benjaminwinger in #2576
- common: move copy_constructors.h to src/include by @Riolku in #2598
- Update TruncatedWalTest to use the new filesystem API by @benjaminwinger in #2597
- Copy rdf graph by @andyfengHKU in #2602
- CSR header: seprating offset and length by @ray6080 in #2601
- Added public headers explicitly to main/kuzu.h by @benjaminwinger in #2607
- common: add RAII mutex type by @Riolku in #2614
- Rename rdf keyword by @andyfengHKU in #2618
- OpenCypher regression test - WITH SKIP LIMIT clause by @russell-liu in #2610
- openCypher test for expressions by @Ashleyhx in #2585
- common: add MPSC Queue by @Riolku in #2612
- common: add StaticVector by @Riolku in #2613
- Update README.md by @semihsalihoglu-uw in #2620
- Clear unnecessary smart ptr parser by @andyfengHKU in #2622
- In mem copy rdf graph by @andyfengHKU in #2619
- Remove unnecessary smart pointer in binder by @andyfengHKU in #2624
- Parallel Hash Index by @Riolku in #2615
- Table schema refactor by @andyfengHKU in #2627
- Fix copy-to with header by @acquamarin in #2628
- Httpfs by @acquamarin in #2616
- Rdf test fix by @andyfengHKU in #2629
- DataType uuid by @hououou in #2623
- Extension install by @acquamarin in #2634
- Fix dl linking on readhat linux by @acquamarin in #2632
- Enable map type in rel table by @benjaminwinger in #2584
- Prefer string_view in the API over std::string by @benjaminwinger in #2553
- Rdf update by @andyfengHKU in #2636
- Add UUID support to java & c & nodejs API by @hououou in #2633
- Fix issue 2643 by @ray6080 in #2645
- Rdf literal insert by @andyfengHKU in #2639
- Add MD5 Hashing to Test Framework by @mxwli in #2642
- Fix top-k flat/unflat bug by @acquamarin in #2650
- Planner rework by @andyfengHKU in #2653
- Extension option by @acquamarin in #2651
- Rewrote Normal Execution tests into Test Files by @MSebanc in #2646
- Added rowsort & valuesort for hashing tests by @mxwli in #2655
- Implicit datatype cast by @hououou in #2657
- Replace slack with discord for community page by @prrao87 in #2666
- Rdf patch by @andyfengHKU in #2661
- Add UUID support to rust API by @benjaminwinger in #2631
- Provided command-line option to change path to history.txt by @MSebanc in #2663
- Added attribution to md5.cpp file by @mxwli in #2668
- Fixed CLI ctrl + c new line behaviour by @MSebanc in #2670
- Added CLI support for version flag by @MSebanc in #2671
- Remove unncessary out of place writes by @ray6080 in #2654
- Implement s3 filesystem by @acquamarin in #2667
- Switch to permanent invite link by @prrao87 in #2673
- Fix 2062 by @mewim in #2678
- Add experimental 32-bit support by @mewim in #2674
- Changed way hash formatting worked by @mxwli in #2669
- Fix issue-2675 by @andyfengHKU in #2680
- Rdf patch by @andyfengHKU in #2684
- comment out s3 test by @acquamarin in #2685
- Fix issue-2682 by @andyfengHKU in #2686
- Add functions to the datatype uuid by @hououou in #2664
- Fix issue-2672 by @andyfengHKU in #2690
- Check unused
WriteInternalIDValuesToPage
, and fix copy of rel id by @ray6080 in #2681 - Add AWS CLI to test container by @mewim in #2698
- Add RDF LDBC-SPB test by @andyfengHKU in #2696
- Add storage info for csr header columns by @ray6080 in #2699
- Increase the length limit for primary key strings to 256KB by @benjaminwinger in #2689
- Fix bitpacking writes by @ray6080 in #2700
- Fix issue 2701 by @andyfengHKU in #2702
- Fix copy var-list of string bug by @acquamarin in #2706
- Update discord-link by @acquamarin in #2710
- Add extension build CI pipeline (starter code) by @mewim in #2715
- Add rdf test suite by @andyfengHKU in #2714
- LSQB Benchmark by @manh9203 in #2712
- Implement scan pandas string column by @acquamarin in #2718
- RDF feature patch by @andyfengHKU in #2723
- Restructure CI pipeline Docker deployment and build extensions on CI by @mewim in #2722
- Don't use bitpacking for the full bit width by @benjaminwinger in #2707
- Clean up execution context by @acquamarin in #2724
- Implement s3 multi-part upload by @acquamarin in #2697
- Rework a part of column interfaces by @ray6080 in #2716
- Fix failing multi-platform tests by @mewim in #2732
- Fix build and deploy piepeline by @mewim in #2733
- Added CLI highlighting for missing keywords by @MSebanc in #2727
- Remove quotation from pandas data frame, add load from dataframe by @andyfengHKU in #2731
- Implement copy utils by @acquamarin in #2740
- Arithmetic operation Integer overflow checks by @MSebanc in #2717
- Implemented backwards search in CLI by @MSebanc in #2741
- Implement udf transaction by @acquamarin in #2745
- Avoid unnecessary rewrites of catalog and stats files by @ray6080 in #2743
- Support IN operator by @andyfengHKU in #2748
- Support most simple types in the hash index by @benjaminwinger in #2728
- Packed CSR by @ray6080 in #2730
- RDF bug fix by @andyfengHKU in #2749
- Fix #2750 by @ray6080 in #2759
- Fix issue 2751&2752 by @andyfengHKU in #2760
- Implement hash on struct/list by @acquamarin in #2756
- Fix rdf malformed line skipping by @andyfengHKU in #2768
- Fixed ansi code regex issue for CLI search underlining by @MSebanc in #2747
- Shell Search Improvements by @MSebanc in #2767
- Improved handling of CLI resizing by @MSebanc in #2757
- extension: don't link against libdl by @Riolku in #2774
- Optimize packed csr deletions by @ray6080 in #2763
- Better error message when inserting to serial pk table with primary key by @acquamarin in #2777
- Restructure build pipeline with the new free M1 runner by @mewim in #2780
- Fix issue-2765 by @andyfengHKU in #2784
- Fix issue-2773 by @andyfengHKU in #2786
- Fix issue-2782 by @andyfengHKU in #2787
- Fix issue-2081 by @andyfengHKU in #2788
- Fix find regions in packed csr by @ray6080 in #2794
- Add RDF_VARIANT bindings for Node.js and Python APIs by @mewim in #2797
- Fix issue-2771 by @andyfengHKU in #2800
- Implement scan pandas object column by @acquamarin in #2795
- Support rdf variant in to_pandas api by @acquamarin in #2801
- Fix issue-2779 by @andyfengHKU in #2806
- Fix issue-2790 by @andyfengHKU in #2807
- Support rdf variant to arrow by @acquamarin in #2802
- Shell Improvements by @MSebanc in #2820
- Fixed cli highlighting for keywords in brackets by @MSebanc in #2824
- extension: enable building on Windows by @Riolku in #2778
- Add RDFVariant bindings for C, C++, and Java APIs by @mewim in #2815
- Support more rdf variant by @acquamarin in #2816
- Add dictionary abstraction by @ray6080 in #2799
- CLI UTF-8 Improvements by @MSebanc in #2833
- Try fix skip musl by @mewim in #2834
- Fix extension build pipeline for windows by @acquamarin in #2831
- Fix issue-2762 by @andyfengHKU in #2827
- Add windows extension support by @acquamarin in #2832
- Fix issue-2814 by @andyfengHKU in #2836
- Fix issue-2821 by @andyfengHKU in #2838
- Add extension to rust crate files by @benjaminwinger in #2839
- Fix issue-2781 by @andyfengHKU in #2840
- Gaps in CopyRel by @ray6080 in #2772
- Fixed handling of copy pasting queries larger than max size by @MSebanc in #2843
- Support rehashing in the HashIndexBuilder by @benjaminwinger in #2776
- remove counting from copy csv by @acquamarin in #2844
- Add RDFVariant support to the Rust API by @benjaminwinger in #2846
- Solve issue #2793 by @acquamarin in #2847
- Add rdf strict mode by @andyfengHKU in #2849
- Allow truncation over large strings by @ray6080 in #2825
- Fix Rust path for extension by @mewim in #2851
- Bump version to v0.2.0 by @ray6080 in #2850
- Fix docs generation for C++ by @mewim in #2852
New Contributors
- @mxwli made their first contribution in #2642
- @MSebanc made their first contribution in #2646
- @prrao87 made their first contribution in #2666
- @manh9203 made their first contribution in #2712
Full Changelog: v0.1.0...v0.2.0