Releases: kuzudb/kuzu
v0.3.0
Kùzu v0.3.0 is a minor release. It mainly fixes several issues related to COPY VAR_LIST and STRING.
What's Changed
- Fix unwind non list bug by @andyfengHKU in #2903
- Fix parquet null by @acquamarin in #2904
- Refactor table schemas to catalog entry by @acquamarin in #2900
- NULL is NULL Fix by @mxwli in #2859
- add support for exporting database to parquet files by @hououou in #2897
- Implement function catalog-entry by @acquamarin in #2910
- Refactor table call function by @andyfengHKU in #2915
- LDBC Fintech Benchmark by @manh9203 in #2868
- Remove
writeToCsv
API by @mewim in #2917 - Fix reading strings from the hash index overflow file by @benjaminwinger in #2918
- Persistent hash index performance improvements by @benjaminwinger in #2908
- Use updatePage function for write operations by @benjaminwinger in #2599
- Skip publishing to crate in scheduled daily release by @mewim in #2902
- Fix python prepared statement uuid binding by @acquamarin in #2926
- Refactor ftable scan as a function by @andyfengHKU in #2921
- List reverse by @andyfengHKU in #2927
- Patch: copy var lists and strings by @ray6080 in #2928
- Improved shell copy paste by @MSebanc in #2930
- Bump version to 0.2.2 by @ray6080 in #2935
- Revert "Bump version to 0.2.2" by @mewim in #2936
- Implement Python Import Caching by @mxwli in #2905
- Improve functionality of CString-to-Interval parser by @manh9203 in #2932
- fix tests of exporting database by @hououou in #2937
- Fix generate_random_uuid bug by @andyfengHKU in #2941
- add support for multiple query statements by @hououou in #2889
- Bump version to 0.3.0 by @mewim in #2945
Full Changelog: v0.2.1...v0.3.0
v0.2.1
Kùzu v0.2.1 is a minor release. It mainly fixes the issue of loading extension with Python, Node.js and Java API bindings on Linux platform.
What's Changed
- Better error message for copy by @acquamarin in #2854
- Hash Index parallel strings by @benjaminwinger in #2857
- Improved CLI pretty print truncation by @MSebanc in #2869
- Added shell commands to control truncation by @MSebanc in #2876
- Fix resize of regular rel table by @ray6080 in #2873
- Add rdf example by @andyfengHKU in #2862
- Remove unnecessary transaction APIs by @ray6080 in #2865
- Build universal binary for macOS and change packaging format to
tar.gz
by @mewim in #2883 - Clean up unique_ptr of LogicalType in Column and ColumnChunk by @ray6080 in #2864
- Use lockfile to pin all versions used by rust build in main pipeline by @benjaminwinger in #2875
- Removed cypher related shell config commands by @MSebanc in #2881
- Fixed CLI Truncation Issue by @MSebanc in #2887
- Fix parquet reader list slice by @acquamarin in #2886
- Fix serial column metadata by @ray6080 in #2892
- Fix creation of x-to-one rel tables after node creations by @ray6080 in #2884
- Add Business Interactive Benchmark by @mxwli in #2879
- Create interactive-v1 benchmark by @mxwli in #2858
- Share a single fileinfo for the hash index string overflow file by @benjaminwinger in #2895
- Add API tests to load extension & fix Python API extension loading by @mewim in #2891
- export database by @hououou in #2853
- Fix cast node, rel, recursive rel to string by @andyfengHKU in #2896
- Fix Java extension loading on Linux by @mewim in #2898
- Fix Node.js extension loading on Linux by @mewim in #2899
- Bump version to 0.2.1 by @mewim in #2901
Full Changelog: v0.2.0...v0.2.1
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 A...
v0.1.0
We are very happy to release Kùzu 0.1.0 today! This is a major release with the following set of new features and improvements:
- Completion of NodeGroup-base storage design;
- Strings compression using dictionary compression;
- Direct scans of Pandas DataFrames;
- Copy to parquet files and additional configuration options for copyig to CSV files;
- Detach delete;
- Return deleted rows;
- SQL-style cast function;
- Recursive relationship node filter;
- Count subquery;
- New INT128 data type;
- Reduced binary size.
Please see our blog post for more details. Enjoy your reading!
What's Changed
- Fix table-function parameter match by @acquamarin in #2309
- fix int128 cast to unsigned by @Ashleyhx in #2314
- Refactor node table scan to reuse ScanNodeTableInfo by @ray6080 in #2320
- move together int128 headers and fix neg int128 cast to floating numbers by @Ashleyhx in #2316
- Node group based rel table by @ray6080 in #2246
- Parquet copy improvement by @acquamarin in #2329
- build: enable Werror on non-Windows by @Riolku in #2335
- cleanup: fix all clangd warnings by @Riolku in #2340
- Add more types to parquet reader/writer by @acquamarin in #2339
- Fix failing tests in LDBC IC and LSQB due to node group changes by @ray6080 in #2338
- Add typed-literal storage by @andyfengHKU in #2341
- Add larger PyG test by @mewim in #2349
- CI: Add daily multi-platform testing on GitHub-hosted runners by @mewim in #2352
- create CAST(item, type) function by @AEsir777 in #2326
- ci: check for clangd diagnostics by @Riolku in #2344
- clangd-diagnostics: fixup by @Riolku in #2354
- replace std::assert with KU_ASSERT by @Riolku in #2288
- enable asserts by default in debug mode by @Riolku in #2358
- Remove NodesStore and RelsStore by @ray6080 in #2348
- Add typed literal casting, rework typed literal casting by @andyfengHKU in #2347
- rm option to modify listStartChar/EndChar in csvReaderConfig by @AEsir777 in #2365
- Fix cmake minimum version requirement warnings by @ray6080 in #2367
- Replace NotImplementedException with KU_NOT_REACHABLE when possible by @ray6080 in #2362
- refactor LogicalTypeUtils::dataTypeToString by @andyfengHKU in #2350
- Fix issue-2343 by @andyfengHKU in #2366
- Move RelDataDirection from enum to enum class by @ray6080 in #2372
- Fix add rel property by @ray6080 in #2371
- support Cast(String, FixedList Type) by @AEsir777 in #2369
- common: add lcov exclusions in KU_UNREACHABLE by @Riolku in #2375
- fix floating to int128 and negative to int128 by @Ashleyhx in #2374
- Implement copy function framework by @acquamarin in #2370
- Fix bounds of data read in VarList updates by @benjaminwinger in #2346
- CI: Add nightly build pipeline by @mewim in #2378
- Enable rdf test by @andyfengHKU in #2373
- Add recursive join node filter by @andyfengHKU in #2381
- Fix nightly version update for scheduled run by @mewim in #2383
- Remove startPosInChunk from append() and fix incorrect numValues by @ray6080 in #2387
- dependabot: upgrade pyarrow to 14.0.1 by @Riolku in #2390
- Rework var list finalize by @ray6080 in #2392
- Support nested struct and union as rel property data types by @ray6080 in #2368
- CI: Fix nightly build pipeline (2nd attempt) by @mewim in #2393
- Refactor table func by @andyfengHKU in #2384
- Add parsed statement visitor by @andyfengHKU in #2396
- Replace AccessMode in API with boolean flag read_only by @ray6080 in #2357
- mac: fix explicit symbol exports by @Riolku in #2389
- cleanup: replace NotImplementedException by @Riolku in #2401
- Implement scan pandas by @acquamarin in #2403
- Allow explicit cast between varlist CAST(var, varlist type) by @AEsir777 in #2386
- Rework local storage for node table and fix #2376 by @ray6080 in #2394
- Add timestamp validation by @acquamarin in #2409
- CI: Add Node.js and Python tests for Windows by @mewim in #2406
- Fix 2244 by @andyfengHKU in #2412
- Fix issue 2200 by @andyfengHKU in #2414
- Rework Column and ColumnChunk's dataType field to std::unique_ptr by @ray6080 in #2418
- Add more types to arrow export by @acquamarin in #2419
- Add abstraction of LocalTableData to LocalStorage by @ray6080 in #2420
- Add copy to csv option by @acquamarin in #2422
- Fix issue-2294 by @andyfengHKU in #2299
- support explicit cast between map and struct by @AEsir777 in #2417
- Add transaction pointer to column chunk scan by @ray6080 in #2426
- Use cmake project version number in code by @benjaminwinger in #2428
- String serialization by @benjaminwinger in #2304
- Fix rel updates by @ray6080 in #2425
- Add copy-to-csv header option by @acquamarin in #2436
- Partial column copy by @andyfengHKU in #2407
- Count subquery by @andyfengHKU in #2429
- prepared_statement: move parameters by @Riolku in #2433
- Always write a whole page at a time when writing compressed data by @benjaminwinger in #2438
- Update struct fields in-place or out of place as necessary by @benjaminwinger in #2442
- Fix ASAN job data race by @benjaminwinger in #2441
- Correcting the set of numValues for column chunk in CopyRel and fix writing null struct entry by @ray6080 in #2445
- Fix rel delete and create by @ray6080 in #2427
- Extend add operation for list,string by @acquamarin in #2444
- Add more types to get_df by @acquamarin in #2432
- Rework Column write interface by @ray6080 in #2447
- Fix CI platform test error by @mewim in #2450
- Dictionary compression by @benjaminwinger in #2408
- Fix UDF checkpoint logic by @acquamarin in #2451
- Add delete node without connected rels constraint by @ray6080 in #2449
- Detach delete by @ray6080 in #2453
- Add optional match and large list cases for tests on detach delete by @ray6080 in #2456
- Fix mac compilation error by @acquamarin in #2454
- finish cast list <-> fixedlist by @AEsir777 in #2446
- Fix csr updates by @ray6080 in #2448
- finish cast between fixed list and refactor code by @AEsir777 in #2462
- Fix test case 2303 by @ray6080 in #2464
- add more pandas test by @acquamarin in #2463
- Use newest storage version if not found in storage_version map by @acquamarin in #2460
- Update CI builder toolchain to gcc-11 by @mewim in #2459
- Generate API docs on CI by @mewim in #2458
- Tag nightly build as next on npmjs by @mewim in #2457
- Fix documentation generation by @mewim in #2467
- Fix rel insert/copy violation check by @acquamarin in #2465
- Fix DB version call by @mewim in #2466
- cmake: strip main binaries by @Riolku in #2455
- fix #2474: parse dataType map() with 0 or no arg aborts by @AEsir777 in https://github.com/kuzud...
v0.0.12
We release Kùzu 0.0.12, another minor release. This release fixes a bug that prevents the database to be opened in read-only mode on a read-only file system. It also adds support for INT128 data type.
What's Changed
- Copy to csv rework by @acquamarin in #2242
- Fix copy bug by @acquamarin in #2243
- ci: use full ASAN by @Riolku in #2231
- ci: use env vars for parallelism by @Riolku in #2241
- Shorten LDBC rel table names by @mewim in #2248
- Add int128 and supported functions by @Ashleyhx in #2096
- tidy: enable misc-unused-parameters by @Riolku in #2249
- ci: cancel previous PR runs on push by @Riolku in #2259
- reader/csv: use exception-safe locks by @Riolku in #2258
- third_party/re2: fix is_pod deprecation warning by @Riolku in #2262
- Refactor table function framework by @acquamarin in #2271
- Add rdf literal and literal triples table by @andyfengHKU in #2247
- Switch Linux and macOS CI runners to use Ninja build by @mewim in #2264
- Remove unneeded
NUM_THREADS
by @mewim in #2275 - refactor to use wrapper function to wrap all the codes in cast_string_to_function.h by @AEsir777 in #2261
- tidy: add makefile command by @Riolku in #2273
- Add fixed-list,union,map functions by @acquamarin in #2278
- Add graph pattern label pruning by @andyfengHKU in #2263
- Update LLVM toolchain to version 17 on hosted-runners by @mewim in #2280
- tidy: Fix clang-tidy-17 warnings by @Riolku in #2284
- Fix #2266 by @ray6080 in #2282
- Function framework refactor by @acquamarin in #2292
- Issue 2269 by @andyfengHKU in #2281
- Remove friend classes and clean up write functions in NodeColumn by @benjaminwinger in #2240
- Remove spdlog include from buffer_manager.cpp by @benjaminwinger in #2302
- Fix issue-2293 by @andyfengHKU in #2298
- Fix 2276 by @ray6080 in #2296
- Fix stdint includes by @benjaminwinger in #2305
- int128 for apis by @Ashleyhx in #2254
- Fix call statement as write statement by @andyfengHKU in #2306
- Fix list extract with null by @acquamarin in #2307
- Bind timeout function for Node.js APIs by @mewim in #2311
Full Changelog: v0.0.11...v0.0.12
v0.0.11
We release Kùzu 0.0.11, another minor release. The main new feature of this release is read-only access mode for the database on Linux (#2089, #2229 and #2233). The read-only mode enables the upcoming Kùzu UI to optionally open a database in read-only mode while allowing other applications to access the same database concurrently.
What's Changed
- Update readme build instructions by @andyfengHKU in #2217
- Change offset vector from int64 to internal_id when reading from files by @ray6080 in #2219
- Add size() alias by @acquamarin in #2220
- Database access mode by @hououou in #2089
- Add CI job for macOS by @mewim in #2222
- replace cast string to fixed function in driver.cpp by @AEsir777 in #2221
- Enable clang-analyzer by @Riolku in #2194
- Reduce number of test query threads by @benjaminwinger in #2228
- test/c_api: don't use database if unecessary by @Riolku in #2234
- Buffered serialization by @benjaminwinger in #2225
- replace cast string to union function in driver.cpp by @AEsir777 in #2227
- Add C, Python, Node.js, and Java API bindings for read-only mode by @mewim in #2229
- Add access mode option to Rust API by @benjaminwinger in #2233
- Bump version to 0.0.11 by @mewim in #2237
Full Changelog: v0.0.10...v0.0.11
V0.0.10
We're here to introduce Kùzu 0.0.10, which is a minor release with a bunch of bug fixes and improvements:
- Added the frame of reference encoding for integers. PR 2140
- Fixed slicing of UTF-8 string. PR 2212
- Fixed copying of invalid UTF-8. PR 2208
- Added more checks and better error messages during the binding phase. PR 2206
- Fixed return list literal with null values. PR 2187
- Fixed bugs in scan multi label rel tables. PR 2149
- Deprecated all functions for getting the table names and properties from the client APIs and the CLI, instead,
CALL
is introduced for the same functionality. PR 2199, 2207 - Added missing data type support in client APIs. PR 2183, PR 2176, PR 2193, PR 2172
What's Changed
- Fixup warnings by @Riolku in #2138
- refactor: splitup table_functions.h by @Riolku in #2142
- Refactor toString() by @acquamarin in #2141
- Fix mac compilation by @acquamarin in #2144
- refactor: move large WAL operators to source file by @Riolku in #2146
- refactor: move table functions to one file by @Riolku in #2147
- Fix bug in generic scan rel tables by @ray6080 in #2149
- Skip q37 in benchmark by @ray6080 in #2151
- change one occurrence of NUM_THREADS=32 to 18 on self-hosted-windows by @russell-liu in #2154
- Pytest windows parser exception by @russell-liu in #2157
- change print to sys.stdout.write and flush in benchmark_runner.py by @russell-liu in #2155
- Add examples to alldebug by @ray6080 in #2159
- Frame of reference encoding by @benjaminwinger in #2140
- update torch version from 1.13 to 2.0.0 by @russell-liu in #2064
- ci: update runner by @Riolku in #2163
- Attempt to solve Windows timeout by specifying gtest DISCOVERY_TIMEOUT by @mewim in #2165
- Fix #2158 by @andyfengHKU in #2171
- Fix numNodes in CopyNode by @ray6080 in #2161
- Remove
setValueFromString
from ColumnChunk by @ray6080 in #2169 - Export map to py dict by @ray6080 in #2172
- Clean up node_column.h and column_chunk.h by @benjaminwinger in #2164
- tidy: add clang-tidy by @Riolku in #2156
- cast string to list by @AEsir777 in #2145
- reader: remove counting of blocks by @Riolku in #2166
- Bump PyG version to 2.3.0 and remove the optional dependencies by @mewim in #2178
- Rename create to insert, fix return serial after insertion by @andyfengHKU in #2181
- Move child chunks and columns to struct by @ray6080 in #2173
- Fix #2174 for Node.js by @mewim in #2183
- Add support for Map to rust API by @benjaminwinger in #2176
- cast string to struct by @AEsir777 in #2189
- Link C and C++ API tests against the API-restricted shared library by @benjaminwinger in #2153
- fix q03 in benchmark by @russell-liu in #2180
- Rust Union support by @benjaminwinger in #2193
- Parquet writer by @acquamarin in #2177
- Fix mac build by @acquamarin in #2204
- Add show_relation table function by @acquamarin in #2199
- Fix #2187 by @andyfengHKU in #2197
- Fix hash node rel by @andyfengHKU in #2192
- Fix #2184: add binding errors by @ray6080 in #2206
- Deprecate table metadata printing functions by @mewim in #2207
- finish cast string to map by @AEsir777 in #2201
- Throw copy exception on invalid utf8 string by @acquamarin in #2208
- Fix transaction test by @benjaminwinger in #2211
- Fix list slice utf8 by @acquamarin in #2212
- Validate file header for LOAD and COPY by @andyfengHKU in #2210
- Bump version to 0.0.10 by @ray6080 in #2213
- Try to fix windows bin location by @mewim in #2214
Full Changelog: v0.0.9...v0.0.10
V0.0.9
Welcome to Kùzu 0.0.9! In this release, we've introduced following main improvements and features:
- Supported LOAD FROM, which directly evaluate queries over CSV/Parquet files without loading into database.
- Replaced the
beginReadTransaction()
,beginWriteTransaction()
,commit()
androllback()
APIs in all language bindings with cypher statements. - Supported comments on tables.
- Expand recursive rel pattern and enables projection on intermediate nodes and rels.
- Introduced
CREATE REL GROUP
. - Introduced a set of new data types (e.g.,
INT8
,UINT64
,UINT32
,UINT16
,UINT8
) and related casting functions. - Replaced arrow's CSV and Parquet reader with new customized one.
- Introduced bitpacking compression for integers.
As always, we have more details in our blog post. Enjoy your reading!
What's Changed
- Refactor order by compilation by @andyfengHKU in #1971
- Implement #1959 by @mewim in #1974
- Remove currIdx from DataChunkState by @andyfengHKU in #1966
- Add snap amazon and twitter for copy tests by @ray6080 in #1969
- Reader function refactor by @acquamarin in #1979
- Skip reading null data if the property is known to have no nulls by @benjaminwinger in #1945
- Add CREATE RDF GRAPH ddl statement by @andyfengHKU in #1984
- Reader compilation refactor by @andyfengHKU in #1985
- Fix aggregate rel bug by @andyfengHKU in #1987
- Expression Constant Folding by @andyfengHKU in #1989
- configure CI workflow for Ubuntu 20.04 LTS by @russell-liu in #1991
- Move CopyRel to query processing pipeline by @ray6080 in #1990
- Change copy morsel size back to DEFAULT_VECTOR_CAPACITY by @acquamarin in #1992
- share build cache when building rust API and the example project by @russell-liu in #1995
- Log errors for serializer by @mewim in #1998
- Fix issue 1915 by @ray6080 in #2001
- Implement csv reader by @acquamarin in #1988
- Fix test logging level by @acquamarin in #1997
- Support defining multiple FROM TO in CREATE REL TABLE GROUP by @andyfengHKU in #2009
- Transaction statement by @andyfengHKU in #2012
- Remove blocks counting in copying rel pipeline by @ray6080 in #2013
- Add arrow feature to rust example so that it can re-use the test build in CI by @benjaminwinger in #2002
- Split catalog table schemas by @andyfengHKU in #2020
- Add test cases match3/4 and new feature "--" by @AEsir777 in #2016
- Add INT8 type by @Ashleyhx in #1994
- Update README.md by @semihsalihoglu-uw in #2024
- Rel group query by @andyfengHKU in #2023
- Add turtle file type, refactor copy compilation by @andyfengHKU in #2026
- Arrow schema fixes by @benjaminwinger in #2019
- Fix cmake configuration by @yixinglu in #2022
- Implement Commenting on Tables by @Riolku in #2011
- Implement copy node rdf by @acquamarin in #2028
- finish range literal [*] [2] [..] [2..] [..2] by @AEsir777 in #2027
- Add int8 supported functions by @Ashleyhx in #2030
- Refactor exception.h by @Riolku in #2006
- Remove
types_include.h
by @Riolku in #2008 - Fix create node on empty table by @acquamarin in #2034
- Splitup value.h by @Riolku in #2025
- Don't self-initialize schema comments by @benjaminwinger in #2038
- Upgrade ANTLR4 runtime by @Riolku in #2040
- Add include guards to all headers by @Riolku in #2042
- Add win32 access violation handler to buffer manager by @benjaminwinger in #2035
- Transaction test rewrite by @hououou in #2029
- Implement copy rdf rel table by @acquamarin in #2033
- Solve issue-1983 by @andyfengHKU in #2044
- Refactor copy compilation by @andyfengHKU in #2043
- Replace CopyDescription with CSVReaderConfig for storage classes. by @andyfengHKU in #2046
- Rename logical operator dir by @ray6080 in #2047
- allow node bound to include 0 [*0..4] by @AEsir777 in #2041
- Support Parquet filetype on COPY TO by @rfdavid in #1893
- Refactor reader functors by @andyfengHKU in #2049
- Rewrite transaction test by @hououou in #2053
- Refactor node table to take in columnID instead of propertyID by @ray6080 in #2054
- Use a different schema for each RecordBatch in python getAsArrow by @benjaminwinger in #2055
- Restructure storage directory by @ray6080 in #2056
- Expose rel label for Python and Node.js API by @mewim in #2060
- add unsigned int types by @Ashleyhx in #2045
- Load from csv by @andyfengHKU in #2052
- range() function by @AEsir777 in #2058
- Allow dev version of Python wheels to be built and published by @mewim in #2066
- Rename logicalScanNode to logicalScanInternalID by @andyfengHKU in #2067
- Add abstraction of TableData by @ray6080 in #2072
- Rework table statistics ser/deser by @ray6080 in #2073
- Move metadataDAHInfo from catalog to statistics by @ray6080 in #2074
- Reorganize stat files by @ray6080 in #2075
- Copy FROM brackets have optional whitespace by @OTooleMichael in #2078
- Abstract Compression interface and initial integer packing by @benjaminwinger in #2004
- Rdf predicate iri processing by @andyfengHKU in #2071
- Implement parquet-reader by @acquamarin in #2076
- Remove arrow from npy reader by @acquamarin in #2086
- Add direct scan on parquet by @andyfengHKU in #2088
- Bitpack VAR_LIST offset data by @benjaminwinger in #2084
- Fix bounds check in integer bitpacking by @benjaminwinger in #2091
- Fix warning by @acquamarin in #2094
- Fix list reader bug by @acquamarin in #2090
- Add direct scan npy, add where predicate in LOAD FROM by @andyfengHKU in #2093
- Refactor ALTER statement by @andyfengHKU in #2097
- miniparquet: Define HAVE_STDINT_H by @Riolku in #2101
- finish list_product by @AEsir777 in #2069
- Add DDL to rel group by @andyfengHKU in #2103
- Fix add-prop by @acquamarin in #2100
- Int8 and Int16 bitpacking by @benjaminwinger in #2085
- Clean up arrow code in node column chunk and copy node by @ray6080 in #2104
- Fix copy to csv by @acquamarin in #2108
- Fix update bugs by @ray6080 in #2098
- reader: implement parallel CSV reading by @Riolku in #2070
- reader: remove moved constant from Parallel CSV by @Riolku in #2110
- copy: use string_view to avoid a copy by @Riolku in #2112
- add numerical types for APIs by @Ashleyhx in #2105
- add castString in functions by @AEsir777 in #2092
- upload benchmark copy query times to benchmark server by @russell-liu in #2099
- Change slot capacity by @ray6080 in #2111
- Add overflow check for casting by @acquamarin in #2114
- reader/csv: Use binary mode on Windows by @Riolku in #2121
- Explicit exports by @benjaminwinger in #2118
- Fix map creation by @ray6080 in #2113
- Recursive join pro...
V0.0.8
This is a minor release with bug fixes and some optimizations:
- Fixed a major bug in COPY on large datasets.
- Added TopK optimization.
- Added WITH CTE rewriting.
- Updated Rust doc on converting query result to arrow arrays.
- Fixed the size allocated for boolean values to match the size of the bit-packed data.
Please see our release post here.
What's Changed
- Add demo db tests in docs by @ray6080 in #1944
- merge skip limit by @andyfengHKU in #1948
- Add top K optimizer by @andyfengHKU in #1949
- remove query normalizer by @andyfengHKU in #1952
- Include functions from arrow feature in docs.rs rust docs by @benjaminwinger in #1951
- Rename keys in agg hash table by @andyfengHKU in #1957
- Add with clause projection list rewriter by @andyfengHKU in #1956
- Fix COPY; rework Reader op by @ray6080 in #1963
- Implement top-k optimization by @acquamarin in #1960
- Fix asan by @andyfengHKU in #1967
- Fix bool column chunk buffer size by @benjaminwinger in #1953
- Bump version to 0.0.8 by @mewim in #1968
- Upgrade GitHub CI runner for Docker by @mewim in #1970
Full Changelog: v0.0.7...v0.0.8
V0.0.7
Welcome to Kùzu 0.0.7! In this release, we've introduced following main improvements and features:
- Supported
CREATE MACRO
and both scalar and vectorized UDFs in C++ APIs. - Supported
MERGE
clause, which is the Cypher version of SQL's UPSERT statement. - Supported multi-label DELETE/SET.
- Supported exporting query result to csv files through the
COPY TO
clause. Also, exporting query result to arrow arrays is now available in C/C++ and Rust APIs. - Introduced new data types:
MAP
andUNION
. - Improved
RETURN
clause with two minor features: 1) RETURN after update; 2) RETURN with.*
. - Improved sub query execution with unnesting optimization.
- Introduced NodeGroup based storage layout for node tables.
As usual, we have more details in our blog post. Enjoy your reading!
What's Changed
- Improve error messages related to primary keys during copy by @ray6080 in #1830
- Clean up duplicated morsel and sharedState between copy node and rel by @ray6080 in #1834
- LDBC 100 SSSP queries by @anuchak in #1832
- Implement scalar macro by @acquamarin in #1836
- Catch exception during finalize phase by @ray6080 in #1835
- ResultCollector, FTableScan, UnionAllScan refactor by @andyfengHKU in #1839
- Change npy reader to read multiple files at one time by @ray6080 in #1842
- Refactor copy node info by @ray6080 in #1844
- Disable large scale shortest path that takes too long to finish by @andyfengHKU in #1840
- Rename mapper functions by @andyfengHKU in #1850
- Enable Optional Match as the First Clause by @andyfengHKU in #1849
- Add ser/deser for macro function by @acquamarin in #1846
- Fix nested value iteration by @andyfengHKU in #1845
- change value type to unique ptr by @andyfengHKU in #1852
- Remove update planner by @andyfengHKU in #1854
- Fix check for asan logs by @benjaminwinger in #1831
- Fix bugs in Connection::interrupt by @benjaminwinger in #1828
- Update rust API to use new value interface by @benjaminwinger in #1855
- Fix agg memory leak by @acquamarin in #1859
- Upgrade GitHub runners and allow auto upgrade by @mewim in #1860
- Add create-macro transaction constraints by @acquamarin in #1857
- Enable optional match cross product by @andyfengHKU in #1858
- Add binding for MERGE clause by @andyfengHKU in #1861
- Add functions exposing conversion to Arrow ArrayData by @benjaminwinger in #1827
- Fix factorizedTable by @acquamarin in #1871
- Solve issue 1865, add is_trail & is_acyclic path functions by @andyfengHKU in #1868
- Refactor catalog serialize/deserialize by @ray6080 in #1864
- Fix schema properties parsing for Node.js API by @mewim in #1875
- Pin the time crate to 0.3.23 by @benjaminwinger in #1874
- Support multi-label delete by @andyfengHKU in #1870
- Catalog rework by @acquamarin in #1877
- Node group-based node table storage by @ray6080 in #1802
- Enable multi label set by @andyfengHKU in #1880
- Enable read after update by @andyfengHKU in #1882
- Support COPY TO statement by @rfdavid in #1716
- NodeGroup list storage refactor by @acquamarin in #1885
- Refactor create operators by @andyfengHKU in #1887
- Simplify expression scan planning by @andyfengHKU in #1889
- Fix for non-thrown duplicated pk error by @ray6080 in #1890
- Change expression scan to dummy scan by @andyfengHKU in #1892
- Reorg parser module by @andyfengHKU in #1896
- Merge operator by @andyfengHKU in #1894
- re-organize binder module by @andyfengHKU in #1897
- Re-organize projection planner by @andyfengHKU in #1898
- reorg join order enumerator by @andyfengHKU in #1899
- reorg logical operators by @andyfengHKU in #1900
- Reorg mapper and evaluator by @andyfengHKU in #1901
- Rework node table delete interface by @ray6080 in #1902
- Add loader for map dataType by @acquamarin in #1891
- Support return after create by @andyfengHKU in #1906
- Change delete planning to comply storage change by @andyfengHKU in #1905
- Implement union-loader by @acquamarin in #1907
- Store nulls as densely packed bitfields by @benjaminwinger in #1862
- Fix merge operator mark by @andyfengHKU in #1911
- Clean up usage of
common::
prefix in cpp files and fix clang warnings by @ray6080 in #1908 - Move the initialization of metadada disk arrays to wal-based transaction mechanism by @ray6080 in #1895
- Boolean bitpacking by @benjaminwinger in #1884
- Rework node table insert interface by @ray6080 in #1910
- fix merge rel by @acquamarin in #1916
- Parquet loader fix by @acquamarin in #1914
- Fix number of threads for Node.js API by @mewim in #1918
- Fix param type for Python execute by @mewim in #1922
- Generic hash join by @andyfengHKU in #1919
- Fix Serial for node-groups by @aziz-mu in #1886
- Split CI build pipeline for X86 and ARM Mac by @mewim in #1926
- Fix var-size seq scan perf by @acquamarin in #1924
- Fix add node property by @acquamarin in #1923
- Support parquet large str by @acquamarin in #1929
- Fix issue 1920 by @ray6080 in #1931
- Fix Rust deployment by @benjaminwinger in #1932
- Unnest arbitrary subquery by @andyfengHKU in #1930
- Fix union tag bug by @acquamarin in #1936
- Add transaction commands to the testing framework by @rfdavid in #1933
- Basic framework of local storage for node group by @ray6080 in #1928
- Fix merge failing example by @andyfengHKU in #1935
- Add var_length_extend_max_depth option by @acquamarin in #1939
- Disable undirected delete by @andyfengHKU in #1938
- List local storage by @acquamarin in #1937
- Support struct update by @ray6080 in #1942
- Add api comment for arrow export by @ray6080 in #1941
- Bump version to 0.0.7 by @mewim in #1943
Full Changelog: v0.0.6...v0.0.7