diff --git a/utils/rowgroup/rowgroup.cpp b/utils/rowgroup/rowgroup.cpp index 46ab43c10..7a58f387a 100644 --- a/utils/rowgroup/rowgroup.cpp +++ b/utils/rowgroup/rowgroup.cpp @@ -332,15 +332,14 @@ RGData::RGData(const RowGroup& rg) strings.reset(new StringStore()); userDataStore.reset(); - -columnCount = rg.getColumnCount(); + columnCount = rg.getColumnCount(); + rowSize = rg.getRowSize(); } RGData::RGData(const RowGroup& rg, allocators::CountingAllocator& _alloc) : alloc(_alloc) { rowData = boost::allocate_shared(alloc.value(), rg.getMaxDataSize()); - // rowData = std::make_shared(uint8_t[rg.getMaxDataSize()]); if (rg.usesStringTable()) { @@ -349,6 +348,8 @@ RGData::RGData(const RowGroup& rg, allocators::CountingAllocator& } userDataStore.reset(); + rowSize = rg.getRowSize(); + columnCount = rg.getColumnCount(); } void RGData::reinit(const RowGroup& rg, uint32_t rowCount) diff --git a/utils/rowgroup/rowgroup.h b/utils/rowgroup/rowgroup.h index 619c85f03..573d10611 100644 --- a/utils/rowgroup/rowgroup.h +++ b/utils/rowgroup/rowgroup.h @@ -2203,10 +2203,11 @@ inline uint64_t StringStore::getSize() const inline void RGData::getRow(uint32_t num, Row* row) { - idbassert(columnCount == row->getColumnCount() && rowSize == row->getSize()); - uint32_t size = row->getSize(); + uint32_t incomingRowSize = row->getSize(); + idbassert(columnCount == row->getColumnCount() && rowSize == incomingRowSize); + row->setData( - Row::Pointer(&rowData[RowGroup::getHeaderSize() + (num * size)], strings.get(), userDataStore.get())); + Row::Pointer(&rowData[RowGroup::getHeaderSize() + (num * incomingRowSize)], strings.get(), userDataStore.get())); } } // namespace rowgroup