Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2dot5
ClickHouse
提交
9d0b6bff
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,发现更多精彩内容 >>
提交
9d0b6bff
编写于
7月 12, 2018
作者:
P
proller
提交者:
alexey-milovidov
7月 13, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Better error: Print checksums if they mismatch
上级
c315200e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
11 addition
and
3 deletion
+11
-3
dbms/src/IO/CompressedReadBufferBase.cpp
dbms/src/IO/CompressedReadBufferBase.cpp
+11
-3
未找到文件。
dbms/src/IO/CompressedReadBufferBase.cpp
浏览文件 @
9d0b6bff
...
...
@@ -9,6 +9,7 @@
#include <Common/PODArray.h>
#include <Common/ProfileEvents.h>
#include <Common/Exception.h>
#include <Common/hex.h>
#include <common/unaligned.h>
#include <IO/ReadBuffer.h>
#include <IO/BufferWithOwnMemory.h>
...
...
@@ -63,7 +64,7 @@ size_t CompressedReadBufferBase::readCompressedData(size_t & size_decompressed,
throw
Exception
(
"Unknown compression method: "
+
toString
(
method
),
ErrorCodes
::
UNKNOWN_COMPRESSION_METHOD
);
if
(
size_compressed
>
DBMS_MAX_COMPRESSED_SIZE
)
throw
Exception
(
"Too large size_compressed. Most likely corrupted data."
,
ErrorCodes
::
TOO_LARGE_SIZE_COMPRESSED
);
throw
Exception
(
"Too large size_compressed
="
+
toString
(
size_compressed
)
+
"
. Most likely corrupted data."
,
ErrorCodes
::
TOO_LARGE_SIZE_COMPRESSED
);
ProfileEvents
::
increment
(
ProfileEvents
::
ReadCompressedBytes
,
size_compressed
+
sizeof
(
checksum
));
...
...
@@ -82,8 +83,15 @@ size_t CompressedReadBufferBase::readCompressedData(size_t & size_decompressed,
compressed_in
->
readStrict
(
compressed_buffer
+
COMPRESSED_BLOCK_HEADER_SIZE
,
size_compressed
-
COMPRESSED_BLOCK_HEADER_SIZE
);
}
if
(
!
disable_checksum
&&
checksum
!=
CityHash_v1_0_2
::
CityHash128
(
compressed_buffer
,
size_compressed
))
throw
Exception
(
"Checksum doesn't match: corrupted data."
,
ErrorCodes
::
CHECKSUM_DOESNT_MATCH
);
if
(
!
disable_checksum
)
{
auto
checksum_calculated
=
CityHash_v1_0_2
::
CityHash128
(
compressed_buffer
,
size_compressed
);
if
(
checksum
!=
checksum_calculated
)
throw
Exception
(
"Checksum doesn't match: corrupted data."
" received="
+
getHexUIntLowercase
(
checksum
.
first
)
+
getHexUIntLowercase
(
checksum
.
second
)
+
", calculated="
+
getHexUIntLowercase
(
checksum_calculated
.
first
)
+
getHexUIntLowercase
(
checksum_calculated
.
second
)
+
", size="
+
toString
(
size_compressed
),
ErrorCodes
::
CHECKSUM_DOESNT_MATCH
);
}
return
size_compressed
+
sizeof
(
checksum
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录