Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2dot5
ClickHouse
提交
1ad4f2c0
C
ClickHouse
项目概览
2dot5
/
ClickHouse
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
ClickHouse
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1ad4f2c0
编写于
6月 17, 2020
作者:
N
Nikolai Kochetov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add CreatingSets step.
上级
f279df60
变更
6
显示空白变更内容
内联
并排
Showing
6 changed file
with
71 addition
and
9 deletion
+71
-9
src/Interpreters/InterpreterSelectQuery.cpp
src/Interpreters/InterpreterSelectQuery.cpp
+6
-3
src/Processors/QueryPlan/CreatingSetsStep.cpp
src/Processors/QueryPlan/CreatingSetsStep.cpp
+30
-0
src/Processors/QueryPlan/CreatingSetsStep.h
src/Processors/QueryPlan/CreatingSetsStep.h
+28
-0
src/Processors/Transforms/CreatingSetsTransform.cpp
src/Processors/Transforms/CreatingSetsTransform.cpp
+4
-4
src/Processors/Transforms/CreatingSetsTransform.h
src/Processors/Transforms/CreatingSetsTransform.h
+2
-2
src/Processors/ya.make
src/Processors/ya.make
+1
-0
未找到文件。
src/Interpreters/InterpreterSelectQuery.cpp
浏览文件 @
1ad4f2c0
...
...
@@ -88,6 +88,7 @@
#include <Processors/QueryPlan/MergingAggregatedStep.h>
#include <Processors/QueryPlan/AddingDelayedStreamStep.h>
#include <Processors/QueryPlan/AggregatingStep.h>
#include <Processors/QueryPlan/CreatingSetsStep.h>
namespace
DB
...
...
@@ -1873,12 +1874,14 @@ void InterpreterSelectQuery::executeSubqueriesInSetsAndJoins(QueryPipeline & pip
const
Settings
&
settings
=
context
->
getSettingsRef
();
auto
creating_sets
=
std
::
make_shared
<
CreatingSetsTransform
>
(
pipeline
.
getHeader
(),
subqueries_for_sets
,
CreatingSetsStep
creating_sets
(
DataStream
{.
header
=
pipeline
.
getHeader
()},
subqueries_for_sets
,
SizeLimits
(
settings
.
max_rows_to_transfer
,
settings
.
max_bytes_to_transfer
,
settings
.
transfer_overflow_mode
),
*
context
);
pipeline
.
addCreatingSetsTransform
(
std
::
move
(
creating_sets
));
creating_sets
.
setStepDescription
(
"Create sets for subqueries and joins"
);
creating_sets
.
transformPipeline
(
pipeline
);
}
...
...
src/Processors/QueryPlan/CreatingSetsStep.cpp
0 → 100644
浏览文件 @
1ad4f2c0
#include <Processors/QueryPlan/CreatingSetsStep.h>
#include <Processors/QueryPipeline.h>
#include <Processors/Transforms/CreatingSetsTransform.h>
namespace
DB
{
CreatingSetsStep
::
CreatingSetsStep
(
const
DataStream
&
input_stream_
,
SubqueriesForSets
subqueries_for_sets_
,
SizeLimits
network_transfer_limits_
,
const
Context
&
context_
)
:
ITransformingStep
(
input_stream_
,
input_stream_
)
,
subqueries_for_sets
(
std
::
move
(
subqueries_for_sets_
))
,
network_transfer_limits
(
std
::
move
(
network_transfer_limits_
))
,
context
(
context_
)
{
}
void
CreatingSetsStep
::
transformPipeline
(
QueryPipeline
&
pipeline
)
{
auto
creating_sets
=
std
::
make_shared
<
CreatingSetsTransform
>
(
pipeline
.
getHeader
(),
subqueries_for_sets
,
network_transfer_limits
,
context
);
pipeline
.
addCreatingSetsTransform
(
std
::
move
(
creating_sets
));
}
}
src/Processors/QueryPlan/CreatingSetsStep.h
0 → 100644
浏览文件 @
1ad4f2c0
#pragma once
#include <Processors/QueryPlan/ITransformingStep.h>
#include <DataStreams/SizeLimits.h>
#include <Interpreters/SubqueryForSet.h>
namespace
DB
{
class
CreatingSetsStep
:
public
ITransformingStep
{
public:
CreatingSetsStep
(
const
DataStream
&
input_stream_
,
SubqueriesForSets
subqueries_for_sets_
,
SizeLimits
network_transfer_limits_
,
const
Context
&
context_
);
String
getName
()
const
override
{
return
"CreatingSets"
;
}
void
transformPipeline
(
QueryPipeline
&
pipeline
)
override
;
private:
SubqueriesForSets
subqueries_for_sets
;
SizeLimits
network_transfer_limits
;
const
Context
&
context
;
};
}
src/Processors/Transforms/CreatingSetsTransform.cpp
浏览文件 @
1ad4f2c0
...
...
@@ -23,13 +23,13 @@ namespace ErrorCodes
CreatingSetsTransform
::
CreatingSetsTransform
(
Block
out_header_
,
const
SubqueriesForSets
&
subqueries_for_sets_
,
const
SizeLimits
&
network_transfer_limits_
,
SubqueriesForSets
subqueries_for_sets_
,
SizeLimits
network_transfer_limits_
,
const
Context
&
context_
)
:
IProcessor
({},
{
std
::
move
(
out_header_
)})
,
subqueries_for_sets
(
s
ubqueries_for_sets_
)
,
subqueries_for_sets
(
s
td
::
move
(
subqueries_for_sets_
)
)
,
cur_subquery
(
subqueries_for_sets
.
begin
())
,
network_transfer_limits
(
network_transfer_limits_
)
,
network_transfer_limits
(
std
::
move
(
network_transfer_limits_
)
)
,
context
(
context_
)
{
}
...
...
src/Processors/Transforms/CreatingSetsTransform.h
浏览文件 @
1ad4f2c0
...
...
@@ -21,8 +21,8 @@ class CreatingSetsTransform : public IProcessor
public:
CreatingSetsTransform
(
Block
out_header_
,
const
SubqueriesForSets
&
subqueries_for_sets_
,
const
SizeLimits
&
network_transfer_limits_
,
SubqueriesForSets
subqueries_for_sets_
,
SizeLimits
network_transfer_limits_
,
const
Context
&
context_
);
String
getName
()
const
override
{
return
"CreatingSetsTransform"
;
}
...
...
src/Processors/ya.make
浏览文件 @
1ad4f2c0
...
...
@@ -139,6 +139,7 @@ SRCS(
Transforms/AggregatingInOrderTransform.cpp
QueryPlan/AddingDelayedStreamStep.cpp
QueryPlan/AggregatingStep.cpp
QueryPlan/CreatingSetsStep.cpp
QueryPlan/DistinctStep.cpp
QueryPlan/ExpressionStep.cpp
QueryPlan/FilterStep.cpp
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录