https://clickhouse-test-reports.s3.yandex.net/20599/0a62f95bbe380abe8d8846ef9690b8a18c6a762b/fuzzer_debug/report.html#fail1
cur.position = free_position;
        ExpressionActions::Arguments arguments;
        arguments.reserve(cur.node->children.size());
        for (const auto * child : cur.node->children)
        {
            auto & arg = data[reverse_index[child]];
            if (arg.position < 0)
                throw Exception(ErrorCodes::LOGICAL_ERROR, "Argument was not calculated for {}", child->result_name);
            ++arg.num_created_parents;
            ExpressionActions::Argument argument;
            argument.pos = arg.position;
            argument.needed_later = arg.used_in_result || arg.num_created_parents != arg.parents.size();
            if (!argument.needed_later)
                free_positions.push(argument.pos);
            arguments.emplace_back(argument);
        }
        if (node->type == ActionsDAG::ActionType::INPUT)
        {
            
            ExpressionActions::Argument argument;
            argument.needed_later = !cur.parents.empty();
            arguments.emplace_back(argument);
            
        }
        actions.push_back({node, arguments, free_position});
        for (const auto & parent : cur.parents)
        {
            auto & parent_data = data[reverse_index[parent]];
            ++parent_data.num_created_children;
            if (parent_data.num_created_children == parent->children.size())