'Clickhouse toStartOfYear gives unexpected results with Date32

I am testing out clickhouse with a wine dataset, which has a column, VINTAGE, with dates ranging from 1925-01-01 to 2017-01-01. I've run into some strange behaviour with the toStartOfYear function (see below).

I can work around the issue trivially in this dataset, but that won't be the case with other datasets that have datetimes prior to 1970 that I need to handle.

Would the behaviour below be considered a bug or known limitation?

select min(VINTAGE) from 0gzKBy;

SELECT min(VINTAGE)
FROM `0gzKBy`

Query id: 172b0560-f5dd-492d-8536-d2dbe3270caf

┌─min(VINTAGE)─┐
│   1925-01-01 │
└──────────────┘

1 rows in set. Elapsed: 0.006 sec. Processed 129.97 thousand rows, 649.84 KB (21.30 million rows/s., 106.51 MB/s.)

select toStartOfYear(min(VINTAGE)) from 0gzKBy;

SELECT toStartOfYear(min(VINTAGE))
FROM `0gzKBy`

Query id: d65572dd-9e0d-4ef9-8c3e-4b357f2bb71a

┌─toStartOfYear(min(VINTAGE))─┐
│                  2104-06-07 │
└─────────────────────────────┘

1 rows in set. Elapsed: 0.009 sec. Processed 129.97 thousand rows, 649.84 KB (14.13 million rows/s., 70.66 MB/s.)

select min(toStartOfYear(VINTAGE)) from 0gzKBy;

SELECT min(toStartOfYear(VINTAGE))
FROM `0gzKBy`

Query id: eaf8f56c-e448-42d6-aa9b-2a02657ca774

┌─min(toStartOfYear(VINTAGE))─┐
│                  1973-01-01 │
└─────────────────────────────┘

1 rows in set. Elapsed: 0.006 sec. Processed 129.97 thousand rows, 649.84 KB (22.48 million rows/s., 112.39 MB/s.)```


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source