Explain works with parameters to now.

Also de deduplicated the callback lambda in the normal query execution.
This commit is contained in:
eelke 2017-12-12 20:15:07 +01:00
parent e9d72d391d
commit 397138eef1

View file

@ -160,19 +160,15 @@ void QueryTab::execute()
std::string cmd = getCommandUtf8(); std::string cmd = getCommandUtf8();
m_stopwatch.start(); m_stopwatch.start();
auto cb = [this](Expected<std::shared_ptr<Pgsql::Result>> res, qint64 elapsedms)
{
m_win->QueueTask([this, res, elapsedms]() { query_ready(res, elapsedms); });
};
if (m_queryParamListController->empty()) if (m_queryParamListController->empty())
m_dbConnection.send(cmd, m_dbConnection.send(cmd, cb);
[this](Expected<std::shared_ptr<Pgsql::Result>> res, qint64 elapsedms)
{
m_win->QueueTask([this, res, elapsedms]() { query_ready(res, elapsedms); });
});
else else
m_dbConnection.send(cmd, m_dbConnection.send(cmd, m_queryParamListController->params(), cb);
m_queryParamListController->params(),
[this](Expected<std::shared_ptr<Pgsql::Result>> res, qint64 elapsedms)
{
m_win->QueueTask([this, res, elapsedms]() { query_ready(res, elapsedms); });
});
} }
} }
@ -190,8 +186,8 @@ void QueryTab::explain(bool analyze)
} }
m_stopwatch.start(); m_stopwatch.start();
std::string cmd = "EXPLAIN (" + analyze_str + "VERBOSE, FORMAT JSON) " + getCommandUtf8(); std::string cmd = "EXPLAIN (" + analyze_str + "VERBOSE, FORMAT JSON) " + getCommandUtf8();
m_dbConnection.send(cmd,
[this](Expected<std::shared_ptr<Pgsql::Result>> exp_res, qint64 ) auto cb = [this](Expected<std::shared_ptr<Pgsql::Result>> exp_res, qint64 )
{ {
if (exp_res.valid()) { if (exp_res.valid()) {
// Process explain data seperately // Process explain data seperately
@ -213,7 +209,12 @@ void QueryTab::explain(bool analyze)
}).detach(); }).detach();
} }
} }
}); };
if (m_queryParamListController->empty())
m_dbConnection.send(cmd, cb);
else
m_dbConnection.send(cmd, m_queryParamListController->params(), cb);
} }
void QueryTab::cancel() void QueryTab::cancel()