```
CREATE TABLE a
(
    `number` UInt64,
    `x` MATERIALIZED x
)
ENGINE = MergeTree
ORDER BY number;
-- that should fail!

insert into a values (1);
Received exception from server (version 21.7.1):
Code: 47. DB::Exception: Received from localhost:9000. DB::Exception: Missing columns: 'x' while processing query: 'CAST(x, 'UInt8') AS x', required columns: 'x' 'x'. 
```
|| (node.name() == our_alias_or_name && our_name && node_alias == *our_name)) 
            throw Exception("Cyclic aliases", ErrorCodes::CYCLIC_ALIASES);
        
        if (!node_alias.empty() && node_alias != our_alias_or_name)
        {
            
            auto opt_name = IdentifierSemantic::getColumnName(alias_node);
            bool is_cycle = opt_name && *opt_name == node.name();
            if (!is_cycle)
            {
                
                ast = alias_node->clone();
                ast->setAlias(node_alias);
            }
        }
        else
            ast = alias_node;
    }
}
void QueryNormalizer::visit(ASTTablesInSelectQueryElement & node, const ASTPtr &, Data & data)
{
    
    if (node.table_join)
    {
        auto & join = node.table_join->as<ASTTableJoin &>();
        if (join.on_expression)
            visit(join.on_expression, data);
    }
}
static bool needVisitChild(const ASTPtr & child)