From 04b44a835eca22c70d3fa6e0bd7d970a53da4335 Mon Sep 17 00:00:00 2001 From: drrtuy Date: Fri, 21 Mar 2025 21:12:37 +0000 Subject: [PATCH] fix(rowgroup): fix for the forgotten attributes assignment --- utils/rowgroup/rowgroup.cpp | 7 ++++--- utils/rowgroup/rowgroup.h | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) 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