diff options
author | unknown <timour@askmonty.org> | 2012-10-17 15:43:56 +0300 |
---|---|---|
committer | unknown <timour@askmonty.org> | 2012-10-17 15:43:56 +0300 |
commit | bc4a456758c8077e5377b8cfaed60af4311653a0 (patch) | |
tree | b4689bc3028c30ad38355adbb4d574db5cb57437 /storage/heap | |
parent | 620d14f8c3521f9ec7283b8690e0e16434739d33 (diff) | |
download | mariadb-git-bc4a456758c8077e5377b8cfaed60af4311653a0.tar.gz |
MDEV-452 Add full support for auto-initialized/updated timestamp and datetime
Generalized support for auto-updated and/or auto-initialized timestamp
and datetime columns. This patch is a reimplementation of MySQL's
"WL#5874: CURRENT_TIMESTAMP as DEFAULT for DATETIME columns". In order to
ease future merges, this implementation reused few function and variable
names from MySQL's patch, however the implementation is quite different.
TODO:
The only unresolved problem in this patch is the semantics of LOAD DATA for
TIMESTAMP and DATETIME columns in the cases when there are missing or NULL
columns. I couldn't fully comprehend the logic behind MySQL's behavior and
its relationship with their own documentation, so I left the results to be
more consistent with all other LOAD cases.
The problematic test cases can be seen by running the test file function_defaults,
and observing the test case differences. Those were left on purpose for discussion.
Diffstat (limited to 'storage/heap')
-rw-r--r-- | storage/heap/ha_heap.cc | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/storage/heap/ha_heap.cc b/storage/heap/ha_heap.cc index 305a8cae720..b9eef0d155b 100644 --- a/storage/heap/ha_heap.cc +++ b/storage/heap/ha_heap.cc @@ -241,8 +241,6 @@ void ha_heap::update_key_stats() int ha_heap::write_row(uchar * buf) { int res; - if (table->timestamp_field_type & TIMESTAMP_AUTO_SET_ON_INSERT) - table->timestamp_field->set_time(); if (table->next_number_field && buf == table->record[0]) { if ((res= update_auto_increment())) @@ -264,8 +262,6 @@ int ha_heap::write_row(uchar * buf) int ha_heap::update_row(const uchar * old_data, uchar * new_data) { int res; - if (table->timestamp_field_type & TIMESTAMP_AUTO_SET_ON_UPDATE) - table->timestamp_field->set_time(); res= heap_update(file,old_data,new_data); if (!res && ++records_changed*HEAP_STATS_UPDATE_THRESHOLD > file->s->records) |