mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-24 10:40:49 +00:00
Merge remote-tracking branch 'upstream/master' into fix25
This commit is contained in:
commit
0fa42780cd
@ -45,6 +45,10 @@
|
||||
M(RWLockWaitingWriters, "Number of threads waiting for write on a table RWLock.") \
|
||||
M(RWLockActiveReaders, "Number of threads holding read lock in a table RWLock.") \
|
||||
M(RWLockActiveWriters, "Number of threads holding write lock in a table RWLock.") \
|
||||
M(GlobalThread, "Number of threads in global thread pool.") \
|
||||
M(GlobalThreadActive, "Number of threads in global thread pool running a task.") \
|
||||
M(LocalThread, "Number of threads in local thread pools. Should be similar to GlobalThreadActive.") \
|
||||
M(LocalThreadActive, "Number of threads in local thread pools running a task.") \
|
||||
|
||||
|
||||
namespace CurrentMetrics
|
||||
|
@ -13,6 +13,14 @@ namespace DB
|
||||
}
|
||||
}
|
||||
|
||||
namespace CurrentMetrics
|
||||
{
|
||||
extern const Metric GlobalThread;
|
||||
extern const Metric GlobalThreadActive;
|
||||
extern const Metric LocalThread;
|
||||
extern const Metric LocalThreadActive;
|
||||
}
|
||||
|
||||
|
||||
template <typename Thread>
|
||||
ThreadPoolImpl<Thread>::ThreadPoolImpl(size_t max_threads)
|
||||
@ -148,6 +156,9 @@ size_t ThreadPoolImpl<Thread>::active() const
|
||||
template <typename Thread>
|
||||
void ThreadPoolImpl<Thread>::worker(typename std::list<Thread>::iterator thread_it)
|
||||
{
|
||||
CurrentMetrics::Increment metric_all_threads(
|
||||
std::is_same_v<Thread, std::thread> ? CurrentMetrics::GlobalThread : CurrentMetrics::LocalThread);
|
||||
|
||||
while (true)
|
||||
{
|
||||
Job job;
|
||||
@ -174,6 +185,9 @@ void ThreadPoolImpl<Thread>::worker(typename std::list<Thread>::iterator thread_
|
||||
{
|
||||
try
|
||||
{
|
||||
CurrentMetrics::Increment metric_active_threads(
|
||||
std::is_same_v<Thread, std::thread> ? CurrentMetrics::GlobalThreadActive : CurrentMetrics::LocalThreadActive);
|
||||
|
||||
job();
|
||||
}
|
||||
catch (...)
|
||||
|
@ -22,11 +22,11 @@ Block PartLogElement::createBlock()
|
||||
auto event_type_datatype = std::make_shared<DataTypeEnum8>(
|
||||
DataTypeEnum8::Values
|
||||
{
|
||||
{"NEW_PART", static_cast<Int8>(NEW_PART)},
|
||||
{"MERGE_PARTS", static_cast<Int8>(MERGE_PARTS)},
|
||||
{"DOWNLOAD_PART", static_cast<Int8>(DOWNLOAD_PART)},
|
||||
{"REMOVE_PART", static_cast<Int8>(REMOVE_PART)},
|
||||
{"MUTATE_PART", static_cast<Int8>(MUTATE_PART)},
|
||||
{"NewPart", static_cast<Int8>(NEW_PART)},
|
||||
{"MergeParts", static_cast<Int8>(MERGE_PARTS)},
|
||||
{"DownloadPart", static_cast<Int8>(DOWNLOAD_PART)},
|
||||
{"RemovePart", static_cast<Int8>(REMOVE_PART)},
|
||||
{"MutatePart", static_cast<Int8>(MUTATE_PART)},
|
||||
});
|
||||
|
||||
return
|
||||
|
@ -11,6 +11,7 @@
|
||||
#include <DataTypes/DataTypeString.h>
|
||||
#include <DataTypes/DataTypeArray.h>
|
||||
#include <DataTypes/DataTypeFactory.h>
|
||||
#include <DataTypes/DataTypeEnum.h>
|
||||
#include <Interpreters/QueryLog.h>
|
||||
#include <Interpreters/ProfileEventsExt.h>
|
||||
#include <Poco/Net/IPAddress.h>
|
||||
@ -20,11 +21,22 @@
|
||||
namespace DB
|
||||
{
|
||||
|
||||
template <> struct NearestFieldTypeImpl<QueryLogElement::Type> { using Type = UInt64; };
|
||||
|
||||
Block QueryLogElement::createBlock()
|
||||
{
|
||||
auto query_status_datatype = std::make_shared<DataTypeEnum8>(
|
||||
DataTypeEnum8::Values
|
||||
{
|
||||
{"QueryStart", static_cast<Int8>(QUERY_START)},
|
||||
{"QueryFinish", static_cast<Int8>(QUERY_FINISH)},
|
||||
{"ExceptionBeforeStart", static_cast<Int8>(EXCEPTION_BEFORE_START)},
|
||||
{"ExceptionWhileProcessing", static_cast<Int8>(EXCEPTION_WHILE_PROCESSING)}
|
||||
});
|
||||
|
||||
return
|
||||
{
|
||||
{std::make_shared<DataTypeUInt8>(), "type"},
|
||||
{std::move(query_status_datatype), "type"},
|
||||
{std::make_shared<DataTypeDate>(), "event_date"},
|
||||
{std::make_shared<DataTypeDateTime>(), "event_time"},
|
||||
{std::make_shared<DataTypeDateTime>(), "query_start_time"},
|
||||
@ -80,7 +92,7 @@ void QueryLogElement::appendToBlock(Block & block) const
|
||||
|
||||
size_t i = 0;
|
||||
|
||||
columns[i++]->insert(UInt64(type));
|
||||
columns[i++]->insert(type);
|
||||
columns[i++]->insert(DateLUT::instance().toDayNum(event_time));
|
||||
columns[i++]->insert(event_time);
|
||||
columns[i++]->insert(query_start_time);
|
||||
|
@ -173,7 +173,7 @@ Empty unquoted input values are replaced with default values for the respective
|
||||
[input_format_defaults_for_omitted_fields](../operations/settings/settings.md#session_settings-input_format_defaults_for_omitted_fields)
|
||||
is enabled.
|
||||
|
||||
`NULL` is formatted as `\N` or `NULL` or an empty unquoted string (see settings [input_format_csv_unquoted_null_literal_as_null](../operations/settings/settings.md#settings-input_format_csv_unquoted_null_literal_as_null) and [input_format_defaults_for_omitted_fields](../operations/settings/settings.md#settings-input_format_defaults_for_omitted_fields)).
|
||||
`NULL` is formatted as `\N` or `NULL` or an empty unquoted string (see settings [input_format_csv_unquoted_null_literal_as_null](../operations/settings/settings.md#settings-input_format_csv_unquoted_null_literal_as_null) and [input_format_defaults_for_omitted_fields](../operations/settings/settings.md#session_settings-input_format_defaults_for_omitted_fields)).
|
||||
|
||||
The CSV format supports the output of totals and extremes the same way as `TabSeparated`.
|
||||
|
||||
|
@ -21,6 +21,7 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
|
||||
[PARTITION BY expr]
|
||||
[ORDER BY expr]
|
||||
[SAMPLE BY expr]
|
||||
[TTL expr]
|
||||
[SETTINGS name=value, ...]
|
||||
```
|
||||
|
||||
|
@ -165,7 +165,7 @@ clickhouse-client --format_csv_delimiter="|" --query="INSERT INTO test.csv FORMA
|
||||
|
||||
При парсинге, все значения могут парситься как в кавычках, так и без кавычек. Поддерживаются как двойные, так и одинарные кавычки. Строки также могут быть без кавычек. В этом случае они парсятся до символа-разделителя или перевода строки (CR или LF). В нарушение RFC, в случае парсинга строк не в кавычках, начальные и конечные пробелы и табы игнорируются. В качестве перевода строки, поддерживаются как Unix (LF), так и Windows (CR LF) и Mac OS Classic (LF CR) варианты.
|
||||
|
||||
`NULL` форматируется в виде `\N` или `NULL` или пустой неэкранированной строки (см. настройки [input_format_csv_unquoted_null_literal_as_null](../operations/settings/settings.md#settings-input_format_csv_unquoted_null_literal_as_null) и [input_format_defaults_for_omitted_fields](../operations/settings/settings.md#settings-input_format_defaults_for_omitted_fields)).
|
||||
`NULL` форматируется в виде `\N` или `NULL` или пустой неэкранированной строки (см. настройки [input_format_csv_unquoted_null_literal_as_null](../operations/settings/settings.md#settings-input_format_csv_unquoted_null_literal_as_null) и [input_format_defaults_for_omitted_fields](../operations/settings/settings.md#session_settings-input_format_defaults_for_omitted_fields)).
|
||||
|
||||
Если установлена настройка [input_format_defaults_for_omitted_fields = 1](../operations/settings/settings.md#session_settings-input_format_defaults_for_omitted_fields) и тип столбца не `Nullable(T)`, то пустые значения без кавычек заменяются значениями по умолчанию для типа данных столбца.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user