diff options
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/selectresolver.h')
| -rw-r--r-- | SQLiteStudio3/coreSQLiteStudio/selectresolver.h | 10 |
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. |
