@@ -60,13 +60,15 @@ class TestWriteRecordBatch : public ::testing::TestWithParam<MakeRecordBatch*>,
6060 std::shared_ptr<RecordBatch>* batch_result) {
6161 std::string path = " test-write-row-batch" ;
6262 io::MemoryMapFixture::InitMemoryMap (memory_map_size, path, &mmap_);
63- int64_t header_offset;
6463
65- RETURN_NOT_OK (
66- WriteRecordBatch (batch.columns (), batch.num_rows (), mmap_.get (), &header_offset));
64+ int64_t body_end_offset;
65+ int64_t header_end_offset;
66+
67+ RETURN_NOT_OK (WriteRecordBatch (batch.columns (), batch.num_rows (), mmap_.get (),
68+ &body_end_offset, &header_end_offset));
6769
6870 std::shared_ptr<RecordBatchReader> reader;
69- RETURN_NOT_OK (RecordBatchReader::Open (mmap_.get (), header_offset , &reader));
71+ RETURN_NOT_OK (RecordBatchReader::Open (mmap_.get (), header_end_offset , &reader));
7072
7173 RETURN_NOT_OK (reader->GetRecordBatch (batch.schema (), batch_result));
7274 return Status::OK ();
@@ -282,9 +284,10 @@ INSTANTIATE_TEST_CASE_P(RoundTripTests, TestWriteRecordBatch,
282284void TestGetRecordBatchSize (std::shared_ptr<RecordBatch> batch) {
283285 ipc::MockOutputStream mock;
284286 int64_t mock_header_offset = -1 ;
287+ int64_t mock_body_offset = -1 ;
285288 int64_t size = -1 ;
286- ASSERT_OK (
287- WriteRecordBatch (batch-> columns (), batch-> num_rows (), &mock , &mock_header_offset));
289+ ASSERT_OK (WriteRecordBatch (batch-> columns (), batch-> num_rows (), &mock,
290+ &mock_body_offset , &mock_header_offset));
288291 ASSERT_OK (GetRecordBatchSize (batch.get (), &size));
289292 ASSERT_EQ (mock.GetExtentBytesWritten (), size);
290293}
@@ -335,14 +338,17 @@ class RecursionLimits : public ::testing::Test, public io::MemoryMapFixture {
335338 std::string path = " test-write-past-max-recursion" ;
336339 const int memory_map_size = 1 << 16 ;
337340 io::MemoryMapFixture::InitMemoryMap (memory_map_size, path, &mmap_);
341+
342+ int64_t body_offset;
338343 int64_t header_offset;
344+
339345 int64_t * header_out_param = header_out == nullptr ? &header_offset : header_out;
340346 if (override_level) {
341347 return WriteRecordBatch (batch->columns (), batch->num_rows (), mmap_.get (),
342- header_out_param, recursion_level + 1 );
348+ &body_offset, header_out_param, recursion_level + 1 );
343349 } else {
344- return WriteRecordBatch (
345- batch-> columns (), batch-> num_rows (), mmap_. get () , header_out_param);
350+ return WriteRecordBatch (batch-> columns (), batch-> num_rows (), mmap_. get (),
351+ &body_offset , header_out_param);
346352 }
347353 }
348354
0 commit comments