570 const streamoff whereAreWe = tellg();
579 std::vector<std::vector<std::pair<int64_t, int64_t> > > catalog;
584 streamoff offsetInHeap = 0;
594 if (memcmp(tileHead.
id,
"TILE", 4))
596 clear(rdstate()|std::ios::badbit);
601 catalog.emplace_back();
605 for (
size_t i=0;
i<numCols;
i++)
610 catalog.back().emplace_back(0,0);
621 catalog.back().emplace_back((int64_t)(columnHead.
size),offsetInHeap);
622 offsetInHeap += columnHead.
size;
638 clear(rdstate()|std::ios::badbit);
639 std::ostringstream
str;
640 str <<
"Heap data does not agree with header: " << numRows <<
" calculated vs " <<
fTable.
num_rows <<
" from header.";
642 throw std::runtime_error(str.str());
658 if (catalog.size() !=
fCatalog.size())
660 clear(rdstate()|std::ios::badbit);
662 throw std::runtime_error(
"Heap data does not agree with header.");
664 gLog <<
___err___ <<
"ERROR - Heap data does not agree with header." << std::endl;
669 for (uint32_t
i=0;
i<catalog.size();
i++)
670 for (uint32_t j=0;j<numCols;j++)
675 clear(rdstate()|std::ios::badbit);
677 throw std::runtime_error(
"Heap data does not agree with header.");
679 gLog <<
___err___ <<
"ERROR - Heap data does not agree with header." << std::endl;
streamoff fHeapOff
offset from the beginning of the file of the binary data
int64_t second
offset of this column in the tile, from the start of the heap area
int64_t first
Size of this column in the tile.
SortedColumns sorted_cols
std::vector< std::vector< std::pair< int64_t, int64_t > > > fCatalog
Catalog, i.e. the main table that points to the compressed data.