V0.0.4
Welcome to Kùzu 0.0.4! In this release, we've introduced following improvements and features:
- Improved the performance of ingesting both node and rel tables for quite a bit.
- Supported undirected relationships in queries.
- Supported shortest path queries, and also improved variable-length joins.
- Added new data types, including SERIAL and STRUCT.
- Made Kùzu available on windows platforms.
- Added C and nodejs client APIs.
Please see our blog post for more details. Enjoy your reading!
What's Changed
- Update README.md by @andyfengHKU in #1454
- Fix set number threads by @acquamarin in #1456
- Fix fedora compiling by @ray6080 in #1458
- Add struct data type front end by @acquamarin in #1457
- fixing issue 1404 by @semihsalihoglu-uw in #1460
- Upgrade CI runner version for benchmark docker by @mewim in #1463
- Specify column types in csv reader and remove arrow status return value from functions by @ray6080 in #1461
- Fix compilation on fedora 38 by @ray6080 in #1467
- Rework hashjoin by @andyfengHKU in #1465
- Rework arrow array copy in node table copier by @ray6080 in #1469
- Fix issue 1466 by @ray6080 in #1470
- Shortest path planning by @andyfengHKU in #1472
- Shortest Path changes by @anuchak in #1468
- Fix macOS compilation issue by @mewim in #1473
- Add C API bindings by @mewim in #1471
- Rework node copy task by @ray6080 in #1475
- Add struct literal support by @acquamarin in #1462
- Update README.md python code example by @wenhoujx in #1478
- Skip first pass read of parquet data by @ray6080 in #1480
- Struct planning by @andyfengHKU in #1479
- Fix incorrect cast int16 func name by @ray6080 in #1484
- Add c, cpp examples by @andyfengHKU in #1485
- Add int16 int32 support to get_as_arrow. by @wenhoujx in #1483
- Remove PropertyNameDataType by @ray6080 in #1488
- Fix process fork support for Python API by @mewim in #1487
- Encapsulate templatizing of
HashIndexBuilder
insidePrimaryKeyIndexBuilder
by @ray6080 in #1491 - Add loader and storage support for struct by @acquamarin in #1490
- SSP pipeline by @andyfengHKU in #1489
- Add SERIAL as node table primary key by @ray6080 in #1493
- Add sink before recursive join by @andyfengHKU in #1500
- Update cost model for shortest path by @andyfengHKU in #1499
- Node.js API prototyping by @ynoza in #1501
- Add sideway information passing for shortest path extend by @andyfengHKU in #1502
- Vlq rework by @andyfengHKU in #1505
- List valueVector refactor by @acquamarin in #1503
- Issue 951 by @andyfengHKU in #1508
- Fix bug in var length queries sorting by @anuchak in #1509
- Fix struct pack bug by @acquamarin in #1515
- Add aggreate key dependency optimizer by @andyfengHKU in #1517
- Auto-parse end2end tests by @rfdavid in #1507
- Add support to struct of list by @acquamarin in #1518
- Regex String Functions by @gaurav8297 in #1516
- Remove large rel list by @ray6080 in #1520
- Convert e2_read_list test to the new framework by @rfdavid in #1523
- Support null values in list by @acquamarin in #1524
- Add document for PyG remote backend by @mewim in #1525
- Add STRUCT binding for Python API by @mewim in #1527
- Converted order_by and copy tests to the new format by @rfdavid in #1526
- Add struct binding for C API by @mewim in #1531
- Add null to struct fields by @acquamarin in #1533
- Allow passing a test as an argument to e2e_read_test by @rfdavid in #1535
- Add list_sum and list_sort functions by @gaurav8297 in #1529
- Undirected query logical changes by @aziz-mu in #1528
- Rework column scan and lookup functions by @ray6080 in #1539
- List field name to idx cache by @acquamarin in #1534
- Rework column write function by @ray6080 in #1540
- Recursive path by @andyfengHKU in #1538
- More list functions by @gaurav8297 in #1543
- Undirected query for single label Nodes/Rels by @aziz-mu in #1542
- Move scans of tableID into node/relIDs out of Column by @ray6080 in #1550
- Separate null bits from data in columns by @ray6080 in #1545
- Recursive join no path tracking optimizer by @andyfengHKU in #1547
- Physical type by @acquamarin in #1549
- Undirected query for multi-labelled and unlabelled nodes. by @aziz-mu in #1552
- Add recursive rel logical type by @andyfengHKU in #1553
- Fix issue 1546 by @andyfengHKU in #1554
- Add visitor pattern to bound statement by @andyfengHKU in #1557
- Push recursive path length into operator by @andyfengHKU in #1555
- Testing framework v2 by @rfdavid in #1548
- Refactor commit/rollback/checkpoint interface by @ray6080 in #1558
- Refactor extend direction & rel data direction by @andyfengHKU in #1560
- Rework ResultSetDescriptor by @andyfengHKU in #1561
- Change hash index concurrent build by @ray6080 in #1564
- Check statement read only through visitor pattern by @andyfengHKU in #1559
- Enable multiple test cases inside one test file by @rfdavid in #1567
- add LSQB queries as test by @aziz-mu in #1566
- Add loader support for struct of list/struct/string by @acquamarin in #1563
- Use cross-platform glob library by @benjaminwinger in #1562
- Convert binder error tests to end to end tests by @rfdavid in #1569
- Fix parser error by @acquamarin in #1572
- Add Windows Support by @benjaminwinger in #1573
- Fix win ci by @andyfengHKU in #1576
- Fix issue-1575 by @andyfengHKU in #1579
- Convert demo db tests to e2e tests by @rfdavid in #1574
- Track edge ID in recursive join by @andyfengHKU in #1565
- Convert lsqb cpp tests to end to end tests by @rfdavid in #1580
- Fix return functor windows compatibility by @andyfengHKU in #1586
- NPY loader fix by @acquamarin in #1571
- Decrease Windows CI runner thread by @mewim in #1591
- Convert e2e_exception_test to end to end test by @rfdavid in #1584
- Fix issue-1512 by @andyfengHKU in #1593
- Update Slack links by @mewim in #1594
- Add LDBC interactive short queries to test by @aziz-mu in #1589
- Convert e2e_update_node.cpp to e2e test files by @rfdavid in #1597
- Multi label recursive join by @andyfengHKU in #1581
- Don't always set GENERIC_READ when opening files on windows by @benjaminwinger in #1585
- Use GetFileSizeEX instead of GetFileSize on windows by @benjaminwinger in #1587
- Rename e2e_read_test to e2e_test by @rfdavid in #1599
- Print error details on test failure by @rfdavid in #1598
- Allow writing test queries in multiple lines by @rfdavid in #1602
- Add more test cases from documentation by @andyfengHKU in #1604
- Support more native parquet types by @acquamarin in #1600
- Add option -SKIP to skip test cases by @rfdavid in #1603
- Fix compilation issue on mac by @acquamarin in #1606
- Add c api documentation by @acquamarin in #1608
- Recursive join fix by @andyfengHKU in #1607
- Build Python wheels on Windows by @benjaminwinger in #1595
- Node js binding rework by @mewim in #1613
- Make Node.js build optional by @mewim in #1615
- value refactor by @acquamarin in #1614
- add update to table with serial by @acquamarin in #1610
- Fix struct parsing by @andyfengHKU in #1609
- Port bundled linenoise to windows by @benjaminwinger in #1612
- Fix spdlog header resolution by @mewim in #1620
- Add CI build scripts for Node.js by @mewim in #1622
- Auto-select precompiled bin for Node.js install by @mewim in #1625
- Serial query processing by @acquamarin in #1624
- Add documentations for Node.js API by @mewim in #1626
- Add assertion import for Node.js API by @mewim in #1629
- Rework rel copy task scheduling and improve copy performance by @ray6080 in #1621
- Add constant to test_files directory & fix directory by @rfdavid in #1631
- update readme by @andyfengHKU in #1623
New Contributors
- @wenhoujx made their first contribution in #1478
- @gaurav8297 made their first contribution in #1516
- @benjaminwinger made their first contribution in #1562
Full Changelog: v0.0.3...v0.0.4