未验证 提交 6eed76d5 编写于 作者: A alexey-milovidov 提交者: GitHub

Merge pull request #10217 from ClickHouse/convert-types-in-views

Convert types in Views
......@@ -12,13 +12,12 @@
#include <Storages/StorageView.h>
#include <Storages/StorageFactory.h>
#include <DataStreams/MaterializingBlockInputStream.h>
#include <Common/typeid_cast.h>
#include <Processors/Pipe.h>
#include <Processors/Sources/SourceFromInputStream.h>
#include <Processors/Transforms/MaterializingTransform.h>
#include <Processors/Transforms/ConvertingTransform.h>
namespace DB
......@@ -78,8 +77,15 @@ Pipes StorageView::read(
/// It's expected that the columns read from storage are not constant.
/// Because method 'getSampleBlockForColumns' is used to obtain a structure of result in InterpreterSelectQuery.
for (auto & pipe : pipes)
{
pipe.addSimpleTransform(std::make_shared<MaterializingTransform>(pipe.getHeader()));
/// And also convert to expected structure.
pipe.addSimpleTransform(std::make_shared<ConvertingTransform>(
pipe.getHeader(), getSampleBlockForColumns(column_names),
ConvertingTransform::MatchColumnsMode::Name, context));
}
return pipes;
}
......
......@@ -5,7 +5,7 @@ INSERT INTO test.table SELECT * FROM system.numbers LIMIT 10;
DROP TABLE IF EXISTS test.view;
CREATE VIEW test.view (x UInt64) AS SELECT * FROM test.table;
SELECT x, any(x) FROM test.view GROUP BY x;
SELECT x, any(x) FROM test.view GROUP BY x ORDER BY x;
DROP TABLE test.view;
DROP TABLE test.table;
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册