https://s3.amazonaws.com/clickhouse-test-reports/0/6bd7e425c641417b9235ebf6d3ac876118f06fbe/fuzzer_astfuzzerubsan,actions//report.html

It's related to `ColumnSparse`.
size_t num_full_low_cardinality_columns = 0;
        size_t num_full_ordinary_columns = 0;
        ColumnsWithTypeAndName args_without_low_cardinality(arguments);
        for (ColumnWithTypeAndName & arg : args_without_low_cardinality)
        {
            bool is_const = arg.column && isColumnConst(*arg.column);
            if (is_const)
                arg.column = assert_cast<const ColumnConst &>(*arg.column).removeLowCardinality();
            if (const auto * low_cardinality_type = typeid_cast<const DataTypeLowCardinality *>(arg.type.get()))
            {
                arg.type = low_cardinality_type->getDictionaryType();
                has_low_cardinality = true;
                if (!is_const)
                    ++num_full_low_cardinality_columns;
            }
            else if (!is_const)
                ++num_full_ordinary_columns;
        }
        convertLowCardinalityColumnsToFull(args_without_low_cardinality);
        auto type_without_low_cardinality = getReturnTypeWithoutLowCardinality(args_without_low_cardinality);
        if (canBeExecutedOnLowCardinalityDictionary() && has_low_cardinality
            && num_full_low_cardinality_columns <= 1 && num_full_ordinary_columns == 0
            && type_without_low_cardinality->canBeInsideLowCardinality())
            return std::make_shared<DataTypeLowCardinality>(type_without_low_cardinality);
        else
            return type_without_low_cardinality;
    }
    return getReturnTypeWithoutLowCardinality(arguments);
}
FunctionBasePtr IFunctionOverloadResolver::build(const ColumnsWithTypeAndName & arguments) const