[ 
https://issues.apache.org/jira/browse/ARROW-5527?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Francois Saint-Jacques updated ARROW-5527:
------------------------------------------
    Description: 
The current implementation uses `std::vector` and `std::string` with unbounded 
size. The refactor would take a memory pool in the constructor for buffer 
management and would get rid of vectors. This will have the side effect of 
propagating Status to some calls (notably insert due to Upsize failing to 
resize).

* MemoTable constructor needs to take a MemoryPool in input
* GetOrInsert must return Status/Result<int32_t>
* MemoTable should use a TypeBufferBuilder instead of std::vector<Payload>
* BinaryMemoTable should use a BinaryBuilder instead of (std::vector<int32_t>, 
std::string) pair.

  was:The current implementation uses `std::vector` and `std::string` with 
unbounded size. The refactor would take a memory pool in the constructor for 
buffer management and would get rid of vectors. This will have the side effect 
of propagating Status to some calls (notably insert due to Upsize failing to 
resize).


> [C++] HashTable/MemoTable should use Buffer(s)/Builder(s) for heap data
> -----------------------------------------------------------------------
>
>                 Key: ARROW-5527
>                 URL: https://issues.apache.org/jira/browse/ARROW-5527
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: C++
>            Reporter: Francois Saint-Jacques
>            Assignee: Francois Saint-Jacques
>            Priority: Major
>
> The current implementation uses `std::vector` and `std::string` with 
> unbounded size. The refactor would take a memory pool in the constructor for 
> buffer management and would get rid of vectors. This will have the side 
> effect of propagating Status to some calls (notably insert due to Upsize 
> failing to resize).
> * MemoTable constructor needs to take a MemoryPool in input
> * GetOrInsert must return Status/Result<int32_t>
> * MemoTable should use a TypeBufferBuilder instead of std::vector<Payload>
> * BinaryMemoTable should use a BinaryBuilder instead of 
> (std::vector<int32_t>, std::string) pair.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to