You could give each product an ID number and use that as a proxy.

On Wed, Oct 9, 2024 at 5:01 PM Yi Cao <cao.yi.s...@gmail.com> wrote:
>
> Let's take a simple example. No network connection is involved.  Say I can 
> have an array table of digital products, which has one column of shared_ptr 
> pointing to a product object allocated on heap. I would like to do filtering 
> on the column "brand" using the value "Samsung". Therefore I can get all rows 
> of "Samsung" products and by accessing the column of shared pointer , I can 
> access details of this product. Without using a shared pointer, I would have 
> to copy the product details into multiple columns of this table. If I save 
> all these shared pointers in a separate vector, then I cannot do filtering 
> like that in the arrow table.
>
> The challenge for me is how to store a shared_ptr in a "cell" of an arrow 
> table. It seems to me only the primitive types are supported, but I would 
> like to confirm. I think the "extension" type might help with my scenario but 
> I'm not sure how to make it work. If it's a simple type like integer, I can 
> do IntBuilder to build an array and make a record batch out of it.
>
> Hope this provides a bit of clarity. Thank you.
>
> On Wed, 9 Oct 2024 at 19:12, Andrew Bell <andrew.bell...@gmail.com> wrote:
>>
>>
>> On Wed, Oct 9, 2024, 12:27 PM Yi Cao <cao.yi.s...@gmail.com> wrote:
>>>
>>> If I place these shared ptrs in a vector, how can I make this vector saved 
>>> in Arrow table as a column? Is it possible?
>>
>>
>> What do you mean by "saved"?
>>
>> I don't understand the point of placing shared pointers in an arrow array. 
>> It's essentially equivalent to storing the pointers in a vector. You can't 
>> write shared pointers to a data store or send them across a network 
>> connection.



-- 
Andrew Bell
andrew.bell...@gmail.com

Reply via email to