diff --git a/mysql-test/suite/versioning/t/old_timestamp.combinations b/mysql-test/suite/versioning/t/old_timestamp.combinations new file mode 100644 index 00000000000..7a13300df3c --- /dev/null +++ b/mysql-test/suite/versioning/t/old_timestamp.combinations @@ -0,0 +1,4 @@ +[normal] + +[traditional] +sql-mode=TRADITIONAL diff --git a/sql/field_conv.cc b/sql/field_conv.cc index 8b22127e7d3..d76d35abf20 100644 --- a/sql/field_conv.cc +++ b/sql/field_conv.cc @@ -782,12 +782,14 @@ Field::Copy_func *Field_timestamp::get_copy_func(const Field *from) const Field::Copy_func *copy= Field_temporal::get_copy_func(from); if (from->type() == MYSQL_TYPE_TIMESTAMP) { + if ((flags & VERS_ROW_END) && (from->flags & VERS_ROW_END) && + from->table->file->check_versioned_compatibility()) + { + DBUG_ASSERT(eq_def(from)); + return do_field_versioned_timestamp; + } if (copy == do_field_datetime) return do_field_timestamp; - if (copy == do_field_eq && - from->table->file->check_versioned_compatibility() && - (flags & VERS_ROW_END) && (from->flags & VERS_ROW_END)) - return do_field_versioned_timestamp; } return copy; }