summaryrefslogtreecommitdiff
path: root/sql/ha_partition.h
diff options
context:
space:
mode:
authorJacob Mathew <jacob.mathew@mariadb.com>2018-07-24 15:57:13 -0700
committerJacob Mathew <jacob.mathew@mariadb.com>2018-07-24 15:57:13 -0700
commitd6594847cff55bb6d7d094a0311f1fe3d5be789e (patch)
treec95ecb3a3c01fe152d683e71ecab3ca083e1d6db /sql/ha_partition.h
parenta78d1aaaa349ebbe3400e48f63903b349050b316 (diff)
downloadmariadb-git-bb-10.4-MDEV-16246.tar.gz
MDEV-16246: insert timestamp into spider table from mysqldump gets wrong time zone.bb-10.4-MDEV-16246
The problem occurred because the Spider node was incorrectly handling timestamp values sent to and received from the data nodes. The problem has been corrected as follows: - Added logic to set and maintain the UTC time zone on the data nodes. To prevent timestamp ambiguity, it is necessary for the data nodes to use a time zone such as UTC which does not have daylight savings time. - Removed the spider_sync_time_zone configuration variable, which did not solve the problem and which interfered with the solution. - Added logic to convert to the UTC time zone all timestamp values sent to and received from the data nodes. This is done for both unique and non-unique timestamp columns. It is done for WHERE clauses, applying to SELECT, UPDATE and DELETE statements, and for UPDATE columns. - Disabled Spider's use of direct update when any of the columns to update is a timestamp column. This is necessary to prevent false duplicate key value errors. - Added a new test spider.timestamp to thoroughly test Spider's handling of timestamp values. Author: Jacob Mathew. Reviewer: Kentoku Shiba. Merged: Commit 97cc9d3 on branch bb-10.3-MDEV-16246
Diffstat (limited to 'sql/ha_partition.h')
-rw-r--r--sql/ha_partition.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/sql/ha_partition.h b/sql/ha_partition.h
index e661d0badd3..8a251016703 100644
--- a/sql/ha_partition.h
+++ b/sql/ha_partition.h
@@ -620,8 +620,8 @@ public:
virtual int bulk_update_row(const uchar *old_data, const uchar *new_data,
ha_rows *dup_key_found);
virtual int update_row(const uchar * old_data, const uchar * new_data);
- virtual int direct_update_rows_init();
- virtual int pre_direct_update_rows_init();
+ virtual int direct_update_rows_init(List<Item> *update_fields);
+ virtual int pre_direct_update_rows_init(List<Item> *update_fields);
virtual int direct_update_rows(ha_rows *update_rows);
virtual int pre_direct_update_rows();
virtual bool start_bulk_delete();