Thanks, It worked. Surya
On Mon, Aug 12, 2024 at 10:52 PM Felipe Oliveira Carvalho < felipe...@gmail.com> wrote: > Don't create a memory pool locally (and destroy it when the function > returns), use the global singleton pool from `arrow::default_memory_pool()` > instead. > > __ > Felipe > > On Mon, Aug 12, 2024 at 12:44 PM Surya Kiran Gullapalli < > suryakiran.gullapa...@gmail.com> wrote: > >> Hello all, >> I'm trying to convert a single line string (which is in json format) into >> a table. Below is the sample code to create table from the json string >> (input to this function, passed as copy) >> >> >> >>> auto buffer = arrow::Buffer::FromString(pString); >>> auto reader = std::make_shared<arrow::io::BufferReader>(buffer); >>> auto memoryPool = arrow::MemoryPool::CreateDefault(); >>> auto tableReader = arrow::json::TableReader::Make( >>> memoryPool.get(), reader, arrow::json::ReadOptions::Defaults(), >>> arrow::json::ParseOptions::Defaults()); >>> if (!tableReader.ok()) { >>> return nullptr; >>> } >>> auto res = (*tableReader)->Read(); >>> if (!res.ok()) { >>> return nullptr; >>> } >>> return std::move(*res); >> >> >> It is working as expected. The table is created and returned correctly >> from this function. I'm able to print the table to a parquet file. The >> contents are correct. >> >> But when the table goes out of scope, I see a crash in the PoolBuffer >> destructor. >> >> Using Apache arrow 16.1.0 with MSVC 2022 and Gcc 13.2.0 >> >> What am I missing here ? >> >> Thanks in advance, >> Surya >> >