From 1fdc150116cad39aae5c5da407c3312b47a59e3a Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Fri, 17 Dec 2021 07:06:30 -0500 Subject: New upstream version 3.3.3+dfsg1. --- Plugins/DbAndroid/dbandroidinstance.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'Plugins/DbAndroid/dbandroidinstance.cpp') 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 #include #include @@ -26,6 +27,37 @@ DbAndroidInstance::~DbAndroidInstance() closeInternal(); } +QList 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(); + } + + if (!isDataReturningQuery(parser.getQueries().last()->queryType)) + return QList(); + + 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(); + } + + QList 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)); -- cgit v1.2.3