Added ARRAY data type (fixed-sized lists)#901
Conversation
|
Hi Matthijs, thank you for taking your time to review this PR, I really appreciate it. Please take a look at my response and the new commit if you have a chance. |
aeaa6ae to
5692747
Compare
|
Hey Matt good afternoon, I was looking at the failed ci job, I thought that was a native scan path where Sirius would read directly from DuckDB's on-disk storage. Could you let me know if I should get that to work, or whether it's fine to leave it as is for now? Thanks, |
|
Can we add PR description and also @kevkrist has solved that issue i believe. You should rebase and that will probably solve the CI |
…d fixed cucascade integer offset bug.
673f0d6 to
5824a98
Compare
|
Thank you Bobbi, I just rebased with latest code on dev. Also just a heads up, I added |
|
Okay so the biggest problem with this PR is that you are using the CPU duckdb scan path, which will be deprecated. You need to use the duckdb scan path with GPU cause otherwise we will lose this feature as soon as this is deprecated. DuckDB GPU scan path is served through |
|
Got it, thank you for your feedback Bobbi, I will work on that! |
Add ARRAY (fixed-size list) data type support
Summary
Changes
Type system
src/include/helper/logical_type.hpp: add the ARRAY logical type.src/helper/type_conversions.cpp: ARRAY to/from DuckDB conversion.src/include/cudf/cudf_utils.hpp: map ARRAY to/from cuDF LIST.Scan / read-back
src/op/scan/duckdb_scan_task.cpp: lower a DuckDB ARRAY vector into a cuDF LIST column.src/op/result/host_table_chunk_reader.{hpp,cpp}: read a cuDF LIST column back into a DuckDB ARRAY vector.src/op/scan/duckdb_native_metadata.cpp: classify ARRAY as a nested type in the native-scan viability switch.LIST offset fixup
src/helper/list_offset_fixup.cpp,src/include/cudf/list_offset_fixup.hpp: recast LIST offsets back to INT32 after cuCascade's H2D promotes them to INT64.src/include/pipeline/batch_lock_utils.hpp: apply the fixup after the H2D conversion.CMakeLists.txt: add list_offset_fixup.cpp and tests to the build.Tests
test/cpp/helper/test_logical_type.cpp: ARRAY logical type tests.test/cpp/helper/test_cudf_utils.cpp: ARRAY to cuDF LIST mapping tests.test/cpp/integration/test_gpu_execution_array.cpp: end-to-end ARRAY scan tests (deferred, see below).What's deferred