Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2dot5
ClickHouse
提交
e141367b
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,发现更多精彩内容 >>
未验证
提交
e141367b
编写于
2月 12, 2021
作者:
M
Maksim Kita
提交者:
GitHub
2月 12, 2021
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #20345 from azat/RANGE_HASHED-dict-fix
Avoid invalid dereference in RANGE_HASHED() dictionary
上级
a2bb5861
29073854
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
11 addition
and
5 deletion
+11
-5
src/Dictionaries/RangeDictionaryBlockInputStream.h
src/Dictionaries/RangeDictionaryBlockInputStream.h
+6
-4
tests/queries/0_stateless/01125_dict_ddl_cannot_add_column.reference
...es/0_stateless/01125_dict_ddl_cannot_add_column.reference
+1
-0
tests/queries/0_stateless/01125_dict_ddl_cannot_add_column.sql
.../queries/0_stateless/01125_dict_ddl_cannot_add_column.sql
+4
-1
未找到文件。
src/Dictionaries/RangeDictionaryBlockInputStream.h
浏览文件 @
e141367b
...
...
@@ -47,7 +47,8 @@ private:
const
std
::
string
&
default_name
,
const
std
::
unordered_set
<
std
::
string
>
&
column_names_set
,
const
PaddedPODArray
<
T
>
&
values
,
ColumnsWithTypeAndName
&
columns
)
const
;
ColumnsWithTypeAndName
&
columns
,
bool
force
=
false
)
const
;
Block
fillBlock
(
const
PaddedPODArray
<
Key
>
&
ids_to_fill
,
...
...
@@ -121,13 +122,14 @@ void RangeDictionaryBlockInputStream<DictionaryType, RangeType, Key>::addSpecial
const
std
::
string
&
default_name
,
const
std
::
unordered_set
<
std
::
string
>
&
column_names_set
,
const
PaddedPODArray
<
T
>
&
values
,
ColumnsWithTypeAndName
&
columns
)
const
ColumnsWithTypeAndName
&
columns
,
bool
force
)
const
{
std
::
string
name
=
default_name
;
if
(
attribute
)
name
=
attribute
->
name
;
if
(
column_names_set
.
find
(
name
)
!=
column_names_set
.
end
())
if
(
force
||
column_names_set
.
find
(
name
)
!=
column_names_set
.
end
())
columns
.
emplace_back
(
getColumnFromPODArray
(
values
),
type
,
name
);
}
...
...
@@ -159,7 +161,7 @@ Block RangeDictionaryBlockInputStream<DictionaryType, RangeType, Key>::fillBlock
std
::
unordered_set
<
std
::
string
>
names
(
column_names
.
begin
(),
column_names
.
end
());
addSpecialColumn
(
structure
.
id
,
std
::
make_shared
<
DataTypeUInt64
>
(),
"ID"
,
names
,
ids_to_fill
,
columns
);
addSpecialColumn
(
structure
.
id
,
std
::
make_shared
<
DataTypeUInt64
>
(),
"ID"
,
names
,
ids_to_fill
,
columns
,
true
);
auto
ids_column
=
columns
.
back
().
column
;
addSpecialColumn
(
structure
.
range_min
,
structure
.
range_max
->
type
,
"Range Start"
,
names
,
block_start_dates
,
columns
);
addSpecialColumn
(
structure
.
range_max
,
structure
.
range_max
->
type
,
"Range End"
,
names
,
block_end_dates
,
columns
);
...
...
tests/queries/0_stateless/01125_dict_ddl_cannot_add_column.reference
浏览文件 @
e141367b
1 2019-01-05 2020-01-10 1
1
date_table
somedict
tests/queries/0_stateless/01125_dict_ddl_cannot_add_column.sql
浏览文件 @
e141367b
...
...
@@ -29,6 +29,9 @@ LIFETIME(MIN 300 MAX 360);
SELECT
*
from
somedict
;
-- No dictionary columns
SELECT
1
FROM
somedict
;
SHOW
TABLES
;
DROP
DATABASE
IF
EXISTS
database_for_dict
;
DROP
DATABASE
database_for_dict
;
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录