-
Notifications
You must be signed in to change notification settings - Fork 143
Labels
enhancementNew feature or requestNew feature or request
Milestone
Description
Description
Earlier versions of pixels-cpp employed a static buffer pool design, in which buffer sizes and column IDs were fixed during initialization, limiting flexibility once the system was running.
else
{
// check if resize the buffer is needed
assert(colIds.size() == BufferPool::colCount);
for (int i = 0; i < colIds.size(); i++)
{
uint32_t colId = colIds.at(i);
uint64_t byte = bytes.at(i);
std::string columnName = columnNames[colId];
if (BufferPool::nrBytes.find(colId) == BufferPool::nrBytes.end())
{
throw InvalidArgumentException("BufferPool::Initialize: no such the column id.");
}
// Note: this code should never happen in the pixels scenario
if (BufferPool::nrBytes[colId] < byte)
{
throw InvalidArgumentException("the new buffer byte cannot larger than the previous buffer byte. ");
}
}
}The current design has a fundamental limitation: the buffer size is fixed, so it cannot support queries such as the one shown below.

Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request