to make it possible to generate two columns with UUID.

```
select generateUUIDv4(1), generateUUIDv4(2);

┌─generateUUIDv4(1)────────────────────┬─generateUUIDv4(2)────────────────────┐
│ bc834744-236b-4860-a961-4f8aafcae2b5 │ 37e7908c-e1d4-491f-b34d-dee0de7794df │
└──────────────────────────────────────┴──────────────────────────────────────┘
```

the same as rand() https://clickhouse.com/docs/en/sql-reference/functions/random-functions#rand

_x — [Expression](https://clickhouse.com/docs/en/sql-reference/syntax#syntax-expressions) resulting in any of the [supported data types](https://clickhouse.com/docs/en/sql-reference/data-types/#data_types). The resulting value is discarded, but the expression itself if used for bypassing [common subexpression elimination](https://clickhouse.com/docs/en/sql-reference/functions/#common-subexpression-elimination) if the function is called multiple times in one query. Optional parameter._


https://github.com/ClickHouse/ClickHouse/issues/37366
{
        return name;
    }
    size_t getNumberOfArguments() const override { return 0; }
    bool isSuitableForShortCircuitArgumentsExecution(const DataTypesWithConstInfo & ) const override { return false; }
    DataTypePtr getReturnTypeImpl(const DataTypes &) const override
    {
        return std::make_shared<DataTypeUUID>();
    }
    bool isDeterministic() const override { return false; }
    ColumnPtr executeImpl(const ColumnsWithTypeAndName &, const DataTypePtr &, size_t input_rows_count) const override
    {
        auto col_res = ColumnVector<UUID>::create();
        typename ColumnVector<UUID>::Container & vec_to = col_res->getData();
        size_t size = input_rows_count;
        vec_to.resize(size);
        
        RandImpl::execute(reinterpret_cast<char *>(vec_to.data()), vec_to.size() * sizeof(UUID));
        for (UUID & uuid : vec_to)
        {
            
            UInt128 & impl = uuid.toUnderType();
            impl.items[0] = (impl.items[0] & 0xffffffffffff0fffull) | 0x0000000000004000ull;
            impl.items[1] = (impl.items[1] & 0x3fffffffffffffffull) | 0x8000000000000000ull;
        }
        return col_res;
    }
};
)