Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2dot5
ClickHouse
提交
928057c7
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,发现更多精彩内容 >>
提交
928057c7
编写于
12月 30, 2019
作者:
C
chertus
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
better fix
上级
6b80ba52
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
27 addition
and
2 deletion
+27
-2
dbms/src/Storages/StorageJoin.cpp
dbms/src/Storages/StorageJoin.cpp
+3
-2
dbms/tests/queries/0_stateless/01051_all_join_engine.reference
...tests/queries/0_stateless/01051_all_join_engine.reference
+13
-0
dbms/tests/queries/0_stateless/01051_all_join_engine.sql
dbms/tests/queries/0_stateless/01051_all_join_engine.sql
+11
-0
未找到文件。
dbms/src/Storages/StorageJoin.cpp
浏览文件 @
928057c7
...
...
@@ -73,8 +73,9 @@ HashJoinPtr StorageJoin::getJoin(std::shared_ptr<AnalyzedJoin> analyzed_join) co
if
(
kind
!=
analyzed_join
->
kind
()
||
strictness
!=
analyzed_join
->
strictness
())
throw
Exception
(
"Table "
+
table_name
+
" has incompatible type of JOIN."
,
ErrorCodes
::
INCOMPATIBLE_TYPE_OF_JOIN
);
if
(
analyzed_join
->
forceNullableRight
()
&&
!
use_nulls
)
throw
Exception
(
"Table "
+
table_name
+
" need join_use_nulls settings to support LEFT or FULL JOIN with join_use_nulls."
,
if
((
analyzed_join
->
forceNullableRight
()
&&
!
use_nulls
)
||
(
!
analyzed_join
->
forceNullableRight
()
&&
isLeftOrFull
(
analyzed_join
->
kind
())
&&
use_nulls
))
throw
Exception
(
"Table "
+
table_name
+
" needs the same join_use_nulls setting as present in LEFT or FULL JOIN."
,
ErrorCodes
::
INCOMPATIBLE_TYPE_OF_JOIN
);
/// TODO: check key columns
...
...
dbms/tests/queries/0_stateless/01051_all_join_engine.reference
浏览文件 @
928057c7
...
...
@@ -75,3 +75,16 @@ full (join_use_nulls)
4 a5 b4
4 a5 b5
5 \N b6
inner (join_use_nulls mix2)
2 a3 b1
2 a3 b2
4 a5 b3
4 a5 b4
4 a5 b5
right (join_use_nulls mix2)
2 a3 b1
2 a3 b2
4 a5 b3
4 a5 b4
4 a5 b5
5 b6
dbms/tests/queries/0_stateless/01051_all_join_engine.sql
浏览文件 @
928057c7
...
...
@@ -71,6 +71,17 @@ SELECT * FROM t1 RIGHT JOIN right_join j USING(x) ORDER BY x, str, s;
SELECT
'full (join_use_nulls)'
;
SELECT
*
FROM
t1
FULL
JOIN
full_join
j
USING
(
x
)
ORDER
BY
x
,
str
,
s
;
SET
join_use_nulls
=
0
;
SELECT
*
FROM
t1
LEFT
JOIN
left_join
j
USING
(
x
)
ORDER
BY
x
,
str
,
s
;
-- { serverError 264 }
SELECT
*
FROM
t1
FULL
JOIN
full_join
j
USING
(
x
)
ORDER
BY
x
,
str
,
s
;
-- { serverError 264 }
SELECT
'inner (join_use_nulls mix2)'
;
SELECT
*
FROM
t1
INNER
JOIN
inner_join
j
USING
(
x
)
ORDER
BY
x
,
str
,
s
;
SELECT
'right (join_use_nulls mix2)'
;
SELECT
*
FROM
t1
RIGHT
JOIN
right_join
j
USING
(
x
)
ORDER
BY
x
,
str
,
s
;
DROP
TABLE
t1
;
DROP
TABLE
left_join
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录