mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-22 01:30:51 +00:00
dbms: removed few cyclic SharedPtr references [#CONV-2944].
This commit is contained in:
parent
da4d2f91c9
commit
2efd1bc6b0
@ -239,7 +239,7 @@ private:
|
||||
|
||||
RPN rpn;
|
||||
|
||||
Context context;
|
||||
const Context & context;
|
||||
SortDescription sort_descr;
|
||||
ColumnIndices pk_columns;
|
||||
};
|
||||
|
@ -26,7 +26,7 @@ public:
|
||||
const std::string & destination_database_, /// БД для создаваемых таблиц типа Chunks.
|
||||
const std::string & destination_name_prefix_, /// Префикс имен создаваемых таблиц типа Chunks.
|
||||
size_t chunks_to_merge_, /// Сколько чанков сливать в одну группу.
|
||||
Context & context_); /// Известные таблицы.
|
||||
Context & context_); /// Известные таблицы.
|
||||
|
||||
std::string getName() const { return "ChunkMerger"; }
|
||||
std::string getTableName() const { return name; }
|
||||
@ -56,7 +56,7 @@ private:
|
||||
String destination_database;
|
||||
std::string destination_name_prefix;
|
||||
size_t chunks_to_merge;
|
||||
Context context;
|
||||
Context & context;
|
||||
|
||||
bool thread_should_quit;
|
||||
boost::thread merge_thread;
|
||||
|
@ -12,7 +12,7 @@ namespace DB
|
||||
class StorageChunkRef : public IStorage
|
||||
{
|
||||
public:
|
||||
static StoragePtr create(const std::string & name_, NamesAndTypesListPtr columns_, Context & context_, const std::string & source_database_name_, const std::string & source_table_name_, bool attach);
|
||||
static StoragePtr create(const std::string & name_, NamesAndTypesListPtr columns_, const Context & context_, const std::string & source_database_name_, const std::string & source_table_name_, bool attach);
|
||||
|
||||
std::string getName() const { return "ChunkRef"; }
|
||||
std::string getTableName() const { return name; }
|
||||
@ -35,9 +35,9 @@ public:
|
||||
private:
|
||||
String name;
|
||||
NamesAndTypesListPtr columns;
|
||||
Context context;
|
||||
const Context & context;
|
||||
|
||||
StorageChunkRef(const std::string & name_, NamesAndTypesListPtr columns_, Context & context_, const std::string & source_database_name_, const std::string & source_table_name_, bool attach);
|
||||
StorageChunkRef(const std::string & name_, NamesAndTypesListPtr columns_, const Context & context_, const std::string & source_database_name_, const std::string & source_table_name_, bool attach);
|
||||
|
||||
StorageChunks * getSource();
|
||||
};
|
||||
|
@ -21,7 +21,7 @@ public:
|
||||
const std::string & name_,
|
||||
const std::string & database_name_,
|
||||
NamesAndTypesListPtr columns_,
|
||||
Context & context,
|
||||
Context & context_,
|
||||
bool attach);
|
||||
|
||||
void addReference();
|
||||
@ -64,7 +64,7 @@ private:
|
||||
ChunkIndices chunk_indices;
|
||||
|
||||
CounterInFile reference_counter;
|
||||
Context context;
|
||||
Context & context;
|
||||
|
||||
Logger * log;
|
||||
|
||||
|
@ -20,7 +20,7 @@ public:
|
||||
NamesAndTypesListPtr columns_, /// Список столбцов.
|
||||
const String & source_database_, /// В какой БД искать таблицы-источники.
|
||||
const String & table_name_regexp_, /// Регексп имён таблиц-источников.
|
||||
Context & context_); /// Известные таблицы.
|
||||
const Context & context_); /// Известные таблицы.
|
||||
|
||||
std::string getName() const { return "Merge"; }
|
||||
std::string getTableName() const { return name; }
|
||||
@ -44,14 +44,14 @@ private:
|
||||
NamesAndTypesListPtr columns;
|
||||
String source_database;
|
||||
OptimizedRegularExpression table_name_regexp;
|
||||
Context context;
|
||||
const Context & context;
|
||||
|
||||
StorageMerge(
|
||||
const std::string & name_,
|
||||
NamesAndTypesListPtr columns_,
|
||||
const String & source_database_,
|
||||
const String & table_name_regexp_,
|
||||
Context & context_);
|
||||
const Context & context_);
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -111,7 +111,7 @@ public:
|
||||
* index_granularity - на сколько строчек пишется одно значение индекса.
|
||||
*/
|
||||
static StoragePtr create(const String & path_, const String & name_, NamesAndTypesListPtr columns_,
|
||||
Context & context_,
|
||||
const Context & context_,
|
||||
ASTPtr & primary_expr_ast_,
|
||||
const String & date_column_name_,
|
||||
const ASTPtr & sampling_expression_, /// NULL, если семплирование не поддерживается.
|
||||
@ -162,7 +162,7 @@ private:
|
||||
String full_path;
|
||||
NamesAndTypesListPtr columns;
|
||||
|
||||
Context context;
|
||||
const Context & context;
|
||||
ASTPtr primary_expr_ast;
|
||||
String date_column_name;
|
||||
ASTPtr sampling_expression;
|
||||
@ -288,7 +288,7 @@ private:
|
||||
Poco::FastMutex data_parts_mutex;
|
||||
|
||||
StorageMergeTree(const String & path_, const String & name_, NamesAndTypesListPtr columns_,
|
||||
Context & context_,
|
||||
const Context & context_,
|
||||
ASTPtr & primary_expr_ast_,
|
||||
const String & date_column_name_,
|
||||
const ASTPtr & sampling_expression_, /// NULL, если семплирование не поддерживается.
|
||||
|
@ -385,11 +385,13 @@ void StorageChunkMerger::mergeChunks(const Storages & chunks)
|
||||
}
|
||||
|
||||
QueryProcessingStage::Enum processed_stage;
|
||||
|
||||
Settings settings = context.getSettings();
|
||||
|
||||
BlockInputStreams input_streams = src_storage->read(
|
||||
src_column_names,
|
||||
select_query_ptr,
|
||||
context.getSettingsRef(),
|
||||
settings,
|
||||
processed_stage);
|
||||
|
||||
BlockInputStreamPtr input = new AddingDefaultBlockInputStream(new ConcatBlockInputStream(input_streams), required_columns);
|
||||
@ -458,10 +460,10 @@ void StorageChunkMerger::mergeChunks(const Storages & chunks)
|
||||
}
|
||||
}
|
||||
}
|
||||
while(false);
|
||||
|
||||
while (false);
|
||||
|
||||
new_storage->removeReference();
|
||||
|
||||
|
||||
LOG_TRACE(log, "Merged chunks.");
|
||||
}
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
namespace DB
|
||||
{
|
||||
|
||||
StoragePtr StorageChunkRef::create(const std::string & name_, NamesAndTypesListPtr columns_, Context & context_, const std::string & source_database_name_, const std::string & source_table_name_, bool attach)
|
||||
StoragePtr StorageChunkRef::create(const std::string & name_, NamesAndTypesListPtr columns_, const Context & context_, const std::string & source_database_name_, const std::string & source_table_name_, bool attach)
|
||||
{
|
||||
return (new StorageChunkRef(name_, columns_, context_, source_database_name_, source_table_name_, attach))->thisPtr();
|
||||
}
|
||||
@ -31,7 +31,7 @@ void StorageChunkRef::dropImpl()
|
||||
chunks->removeReference();
|
||||
}
|
||||
|
||||
StorageChunkRef::StorageChunkRef(const std::string & name_, NamesAndTypesListPtr columns_, Context & context_, const std::string & source_database_name_, const std::string & source_table_name_, bool attach)
|
||||
StorageChunkRef::StorageChunkRef(const std::string & name_, NamesAndTypesListPtr columns_, const Context & context_, const std::string & source_database_name_, const std::string & source_table_name_, bool attach)
|
||||
: source_database_name(source_database_name_), source_table_name(source_table_name_), name(name_), columns(columns_), context(context_)
|
||||
{
|
||||
if (!attach)
|
||||
|
@ -9,7 +9,13 @@
|
||||
namespace DB
|
||||
{
|
||||
|
||||
StoragePtr StorageChunks::create(const std::string & path_, const std::string & name_, const std::string & database_name_, NamesAndTypesListPtr columns_, Context & context_, bool attach)
|
||||
StoragePtr StorageChunks::create(
|
||||
const std::string & path_,
|
||||
const std::string & name_,
|
||||
const std::string & database_name_,
|
||||
NamesAndTypesListPtr columns_,
|
||||
Context & context_,
|
||||
bool attach)
|
||||
{
|
||||
return (new StorageChunks(path_, name_, database_name_, columns_, context_, attach))->thisPtr();
|
||||
}
|
||||
@ -75,8 +81,20 @@ BlockOutputStreamPtr StorageChunks::writeToNewChunk(
|
||||
return StorageLog::write(NULL);
|
||||
}
|
||||
|
||||
StorageChunks::StorageChunks(const std::string & path_, const std::string & name_, const std::string & database_name_, NamesAndTypesListPtr columns_, Context & context_, bool attach)
|
||||
: StorageLog(path_, name_, columns_), database_name(database_name_), index_loaded(false), reference_counter(path_ + escapeForFileName(name_) + "/refcount.txt"), context(context_), log(&Logger::get("StorageChunks"))
|
||||
StorageChunks::StorageChunks(
|
||||
const std::string & path_,
|
||||
const std::string & name_,
|
||||
const std::string & database_name_,
|
||||
NamesAndTypesListPtr columns_,
|
||||
Context & context_,
|
||||
bool attach)
|
||||
:
|
||||
StorageLog(path_, name_, columns_),
|
||||
database_name(database_name_),
|
||||
index_loaded(false),
|
||||
reference_counter(path_ + escapeForFileName(name_) + "/refcount.txt"),
|
||||
context(context_),
|
||||
log(&Logger::get("StorageChunks"))
|
||||
{
|
||||
if (!attach)
|
||||
reference_counter.add(1, true);
|
||||
|
@ -10,7 +10,7 @@ StorageMerge::StorageMerge(
|
||||
NamesAndTypesListPtr columns_,
|
||||
const String & source_database_,
|
||||
const String & table_name_regexp_,
|
||||
Context & context_)
|
||||
const Context & context_)
|
||||
: name(name_), columns(columns_), source_database(source_database_), table_name_regexp(table_name_regexp_), context(context_)
|
||||
{
|
||||
}
|
||||
@ -20,7 +20,7 @@ StoragePtr StorageMerge::create(
|
||||
NamesAndTypesListPtr columns_,
|
||||
const String & source_database_,
|
||||
const String & table_name_regexp_,
|
||||
Context & context_)
|
||||
const Context & context_)
|
||||
{
|
||||
return (new StorageMerge(name_, columns_, source_database_, table_name_regexp_, context_))->thisPtr();
|
||||
}
|
||||
|
@ -52,7 +52,7 @@ namespace DB
|
||||
|
||||
StorageMergeTree::StorageMergeTree(
|
||||
const String & path_, const String & name_, NamesAndTypesListPtr columns_,
|
||||
Context & context_,
|
||||
const Context & context_,
|
||||
ASTPtr & primary_expr_ast_,
|
||||
const String & date_column_name_, const ASTPtr & sampling_expression_,
|
||||
size_t index_granularity_,
|
||||
@ -82,8 +82,9 @@ StorageMergeTree::StorageMergeTree(
|
||||
sort_descr.push_back(SortColumnDescription(name, 1));
|
||||
}
|
||||
|
||||
context.setColumns(*columns);
|
||||
primary_expr = new Expression(primary_expr_ast, context);
|
||||
Context tmp_context = context;
|
||||
tmp_context.setColumns(*columns);
|
||||
primary_expr = new Expression(primary_expr_ast, tmp_context);
|
||||
primary_key_sample = primary_expr->getSampleBlock();
|
||||
|
||||
merge_threads = new boost::threadpool::pool(settings.merging_threads);
|
||||
@ -93,7 +94,7 @@ StorageMergeTree::StorageMergeTree(
|
||||
|
||||
StoragePtr StorageMergeTree::create(
|
||||
const String & path_, const String & name_, NamesAndTypesListPtr columns_,
|
||||
Context & context_,
|
||||
const Context & context_,
|
||||
ASTPtr & primary_expr_ast_,
|
||||
const String & date_column_name_, const ASTPtr & sampling_expression_,
|
||||
size_t index_granularity_,
|
||||
|
Loading…
Reference in New Issue
Block a user