Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2dot5
ClickHouse
提交
d7cd7764
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,发现更多精彩内容 >>
提交
d7cd7764
编写于
8月 02, 2018
作者:
Z
zhang2014
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ISSUES-2786 fix replace asterisk with join query
上级
9ddee9fc
变更
15
隐藏空白更改
内联
并排
Showing
15 changed file
with
91 addition
and
88 deletion
+91
-88
dbms/src/Interpreters/ExpressionAnalyzer.cpp
dbms/src/Interpreters/ExpressionAnalyzer.cpp
+12
-13
dbms/tests/queries/0_stateless/00050_any_left_join.reference
dbms/tests/queries/0_stateless/00050_any_left_join.reference
+10
-10
dbms/tests/queries/0_stateless/00050_any_left_join.sql
dbms/tests/queries/0_stateless/00050_any_left_join.sql
+1
-1
dbms/tests/queries/0_stateless/00051_any_inner_join.reference
.../tests/queries/0_stateless/00051_any_inner_join.reference
+5
-5
dbms/tests/queries/0_stateless/00051_any_inner_join.sql
dbms/tests/queries/0_stateless/00051_any_inner_join.sql
+1
-1
dbms/tests/queries/0_stateless/00052_all_left_join.reference
dbms/tests/queries/0_stateless/00052_all_left_join.reference
+15
-15
dbms/tests/queries/0_stateless/00052_all_left_join.sql
dbms/tests/queries/0_stateless/00052_all_left_join.sql
+1
-1
dbms/tests/queries/0_stateless/00053_all_inner_join.reference
.../tests/queries/0_stateless/00053_all_inner_join.reference
+10
-10
dbms/tests/queries/0_stateless/00053_all_inner_join.sql
dbms/tests/queries/0_stateless/00053_all_inner_join.sql
+1
-1
dbms/tests/queries/0_stateless/00054_join_string.reference
dbms/tests/queries/0_stateless/00054_join_string.reference
+15
-15
dbms/tests/queries/0_stateless/00054_join_string.sql
dbms/tests/queries/0_stateless/00054_join_string.sql
+1
-1
dbms/tests/queries/0_stateless/00555_right_join_excessive_rows.reference
...ies/0_stateless/00555_right_join_excessive_rows.reference
+11
-11
dbms/tests/queries/0_stateless/00585_union_all_subquery_aggregation_column_removal.reference
...5_union_all_subquery_aggregation_column_removal.reference
+4
-4
dbms/tests/queries/0_stateless/00679_replace_asterisk.reference
...ests/queries/0_stateless/00679_replace_asterisk.reference
+2
-0
dbms/tests/queries/0_stateless/00679_replace_asterisk.sql
dbms/tests/queries/0_stateless/00679_replace_asterisk.sql
+2
-0
未找到文件。
dbms/src/Interpreters/ExpressionAnalyzer.cpp
浏览文件 @
d7cd7764
...
...
@@ -1156,22 +1156,21 @@ void ExpressionAnalyzer::normalizeTreeImpl(
{
if
(
typeid_cast
<
ASTAsterisk
*>
(
asts
[
i
].
get
()))
{
ASTs
all_columns
;
Names
all_columns_name
;
if
(
storage
)
{
/// If we select from a table, get only not MATERIALIZED, not ALIAS columns.
for
(
const
auto
&
name_type
:
storage
->
getColumns
().
ordinary
)
all_columns
.
emplace_back
(
std
::
make_shared
<
ASTIdentifier
>
(
name_type
.
name
));
}
else
{
for
(
const
auto
&
name_type
:
source_columns
)
all_columns
.
emplace_back
(
std
::
make_shared
<
ASTIdentifier
>
(
name_type
.
name
));
}
auto
columns_name
=
storage
?
storage
->
getColumns
().
ordinary
.
getNames
()
:
source_columns
.
getNames
();
all_columns_name
.
insert
(
all_columns_name
.
begin
(),
columns_name
.
begin
(),
columns_name
.
end
());
NameSet
joined_columns
;
collectJoinedColumns
(
joined_columns
);
auto
columns_from_joined_table
=
analyzed_join
.
columns_from_joined_table
.
getNames
();
all_columns_name
.
insert
(
all_columns_name
.
end
(),
columns_from_joined_table
.
begin
(),
columns_from_joined_table
.
end
());
/// HACK: The side effect of calling the `collectJoinedColumns` method, we have to reset it.
analyzed_join
=
AnalyzedJoin
();
asts
.
erase
(
asts
.
begin
()
+
i
);
asts
.
insert
(
asts
.
begin
()
+
i
,
all_columns
.
begin
(),
all_columns
.
end
());
for
(
size_t
idx
=
0
;
idx
<
all_columns_name
.
size
();
idx
++
)
asts
.
insert
(
asts
.
begin
()
+
idx
+
i
,
std
::
make_shared
<
ASTIdentifier
>
(
all_columns_name
[
idx
]));
}
}
}
...
...
dbms/tests/queries/0_stateless/00050_any_left_join.reference
浏览文件 @
d7cd7764
0 0
1 0
2 1
3 0
4 2
5 0
6 3
7 0
8 4
9 0
0 0
0
1
1
0
2
2
1
3
3
0
4
4
2
5
5
0
6
6
3
7
7
0
8
8
4
9
9
0
dbms/tests/queries/0_stateless/00050_any_left_join.sql
浏览文件 @
d7cd7764
SELECT
*
,
joined
FROM
SELECT
*
FROM
(
SELECT
number
AS
k
FROM
system
.
numbers
LIMIT
10
)
...
...
dbms/tests/queries/0_stateless/00051_any_inner_join.reference
浏览文件 @
d7cd7764
0 0
2 1
4 2
6 3
8 4
0 0
0
2
2
1
4
4
2
6
6
3
8
8
4
dbms/tests/queries/0_stateless/00051_any_inner_join.sql
浏览文件 @
d7cd7764
SELECT
*
,
joined
FROM
SELECT
*
FROM
(
SELECT
number
AS
k
FROM
system
.
numbers
LIMIT
10
)
...
...
dbms/tests/queries/0_stateless/00052_all_left_join.reference
浏览文件 @
d7cd7764
0 0
0 1
1 2
1 3
2 4
2 5
3 6
3 7
4 8
4 9
5 0
6 0
7 0
8 0
9 0
0 0
0
0
0
1
1
1
2
1
1
3
2
2
4
2
2
5
3
3
6
3
3
7
4
4
8
4
4
9
5
5
0
6
6
0
7
7
0
8
8
0
9
9
0
dbms/tests/queries/0_stateless/00052_all_left_join.sql
浏览文件 @
d7cd7764
SELECT
*
,
joined
FROM
SELECT
*
FROM
(
SELECT
number
AS
k
FROM
system
.
numbers
LIMIT
10
)
...
...
dbms/tests/queries/0_stateless/00053_all_inner_join.reference
浏览文件 @
d7cd7764
0 0
0 1
1 2
1 3
2 4
2 5
3 6
3 7
4 8
4 9
0 0
0
0
0
1
1
1
2
1
1
3
2
2
4
2
2
5
3
3
6
3
3
7
4
4
8
4
4
9
dbms/tests/queries/0_stateless/00053_all_inner_join.sql
浏览文件 @
d7cd7764
SELECT
*
,
joined
FROM
SELECT
*
FROM
(
SELECT
number
AS
k
FROM
system
.
numbers
LIMIT
10
)
...
...
dbms/tests/queries/0_stateless/00054_join_string.reference
浏览文件 @
d7cd7764
A 0
A 1
B 2
B 3
C 4
C 5
D 6
D 7
E 8
E 9
F 0
G 0
H 0
I 0
J 0
A
A
0
A
A
1
B
B
2
B
B
3
C
C
4
C
C
5
D
D
6
D
D
7
E
E
8
E
E
9
F
F
0
G
G
0
H
H
0
I
I
0
J
J
0
dbms/tests/queries/0_stateless/00054_join_string.sql
浏览文件 @
d7cd7764
SELECT
*
,
joined
FROM
SELECT
*
FROM
(
SELECT
reinterpretAsString
(
number
+
reinterpretAsUInt8
(
'A'
))
AS
k
FROM
system
.
numbers
LIMIT
10
)
...
...
dbms/tests/queries/0_stateless/00555_right_join_excessive_rows.reference
浏览文件 @
d7cd7764
0
1
2
3
4
5
6
7
8
9
10
0
0
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
10
dbms/tests/queries/0_stateless/00585_union_all_subquery_aggregation_column_removal.reference
浏览文件 @
d7cd7764
...
...
@@ -14,10 +14,10 @@
2 facebook.com
1 google.com
2 yandex.ru
1 baidu.com
1 google.com
2 facebook.com
2 yandex.ru
1 baidu.com
1 baidu.com
1 google.com
1 google.com
2 facebook.com
2 facebook.com
2 yandex.ru
2 yandex.ru
1
1
2
...
...
dbms/tests/queries/0_stateless/00679_replace_asterisk.reference
0 → 100644
浏览文件 @
d7cd7764
1 2
1 2 3 1 4 5
dbms/tests/queries/0_stateless/00679_replace_asterisk.sql
0 → 100644
浏览文件 @
d7cd7764
SELECT
*
FROM
(
SELECT
1
AS
id
,
2
AS
value
);
SELECT
*
FROM
(
SELECT
1
AS
id
,
2
AS
value
,
3
AS
A
)
ANY
INNER
JOIN
(
SELECT
1
AS
id
,
4
AS
values
,
5
AS
D
)
USING
id
;
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录