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 #2476
- Scan csr local storage by @ray6080 in #2468
- Fix create one to one rels by @ray6080 in #2477
- Update string limit to 256KB for non-primary-key strings by @benjaminwinger in #2472
- Add doc examples by @andyfengHKU in #2471
- Fix pandas scan bug by @acquamarin in #2478
- Fix scan and lookup of regular columns by @ray6080 in #2480
- Bump version to 0.1.0 by @mewim in #2479
Full Changelog: v0.0.12...v0.1.0