**Describe the unexpected behaviour**

If a start value for the Array range() function is specified, the array for subsequent rows doesn't start at the specified value, but instead counts upwards. Example:

```sql
SELECT c1, range(0, c1) AS zero_as_start_val, range(1, c1) AS one_as_start_val, range(c1) AS no_start_val
FROM values(2, 3, 4, 5);
```

| c1 | zero\_as\_start\_val | one\_as\_start\_val | no\_start\_val |
| :--- | :--- | :--- | :--- |
| 2 | \[0, 1\] | \[1\] | \[0, 1\] |
| 3 | \[2, 3, 4\] | \[2, 3\] | \[0, 1, 2\] |
| 4 | \[5, 6, 7, 8\] | \[4, 5, 6\] | \[0, 1, 2, 3\] |
| 5 | \[9, 10, 11, 12, 13\] | \[7, 8, 9, 10\] | \[0, 1, 2, 3, 4\] |


I'm not sure if this is desired behaviour.

**How to reproduce**
* Which ClickHouse server version to use: ClickHouse server version 22.13.1.1133 (official build) (macOS arm64)
* [Clickhouse Playground](https://play.clickhouse.com/play?user=play#U0VMRUNUIGMxLCByYW5nZSgwLCBjMSkgQVMgemVyb19hc19zdGFydF92YWwsIHJhbmdlKDEsIGMxKSBBUyBvbmVfYXNfc3RhcnRfdmFsLCByYW5nZShjMSkgQVMgbm9fc3RhcnRfdmFsCkZST00gdmFsdWVzKDIsIDMsIDQsIDUpOw==)


**Expected behavior**

I'd expect all arrays to start with the specified start value.
{
                }
            }
        }
        else
        {
            if ((res = executeGeneric<UInt8>(column_ptrs[0], column_ptrs[1], column_ptrs[2], input_rows_count))
                || (res = executeGeneric<UInt16>(column_ptrs[0], column_ptrs[1], column_ptrs[2], input_rows_count))
                || (res = executeGeneric<UInt32>(column_ptrs[0], column_ptrs[1], column_ptrs[2], input_rows_count))
                || (res = executeGeneric<UInt64>(column_ptrs[0], column_ptrs[1], column_ptrs[2], input_rows_count))
                || (res = executeGeneric<Int8>(column_ptrs[0], column_ptrs[1], column_ptrs[2], input_rows_count))
                || (res = executeGeneric<Int16>(column_ptrs[0], column_ptrs[1], column_ptrs[2], input_rows_count))
                || (res = executeGeneric<Int32>(column_ptrs[0], column_ptrs[1], column_ptrs[2], input_rows_count))
                || (res = executeGeneric<Int64>(column_ptrs[0], column_ptrs[1], column_ptrs[2], input_rows_count)))
            {
            }
        }
        if (!res)
        {
            throw Exception{"Illegal columns " + column_ptrs[0]->getName() + " of argument of function " + getName(), ErrorCodes::ILLEGAL_COLUMN};
        }
        return res;
    }
};
REGISTER_FUNCTION(Range)
{
    factory.registerFunction<FunctionRange>();
}
}