aboutsummaryrefslogtreecommitdiffstats
path: root/Plugins/DbAndroid/dbandroidinstance.cpp
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2021-12-17 07:06:30 -0500
committerLibravatarUnit 193 <unit193@unit193.net>2021-12-17 07:06:30 -0500
commit1fdc150116cad39aae5c5da407c3312b47a59e3a (patch)
tree123c79a4d7ad2d45781ba03ce939f7539fb428d8 /Plugins/DbAndroid/dbandroidinstance.cpp
parentfeda8a7db8d1d7c5439aa8f8feef7cc0dd2b59a0 (diff)
New upstream version 3.3.3+dfsg1.upstream/3.3.3+dfsg1
Diffstat (limited to 'Plugins/DbAndroid/dbandroidinstance.cpp')
-rw-r--r--Plugins/DbAndroid/dbandroidinstance.cpp32
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));