Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2dot5
ClickHouse
提交
be7c70da
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,发现更多精彩内容 >>
提交
be7c70da
编写于
3月 01, 2017
作者:
A
artpaul
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix IN with nested tuples [#CLICKHOUSE-1999]
上级
e7ee6dfd
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
22 addition
and
6 deletion
+22
-6
dbms/src/Interpreters/Set.cpp
dbms/src/Interpreters/Set.cpp
+12
-6
dbms/tests/queries/0_stateless/00132_sets.reference
dbms/tests/queries/0_stateless/00132_sets.reference
+5
-0
dbms/tests/queries/0_stateless/00132_sets.sql
dbms/tests/queries/0_stateless/00132_sets.sql
+5
-0
未找到文件。
dbms/src/Interpreters/Set.cpp
浏览文件 @
be7c70da
...
...
@@ -100,12 +100,18 @@ bool Set::insertFromBlock(const Block & block, bool create_ordered_set)
materialized_columns
.
emplace_back
(
converted
);
key_columns
.
back
()
=
materialized_columns
.
back
().
get
();
}
}
/** Flatten tuples. For case when written
* (a, b) IN (SELECT (a, b) FROM table)
* instead of more typical
* (a, b) IN (SELECT a, b FROM table)
*/
/** Flatten tuples. For case when written
* (a, b) IN (SELECT (a, b) FROM table)
* instead of more typical
* (a, b) IN (SELECT a, b FROM table)
*
* Avoid flatten in case then we have more than one column:
* Ex.: 1, (2, 3) become just 1, 2, 3
*/
if
(
keys_size
==
1
)
{
if
(
const
ColumnTuple
*
tuple
=
typeid_cast
<
const
ColumnTuple
*>
(
key_columns
.
back
()))
{
key_columns
.
pop_back
();
...
...
@@ -229,7 +235,7 @@ void Set::createFromAST(const DataTypes & types, ASTPtr node, const Context & co
if
(
value
.
isNull
())
break
;
tuple_values
[
j
]
=
value
;
/// TODO Сделать move семантику для Field.
tuple_values
[
j
]
=
value
;
}
if
(
j
==
tuple_size
)
...
...
dbms/tests/queries/0_stateless/00132_sets.reference
浏览文件 @
be7c70da
...
...
@@ -25,3 +25,8 @@
1
0
1
1 (2,3)
2 (2,3)
3 (2,3)
4 (2,3)
5 (2,3)
dbms/tests/queries/0_stateless/00132_sets.sql
浏览文件 @
be7c70da
...
...
@@ -19,3 +19,8 @@ SELECT ['Hello', 'world'] IN ('world');
SELECT
[
'Hello'
,
'world'
]
NOT
IN
(
'world'
);
SELECT
[
'Hello'
,
'world'
]
NOT
IN
(
'Hello'
,
'world'
);
SELECT
[
'Hello'
,
'world'
]
NOT
IN
(
'hello'
,
'world'
);
SELECT
number
,
tuple
FROM
(
SELECT
1
AS
number
,
(
2
,
3
)
AS
tuple
)
WHERE
(
number
,
tuple
)
IN
(((
1
,
(
2
,
3
)),
(
4
,
(
5
,
6
))));
SELECT
number
,
tuple
FROM
(
SELECT
2
AS
number
,
(
2
,
3
)
AS
tuple
)
WHERE
(
number
,
tuple
)
IN
((
2
,
(
2
,
3
)));
SELECT
number
,
tuple
FROM
(
SELECT
3
AS
number
,
(
2
,
3
)
AS
tuple
)
WHERE
(
number
,
tuple
)
IN
(
3
,
(
2
,
3
));
SELECT
number
,
tuple
FROM
(
SELECT
4
AS
number
,
(
2
,
3
)
AS
tuple
)
WHERE
(
number
,
tuple
)
IN
(
SELECT
(
4
,
(
2
,
3
)));
SELECT
number
,
tuple
FROM
(
SELECT
5
AS
number
,
(
2
,
3
)
AS
tuple
)
WHERE
(
number
,
tuple
)
IN
(
SELECT
5
,
(
2
,
3
));
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录