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?

Reply via email to