aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/coreSQLiteStudio/selectresolver.h
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/selectresolver.h')
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/selectresolver.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/SQLiteStudio3/coreSQLiteStudio/selectresolver.h b/SQLiteStudio3/coreSQLiteStudio/selectresolver.h
index 7640fc6..92924ea 100644
--- a/SQLiteStudio3/coreSQLiteStudio/selectresolver.h
+++ b/SQLiteStudio3/coreSQLiteStudio/selectresolver.h
@@ -5,6 +5,7 @@
#include "common/bistrhash.h"
#include "dialect.h"
#include "expectedtoken.h"
+#include "parser/ast/sqlitewith.h"
#include <QString>
#include <QHash>
#include <QStringList>
@@ -106,7 +107,6 @@ class API_EXPORT SelectResolver
QString alias;
QString displayName;
bool aliasDefinedInSubQuery = false;
- int flags = 0;
SqliteSelect::Core::ResultColumn* originalColumn = nullptr;
int operator==(const Column& other);
@@ -204,6 +204,7 @@ class API_EXPORT SelectResolver
QList<Column> resolveJoinSource(SqliteSelect::Core::JoinSource* joinSrc);
QList<Column> resolveSingleSource(SqliteSelect::Core::SingleSource* joinSrc);
+ QList<Column> resolveTableFunctionColumns(SqliteSelect::Core::SingleSource* joinSrc);
QList<Column> resolveSingleSourceSubSelect(SqliteSelect::Core::SingleSource* joinSrc);
QList<Column> resolveOtherSource(SqliteSelect::Core::JoinSourceOther *otherSrc);
QList<Column> resolveSubSelect(SqliteSelect* select);
@@ -216,16 +217,19 @@ class API_EXPORT SelectResolver
void markDistinctColumns();
void markCompoundColumns();
- void markCteColumns();
+ void markCteColumns(QList<Column>* columnList = nullptr);
void markGroupedColumns();
void fixColumnNames();
- void markCurrentColumnsWithFlag(Flag flag);
+ void markCurrentColumnsWithFlag(Flag flag, QList<Column>* columnList = nullptr);
bool matchTable(const Column& sourceColumn, const QString& table);
TokenList getResColTokensWithoutAlias(SqliteSelect::Core::ResultColumn *resCol);
+ void extractCte(SqliteSelect* select);
+ void extractCte(SqliteSelect::Core* core);
Db* db = nullptr;
QString query;
SqliteSelectPtr originalQueryParsed;
+ QHash<QString, SqliteWith::CommonTableExpression*> cteList;
/**
* @brief Database name to attach name map.