Corrected some usage of QueueTask that was already broken as QueueTask is defunct.
This commit is contained in:
parent
1da8ef7407
commit
f996703937
8 changed files with 95 additions and 144 deletions
|
|
@ -54,14 +54,11 @@ QueryTab::QueryTab(IPluginContentWidgetContext *context_, QWidget *parent)
|
|||
connect(ui->removeButton, &QPushButton::clicked, m_queryParamListController,
|
||||
&QueryParamListController::on_removeParam);
|
||||
|
||||
context()->QueueTask([this]() { startConnect(); });
|
||||
startConnect();
|
||||
}
|
||||
|
||||
QueryTab::~QueryTab()
|
||||
{
|
||||
// m_dbConnection.blockSignals(true);
|
||||
// m_dbConnection.closeConnection();
|
||||
|
||||
delete ui;
|
||||
}
|
||||
|
||||
|
|
@ -158,7 +155,16 @@ void QueryTab::execute()
|
|||
|
||||
auto cb = [this](Expected<std::shared_ptr<Pgsql::Result>> res, qint64 elapsedms)
|
||||
{
|
||||
context()->QueueTask([this, res, elapsedms]() { query_ready(res, elapsedms); });
|
||||
if (res.valid()) {
|
||||
auto && dbresult = res.get();
|
||||
QMetaObject::invokeMethod(this, "query_ready",
|
||||
Q_ARG(std::shared_ptr<Pgsql::Result>, dbresult),
|
||||
Q_ARG(qint64, elapsedms));
|
||||
}
|
||||
else {
|
||||
/// \todo handle error
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
if (m_queryParamListController->empty())
|
||||
|
|
@ -201,7 +207,8 @@ void QueryTab::explain(bool analyze)
|
|||
explain = ExplainRoot::createFromJson(root);
|
||||
}
|
||||
}
|
||||
context()->QueueTask([this, explain]() { explain_ready(explain); });
|
||||
QMetaObject::invokeMethod(this, "explain_ready",
|
||||
Q_ARG(ExplainRoot::SPtr, explain));
|
||||
}).detach();
|
||||
}
|
||||
}
|
||||
|
|
@ -436,86 +443,80 @@ std::string QueryTab::getCommandUtf8() const
|
|||
|
||||
//}
|
||||
|
||||
void QueryTab::query_ready(Expected<std::shared_ptr<Pgsql::Result>> exp_res, qint64 elapsedms)
|
||||
void QueryTab::query_ready(std::shared_ptr<Pgsql::Result> dbres, qint64 elapsedms)
|
||||
{
|
||||
if (exp_res.valid()) {
|
||||
auto dbres = exp_res.get();
|
||||
if (dbres) {
|
||||
addLog("query_ready with result");
|
||||
auto st = dbres->resultStatus();
|
||||
if (st == PGRES_TUPLES_OK) {
|
||||
//int n_rows = dbres->getRows();
|
||||
//QString rowcount_str = QString("rows: %1").arg(dbres->getRows());
|
||||
if (dbres) {
|
||||
addLog("query_ready with result");
|
||||
auto st = dbres->resultStatus();
|
||||
if (st == PGRES_TUPLES_OK) {
|
||||
//int n_rows = dbres->getRows();
|
||||
//QString rowcount_str = QString("rows: %1").arg(dbres->getRows());
|
||||
|
||||
auto result_model = std::make_shared<QueryResultModel>(nullptr , dbres,
|
||||
m_catalog);
|
||||
TuplesResultWidget *trw = new TuplesResultWidget;
|
||||
trw->setResult(result_model, elapsedms);
|
||||
resultList.push_back(trw);
|
||||
ui->tabWidget->addTab(trw, "Data");
|
||||
if (resultList.size() == 1)
|
||||
ui->tabWidget->setCurrentWidget(trw);
|
||||
auto result_model = std::make_shared<QueryResultModel>(nullptr , dbres,
|
||||
m_catalog);
|
||||
TuplesResultWidget *trw = new TuplesResultWidget;
|
||||
trw->setResult(result_model, elapsedms);
|
||||
resultList.push_back(trw);
|
||||
ui->tabWidget->addTab(trw, "Data");
|
||||
if (resultList.size() == 1)
|
||||
ui->tabWidget->setCurrentWidget(trw);
|
||||
|
||||
}
|
||||
else {
|
||||
if (st == PGRES_COMMAND_OK) {
|
||||
int tuples_affected = dbres->tuplesAffected();
|
||||
QString msg;
|
||||
if (tuples_affected >= 0)
|
||||
msg = tr("Query returned succesfully: %1 rows affected, execution time %2")
|
||||
.arg(QString::number(tuples_affected))
|
||||
.arg(msfloatToHumanReadableString(elapsedms));
|
||||
else
|
||||
msg = tr("Query returned succesfully, execution time %1")
|
||||
.arg(msfloatToHumanReadableString(elapsedms));
|
||||
}
|
||||
else {
|
||||
if (st == PGRES_COMMAND_OK) {
|
||||
int tuples_affected = dbres->tuplesAffected();
|
||||
QString msg;
|
||||
if (tuples_affected >= 0)
|
||||
msg = tr("Query returned succesfully: %1 rows affected, execution time %2")
|
||||
.arg(QString::number(tuples_affected))
|
||||
.arg(msfloatToHumanReadableString(elapsedms));
|
||||
else
|
||||
msg = tr("Query returned succesfully, execution time %1")
|
||||
.arg(msfloatToHumanReadableString(elapsedms));
|
||||
|
||||
ui->messagesEdit->append(msg);
|
||||
ui->messagesEdit->append(msg);
|
||||
|
||||
ui->tabWidget->setCurrentWidget(ui->messageTab);
|
||||
}
|
||||
else {
|
||||
// if (st == PGRES_EMPTY_QUERY) {
|
||||
// statusBar()->showMessage(tr("Empty query."));
|
||||
// }
|
||||
// else if (st == PGRES_COPY_OUT) {
|
||||
// statusBar()->showMessage(tr("COPY OUT."));
|
||||
// }
|
||||
// else if (st == PGRES_COPY_IN) {
|
||||
// statusBar()->showMessage(tr("COPY IN."));
|
||||
// }
|
||||
// else if (st == PGRES_BAD_RESPONSE) {
|
||||
// statusBar()->showMessage(tr("BAD RESPONSE."));
|
||||
// }
|
||||
// else if (st == PGRES_NONFATAL_ERROR) {
|
||||
// statusBar()->showMessage(tr("NON FATAL ERROR."));
|
||||
// }
|
||||
// else if (st == PGRES_FATAL_ERROR) {
|
||||
// statusBar()->showMessage(tr("FATAL ERROR."));
|
||||
// }
|
||||
// else if (st == PGRES_COPY_BOTH) {
|
||||
// statusBar()->showMessage(tr("COPY BOTH shouldn't happen is for replication."));
|
||||
// }
|
||||
// else if (st == PGRES_SINGLE_TUPLE) {
|
||||
// statusBar()->showMessage(tr("SINGLE TUPLE result."));
|
||||
// }
|
||||
// else {
|
||||
// statusBar()->showMessage(tr("No tuples returned, possibly an error..."));
|
||||
// }
|
||||
ui->tabWidget->setCurrentWidget(ui->messageTab);
|
||||
auto details = dbres->diagDetails();
|
||||
markError(details);
|
||||
receiveNotice(details);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
m_stopwatch.stop();
|
||||
addLog("query_ready with NO result");
|
||||
}
|
||||
}
|
||||
else {
|
||||
// we have an error
|
||||
}
|
||||
ui->tabWidget->setCurrentWidget(ui->messageTab);
|
||||
}
|
||||
else {
|
||||
// if (st == PGRES_EMPTY_QUERY) {
|
||||
// statusBar()->showMessage(tr("Empty query."));
|
||||
// }
|
||||
// else if (st == PGRES_COPY_OUT) {
|
||||
// statusBar()->showMessage(tr("COPY OUT."));
|
||||
// }
|
||||
// else if (st == PGRES_COPY_IN) {
|
||||
// statusBar()->showMessage(tr("COPY IN."));
|
||||
// }
|
||||
// else if (st == PGRES_BAD_RESPONSE) {
|
||||
// statusBar()->showMessage(tr("BAD RESPONSE."));
|
||||
// }
|
||||
// else if (st == PGRES_NONFATAL_ERROR) {
|
||||
// statusBar()->showMessage(tr("NON FATAL ERROR."));
|
||||
// }
|
||||
// else if (st == PGRES_FATAL_ERROR) {
|
||||
// statusBar()->showMessage(tr("FATAL ERROR."));
|
||||
// }
|
||||
// else if (st == PGRES_COPY_BOTH) {
|
||||
// statusBar()->showMessage(tr("COPY BOTH shouldn't happen is for replication."));
|
||||
// }
|
||||
// else if (st == PGRES_SINGLE_TUPLE) {
|
||||
// statusBar()->showMessage(tr("SINGLE TUPLE result."));
|
||||
// }
|
||||
// else {
|
||||
// statusBar()->showMessage(tr("No tuples returned, possibly an error..."));
|
||||
// }
|
||||
ui->tabWidget->setCurrentWidget(ui->messageTab);
|
||||
auto details = dbres->diagDetails();
|
||||
markError(details);
|
||||
receiveNotice(details);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
m_stopwatch.stop();
|
||||
addLog("query_ready with NO result");
|
||||
}
|
||||
}
|
||||
|
||||
void QueryTab::markError(const Pgsql::ErrorDetails &details)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue