For example Null can be represented as empty string

```sql
select arrayStringConcat(['x',Null], ';');

┌─arrayStringConcat(['x', Null], ';')─┐
│ x;                                  │
└─────────────────────────────────────┘
```

But mostly it for avoiding a cast in case of Nullable Strings
```
SELECT arrayStringConcat(col0, ';')
FROM
(
    SELECT [toNullable('x')] AS col0
) AS t
```

Also I think arrayStringConcat can support any types not only Strings, it allows to avoid explicit casts.

```
SELECT arrayStringConcat(col0, ';')
FROM
(
    SELECT [1, 2, 3] AS col0
) AS t
```
{
    if (arguments.size() != 1 && arguments.size() != 2)
        throw Exception(
            "Number of arguments for function " + getName() + " doesn't match: passed " + toString(arguments.size())
                + ", should be 1 or 2.",
            ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH);
    const DataTypeArray * array_type = checkAndGetDataType<DataTypeArray>(arguments[0].get());
    
    if (!array_type || !(isString(array_type->getNestedType()) || isNullableStringOrNullableNothing(array_type->getNestedType())))
        throw Exception(
            "First argument for function " + getName() + " must be an array of String-s or Nullable(String)-s.",
            ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT);
    if (arguments.size() == 2 && !isString(arguments[1]))
        throw Exception("Second argument for function " + getName() + " must be constant string.", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT);
    return std::make_shared<DataTypeString>();
}
void registerFunctionsStringArray(FunctionFactory & factory)
{
    factory.registerFunction<FunctionExtractAll>();
    factory.registerFunction<FunctionAlphaTokens>();
    factory.registerFunction<FunctionSplitByNonAlpha>();
    factory.registerFunction<FunctionSplitByWhitespace>();
    factory.registerFunction<FunctionSplitByChar>();
    factory.registerFunction<FunctionSplitByString>();
    factory.registerFunction<FunctionSplitByRegexp>();
    factory.registerFunction<FunctionArrayStringConcat>();
}
}