#include #include #include #include #include #include #include #include #include #include #include #include namespace DB { BlockIO InterpreterShowCreateQuery::execute() { BlockIO res; res.in = executeImpl(); res.in_sample = getSampleBlock(); return res; } Block InterpreterShowCreateQuery::getSampleBlock() { return {{ nullptr, std::make_shared(), "statement" }}; } BlockInputStreamPtr InterpreterShowCreateQuery::executeImpl() { const ASTShowCreateQuery & ast = typeid_cast(*query_ptr); std::stringstream stream; formatAST(*context.getCreateQuery(ast.database, ast.table), stream, false, true); String res = stream.str(); MutableColumnPtr column = ColumnString::create(); column->insert(res); return std::make_shared(Block{{ std::move(column), std::make_shared(), "statement"}}); } }