Block MergeTreeThreadSelectBlockInputStream::getHeader() const { auto res = pool->getHeader(); executePrewhereActions(res, prewhere_info); injectVirtualColumns(res); return res; }
Block MergeTreeBaseBlockInputStream::readImpl() { Block res; while (!res && !isCancelled()) { if (!task && !getNewTask()) break; res = readFromPart(); if (res) injectVirtualColumns(res); if (task->mark_ranges.empty()) task.reset(); } return res; }