diff options
author | vitalyisaev <vitalyisaev@ydb.tech> | 2023-11-14 09:58:56 +0300 |
---|---|---|
committer | vitalyisaev <vitalyisaev@ydb.tech> | 2023-11-14 10:20:20 +0300 |
commit | c2b2dfd9827a400a8495e172a56343462e3ceb82 (patch) | |
tree | cd4e4f597d01bede4c82dffeb2d780d0a9046bd0 /contrib/clickhouse/src/Interpreters/TraceLog.cpp | |
parent | d4ae8f119e67808cb0cf776ba6e0cf95296f2df7 (diff) | |
download | ydb-c2b2dfd9827a400a8495e172a56343462e3ceb82.tar.gz |
YQ Connector: move tests from yql to ydb (OSS)
Перенос папки с тестами на Коннектор из папки yql в папку ydb (синхронизируется с github).
Diffstat (limited to 'contrib/clickhouse/src/Interpreters/TraceLog.cpp')
-rw-r--r-- | contrib/clickhouse/src/Interpreters/TraceLog.cpp | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/contrib/clickhouse/src/Interpreters/TraceLog.cpp b/contrib/clickhouse/src/Interpreters/TraceLog.cpp new file mode 100644 index 0000000000..cd5f965a67 --- /dev/null +++ b/contrib/clickhouse/src/Interpreters/TraceLog.cpp @@ -0,0 +1,71 @@ +#include <Interpreters/TraceLog.h> +#include <DataTypes/DataTypeArray.h> +#include <DataTypes/DataTypeString.h> +#include <DataTypes/DataTypesNumber.h> +#include <DataTypes/DataTypeDate.h> +#include <DataTypes/DataTypeDateTime.h> +#include <DataTypes/DataTypeDateTime64.h> +#include <DataTypes/DataTypeLowCardinality.h> +#include <Common/ClickHouseRevision.h> + + +namespace DB +{ + +using TraceDataType = TraceLogElement::TraceDataType; + +const TraceDataType::Values TraceLogElement::trace_values = +{ + {"Real", static_cast<UInt8>(TraceType::Real)}, + {"CPU", static_cast<UInt8>(TraceType::CPU)}, + {"Memory", static_cast<UInt8>(TraceType::Memory)}, + {"MemorySample", static_cast<UInt8>(TraceType::MemorySample)}, + {"MemoryPeak", static_cast<UInt8>(TraceType::MemoryPeak)}, + {"ProfileEvent", static_cast<UInt8>(TraceType::ProfileEvent)}, +}; + +NamesAndTypesList TraceLogElement::getNamesAndTypes() +{ + return + { + {"event_date", std::make_shared<DataTypeDate>()}, + {"event_time", std::make_shared<DataTypeDateTime>()}, + {"event_time_microseconds", std::make_shared<DataTypeDateTime64>(6)}, + {"timestamp_ns", std::make_shared<DataTypeUInt64>()}, + {"revision", std::make_shared<DataTypeUInt32>()}, + {"trace_type", std::make_shared<TraceDataType>(trace_values)}, + {"thread_id", std::make_shared<DataTypeUInt64>()}, + {"query_id", std::make_shared<DataTypeString>()}, + {"trace", std::make_shared<DataTypeArray>(std::make_shared<DataTypeUInt64>())}, + {"size", std::make_shared<DataTypeInt64>()}, + {"ptr", std::make_shared<DataTypeUInt64>()}, + {"event", std::make_shared<DataTypeLowCardinality>(std::make_shared<DataTypeString>())}, + {"increment", std::make_shared<DataTypeInt64>()}, + }; +} + +void TraceLogElement::appendToBlock(MutableColumns & columns) const +{ + size_t i = 0; + + columns[i++]->insert(DateLUT::instance().toDayNum(event_time).toUnderType()); + columns[i++]->insert(event_time); + columns[i++]->insert(event_time_microseconds); + columns[i++]->insert(timestamp_ns); + columns[i++]->insert(ClickHouseRevision::getVersionRevision()); + columns[i++]->insert(static_cast<UInt8>(trace_type)); + columns[i++]->insert(thread_id); + columns[i++]->insertData(query_id.data(), query_id.size()); + columns[i++]->insert(trace); + columns[i++]->insert(size); + columns[i++]->insert(ptr); + + String event_name; + if (event != ProfileEvents::end()) + event_name = ProfileEvents::getName(event); + + columns[i++]->insert(event_name); + columns[i++]->insert(increment); +} + +} |