Commit 3965615
committed
data: Convert timezone offset to UTC for MySQL DATETIME coercion
MySQL converts timezone-aware string literals to the session
timezone (assumed UTC) before storing as DATETIME. For example,
CAST('2020-01-02 03:04:05+08:00' AS DATETIME) yields
'2020-01-01 19:04:05'.
ReadySet's text-to-DateTime coercion was preserving the raw
offset instead, causing incorrect comparisons in cached queries.
Fix the DfType::DateTime arm in TimestampTz::coerce_to() to
convert to UTC via naive_utc() when a timezone offset is present,
matching MySQL's behavior.
Fixes: REA-6487
Release-Note-Core: Fix MySQL DATETIME lookups with timezone
offsets in WHERE clause.
Change-Id: I7a7b16c09f58f3656e5315a1d9aed1c2e88cfa00
Reviewed-on: https://gerrit.readyset.name/c/readyset/+/12281
Tested-by: Buildkite CI
Reviewed-by: Marcelo Altmann <marcelo@readyset.io>1 parent 968d819 commit 3965615
3 files changed
Lines changed: 86 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
50 | 92 | | |
51 | 93 | | |
52 | 94 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
976 | 976 | | |
977 | 977 | | |
978 | 978 | | |
979 | | - | |
980 | | - | |
981 | | - | |
| 979 | + | |
| 980 | + | |
| 981 | + | |
982 | 982 | | |
983 | 983 | | |
984 | 984 | | |
| 985 | + | |
| 986 | + | |
985 | 987 | | |
986 | 988 | | |
987 | 989 | | |
988 | | - | |
| 990 | + | |
| 991 | + | |
| 992 | + | |
| 993 | + | |
| 994 | + | |
| 995 | + | |
| 996 | + | |
| 997 | + | |
| 998 | + | |
| 999 | + | |
| 1000 | + | |
| 1001 | + | |
| 1002 | + | |
| 1003 | + | |
| 1004 | + | |
| 1005 | + | |
| 1006 | + | |
| 1007 | + | |
| 1008 | + | |
| 1009 | + | |
| 1010 | + | |
| 1011 | + | |
| 1012 | + | |
| 1013 | + | |
| 1014 | + | |
| 1015 | + | |
| 1016 | + | |
| 1017 | + | |
989 | 1018 | | |
990 | 1019 | | |
991 | 1020 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
497 | 497 | | |
498 | 498 | | |
499 | 499 | | |
| 500 | + | |
500 | 501 | | |
501 | 502 | | |
502 | 503 | | |
| |||
505 | 506 | | |
506 | 507 | | |
507 | 508 | | |
508 | | - | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
509 | 519 | | |
510 | 520 | | |
511 | 521 | | |
| |||
0 commit comments