Merge branch 'master' into better-union-all-try2

This commit is contained in:
Alexey Milovidov 2018-02-26 08:05:53 +03:00
commit a586fd119a
6 changed files with 8 additions and 7 deletions

View File

@ -1027,7 +1027,7 @@ void ExpressionAnalyzer::normalizeTreeImpl(
ASTs & asts = node->children;
for (int i = static_cast<int>(asts.size()) - 1; i >= 0; --i)
{
if (ASTAsterisk * asterisk = typeid_cast<ASTAsterisk *>(asts[i].get()))
if (typeid_cast<ASTAsterisk *>(asts[i].get()))
{
ASTs all_columns;
for (const auto & column_name_type : columns)

View File

@ -48,7 +48,7 @@ protected:
void formatQueryImpl(const FormatSettings & settings, FormatState &, FormatStateStacked) const override
{
settings.ostr << (settings.hilite ? hilite_keyword : "")
<< ASTIDAndQueryNames::Query << (settings.hilite ? hilite_none : "");
<< ASTIDAndQueryNames::Query << (settings.hilite ? hilite_none : "");
}
};

View File

@ -318,6 +318,7 @@ bool ParserCastExpression::parseImpl(Pos & pos, ASTPtr & node, Expected & expect
{
/// CAST(expression AS type)
const auto type = first_argument->tryGetAlias();
if (type.empty())
{
/// there is only one argument and it has no alias
@ -609,7 +610,7 @@ bool ParserAliasImpl<ParserIdentifier>::parseImpl(Pos & pos, ASTPtr & node, Expe
ParserKeyword s_as("AS");
ParserIdentifier id_p;
bool has_as_word = s_as.parse(pos, node, expected);
bool has_as_word = s_as.ignore(pos, expected);
if (!allow_alias_without_as_keyword && !has_as_word)
return false;
@ -746,7 +747,7 @@ bool ParserWithOptionalAliasImpl<ParserAlias>::parseImpl(Pos & pos, ASTPtr & nod
ASTPtr alias_node;
if (ParserAlias(allow_alias_without_as_keyword_now).parse(pos, alias_node, expected))
{
String alias_name = typeid_cast<ASTIdentifier &>(*alias_node).name;
String alias_name = typeid_cast<const ASTIdentifier &>(*alias_node).name;
if (ASTWithAlias * ast_with_alias = dynamic_cast<ASTWithAlias *>(node.get()))
{

View File

@ -22,7 +22,7 @@ bool IParserBase::parse(Pos & pos, ASTPtr & node, Expected & expected)
node = nullptr;
pos = begin;
}
else
else if (node)
node->range = StringRange(begin, pos);
return res;

View File

@ -80,7 +80,7 @@ bool ParserIdentifierWithOptionalParameters::parseImpl(Pos & pos, ASTPtr & node,
bool ParserTypeInCastExpression::parseImpl(Pos & pos, ASTPtr & node, Expected & expected)
{
if (ParserIdentifierWithOptionalParameters::parseImpl(pos, node, expected))
if (ParserIdentifierWithOptionalParameters().parse(pos, node, expected))
{
const auto & id_with_params = typeid_cast<const ASTFunction &>(*node);
node = std::make_shared<ASTIdentifier>(String{ id_with_params.range.first, id_with_params.range.second });

View File

@ -48,7 +48,7 @@ protected:
bool parseImpl(Pos & pos, ASTPtr & node, Expected & expected);
};
class ParserTypeInCastExpression : public ParserIdentifierWithOptionalParameters
class ParserTypeInCastExpression : public IParserBase
{
protected:
const char * getName() const { return "type in cast expression"; }