Commit aa25db82 authored by unknown's avatar unknown

BUG#30024 Restore of backup from different endian can work for datetime


storage/ndb/tools/restore/Restore.cpp:
  Convert datetime datatype to native endian
parent ae23a601
...@@ -664,6 +664,18 @@ RestoreDataIterator::getNextTuple(int & res) ...@@ -664,6 +664,18 @@ RestoreDataIterator::getNextTuple(int & res)
*/ */
const Uint32 arraySize = sz / (attr_desc->size / 8); const Uint32 arraySize = sz / (attr_desc->size / 8);
assert(arraySize <= attr_desc->arraySize); assert(arraySize <= attr_desc->arraySize);
//convert datetime type
if(!m_hostByteOrder
&& attr_desc->m_column->getType() == NdbDictionary::Column::Datetime)
{
char* p = (char*)&attr_data->u_int64_value[0];
Uint64 x;
memcpy(&x, p, sizeof(Uint64));
x = Twiddle64(x);
memcpy(p, &x, sizeof(Uint64));
}
if(!Twiddle(attr_desc, attr_data, attr_desc->arraySize)) if(!Twiddle(attr_desc, attr_data, attr_desc->arraySize))
{ {
res = -1; res = -1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment