Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2dot5
ClickHouse
提交
d1024e76
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,发现更多精彩内容 >>
提交
d1024e76
编写于
4月 13, 2020
作者:
A
Alexander Tokmakov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix
上级
20e6593f
变更
16
隐藏空白更改
内联
并排
Showing
16 changed file
with
64 addition
and
23 deletion
+64
-23
docker/test/performance-comparison/compare.sh
docker/test/performance-comparison/compare.sh
+3
-3
programs/copier/ClusterCopierApp.cpp
programs/copier/ClusterCopierApp.cpp
+1
-1
programs/local/LocalServer.cpp
programs/local/LocalServer.cpp
+5
-5
src/Databases/DatabaseAtomic.cpp
src/Databases/DatabaseAtomic.cpp
+7
-1
src/Databases/DatabaseAtomic.h
src/Databases/DatabaseAtomic.h
+2
-0
src/Databases/DatabaseFactory.cpp
src/Databases/DatabaseFactory.cpp
+1
-1
src/Databases/DatabaseMemory.cpp
src/Databases/DatabaseMemory.cpp
+10
-1
src/Databases/DatabaseMemory.h
src/Databases/DatabaseMemory.h
+4
-1
src/Databases/IDatabase.h
src/Databases/IDatabase.h
+2
-0
src/Interpreters/Context.cpp
src/Interpreters/Context.cpp
+10
-4
src/Interpreters/DatabaseCatalog.cpp
src/Interpreters/DatabaseCatalog.cpp
+10
-1
src/Interpreters/DatabaseCatalog.h
src/Interpreters/DatabaseCatalog.h
+1
-1
src/Interpreters/InterpreterDropQuery.cpp
src/Interpreters/InterpreterDropQuery.cpp
+3
-2
src/Interpreters/tests/expression_analyzer.cpp
src/Interpreters/tests/expression_analyzer.cpp
+1
-1
tests/queries/0_stateless/00693_max_block_size_system_tables_columns.sql
..._stateless/00693_max_block_size_system_tables_columns.sql
+3
-1
tests/queries/0_stateless/01004_rename_deadlock.sh
tests/queries/0_stateless/01004_rename_deadlock.sh
+1
-0
未找到文件。
docker/test/performance-comparison/compare.sh
浏览文件 @
d1024e76
...
@@ -309,7 +309,7 @@ create view addresses_src as select *
...
@@ -309,7 +309,7 @@ create view addresses_src as select *
from file('
$version
-addresses.tsv', TSVWithNamesAndTypes,
from file('
$version
-addresses.tsv', TSVWithNamesAndTypes,
'
$(
cat
"
$version
-addresses.tsv.columns"
)
');
'
$(
cat
"
$version
-addresses.tsv.columns"
)
');
create table addresses_join engine Join(any, left, address) as
create table addresses_join
_
$version
engine Join(any, left, address) as
select addr address, name from addresses_src;
select addr address, name from addresses_src;
create table unstable_query_runs engine File(TSVWithNamesAndTypes,
create table unstable_query_runs engine File(TSVWithNamesAndTypes,
...
@@ -348,7 +348,7 @@ create table unstable_run_traces engine File(TSVWithNamesAndTypes,
...
@@ -348,7 +348,7 @@ create table unstable_run_traces engine File(TSVWithNamesAndTypes,
'unstable-run-traces.
$version
.rep') as
'unstable-run-traces.
$version
.rep') as
select
select
count() value,
count() value,
joinGet(addresses_join, 'name', arrayJoin(trace)) metric,
joinGet(addresses_join
_
$version
, 'name', arrayJoin(trace)) metric,
unstable_query_runs.query_id,
unstable_query_runs.query_id,
any(unstable_query_runs.query) query
any(unstable_query_runs.query) query
from unstable_query_runs
from unstable_query_runs
...
@@ -374,7 +374,7 @@ create table stacks engine File(TSV, 'stacks.$version.rep') as
...
@@ -374,7 +374,7 @@ create table stacks engine File(TSV, 'stacks.$version.rep') as
select
select
query,
query,
arrayStringConcat(
arrayStringConcat(
arrayMap(x -> joinGet(addresses_join, 'name', x),
arrayMap(x -> joinGet(addresses_join
_
$version
, 'name', x),
arrayReverse(trace)
arrayReverse(trace)
),
),
';'
';'
...
...
programs/copier/ClusterCopierApp.cpp
浏览文件 @
d1024e76
...
@@ -110,7 +110,7 @@ void ClusterCopierApp::mainImpl()
...
@@ -110,7 +110,7 @@ void ClusterCopierApp::mainImpl()
registerDisks
();
registerDisks
();
static
const
std
::
string
default_database
=
"_local"
;
static
const
std
::
string
default_database
=
"_local"
;
DatabaseCatalog
::
instance
().
attachDatabase
(
default_database
,
std
::
make_shared
<
DatabaseMemory
>
(
default_database
));
DatabaseCatalog
::
instance
().
attachDatabase
(
default_database
,
std
::
make_shared
<
DatabaseMemory
>
(
default_database
,
*
context
));
context
->
setCurrentDatabase
(
default_database
);
context
->
setCurrentDatabase
(
default_database
);
/// Initialize query scope just in case.
/// Initialize query scope just in case.
...
...
programs/local/LocalServer.cpp
浏览文件 @
d1024e76
...
@@ -119,13 +119,13 @@ void LocalServer::tryInitPath()
...
@@ -119,13 +119,13 @@ void LocalServer::tryInitPath()
}
}
static
void
attachSystemTables
()
static
void
attachSystemTables
(
const
Context
&
context
)
{
{
DatabasePtr
system_database
=
DatabaseCatalog
::
instance
().
tryGetDatabase
(
DatabaseCatalog
::
SYSTEM_DATABASE
);
DatabasePtr
system_database
=
DatabaseCatalog
::
instance
().
tryGetDatabase
(
DatabaseCatalog
::
SYSTEM_DATABASE
);
if
(
!
system_database
)
if
(
!
system_database
)
{
{
/// TODO: add attachTableDelayed into DatabaseMemory to speedup loading
/// TODO: add attachTableDelayed into DatabaseMemory to speedup loading
system_database
=
std
::
make_shared
<
DatabaseMemory
>
(
DatabaseCatalog
::
SYSTEM_DATABASE
);
system_database
=
std
::
make_shared
<
DatabaseMemory
>
(
DatabaseCatalog
::
SYSTEM_DATABASE
,
context
);
DatabaseCatalog
::
instance
().
attachDatabase
(
DatabaseCatalog
::
SYSTEM_DATABASE
,
system_database
);
DatabaseCatalog
::
instance
().
attachDatabase
(
DatabaseCatalog
::
SYSTEM_DATABASE
,
system_database
);
}
}
...
@@ -202,7 +202,7 @@ try
...
@@ -202,7 +202,7 @@ try
* if such tables will not be dropped, clickhouse-server will not be able to load them due to security reasons.
* if such tables will not be dropped, clickhouse-server will not be able to load them due to security reasons.
*/
*/
std
::
string
default_database
=
config
().
getString
(
"default_database"
,
"_local"
);
std
::
string
default_database
=
config
().
getString
(
"default_database"
,
"_local"
);
DatabaseCatalog
::
instance
().
attachDatabase
(
default_database
,
std
::
make_shared
<
DatabaseMemory
>
(
default_database
));
DatabaseCatalog
::
instance
().
attachDatabase
(
default_database
,
std
::
make_shared
<
DatabaseMemory
>
(
default_database
,
*
context
));
context
->
setCurrentDatabase
(
default_database
);
context
->
setCurrentDatabase
(
default_database
);
applyCmdOptions
();
applyCmdOptions
();
...
@@ -213,14 +213,14 @@ try
...
@@ -213,14 +213,14 @@ try
LOG_DEBUG
(
log
,
"Loading metadata from "
<<
context
->
getPath
());
LOG_DEBUG
(
log
,
"Loading metadata from "
<<
context
->
getPath
());
loadMetadataSystem
(
*
context
);
loadMetadataSystem
(
*
context
);
attachSystemTables
();
attachSystemTables
(
*
context
);
loadMetadata
(
*
context
);
loadMetadata
(
*
context
);
DatabaseCatalog
::
instance
().
loadDatabases
();
DatabaseCatalog
::
instance
().
loadDatabases
();
LOG_DEBUG
(
log
,
"Loaded metadata."
);
LOG_DEBUG
(
log
,
"Loaded metadata."
);
}
}
else
else
{
{
attachSystemTables
();
attachSystemTables
(
*
context
);
}
}
processQueries
();
processQueries
();
...
...
src/Databases/DatabaseAtomic.cpp
浏览文件 @
d1024e76
...
@@ -51,7 +51,6 @@ String DatabaseAtomic::getTableDataPath(const ASTCreateQuery & query) const
...
@@ -51,7 +51,6 @@ String DatabaseAtomic::getTableDataPath(const ASTCreateQuery & query) const
auto
tmp
=
data_path
+
DatabaseCatalog
::
getPathForUUID
(
query
.
uuid
);
auto
tmp
=
data_path
+
DatabaseCatalog
::
getPathForUUID
(
query
.
uuid
);
assert
(
tmp
!=
data_path
&&
!
tmp
.
empty
());
assert
(
tmp
!=
data_path
&&
!
tmp
.
empty
());
return
tmp
;
return
tmp
;
}
}
void
DatabaseAtomic
::
drop
(
const
Context
&
)
void
DatabaseAtomic
::
drop
(
const
Context
&
)
...
@@ -285,6 +284,13 @@ DatabaseTablesIteratorPtr DatabaseAtomic::getTablesWithDictionaryTablesIterator(
...
@@ -285,6 +284,13 @@ DatabaseTablesIteratorPtr DatabaseAtomic::getTablesWithDictionaryTablesIterator(
return
std
::
make_unique
<
AtomicDatabaseTablesSnapshotIterator
>
(
std
::
move
(
typeid_cast
<
DatabaseTablesSnapshotIterator
&>
(
*
base_iter
)));
return
std
::
make_unique
<
AtomicDatabaseTablesSnapshotIterator
>
(
std
::
move
(
typeid_cast
<
DatabaseTablesSnapshotIterator
&>
(
*
base_iter
)));
}
}
UUID
DatabaseAtomic
::
tryGetTableUUID
(
const
String
&
table_name
)
const
{
if
(
auto
table
=
tryGetTable
(
global_context
,
table_name
))
return
table
->
getStorageID
().
uuid
;
return
UUIDHelpers
::
Nil
;
}
void
DatabaseAtomic
::
loadStoredObjects
(
Context
&
context
,
bool
has_force_restore_data_flag
)
void
DatabaseAtomic
::
loadStoredObjects
(
Context
&
context
,
bool
has_force_restore_data_flag
)
{
{
/// Recreate symlinks to table data dirs in case of force restore, because some of them may be broken
/// Recreate symlinks to table data dirs in case of force restore, because some of them may be broken
...
...
src/Databases/DatabaseAtomic.h
浏览文件 @
d1024e76
...
@@ -40,6 +40,8 @@ public:
...
@@ -40,6 +40,8 @@ public:
void
assertCanBeDetached
(
bool
cleenup
);
void
assertCanBeDetached
(
bool
cleenup
);
UUID
tryGetTableUUID
(
const
String
&
table_name
)
const
override
;
private:
private:
void
commitAlterTable
(
const
StorageID
&
table_id
,
const
String
&
table_metadata_tmp_path
,
const
String
&
table_metadata_path
)
override
;
void
commitAlterTable
(
const
StorageID
&
table_id
,
const
String
&
table_metadata_tmp_path
,
const
String
&
table_metadata_path
)
override
;
void
commitCreateTable
(
const
ASTCreateQuery
&
query
,
const
StoragePtr
&
table
,
void
commitCreateTable
(
const
ASTCreateQuery
&
query
,
const
StoragePtr
&
table
,
...
...
src/Databases/DatabaseFactory.cpp
浏览文件 @
d1024e76
...
@@ -79,7 +79,7 @@ DatabasePtr DatabaseFactory::getImpl(
...
@@ -79,7 +79,7 @@ DatabasePtr DatabaseFactory::getImpl(
else
if
(
engine_name
==
"Atomic"
)
else
if
(
engine_name
==
"Atomic"
)
return
std
::
make_shared
<
DatabaseAtomic
>
(
database_name
,
metadata_path
,
context
);
return
std
::
make_shared
<
DatabaseAtomic
>
(
database_name
,
metadata_path
,
context
);
else
if
(
engine_name
==
"Memory"
)
else
if
(
engine_name
==
"Memory"
)
return
std
::
make_shared
<
DatabaseMemory
>
(
database_name
);
return
std
::
make_shared
<
DatabaseMemory
>
(
database_name
,
context
);
else
if
(
engine_name
==
"Dictionary"
)
else
if
(
engine_name
==
"Dictionary"
)
return
std
::
make_shared
<
DatabaseDictionary
>
(
database_name
,
context
);
return
std
::
make_shared
<
DatabaseDictionary
>
(
database_name
,
context
);
...
...
src/Databases/DatabaseMemory.cpp
浏览文件 @
d1024e76
#include <common/logger_useful.h>
#include <common/logger_useful.h>
#include <Databases/DatabaseMemory.h>
#include <Databases/DatabaseMemory.h>
#include <Databases/DatabasesCommon.h>
#include <Databases/DatabasesCommon.h>
#include <Interpreters/Context.h>
#include <Parsers/ASTCreateQuery.h>
#include <Parsers/ASTCreateQuery.h>
#include <Storages/IStorage.h>
#include <Storages/IStorage.h>
#include <Poco/File.h>
#include <Poco/File.h>
...
@@ -14,8 +15,9 @@ namespace ErrorCodes
...
@@ -14,8 +15,9 @@ namespace ErrorCodes
extern
const
int
UNKNOWN_TABLE
;
extern
const
int
UNKNOWN_TABLE
;
}
}
DatabaseMemory
::
DatabaseMemory
(
const
String
&
name_
)
DatabaseMemory
::
DatabaseMemory
(
const
String
&
name_
,
const
Context
&
global_context_
)
:
DatabaseWithOwnTablesBase
(
name_
,
"DatabaseMemory("
+
name_
+
")"
)
:
DatabaseWithOwnTablesBase
(
name_
,
"DatabaseMemory("
+
name_
+
")"
)
,
global_context
(
global_context_
.
getGlobalContext
())
,
data_path
(
"data/"
+
escapeForFileName
(
database_name
)
+
"/"
)
,
data_path
(
"data/"
+
escapeForFileName
(
database_name
)
+
"/"
)
{}
{}
...
@@ -76,4 +78,11 @@ ASTPtr DatabaseMemory::getCreateTableQueryImpl(const Context &, const String & t
...
@@ -76,4 +78,11 @@ ASTPtr DatabaseMemory::getCreateTableQueryImpl(const Context &, const String & t
return
it
->
second
;
return
it
->
second
;
}
}
UUID
DatabaseMemory
::
tryGetTableUUID
(
const
String
&
table_name
)
const
{
if
(
auto
table
=
tryGetTable
(
global_context
,
table_name
))
return
table
->
getStorageID
().
uuid
;
return
UUIDHelpers
::
Nil
;
}
}
}
src/Databases/DatabaseMemory.h
浏览文件 @
d1024e76
...
@@ -19,7 +19,7 @@ namespace DB
...
@@ -19,7 +19,7 @@ namespace DB
class
DatabaseMemory
final
:
public
DatabaseWithOwnTablesBase
class
DatabaseMemory
final
:
public
DatabaseWithOwnTablesBase
{
{
public:
public:
DatabaseMemory
(
const
String
&
name_
);
DatabaseMemory
(
const
String
&
name_
,
const
Context
&
global_context_
);
String
getEngineName
()
const
override
{
return
"Memory"
;
}
String
getEngineName
()
const
override
{
return
"Memory"
;
}
...
@@ -44,7 +44,10 @@ public:
...
@@ -44,7 +44,10 @@ public:
String
getTableDataPath
(
const
String
&
table_name
)
const
override
{
return
data_path
+
escapeForFileName
(
table_name
)
+
"/"
;
}
String
getTableDataPath
(
const
String
&
table_name
)
const
override
{
return
data_path
+
escapeForFileName
(
table_name
)
+
"/"
;
}
String
getTableDataPath
(
const
ASTCreateQuery
&
query
)
const
override
{
return
getTableDataPath
(
query
.
table
);
}
String
getTableDataPath
(
const
ASTCreateQuery
&
query
)
const
override
{
return
getTableDataPath
(
query
.
table
);
}
UUID
tryGetTableUUID
(
const
String
&
table_name
)
const
override
;
private:
private:
const
Context
&
global_context
;
String
data_path
;
String
data_path
;
using
NameToASTCreate
=
std
::
unordered_map
<
String
,
ASTPtr
>
;
using
NameToASTCreate
=
std
::
unordered_map
<
String
,
ASTPtr
>
;
NameToASTCreate
create_queries
;
NameToASTCreate
create_queries
;
...
...
src/Databases/IDatabase.h
浏览文件 @
d1024e76
...
@@ -141,6 +141,8 @@ public:
...
@@ -141,6 +141,8 @@ public:
const
Context
&
context
,
const
Context
&
context
,
const
String
&
name
)
const
=
0
;
const
String
&
name
)
const
=
0
;
virtual
UUID
tryGetTableUUID
(
const
String
&
/*table_name*/
)
const
{
return
UUIDHelpers
::
Nil
;
}
using
FilterByNameFunction
=
std
::
function
<
bool
(
const
String
&
)
>
;
using
FilterByNameFunction
=
std
::
function
<
bool
(
const
String
&
)
>
;
/// Get an iterator that allows you to pass through all the tables.
/// Get an iterator that allows you to pass through all the tables.
...
...
src/Interpreters/Context.cpp
浏览文件 @
d1024e76
...
@@ -2037,7 +2037,9 @@ StorageID Context::resolveStorageID(StorageID storage_id, StorageNamespace where
...
@@ -2037,7 +2037,9 @@ StorageID Context::resolveStorageID(StorageID storage_id, StorageNamespace where
}
}
if
(
exc
)
if
(
exc
)
throw
Exception
(
*
exc
);
throw
Exception
(
*
exc
);
return
DatabaseCatalog
::
instance
().
getTable
(
resolved
)
->
getStorageID
();
if
(
!
resolved
.
hasUUID
()
&&
resolved
.
database_name
!=
DatabaseCatalog
::
TEMPORARY_DATABASE
)
resolved
.
uuid
=
DatabaseCatalog
::
instance
().
getDatabase
(
resolved
.
database_name
)
->
tryGetTableUUID
(
resolved
.
table_name
);
return
resolved
;
}
}
StorageID
Context
::
tryResolveStorageID
(
StorageID
storage_id
,
StorageNamespace
where
)
const
StorageID
Context
::
tryResolveStorageID
(
StorageID
storage_id
,
StorageNamespace
where
)
const
...
@@ -2050,9 +2052,13 @@ StorageID Context::tryResolveStorageID(StorageID storage_id, StorageNamespace wh
...
@@ -2050,9 +2052,13 @@ StorageID Context::tryResolveStorageID(StorageID storage_id, StorageNamespace wh
auto
lock
=
getLock
();
auto
lock
=
getLock
();
resolved
=
resolveStorageIDImpl
(
std
::
move
(
storage_id
),
where
,
nullptr
);
resolved
=
resolveStorageIDImpl
(
std
::
move
(
storage_id
),
where
,
nullptr
);
}
}
if
(
auto
table
=
DatabaseCatalog
::
instance
().
tryGetTable
(
resolved
))
if
(
resolved
&&
!
resolved
.
hasUUID
()
&&
resolved
.
database_name
!=
DatabaseCatalog
::
TEMPORARY_DATABASE
)
return
table
->
getStorageID
();
{
return
StorageID
::
createEmpty
();
auto
db
=
DatabaseCatalog
::
instance
().
tryGetDatabase
(
resolved
.
database_name
);
if
(
db
)
resolved
.
uuid
=
db
->
tryGetTableUUID
(
resolved
.
table_name
);
}
return
resolved
;
}
}
StorageID
Context
::
resolveStorageIDImpl
(
StorageID
storage_id
,
StorageNamespace
where
,
std
::
optional
<
Exception
>
*
exception
)
const
StorageID
Context
::
resolveStorageIDImpl
(
StorageID
storage_id
,
StorageNamespace
where
,
std
::
optional
<
Exception
>
*
exception
)
const
...
...
src/Interpreters/DatabaseCatalog.cpp
浏览文件 @
d1024e76
...
@@ -108,7 +108,7 @@ void DatabaseCatalog::loadDatabases()
...
@@ -108,7 +108,7 @@ void DatabaseCatalog::loadDatabases()
{
{
drop_delay_s
=
global_context
->
getConfigRef
().
getInt
(
"database_atomic_delay_before_drop_table_s"
,
60
);
drop_delay_s
=
global_context
->
getConfigRef
().
getInt
(
"database_atomic_delay_before_drop_table_s"
,
60
);
auto
db_for_temporary_and_external_tables
=
std
::
make_shared
<
DatabaseMemory
>
(
TEMPORARY_DATABASE
);
auto
db_for_temporary_and_external_tables
=
std
::
make_shared
<
DatabaseMemory
>
(
TEMPORARY_DATABASE
,
*
global_context
);
attachDatabase
(
TEMPORARY_DATABASE
,
db_for_temporary_and_external_tables
);
attachDatabase
(
TEMPORARY_DATABASE
,
db_for_temporary_and_external_tables
);
loadMarkedAsDroppedTables
();
loadMarkedAsDroppedTables
();
...
@@ -483,6 +483,15 @@ StoragePtr DatabaseCatalog::tryGetTable(const StorageID & table_id) const
...
@@ -483,6 +483,15 @@ StoragePtr DatabaseCatalog::tryGetTable(const StorageID & table_id) const
return
getTableImpl
(
table_id
,
*
global_context
,
nullptr
).
second
;
return
getTableImpl
(
table_id
,
*
global_context
,
nullptr
).
second
;
}
}
DatabaseAndTable
DatabaseCatalog
::
getDatabaseAndTable
(
const
StorageID
&
table_id
)
const
{
std
::
optional
<
Exception
>
exc
;
auto
res
=
getTableImpl
(
table_id
,
*
global_context
,
&
exc
);
if
(
!
res
.
second
)
throw
Exception
(
*
exc
);
return
res
;
}
DatabaseAndTable
DatabaseCatalog
::
tryGetDatabaseAndTable
(
const
StorageID
&
table_id
)
const
DatabaseAndTable
DatabaseCatalog
::
tryGetDatabaseAndTable
(
const
StorageID
&
table_id
)
const
{
{
return
getTableImpl
(
table_id
,
*
global_context
,
nullptr
);
return
getTableImpl
(
table_id
,
*
global_context
,
nullptr
);
...
...
src/Interpreters/DatabaseCatalog.h
浏览文件 @
d1024e76
...
@@ -135,7 +135,7 @@ public:
...
@@ -135,7 +135,7 @@ public:
StoragePtr
getTable
(
const
StorageID
&
table_id
)
const
;
StoragePtr
getTable
(
const
StorageID
&
table_id
)
const
;
StoragePtr
tryGetTable
(
const
StorageID
&
table_id
)
const
;
StoragePtr
tryGetTable
(
const
StorageID
&
table_id
)
const
;
DatabaseAndTable
getDatabaseAndTable
(
const
StorageID
&
table_id
)
const
{
return
getTableImpl
(
table_id
,
*
global_context
);
}
DatabaseAndTable
getDatabaseAndTable
(
const
StorageID
&
table_id
)
const
;
DatabaseAndTable
tryGetDatabaseAndTable
(
const
StorageID
&
table_id
)
const
;
DatabaseAndTable
tryGetDatabaseAndTable
(
const
StorageID
&
table_id
)
const
;
DatabaseAndTable
getTableImpl
(
const
StorageID
&
table_id
,
const
Context
&
local_context
,
std
::
optional
<
Exception
>
*
exception
=
nullptr
)
const
;
DatabaseAndTable
getTableImpl
(
const
StorageID
&
table_id
,
const
Context
&
local_context
,
std
::
optional
<
Exception
>
*
exception
=
nullptr
)
const
;
...
...
src/Interpreters/InterpreterDropQuery.cpp
浏览文件 @
d1024e76
...
@@ -73,7 +73,6 @@ BlockIO InterpreterDropQuery::executeToTable(
...
@@ -73,7 +73,6 @@ BlockIO InterpreterDropQuery::executeToTable(
ErrorCodes
::
UNKNOWN_TABLE
);
ErrorCodes
::
UNKNOWN_TABLE
);
}
}
/// If table was already dropped by anyone, an exception will be thrown
auto
table_id
=
query
.
if_exists
?
context
.
tryResolveStorageID
(
table_id_
,
Context
::
ResolveOrdinary
)
auto
table_id
=
query
.
if_exists
?
context
.
tryResolveStorageID
(
table_id_
,
Context
::
ResolveOrdinary
)
:
context
.
resolveStorageID
(
table_id_
,
Context
::
ResolveOrdinary
);
:
context
.
resolveStorageID
(
table_id_
,
Context
::
ResolveOrdinary
);
if
(
!
table_id
)
if
(
!
table_id
)
...
@@ -81,7 +80,9 @@ BlockIO InterpreterDropQuery::executeToTable(
...
@@ -81,7 +80,9 @@ BlockIO InterpreterDropQuery::executeToTable(
auto
ddl_guard
=
(
!
query
.
no_ddl_lock
?
DatabaseCatalog
::
instance
().
getDDLGuard
(
table_id
.
database_name
,
table_id
.
table_name
)
:
nullptr
);
auto
ddl_guard
=
(
!
query
.
no_ddl_lock
?
DatabaseCatalog
::
instance
().
getDDLGuard
(
table_id
.
database_name
,
table_id
.
table_name
)
:
nullptr
);
auto
[
database
,
table
]
=
DatabaseCatalog
::
instance
().
getDatabaseAndTable
(
table_id
);
/// If table was already dropped by anyone, an exception will be thrown
auto
[
database
,
table
]
=
query
.
if_exists
?
DatabaseCatalog
::
instance
().
tryGetDatabaseAndTable
(
table_id
)
:
DatabaseCatalog
::
instance
().
getDatabaseAndTable
(
table_id
);
if
(
database
&&
table
)
if
(
database
&&
table
)
{
{
...
...
src/Interpreters/tests/expression_analyzer.cpp
浏览文件 @
d1024e76
...
@@ -98,7 +98,7 @@ int main()
...
@@ -98,7 +98,7 @@ int main()
Context
context
=
Context
::
createGlobal
();
Context
context
=
Context
::
createGlobal
();
context
.
makeGlobalContext
();
context
.
makeGlobalContext
();
auto
system_database
=
std
::
make_shared
<
DatabaseMemory
>
(
"system"
);
auto
system_database
=
std
::
make_shared
<
DatabaseMemory
>
(
"system"
,
context
);
DatabaseCatalog
::
instance
().
attachDatabase
(
"system"
,
system_database
);
DatabaseCatalog
::
instance
().
attachDatabase
(
"system"
,
system_database
);
//context.setCurrentDatabase("system");
//context.setCurrentDatabase("system");
system_database
->
attachTable
(
"one"
,
StorageSystemOne
::
create
(
"one"
),
{});
system_database
->
attachTable
(
"one"
,
StorageSystemOne
::
create
(
"one"
),
{});
...
...
tests/queries/0_stateless/00693_max_block_size_system_tables_columns.sql
浏览文件 @
d1024e76
...
@@ -5,7 +5,9 @@ SELECT (SELECT count() FROM system.tables SETTINGS max_block_size = 100) = (SELE
...
@@ -5,7 +5,9 @@ SELECT (SELECT count() FROM system.tables SETTINGS max_block_size = 100) = (SELE
DROP
TEMPORARY
TABLE
IF
EXISTS
t_00693
;
DROP
TEMPORARY
TABLE
IF
EXISTS
t_00693
;
CREATE
TEMPORARY
TABLE
t_00693
(
x
UInt8
);
CREATE
TEMPORARY
TABLE
t_00693
(
x
UInt8
);
SELECT
*
FROM
system
.
tables
WHERE
is_temporary
AND
name
=
't_00693'
;
SELECT
database
,
name
,
engine
,
is_temporary
,
data_paths
,
metadata_path
,
metadata_modification_time
,
dependencies_database
,
dependencies_table
,
create_table_query
,
engine_full
,
partition_key
,
sorting_key
,
primary_key
,
sampling_key
,
storage_policy
,
total_rows
,
total_bytes
FROM
system
.
tables
WHERE
is_temporary
AND
name
=
't_00693'
;
SELECT
avg
(
blockSize
())
<=
10000
FROM
system
.
columns
SETTINGS
max_block_size
=
10
;
SELECT
avg
(
blockSize
())
<=
10000
FROM
system
.
columns
SETTINGS
max_block_size
=
10
;
SELECT
avg
(
blockSize
())
<=
10000
FROM
system
.
columns
LIMIT
10
SETTINGS
max_block_size
=
10
;
SELECT
avg
(
blockSize
())
<=
10000
FROM
system
.
columns
LIMIT
10
SETTINGS
max_block_size
=
10
;
...
...
tests/queries/0_stateless/01004_rename_deadlock.sh
浏览文件 @
d1024e76
...
@@ -55,6 +55,7 @@ timeout $TIMEOUT bash -c thread2 2> /dev/null &
...
@@ -55,6 +55,7 @@ timeout $TIMEOUT bash -c thread2 2> /dev/null &
timeout
$TIMEOUT
bash
-c
thread3 2> /dev/null &
timeout
$TIMEOUT
bash
-c
thread3 2> /dev/null &
wait
wait
sleep
1
$CLICKHOUSE_CLIENT
-q
"DROP TABLE test1"
$CLICKHOUSE_CLIENT
-q
"DROP TABLE test1"
$CLICKHOUSE_CLIENT
-q
"DROP TABLE test2"
$CLICKHOUSE_CLIENT
-q
"DROP TABLE test2"
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录