Merge pull request #42345 from CurtizJ/better-async-insert-logging

Better logging for asynchronous inserts
This commit is contained in:
Anton Popov 2022-10-17 13:50:38 +02:00 committed by GitHub
commit 26e8d0a93d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -582,10 +582,28 @@ static std::tuple<ASTPtr, BlockIO> executeQueryImpl(
std::shared_ptr<const EnabledQuota> quota;
std::unique_ptr<IInterpreter> interpreter;
bool async_insert = false;
auto * queue = context->getAsynchronousInsertQueue();
const bool async_insert = queue
&& insert_query && !insert_query->select
&& insert_query->hasInlinedData() && settings.async_insert;
if (insert_query && settings.async_insert)
{
String reason;
if (!queue)
reason = "asynchronous insert queue is not configured";
else if (insert_query->select)
reason = "insert query has select";
else if (!insert_query->hasInlinedData())
reason = "insert query doesn't have inlined data";
else
async_insert = true;
if (!async_insert)
{
LOG_DEBUG(&Poco::Logger::get("executeQuery"),
"Setting async_insert=1, but INSERT query will be executed synchronously (reason: {})", reason);
}
}
if (async_insert)
{