diff --git a/src/Interpreters/GlobalSubqueriesVisitor.h b/src/Interpreters/GlobalSubqueriesVisitor.h index e87ee6349f3..6b76f5b2822 100644 --- a/src/Interpreters/GlobalSubqueriesVisitor.h +++ b/src/Interpreters/GlobalSubqueriesVisitor.h @@ -17,6 +17,7 @@ #include #include #include +#include namespace DB { @@ -140,16 +141,15 @@ public: { auto external_table = external_storage_holder->getTable(); auto table_out = external_table->write({}, external_table->getInMemoryMetadataPtr(), context); - auto stream = interpreter->execute().getInputStream(); + auto io = interpreter->execute(); + PullingPipelineExecutor executor(io.pipeline); table_out->writePrefix(); - stream->readPrefix(); - while (Block block = stream->read()) - { + Block block; + while (!executor.pull(block)) table_out->write(block); - } + table_out->writeSuffix(); - stream->readSuffix(); } else {