diff options
author | Sergei Golubchik <serg@mariadb.org> | 2017-09-21 21:21:36 +0200 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2017-09-22 14:01:26 +0200 |
commit | 68d1a598bcda36d375fd295e3e65cdf8aef027f1 (patch) | |
tree | ca6ea610a74af81bbfbc256f0670e9c16f647d6a /sql/field.h | |
parent | a5e1f60b3167e0057e64166df06424f1fb96bec3 (diff) | |
download | mariadb-git-68d1a598bcda36d375fd295e3e65cdf8aef027f1.tar.gz |
bugfix: copy timestamps correctly in INSERT...SELECT
Implement Field_timestamp::save_in_field(timestamp_field)
that stores timestamp values without converting them to MYSQL_TIME
and back, because this conversion is lossy around DST change time.
This fixes main.old-mode test.
This is 10.2 version of f8a800bec81
Diffstat (limited to 'sql/field.h')
-rw-r--r-- | sql/field.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sql/field.h b/sql/field.h index cd65cb9c580..2167b90e26c 100644 --- a/sql/field.h +++ b/sql/field.h @@ -842,6 +842,7 @@ public: virtual int store(longlong nr, bool unsigned_val)=0; virtual int store_decimal(const my_decimal *d)=0; virtual int store_time_dec(MYSQL_TIME *ltime, uint dec); + virtual int store_timestamp(my_time_t timestamp, ulong sec_part); int store_time(MYSQL_TIME *ltime) { return store_time_dec(ltime, TIME_SECOND_PART_DIGITS); } int store(const char *to, uint length, CHARSET_INFO *cs, @@ -2395,6 +2396,8 @@ public: int store(longlong nr, bool unsigned_val); int store_time_dec(MYSQL_TIME *ltime, uint dec); int store_decimal(const my_decimal *); + int store_timestamp(my_time_t timestamp, ulong sec_part); + int save_in_field(Field *to); double val_real(void); longlong val_int(void); String *val_str(String*,String *); |