Hello, first time emailing the mailing list so please let me know if I am doing
something wrong.
I am trying to use the Arrow C data interface to pass PyArrow arrays to my C
program with Pybind.
My Python code looks something like this:
array_ptrs = []
schema_ptrs = []
for col in self.columns:
c_schema = ffi.new("struct ArrowSchema*")
c_array = ffi.new("struct ArrowArray*")
schema_ptr = int(ffi.cast("uintptr_t", c_schema))
array_ptr = int(ffi.cast("uintptr_t", c_array))
arr = arrow_batch[col].combine_chunks()
arr._export_to_c(array_ptr,schema_ptr)
array_ptrs.append(array_ptr)
schema_ptrs.append(schema_ptr)
start = time.time()
self.state.batch_add_arrow(array_ptrs, schema_ptrs)
self.state is a PyBind C++ class and batch_add_arrow takes a vector of
array_ptrs and schema_ptrs.
I don't get problems when I pass in just a single array_ptr or schema_ptr, but
when I try to do it with a list I get arrowSchema->release != nullptr in my C++
code.
Any pointers?