diff options
| author | 2021-12-17 07:07:47 -0500 | |
|---|---|---|
| committer | 2021-12-17 07:07:47 -0500 | |
| commit | 558b1e35fd0777ac97763c1b28056ac984e583e7 (patch) | |
| tree | 1eb2557119a117ea76535c89cd14a49e510b96bf /Plugins/DbAndroid/dbandroidinstance.cpp | |
| parent | c22eb635c11fd45f9c30f911d70e1d79111a49ce (diff) | |
| parent | 1fdc150116cad39aae5c5da407c3312b47a59e3a (diff) | |
Update upstream source from tag 'upstream/3.3.3+dfsg1'
Update to upstream version '3.3.3+dfsg1'
with Debian dir 9a301fff4922aed2fec0c04c7d011947168c42f1
Diffstat (limited to 'Plugins/DbAndroid/dbandroidinstance.cpp')
| -rw-r--r-- | Plugins/DbAndroid/dbandroidinstance.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Plugins/DbAndroid/dbandroidinstance.cpp b/Plugins/DbAndroid/dbandroidinstance.cpp index 900b929..7dce61c 100644 --- a/Plugins/DbAndroid/dbandroidinstance.cpp +++ b/Plugins/DbAndroid/dbandroidinstance.cpp @@ -10,6 +10,7 @@ #include "schemaresolver.h" #include "services/notifymanager.h" #include "db/dbsqlite3.h" +#include "parser/parser.h" #include <QJsonObject> #include <QJsonArray> #include <QJsonDocument> @@ -26,6 +27,37 @@ DbAndroidInstance::~DbAndroidInstance() closeInternal(); } +QList<AliasedColumn> DbAndroidInstance::columnsForQuery(const QString& query) +{ + Parser parser; + bool res = parser.parse(query); + if (!res) + { + qWarning() << "Could not parse query for providing columnsForQuery from DbAndroid:" << query; + return QList<AliasedColumn>(); + } + + if (!isDataReturningQuery(parser.getQueries().last()->queryType)) + return QList<AliasedColumn>(); + + SqlQueryPtr results = exec(query); + if (results->isError()) + { + qWarning() << "Could not execute query for providing columnsForQuery from DbAndroid:" << query + << ". The error was:" << results->getErrorText(); + return QList<AliasedColumn>(); + } + + QList<AliasedColumn> columns; + AliasedColumn column; + for (const QString& colName : results->getColumnNames()) + { + column.setAlias(colName); + columns << column; + } + return columns; +} + SqlQueryPtr DbAndroidInstance::prepare(const QString& query) { return SqlQueryPtr(new SqlQueryAndroid(this, connection, query)); |
