You would have to use a std::shared_ptr<Buffer> as a buffer in one of the array layouts in a manner that’s compatible with the type.
On Wed, 9 Oct 2024 at 12:41 Yi Cao <cao.yi.s...@gmail.com> wrote: > Hi, > I want to store pointers to avoid copy of large amount of data. And then I > can pass such table and extract pointers from the column and access object > it points to. > > Thanks > > On Wed, 9 Oct 2024 at 13:14, Xiufeng Huang <xfhua...@gmail.com> wrote: > >> I think arrow structures are supposed to hold data. Why would you want to >> store pointers in arrow structures any way? >> >> On Wed, Oct 9, 2024 at 3:29 PM Yi Cao <cao.yi.s...@gmail.com> wrote: >> >>> Hi Arrow community, >>> Need some advice here! >>> >>> Our C++ application processes tabular data and Apache Arrow looks >>> promising in our case. I try to implement the scenario below in c++ arrow >>> however, cannot find a solution or a similar example. Could anyone please >>> share your thoughts ? >>> >>> Say here is a table of three columns. First column is int type and the >>> second column is string type. For the third column, we would like to store >>> std::shared_ptr so that only the shared pointer is copied but no copy of >>> large data it pointes to. >>> >>> I have read source code of extension type and a few examples like UUID >>> and fixed tensor type. However, I'm still not sure how to implement the >>> above case where an array of shared_ptr is stored in arrow::RecordBatch or >>> arrow::Table. >>> >>> Is it possible and can any example be provided ? >>> >>> Thank you and best regards. >>> >>> >>> >>> >>> >> >>