aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/coreSQLiteStudio/selectresolver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/selectresolver.cpp')
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/selectresolver.cpp42
1 files changed, 26 insertions, 16 deletions
diff --git a/SQLiteStudio3/coreSQLiteStudio/selectresolver.cpp b/SQLiteStudio3/coreSQLiteStudio/selectresolver.cpp
index 9e425a2..8107b94 100644
--- a/SQLiteStudio3/coreSQLiteStudio/selectresolver.cpp
+++ b/SQLiteStudio3/coreSQLiteStudio/selectresolver.cpp
@@ -38,7 +38,7 @@ QList<QList<SelectResolver::Column> > SelectResolver::resolve(SqliteSelect *sele
{
errors.clear();
QList<QList<SelectResolver::Column> > results;
- foreach (SqliteSelect::Core* core, select->coreSelects)
+ for (SqliteSelect::Core* core : select->coreSelects)
{
results << resolveCore(core);
currentCoreResults.clear();
@@ -57,7 +57,7 @@ QList<QList<SelectResolver::Column> > SelectResolver::resolveAvailableColumns(Sq
{
errors.clear();
QList<QList<SelectResolver::Column> > results;
- foreach (SqliteSelect::Core* core, select->coreSelects)
+ for (SqliteSelect::Core* core : select->coreSelects)
results << resolveAvailableCoreColumns(core);
return results;
@@ -67,8 +67,13 @@ QSet<SelectResolver::Table> SelectResolver::resolveTables(SqliteSelect::Core *se
{
QSet<Table> tables;
QList<Column> columns = resolveAvailableColumns(selectCore);
- foreach (Column col, columns)
+ for (const Column& col : columns)
+ {
+ if (col.type != Column::Type::COLUMN)
+ continue;
+
tables << col.getTable();
+ }
return tables;
}
@@ -77,11 +82,16 @@ QList<QSet<SelectResolver::Table> > SelectResolver::resolveTables(SqliteSelect *
{
QList<QSet<Table> > results;
QList<QList<Column> > columnLists = resolveAvailableColumns(select);
- foreach (QList<Column> columns, columnLists)
+ for (const QList<Column>& columns : columnLists)
{
QSet<Table> tables;
- foreach (Column col, columns)
+ for (const Column& col : columns)
+ {
+ if (col.type != Column::Type::COLUMN)
+ continue;
+
tables << col.getTable();
+ }
results << tables;
}
@@ -93,7 +103,7 @@ QList<SelectResolver::Column> SelectResolver::translateToColumns(SqliteSelect* s
{
errors.clear();
QList<SelectResolver::Column> results;
- foreach (TokenPtr token, columnTokens)
+ for (const TokenPtr& token : columnTokens)
results << translateTokenToColumn(select, token);
return results;
@@ -120,7 +130,7 @@ QList<SelectResolver::Column> SelectResolver::resolveCore(SqliteSelect::Core* se
if (selectCore->from)
currentCoreSourceColumns = resolveJoinSource(selectCore->from);
- foreach (SqliteSelect::Core::ResultColumn* resCol, selectCore->resultColumns)
+ for (SqliteSelect::Core::ResultColumn* resCol : selectCore->resultColumns)
resolve(resCol);
if (selectCore->distinctKw)
@@ -188,7 +198,7 @@ SelectResolver::Column SelectResolver::translateTokenToColumn(SqliteSelect* sele
}
// Search through available columns
- foreach (const Column& availableColumn, resolveAvailableColumns(core))
+ for (const Column& availableColumn : resolveAvailableColumns(core))
{
if (availableColumn.type == Column::COLUMN && availableColumn.column.compare(token->value, Qt::CaseInsensitive) == 0)
return availableColumn;
@@ -256,7 +266,7 @@ void SelectResolver::resolve(SqliteSelect::Core::ResultColumn *resCol)
void SelectResolver::resolveStar(SqliteSelect::Core::ResultColumn *resCol)
{
bool foundAtLeastOne = false;
- foreach (SelectResolver::Column column, currentCoreSourceColumns)
+ for (SelectResolver::Column column : currentCoreSourceColumns)
{
if (!resCol->table.isNull())
{
@@ -379,7 +389,7 @@ void SelectResolver::resolveDbAndTable(SqliteSelect::Core::ResultColumn *resCol)
SelectResolver::Column SelectResolver::resolveRowIdColumn(SqliteExpr *expr)
{
// Looking for first source that can provide ROWID.
- foreach (Column column, currentCoreSourceColumns)
+ for (const Column& column : currentCoreSourceColumns)
{
if (column.table.isNull())
continue; // ROWID cannot be related to source with no table
@@ -392,7 +402,7 @@ SelectResolver::Column SelectResolver::resolveRowIdColumn(SqliteExpr *expr)
SelectResolver::Column SelectResolver::resolveExplicitColumn(const QString &columnName)
{
- foreach (const Column& column, currentCoreSourceColumns)
+ for (const Column& column : currentCoreSourceColumns)
{
if (columnName.compare(column.column, Qt::CaseInsensitive) != 0 && columnName.compare(column.alias, Qt::CaseInsensitive) != 0)
continue;
@@ -404,7 +414,7 @@ SelectResolver::Column SelectResolver::resolveExplicitColumn(const QString &colu
SelectResolver::Column SelectResolver::resolveExplicitColumn(const QString &table, const QString &columnName)
{
- foreach (const Column& column, currentCoreSourceColumns)
+ for (const Column& column : currentCoreSourceColumns)
{
if (columnName.compare(column.column, Qt::CaseInsensitive) != 0 && columnName.compare(column.alias, Qt::CaseInsensitive) != 0)
continue;
@@ -419,7 +429,7 @@ SelectResolver::Column SelectResolver::resolveExplicitColumn(const QString &tabl
SelectResolver::Column SelectResolver::resolveExplicitColumn(const QString &database, const QString &table, const QString &columnName)
{
- foreach (const Column& column, currentCoreSourceColumns)
+ for (const Column& column : currentCoreSourceColumns)
{
if (columnName.compare(column.column, Qt::CaseInsensitive) != 0 && columnName.compare(column.alias, Qt::CaseInsensitive) != 0)
continue;
@@ -481,7 +491,7 @@ QList<SelectResolver::Column> SelectResolver::resolveJoinSource(SqliteSelect::Co
{
QList<SelectResolver::Column> columnSources;
columnSources += resolveSingleSource(joinSrc->singleSource);
- foreach (SqliteSelect::Core::JoinSourceOther* otherSrc, joinSrc->otherSources)
+ for (SqliteSelect::Core::JoinSourceOther* otherSrc : joinSrc->otherSources)
columnSources += resolveOtherSource(otherSrc);
return columnSources;
@@ -504,7 +514,7 @@ QList<SelectResolver::Column> SelectResolver::resolveSingleSource(SqliteSelect::
QList<Column> columnSources;
QStringList columns = getTableColumns(joinSrc->database, joinSrc->table, joinSrc->alias);
Column column;
- foreach (QString columnName, columns)
+ for (const QString& columnName : columns)
{
column.type = Column::COLUMN;
column.column = columnName;
@@ -650,7 +660,7 @@ int SelectResolver::Column::operator ==(const SelectResolver::Column &other)
return table == other.table && database == other.database && column == other.column && tableAlias == other.tableAlias;
}
-SelectResolver::Table SelectResolver::Column::getTable()
+SelectResolver::Table SelectResolver::Column::getTable() const
{
Table resTable;
resTable.table = table;