ndb - wl-1203 alignment fix

This commit is contained in:
pekka@mysql.com 2005-02-26 16:56:39 +01:00
parent c7c2eacfb8
commit 91eaf92861
5 changed files with 18 additions and 6 deletions

View file

@ -58,8 +58,8 @@
#define NDB_TYPE_BLOB 20
#define NDB_TYPE_TEXT 21
#define NDB_TYPE_BIT 22
#define NDB_TYPE_LONG_VARCHAR 23
#define NDB_TYPE_LONG_VARBINARY 24
#define NDB_TYPE_LONGVARCHAR 23
#define NDB_TYPE_LONGVARBINARY 24
#define NDB_TYPE_TIME 25
#define NDB_TYPE_YEAR 26
#define NDB_TYPE_TIMESTAMP 27

View file

@ -197,8 +197,8 @@ public:
Blob = NDB_TYPE_BLOB, ///< Binary large object (see NdbBlob)
Text = NDB_TYPE_TEXT, ///< Text blob
Bit = NDB_TYPE_BIT, ///< Bit, length specifies no of bits
Longvarchar = NDB_TYPE_LONG_VARCHAR, ///< Length bytes: 2, little-endian
Longvarbinary = NDB_TYPE_LONG_VARBINARY, ///< Length bytes: 2, little-endian
Longvarchar = NDB_TYPE_LONGVARCHAR, ///< Length bytes: 2, little-endian
Longvarbinary = NDB_TYPE_LONGVARBINARY, ///< Length bytes: 2, little-endian
Time = NDB_TYPE_TIME, ///< Time without date
Year = NDB_TYPE_YEAR, ///< Year 1901-2155 (1 byte)
Timestamp = NDB_TYPE_TIMESTAMP ///< Unix time

View file

@ -88,8 +88,8 @@ public:
Blob = NDB_TYPE_BLOB,
Text = NDB_TYPE_TEXT,
Bit = NDB_TYPE_BIT,
Longvarchar = NDB_TYPE_LONG_VARCHAR,
Longvarbinary = NDB_TYPE_LONG_VARBINARY,
Longvarchar = NDB_TYPE_LONGVARCHAR,
Longvarbinary = NDB_TYPE_LONGVARBINARY,
Time = NDB_TYPE_TIME,
Year = NDB_TYPE_YEAR,
Timestamp = NDB_TYPE_TIMESTAMP,

View file

@ -878,6 +878,8 @@ NdbSqlUtil::usable_in_pk(Uint32 typeId, const void* info)
const Type& type = getType(typeId);
switch (type.m_typeId) {
case Type::Char:
case Type::Varchar:
case Type::Longvarchar:
{
const CHARSET_INFO *cs = (const CHARSET_INFO*)info;
return
@ -891,6 +893,7 @@ NdbSqlUtil::usable_in_pk(Uint32 typeId, const void* info)
case Type::Undefined:
case Type::Blob:
case Type::Text:
case Type::Bit:
break;
default:
return true;
@ -912,6 +915,8 @@ NdbSqlUtil::usable_in_ordered_index(Uint32 typeId, const void* info)
return false;
switch (type.m_typeId) {
case Type::Char:
case Type::Varchar:
case Type::Longvarchar:
{
const CHARSET_INFO *cs = (const CHARSET_INFO*)info;
return
@ -926,6 +931,7 @@ NdbSqlUtil::usable_in_ordered_index(Uint32 typeId, const void* info)
case Type::Undefined:
case Type::Blob:
case Type::Text:
case Type::Bit: // can be fixed
break;
default:
return true;

View file

@ -1047,6 +1047,12 @@ NdbOperation::branch_col(Uint32 type,
}
}
Uint32 tempData[2000];
if (((UintPtr)val & 3) != 0) {
memcpy(tempData, val, len);
val = tempData;
}
if (insertATTRINFO(Interpreter::BranchCol(c, 0, 0, false)) == -1)
DBUG_RETURN(-1);