undo unneeded changes

This commit is contained in:
chertus 2019-02-15 18:47:18 +03:00
parent b72d12d12e
commit 1fc6c60668
3 changed files with 4 additions and 19 deletions

View File

@ -57,7 +57,7 @@ void ColumnNamesContext::addArrayJoinIdentifier(const ASTIdentifier & node)
array_join_columns.insert(node.name);
}
NameSet ColumnNamesContext::requiredColumns(std::unordered_map<String, String> & alias_map) const
NameSet ColumnNamesContext::requiredColumns() const
{
NameSet required;
for (const auto & pr : required_names)
@ -71,10 +71,6 @@ NameSet ColumnNamesContext::requiredColumns(std::unordered_map<String, String> &
if (!complex_aliases.count(name) || masked_columns.count(name))
required.insert(name);
/// It's possible that column is masked but alias is available
for (const String & alias : pr.second)
alias_map[alias] = name;
}
return required;
}

View File

@ -67,8 +67,7 @@ struct ColumnNamesContext
bool addArrayJoinAliasIfAny(const IAST & ast);
void addArrayJoinIdentifier(const ASTIdentifier & node);
/// returns set of columns and map of ther aliases (alias -> column)
NameSet requiredColumns(std::unordered_map<String, String> & alias_map) const;
NameSet requiredColumns() const;
};
std::ostream & operator << (std::ostream & os, const ColumnNamesContext & cols);

View File

@ -948,8 +948,7 @@ void ExpressionAnalyzer::collectUsedColumns()
RequiredSourceColumnsVisitor::Data columns_context;
RequiredSourceColumnsVisitor(columns_context).visit(query);
std::unordered_map<String, String> required_alias_map;
NameSet required = columns_context.requiredColumns(required_alias_map);
NameSet required = columns_context.requiredColumns();
#if 0
std::cerr << "Query: " << query << std::endl;
@ -1000,11 +999,6 @@ void ExpressionAnalyzer::collectUsedColumns()
columns_added_by_join.push_back(joined_column);
required.erase(name);
}
else if (required_alias_map.count(name) && required.count(required_alias_map[name]))
{
columns_added_by_join.push_back(joined_column);
required.erase(required_alias_map[name]);
}
}
}
@ -1031,11 +1025,7 @@ void ExpressionAnalyzer::collectUsedColumns()
const String & column_name = it->name;
unknown_required_source_columns.erase(column_name);
bool is_required_alias = required_alias_map.count(column_name);
if (is_required_alias)
unknown_required_source_columns.erase(required_alias_map[column_name]);
if (!required.count(column_name) && !is_required_alias)
if (!required.count(column_name))
source_columns.erase(it++);
else
++it;