Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2dot5
ClickHouse
提交
cf5a8643
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,发现更多精彩内容 >>
提交
cf5a8643
编写于
4月 05, 2014
作者:
A
Alexey Milovidov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
dbms: fixed error when uncompressed_cache or marks_cache is not set [#METR-2944].
上级
e41c11e7
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
25 addition
and
8 deletion
+25
-8
dbms/include/DB/Interpreters/Context.h
dbms/include/DB/Interpreters/Context.h
+8
-0
dbms/src/Interpreters/Context.cpp
dbms/src/Interpreters/Context.cpp
+12
-0
dbms/src/Storages/MergeTree/MergeTreeData.cpp
dbms/src/Storages/MergeTree/MergeTreeData.cpp
+5
-8
未找到文件。
dbms/include/DB/Interpreters/Context.h
浏览文件 @
cf5a8643
...
...
@@ -295,6 +295,14 @@ public:
void
setMarkCache
(
size_t
cache_size_in_bytes
);
MarkCachePtr
getMarkCache
()
const
;
/** Очистить кэши разжатых блоков и засечек.
* Обычно это делается при переименовании таблиц, изменении типа столбцов, удалении таблицы.
* - так как кэши привязаны к именам файлов, и становятся некорректными.
* (при удалении таблицы - нужно, так как на её месте может появиться другая)
* const - потому что изменение кэша не считается существенным.
*/
void
resetCaches
()
const
;
void
initClusters
();
Cluster
&
getCluster
(
const
std
::
string
&
cluster_name
);
...
...
dbms/src/Interpreters/Context.cpp
浏览文件 @
cf5a8643
...
...
@@ -532,9 +532,21 @@ void Context::setMarkCache(size_t cache_size_in_bytes)
MarkCachePtr
Context
::
getMarkCache
()
const
{
/// Исходим из допущения, что функция setMarksCache, если вызывалась, то раньше. Иначе поставьте mutex.
return
shared
->
mark_cache
;
}
void
Context
::
resetCaches
()
const
{
/// Исходим из допущения, что функции setUncompressedCache, setMarkCache, если вызывались, то раньше (при старте сервера). Иначе поставьте mutex.
if
(
shared
->
uncompressed_cache
)
shared
->
uncompressed_cache
->
reset
();
if
(
shared
->
mark_cache
)
shared
->
mark_cache
->
reset
();
}
void
Context
::
initClusters
()
{
Poco
::
ScopedLock
<
Poco
::
Mutex
>
lock
(
shared
->
mutex
);
...
...
dbms/src/Storages/MergeTree/MergeTreeData.cpp
浏览文件 @
cf5a8643
...
...
@@ -317,8 +317,7 @@ void MergeTreeData::setPath(const String & new_full_path)
Poco
::
File
(
full_path
).
renameTo
(
new_full_path
);
full_path
=
new_full_path
;
context
.
getUncompressedCache
()
->
reset
();
context
.
getMarkCache
()
->
reset
();
context
.
resetCaches
();
log
=
&
Logger
::
get
(
lastTwoPathComponents
(
full_path
));
}
...
...
@@ -328,8 +327,7 @@ void MergeTreeData::dropAllData()
data_parts
.
clear
();
all_data_parts
.
clear
();
context
.
getUncompressedCache
()
->
reset
();
context
.
getMarkCache
()
->
reset
();
context
.
resetCaches
();
Poco
::
File
(
full_path
).
remove
(
true
);
}
...
...
@@ -411,6 +409,7 @@ void MergeTreeData::alter(const ASTAlterQuery::Parameters & params)
Poco
::
ScopedLock
<
Poco
::
FastMutex
>
lock_all
(
all_data_parts_mutex
);
alterColumns
(
params
,
columns
,
context
);
}
if
(
params
.
type
==
ASTAlterQuery
::
DROP
)
{
String
column_name
=
dynamic_cast
<
const
ASTIdentifier
&>
(
*
params
.
column
).
name
;
...
...
@@ -424,8 +423,7 @@ void MergeTreeData::alter(const ASTAlterQuery::Parameters & params)
}
removeColumnFiles
(
column_name
,
remove_array_size_files
);
context
.
getUncompressedCache
()
->
reset
();
context
.
getMarkCache
()
->
reset
();
context
.
resetCaches
();
}
}
...
...
@@ -571,8 +569,7 @@ void MergeTreeData::commitAlterModify(const ASTAlterQuery::Parameters & params)
}
}
context
.
getUncompressedCache
()
->
reset
();
context
.
getMarkCache
()
->
reset
();
context
.
resetCaches
();
{
Poco
::
ScopedLock
<
Poco
::
FastMutex
>
lock
(
data_parts_mutex
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录