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