Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2dot5
ClickHouse
提交
ed49367f
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,发现更多精彩内容 >>
未验证
提交
ed49367f
编写于
2月 14, 2021
作者:
A
Amos Bird
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix global-with with subqueries
上级
8ff458a2
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
10 addition
and
4 deletion
+10
-4
src/Interpreters/InterpreterSelectWithUnionQuery.cpp
src/Interpreters/InterpreterSelectWithUnionQuery.cpp
+6
-2
src/Interpreters/InterpreterSelectWithUnionQuery.h
src/Interpreters/InterpreterSelectWithUnionQuery.h
+2
-1
src/Interpreters/getTableExpressions.cpp
src/Interpreters/getTableExpressions.cpp
+1
-1
tests/queries/0_stateless/01717_global_with_subquery_fix.reference
...ries/0_stateless/01717_global_with_subquery_fix.reference
+0
-0
tests/queries/0_stateless/01717_global_with_subquery_fix.sql
tests/queries/0_stateless/01717_global_with_subquery_fix.sql
+1
-0
未找到文件。
src/Interpreters/InterpreterSelectWithUnionQuery.cpp
浏览文件 @
ed49367f
...
@@ -329,7 +329,7 @@ InterpreterSelectWithUnionQuery::buildCurrentChildInterpreter(const ASTPtr & ast
...
@@ -329,7 +329,7 @@ InterpreterSelectWithUnionQuery::buildCurrentChildInterpreter(const ASTPtr & ast
InterpreterSelectWithUnionQuery
::~
InterpreterSelectWithUnionQuery
()
=
default
;
InterpreterSelectWithUnionQuery
::~
InterpreterSelectWithUnionQuery
()
=
default
;
Block
InterpreterSelectWithUnionQuery
::
getSampleBlock
(
const
ASTPtr
&
query_ptr_
,
const
Context
&
context_
)
Block
InterpreterSelectWithUnionQuery
::
getSampleBlock
(
const
ASTPtr
&
query_ptr_
,
const
Context
&
context_
,
bool
is_subquery
)
{
{
auto
&
cache
=
context_
.
getSampleBlockCache
();
auto
&
cache
=
context_
.
getSampleBlockCache
();
/// Using query string because query_ptr changes for every internal SELECT
/// Using query string because query_ptr changes for every internal SELECT
...
@@ -339,7 +339,11 @@ Block InterpreterSelectWithUnionQuery::getSampleBlock(const ASTPtr & query_ptr_,
...
@@ -339,7 +339,11 @@ Block InterpreterSelectWithUnionQuery::getSampleBlock(const ASTPtr & query_ptr_,
return
cache
[
key
];
return
cache
[
key
];
}
}
return
cache
[
key
]
=
InterpreterSelectWithUnionQuery
(
query_ptr_
,
context_
,
SelectQueryOptions
().
analyze
()).
getSampleBlock
();
if
(
is_subquery
)
return
cache
[
key
]
=
InterpreterSelectWithUnionQuery
(
query_ptr_
,
context_
,
SelectQueryOptions
().
subquery
().
analyze
()).
getSampleBlock
();
else
return
cache
[
key
]
=
InterpreterSelectWithUnionQuery
(
query_ptr_
,
context_
,
SelectQueryOptions
().
analyze
()).
getSampleBlock
();
}
}
...
...
src/Interpreters/InterpreterSelectWithUnionQuery.h
浏览文件 @
ed49367f
...
@@ -35,7 +35,8 @@ public:
...
@@ -35,7 +35,8 @@ public:
static
Block
getSampleBlock
(
static
Block
getSampleBlock
(
const
ASTPtr
&
query_ptr_
,
const
ASTPtr
&
query_ptr_
,
const
Context
&
context_
);
const
Context
&
context_
,
bool
is_subquery
=
false
);
virtual
void
ignoreWithTotals
()
override
;
virtual
void
ignoreWithTotals
()
override
;
...
...
src/Interpreters/getTableExpressions.cpp
浏览文件 @
ed49367f
...
@@ -84,7 +84,7 @@ static NamesAndTypesList getColumnsFromTableExpression(
...
@@ -84,7 +84,7 @@ static NamesAndTypesList getColumnsFromTableExpression(
if
(
table_expression
.
subquery
)
if
(
table_expression
.
subquery
)
{
{
const
auto
&
subquery
=
table_expression
.
subquery
->
children
.
at
(
0
);
const
auto
&
subquery
=
table_expression
.
subquery
->
children
.
at
(
0
);
names_and_type_list
=
InterpreterSelectWithUnionQuery
::
getSampleBlock
(
subquery
,
context
).
getNamesAndTypesList
();
names_and_type_list
=
InterpreterSelectWithUnionQuery
::
getSampleBlock
(
subquery
,
context
,
true
).
getNamesAndTypesList
();
}
}
else
if
(
table_expression
.
table_function
)
else
if
(
table_expression
.
table_function
)
{
{
...
...
tests/queries/0_stateless/01717_global_with_subquery_fix.reference
0 → 100644
浏览文件 @
ed49367f
tests/queries/0_stateless/01717_global_with_subquery_fix.sql
0 → 100644
浏览文件 @
ed49367f
WITH
(
SELECT
count
(
distinct
colU
)
from
tabA
)
AS
withA
,
(
SELECT
count
(
distinct
colU
)
from
tabA
)
AS
withB
SELECT
withA
/
withB
AS
ratio
FROM
(
SELECT
date
AS
period
,
colX
FROM
(
SELECT
date
,
if
(
colA
IN
(
SELECT
colB
FROM
tabC
),
0
,
colA
)
AS
colX
FROM
tabB
)
AS
tempB
GROUP
BY
period
,
colX
)
AS
main
;
-- {serverError 60}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录