Merge pull request #18644 from ucasFL/part-log

add query_id column to system.part_log
This commit is contained in:
alexey-milovidov 2020-12-31 15:06:10 +03:00 committed by GitHub
commit 8354a07eb7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 0 deletions

View File

@ -12,6 +12,7 @@
#include <Interpreters/PartLog.h>
#include <Interpreters/Context.h>
#include <Common/CurrentThread.h>
namespace DB
{
@ -32,6 +33,7 @@ Block PartLogElement::createBlock()
return
{
{ColumnString::create(), std::make_shared<DataTypeString>(), "query_id"},
{ColumnInt8::create(), std::move(event_type_datatype), "event_type"},
{ColumnUInt16::create(), std::make_shared<DataTypeDate>(), "event_date"},
{ColumnUInt32::create(), std::make_shared<DataTypeDateTime>(), "event_time"},
@ -63,6 +65,7 @@ void PartLogElement::appendToBlock(MutableColumns & columns) const
{
size_t i = 0;
columns[i++]->insert(query_id);
columns[i++]->insert(event_type);
columns[i++]->insert(DateLUT::instance().toDayNum(event_time));
columns[i++]->insert(event_time);
@ -114,10 +117,15 @@ bool PartLog::addNewParts(Context & current_context, const PartLog::MutableDataP
if (!part_log)
return false;
auto query_id = CurrentThread::getQueryId();
for (const auto & part : parts)
{
PartLogElement elem;
if (query_id.data && query_id.size)
elem.query_id.insert(0, query_id.data, query_id.size);
elem.event_type = PartLogElement::NEW_PART;
elem.event_time = time(nullptr);
elem.duration_ms = elapsed_ns / 1000000;

View File

@ -18,6 +18,8 @@ struct PartLogElement
MOVE_PART = 6,
};
String query_id;
Type event_type = NEW_PART;
time_t event_time = 0;