Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2dot5
ClickHouse
提交
aab4ce63
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,发现更多精彩内容 >>
提交
aab4ce63
编写于
6月 18, 2020
作者:
A
alesapin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Truncate with metadata
上级
35ce4795
变更
24
隐藏空白更改
内联
并排
Showing
24 changed file
with
44 addition
and
31 deletion
+44
-31
src/Interpreters/InterpreterDropQuery.cpp
src/Interpreters/InterpreterDropQuery.cpp
+4
-2
src/Storages/IStorage.h
src/Storages/IStorage.h
+5
-1
src/Storages/StorageDistributed.cpp
src/Storages/StorageDistributed.cpp
+1
-1
src/Storages/StorageDistributed.h
src/Storages/StorageDistributed.h
+1
-1
src/Storages/StorageFile.cpp
src/Storages/StorageFile.cpp
+5
-1
src/Storages/StorageFile.h
src/Storages/StorageFile.h
+5
-1
src/Storages/StorageJoin.cpp
src/Storages/StorageJoin.cpp
+2
-3
src/Storages/StorageJoin.h
src/Storages/StorageJoin.h
+1
-1
src/Storages/StorageLog.cpp
src/Storages/StorageLog.cpp
+1
-2
src/Storages/StorageLog.h
src/Storages/StorageLog.h
+1
-1
src/Storages/StorageMaterializedView.cpp
src/Storages/StorageMaterializedView.cpp
+1
-1
src/Storages/StorageMaterializedView.h
src/Storages/StorageMaterializedView.h
+1
-1
src/Storages/StorageMemory.cpp
src/Storages/StorageMemory.cpp
+2
-1
src/Storages/StorageMemory.h
src/Storages/StorageMemory.h
+2
-2
src/Storages/StorageMergeTree.cpp
src/Storages/StorageMergeTree.cpp
+1
-1
src/Storages/StorageMergeTree.h
src/Storages/StorageMergeTree.h
+1
-1
src/Storages/StorageReplicatedMergeTree.cpp
src/Storages/StorageReplicatedMergeTree.cpp
+2
-1
src/Storages/StorageReplicatedMergeTree.h
src/Storages/StorageReplicatedMergeTree.h
+1
-1
src/Storages/StorageSet.cpp
src/Storages/StorageSet.cpp
+1
-2
src/Storages/StorageSet.h
src/Storages/StorageSet.h
+1
-1
src/Storages/StorageStripeLog.cpp
src/Storages/StorageStripeLog.cpp
+1
-1
src/Storages/StorageStripeLog.h
src/Storages/StorageStripeLog.h
+1
-1
src/Storages/StorageTinyLog.cpp
src/Storages/StorageTinyLog.cpp
+2
-2
src/Storages/StorageTinyLog.h
src/Storages/StorageTinyLog.h
+1
-1
未找到文件。
src/Interpreters/InterpreterDropQuery.cpp
浏览文件 @
aab4ce63
...
...
@@ -105,8 +105,9 @@ BlockIO InterpreterDropQuery::executeToTable(
table
->
checkTableCanBeDropped
();
auto
table_lock
=
table
->
lockExclusively
(
context
.
getCurrentQueryId
(),
context
.
getSettingsRef
().
lock_acquire_timeout
);
auto
metadata_snapshot
=
table
->
getInMemoryMetadataPtr
();
/// Drop table data, don't touch metadata
table
->
truncate
(
query_ptr
,
context
,
table_lock
);
table
->
truncate
(
query_ptr
,
metadata_snapshot
,
context
,
table_lock
);
}
else
if
(
query
.
kind
==
ASTDropQuery
::
Kind
::
Drop
)
{
...
...
@@ -187,7 +188,8 @@ BlockIO InterpreterDropQuery::executeToTemporaryTable(const String & table_name,
{
auto
table_lock
=
table
->
lockExclusively
(
context
.
getCurrentQueryId
(),
context
.
getSettingsRef
().
lock_acquire_timeout
);
/// Drop table data, don't touch metadata
table
->
truncate
(
query_ptr
,
context
,
table_lock
);
auto
metadata_snapshot
=
table
->
getInMemoryMetadataPtr
();
table
->
truncate
(
query_ptr
,
metadata_snapshot
,
context
,
table_lock
);
}
else
if
(
kind
==
ASTDropQuery
::
Kind
::
Drop
)
{
...
...
src/Storages/IStorage.h
浏览文件 @
aab4ce63
...
...
@@ -292,7 +292,11 @@ public:
/** Clear the table data and leave it empty.
* Must be called under lockForAlter.
*/
virtual
void
truncate
(
const
ASTPtr
&
/*query*/
,
const
Context
&
/* context */
,
TableStructureWriteLockHolder
&
)
virtual
void
truncate
(
const
ASTPtr
&
/*query*/
,
const
StorageMetadataPtr
&
/* metadata_snapshot */
,
const
Context
&
/* context */
,
TableStructureWriteLockHolder
&
)
{
throw
Exception
(
"Truncate is not supported by storage "
+
getName
(),
ErrorCodes
::
NOT_IMPLEMENTED
);
}
...
...
src/Storages/StorageDistributed.cpp
浏览文件 @
aab4ce63
...
...
@@ -619,7 +619,7 @@ Strings StorageDistributed::getDataPaths() const
return
paths
;
}
void
StorageDistributed
::
truncate
(
const
ASTPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
void
StorageDistributed
::
truncate
(
const
ASTPtr
&
,
const
StorageMetadataPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
{
std
::
lock_guard
lock
(
cluster_nodes_mutex
);
...
...
src/Storages/StorageDistributed.h
浏览文件 @
aab4ce63
...
...
@@ -82,7 +82,7 @@ public:
BlockOutputStreamPtr
write
(
const
ASTPtr
&
query
,
const
StorageMetadataPtr
&
/*metadata_snapshot*/
,
const
Context
&
context
)
override
;
/// Removes temporary data in local filesystem.
void
truncate
(
const
ASTPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
override
;
void
truncate
(
const
ASTPtr
&
,
const
StorageMetadataPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
override
;
void
rename
(
const
String
&
new_path_to_table_data
,
const
StorageID
&
new_table_id
)
override
;
void
renameOnDisk
(
const
String
&
new_path_to_table_data
);
...
...
src/Storages/StorageFile.cpp
浏览文件 @
aab4ce63
...
...
@@ -523,7 +523,11 @@ void StorageFile::rename(const String & new_path_to_table_data, const StorageID
renameInMemory
(
new_table_id
);
}
void
StorageFile
::
truncate
(
const
ASTPtr
&
/*query*/
,
const
Context
&
/* context */
,
TableStructureWriteLockHolder
&
)
void
StorageFile
::
truncate
(
const
ASTPtr
&
/*query*/
,
const
StorageMetadataPtr
&
/* metadata_snapshot */
,
const
Context
&
/* context */
,
TableStructureWriteLockHolder
&
)
{
if
(
paths
.
size
()
!=
1
)
throw
Exception
(
"Can't truncate table '"
+
getStorageID
().
getNameForLogs
()
+
"' in readonly mode"
,
ErrorCodes
::
DATABASE_ACCESS_DENIED
);
...
...
src/Storages/StorageFile.h
浏览文件 @
aab4ce63
...
...
@@ -38,7 +38,11 @@ public:
const
StorageMetadataPtr
&
/*metadata_snapshot*/
,
const
Context
&
context
)
override
;
void
truncate
(
const
ASTPtr
&
/*query*/
,
const
Context
&
/* context */
,
TableStructureWriteLockHolder
&
)
override
;
void
truncate
(
const
ASTPtr
&
/*query*/
,
const
StorageMetadataPtr
&
/* metadata_snapshot */
,
const
Context
&
/* context */
,
TableStructureWriteLockHolder
&
)
override
;
void
rename
(
const
String
&
new_path_to_table_data
,
const
StorageID
&
new_table_id
)
override
;
...
...
src/Storages/StorageJoin.cpp
浏览文件 @
aab4ce63
...
...
@@ -64,10 +64,9 @@ StorageJoin::StorageJoin(
}
void
StorageJoin
::
truncate
(
const
ASTPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
void
StorageJoin
::
truncate
(
const
ASTPtr
&
,
const
StorageMetadataPtr
&
metadata_snapshot
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
{
/// TODO(alesap) FIXME
auto
metadata_snapshot
=
getInMemoryMetadataPtr
();
Poco
::
File
(
path
).
remove
(
true
);
Poco
::
File
(
path
).
createDirectories
();
Poco
::
File
(
path
+
"tmp/"
).
createDirectories
();
...
...
src/Storages/StorageJoin.h
浏览文件 @
aab4ce63
...
...
@@ -27,7 +27,7 @@ class StorageJoin final : public ext::shared_ptr_helper<StorageJoin>, public Sto
public:
String
getName
()
const
override
{
return
"Join"
;
}
void
truncate
(
const
ASTPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
override
;
void
truncate
(
const
ASTPtr
&
,
const
StorageMetadataPtr
&
metadata_snapshot
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
override
;
/// Access the innards.
HashJoinPtr
&
getJoin
()
{
return
join
;
}
...
...
src/Storages/StorageLog.cpp
浏览文件 @
aab4ce63
...
...
@@ -535,11 +535,10 @@ void StorageLog::rename(const String & new_path_to_table_data, const StorageID &
renameInMemory
(
new_table_id
);
}
void
StorageLog
::
truncate
(
const
ASTPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
void
StorageLog
::
truncate
(
const
ASTPtr
&
,
const
StorageMetadataPtr
&
metadata_snapshot
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
{
std
::
shared_lock
<
std
::
shared_mutex
>
lock
(
rwlock
);
auto
metadata_snapshot
=
getInMemoryMetadataPtr
();
files
.
clear
();
file_count
=
0
;
loaded_marks
=
false
;
...
...
src/Storages/StorageLog.h
浏览文件 @
aab4ce63
...
...
@@ -39,7 +39,7 @@ public:
CheckResults
checkData
(
const
ASTPtr
&
/* query */
,
const
Context
&
/* context */
)
override
;
void
truncate
(
const
ASTPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
override
;
void
truncate
(
const
ASTPtr
&
,
const
StorageMetadataPtr
&
metadata_snapshot
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
override
;
Strings
getDataPaths
()
const
override
{
return
{
DB
::
fullPath
(
disk
,
table_path
)};
}
...
...
src/Storages/StorageMaterializedView.cpp
浏览文件 @
aab4ce63
...
...
@@ -173,7 +173,7 @@ void StorageMaterializedView::drop()
executeDropQuery
(
ASTDropQuery
::
Kind
::
Drop
,
global_context
,
target_table_id
);
}
void
StorageMaterializedView
::
truncate
(
const
ASTPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
void
StorageMaterializedView
::
truncate
(
const
ASTPtr
&
,
const
StorageMetadataPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
{
if
(
has_inner_table
)
executeDropQuery
(
ASTDropQuery
::
Kind
::
Truncate
,
global_context
,
target_table_id
);
...
...
src/Storages/StorageMaterializedView.h
浏览文件 @
aab4ce63
...
...
@@ -37,7 +37,7 @@ public:
void
drop
()
override
;
void
truncate
(
const
ASTPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
override
;
void
truncate
(
const
ASTPtr
&
,
const
StorageMetadataPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
override
;
bool
optimize
(
const
ASTPtr
&
query
,
...
...
src/Storages/StorageMemory.cpp
浏览文件 @
aab4ce63
...
...
@@ -148,7 +148,8 @@ void StorageMemory::drop()
data
.
clear
();
}
void
StorageMemory
::
truncate
(
const
ASTPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
void
StorageMemory
::
truncate
(
const
ASTPtr
&
,
const
StorageMetadataPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
{
std
::
lock_guard
lock
(
mutex
);
data
.
clear
();
...
...
src/Storages/StorageMemory.h
浏览文件 @
aab4ce63
...
...
@@ -37,11 +37,11 @@ public:
size_t
max_block_size
,
unsigned
num_streams
)
override
;
BlockOutputStreamPtr
write
(
const
ASTPtr
&
query
,
const
StorageMetadataPtr
&
/*metadata_snapshot*/
,
const
Context
&
context
)
override
;
BlockOutputStreamPtr
write
(
const
ASTPtr
&
query
,
const
StorageMetadataPtr
&
metadata_snapshot
,
const
Context
&
context
)
override
;
void
drop
()
override
;
void
truncate
(
const
ASTPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
override
;
void
truncate
(
const
ASTPtr
&
,
const
StorageMetadataPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
override
;
std
::
optional
<
UInt64
>
totalRows
()
const
override
;
std
::
optional
<
UInt64
>
totalBytes
()
const
override
;
...
...
src/Storages/StorageMergeTree.cpp
浏览文件 @
aab4ce63
...
...
@@ -231,7 +231,7 @@ void StorageMergeTree::drop()
dropAllData
();
}
void
StorageMergeTree
::
truncate
(
const
ASTPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
void
StorageMergeTree
::
truncate
(
const
ASTPtr
&
,
const
StorageMetadataPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
{
{
/// Asks to complete merges and does not allow them to start.
...
...
src/Storages/StorageMergeTree.h
浏览文件 @
aab4ce63
...
...
@@ -75,7 +75,7 @@ public:
CancellationCode
killMutation
(
const
String
&
mutation_id
)
override
;
void
drop
()
override
;
void
truncate
(
const
ASTPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
override
;
void
truncate
(
const
ASTPtr
&
,
const
StorageMetadataPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
override
;
void
alter
(
const
AlterCommands
&
commands
,
const
Context
&
context
,
TableStructureWriteLockHolder
&
table_lock_holder
)
override
;
...
...
src/Storages/StorageReplicatedMergeTree.cpp
浏览文件 @
aab4ce63
...
...
@@ -4011,7 +4011,8 @@ void StorageReplicatedMergeTree::dropPartition(const ASTPtr & query, const ASTPt
}
void
StorageReplicatedMergeTree
::
truncate
(
const
ASTPtr
&
query
,
const
Context
&
query_context
,
TableStructureWriteLockHolder
&
table_lock
)
void
StorageReplicatedMergeTree
::
truncate
(
const
ASTPtr
&
query
,
const
StorageMetadataPtr
&
,
const
Context
&
query_context
,
TableStructureWriteLockHolder
&
table_lock
)
{
table_lock
.
release
();
/// Truncate is done asynchronously.
...
...
src/Storages/StorageReplicatedMergeTree.h
浏览文件 @
aab4ce63
...
...
@@ -120,7 +120,7 @@ public:
*/
void
drop
()
override
;
void
truncate
(
const
ASTPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
override
;
void
truncate
(
const
ASTPtr
&
,
const
StorageMetadataPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
override
;
void
rename
(
const
String
&
new_path_to_table_data
,
const
StorageID
&
new_table_id
)
override
;
...
...
src/Storages/StorageSet.cpp
浏览文件 @
aab4ce63
...
...
@@ -142,9 +142,8 @@ void StorageSet::finishInsert() { set->finishInsert(); }
size_t
StorageSet
::
getSize
()
const
{
return
set
->
getTotalRowCount
();
}
void
StorageSet
::
truncate
(
const
ASTPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
void
StorageSet
::
truncate
(
const
ASTPtr
&
,
const
StorageMetadataPtr
&
metadata_snapshot
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
{
auto
metadata_snapshot
=
getInMemoryMetadataPtr
();
Poco
::
File
(
path
).
remove
(
true
);
Poco
::
File
(
path
).
createDirectories
();
Poco
::
File
(
path
+
"tmp/"
).
createDirectories
();
...
...
src/Storages/StorageSet.h
浏览文件 @
aab4ce63
...
...
@@ -67,7 +67,7 @@ public:
/// Access the insides.
SetPtr
&
getSet
()
{
return
set
;
}
void
truncate
(
const
ASTPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
override
;
void
truncate
(
const
ASTPtr
&
,
const
StorageMetadataPtr
&
metadata_snapshot
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
override
;
private:
SetPtr
set
;
...
...
src/Storages/StorageStripeLog.cpp
浏览文件 @
aab4ce63
...
...
@@ -326,7 +326,7 @@ CheckResults StorageStripeLog::checkData(const ASTPtr & /* query */, const Conte
return
file_checker
.
check
();
}
void
StorageStripeLog
::
truncate
(
const
ASTPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
void
StorageStripeLog
::
truncate
(
const
ASTPtr
&
,
const
StorageMetadataPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
{
std
::
shared_lock
<
std
::
shared_mutex
>
lock
(
rwlock
);
...
...
src/Storages/StorageStripeLog.h
浏览文件 @
aab4ce63
...
...
@@ -42,7 +42,7 @@ public:
Strings
getDataPaths
()
const
override
{
return
{
DB
::
fullPath
(
disk
,
table_path
)};
}
void
truncate
(
const
ASTPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
override
;
void
truncate
(
const
ASTPtr
&
,
const
StorageMetadataPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
override
;
protected:
StorageStripeLog
(
...
...
src/Storages/StorageTinyLog.cpp
浏览文件 @
aab4ce63
...
...
@@ -429,10 +429,10 @@ CheckResults StorageTinyLog::checkData(const ASTPtr & /* query */, const Context
return
file_checker
.
check
();
}
void
StorageTinyLog
::
truncate
(
const
ASTPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
void
StorageTinyLog
::
truncate
(
const
ASTPtr
&
,
const
StorageMetadataPtr
&
metadata_snapshot
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
{
std
::
unique_lock
<
std
::
shared_mutex
>
lock
(
rwlock
);
auto
metadata_snapshot
=
getInMemoryMetadataPtr
();
disk
->
clearDirectory
(
table_path
);
...
...
src/Storages/StorageTinyLog.h
浏览文件 @
aab4ce63
...
...
@@ -41,7 +41,7 @@ public:
Strings
getDataPaths
()
const
override
{
return
{
DB
::
fullPath
(
disk
,
table_path
)};
}
void
truncate
(
const
ASTPtr
&
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
override
;
void
truncate
(
const
ASTPtr
&
,
const
StorageMetadataPtr
&
metadata_snapshot
,
const
Context
&
,
TableStructureWriteLockHolder
&
)
override
;
void
drop
()
override
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录