Description
Describe the bug
double (float64) value V cast to timestamp(9) (nanosecond precision) type produces different values T1 or T2, depending on whether V is a constant
To Reproduce
> SELECT CAST(CAST(1 AS double) AS timestamp(9));
+---------------------+
| Int64(1) |
+---------------------+
| 1970-01-01T00:00:01 |
+---------------------+
1 row(s) fetched.
Elapsed 0.006 seconds.
> SELECT CAST(CAST(x AS double) AS timestamp(9)) from (values (1)) t(x);
+-------------------------------+
| t.x |
+-------------------------------+
| 1970-01-01T00:00:00.000000001 |
+-------------------------------+
Expected behavior
The queries should produce same result