https://clickhouse-test-reports.s3.yandex.net/0/624cb43f7f85b576dc2831e20623a5cf5b878792/fuzzer_ubsan/report.html

```
SELECT max(intDiv(1048575, NULL)) OVER (ORDER BY mod(number, 1024) DESC NULLS LAST RANGE BETWEEN 1 PRECEDING AND CURRENT ROW), 0, number, nth_value(toNullable(number), -9223372036854775808) OVER w AS firstValue, nth_value(toNullable(number), NULL) OVER w AS thridValue FROM numbers(1) WINDOW w AS (ORDER BY number ASC)
```
using ExpressionActionsPtr = std::shared_ptr<ExpressionActions>;
class Arena;
struct WindowFunctionWorkspace
{
    AggregateFunctionPtr aggregate_function;
    
    
    
    IWindowFunction * window_function_impl = nullptr;
    std::vector<size_t> argument_column_indices;
    
    AlignedBuffer aggregate_function_state;
    
    std::vector<const IColumn *> argument_columns;
    uint64_t cached_block_number = std::numeric_limits<uint64_t>::max();
};
struct WindowTransformBlock
{
    Columns input_columns;
    MutableColumns output_columns;
    size_t rows = 0;
};
struct RowNumber
{
    uint64_t block = 0;
    uint64_t row = 0;
    bool operator < (const RowNumber & other) const