Loading mysql-test/r/ndb_bitfield.result +2 −2 Original line number Diff line number Diff line Loading @@ -201,13 +201,13 @@ create table t1 ( pk1 bit(9) not null primary key, b int ) engine=ndbcluster; ERROR HY000: Can't create table './test/t1.frm' (errno: 739) ERROR HY000: Can't create table './test/t1.frm' (errno: 906) create table t1 ( pk1 int not null primary key, b bit(9), key(b) ) engine=ndbcluster; ERROR HY000: Can't create table './test/t1.frm' (errno: 743) ERROR HY000: Can't create table './test/t1.frm' (errno: 906) create table t1 ( pk1 int primary key, b bit(32) not null Loading ndb/include/kernel/signaldata/TupFrag.hpp +2 −1 Original line number Diff line number Diff line Loading @@ -146,7 +146,8 @@ public: enum ErrorCode { NoError = 0, InvalidCharset = 743, TooManyBitsUsed = 831 TooManyBitsUsed = 831, UnsupportedType = 906 }; private: Uint32 userPtr; Loading ndb/include/util/NdbSqlUtil.hpp +3 −3 Original line number Diff line number Diff line Loading @@ -117,9 +117,9 @@ public: /** * Check character set. */ static bool usable_in_pk(Uint32 typeId, const void* info); static bool usable_in_hash_index(Uint32 typeId, const void* info); static bool usable_in_ordered_index(Uint32 typeId, const void* info); static uint check_column_for_pk(Uint32 typeId, const void* info); static uint check_column_for_hash_index(Uint32 typeId, const void* info); static uint check_column_for_ordered_index(Uint32 typeId, const void* info); /** * Get number of length bytes and length from variable length string. Loading ndb/src/common/util/NdbSqlUtil.cpp +28 −24 Original line number Diff line number Diff line Loading @@ -872,8 +872,8 @@ NdbSqlUtil::likeLongvarbinary(const void* info, const void* p1, unsigned n1, con // check charset bool NdbSqlUtil::usable_in_pk(Uint32 typeId, const void* info) uint NdbSqlUtil::check_column_for_pk(Uint32 typeId, const void* info) { const Type& type = getType(typeId); switch (type.m_typeId) { Loading @@ -882,12 +882,14 @@ NdbSqlUtil::usable_in_pk(Uint32 typeId, const void* info) case Type::Longvarchar: { const CHARSET_INFO *cs = (const CHARSET_INFO*)info; return cs != 0 && if(cs != 0 && cs->cset != 0 && cs->coll != 0 && cs->coll->strnxfrm != 0 && cs->strxfrm_multiply <= MAX_XFRM_MULTIPLY; cs->strxfrm_multiply <= MAX_XFRM_MULTIPLY) return 0; else return 743; } break; case Type::Undefined: Loading @@ -896,19 +898,19 @@ NdbSqlUtil::usable_in_pk(Uint32 typeId, const void* info) case Type::Bit: break; default: return true; return 0; } return false; return 906; } bool NdbSqlUtil::usable_in_hash_index(Uint32 typeId, const void* info) uint NdbSqlUtil::check_column_for_hash_index(Uint32 typeId, const void* info) { return usable_in_pk(typeId, info); return check_column_for_pk(typeId, info); } bool NdbSqlUtil::usable_in_ordered_index(Uint32 typeId, const void* info) uint NdbSqlUtil::check_column_for_ordered_index(Uint32 typeId, const void* info) { const Type& type = getType(typeId); if (type.m_cmp == NULL) Loading @@ -919,13 +921,15 @@ NdbSqlUtil::usable_in_ordered_index(Uint32 typeId, const void* info) case Type::Longvarchar: { const CHARSET_INFO *cs = (const CHARSET_INFO*)info; return cs != 0 && if (cs != 0 && cs->cset != 0 && cs->coll != 0 && cs->coll->strnxfrm != 0 && cs->coll->strnncollsp != 0 && cs->strxfrm_multiply <= MAX_XFRM_MULTIPLY; cs->strxfrm_multiply <= MAX_XFRM_MULTIPLY) return 0; else return 743; } break; case Type::Undefined: Loading @@ -934,9 +938,9 @@ NdbSqlUtil::usable_in_ordered_index(Uint32 typeId, const void* info) case Type::Bit: // can be fixed break; default: return true; return 0; } return false; return 906; } // utilities Loading ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp +3 −2 Original line number Diff line number Diff line Loading @@ -217,11 +217,12 @@ Dbtux::execTUX_ADD_ATTRREQ(Signal* signal) break; } if (descAttr.m_charset != 0) { uint err; CHARSET_INFO *cs = all_charsets[descAttr.m_charset]; ndbrequire(cs != 0); if (! NdbSqlUtil::usable_in_ordered_index(descAttr.m_typeId, cs)) { if ((err = NdbSqlUtil::check_column_for_ordered_index(descAttr.m_typeId, cs))) { jam(); errorCode = TuxAddAttrRef::InvalidCharset; errorCode = (TuxAddAttrRef::ErrorCode) err; break; } } Loading Loading
mysql-test/r/ndb_bitfield.result +2 −2 Original line number Diff line number Diff line Loading @@ -201,13 +201,13 @@ create table t1 ( pk1 bit(9) not null primary key, b int ) engine=ndbcluster; ERROR HY000: Can't create table './test/t1.frm' (errno: 739) ERROR HY000: Can't create table './test/t1.frm' (errno: 906) create table t1 ( pk1 int not null primary key, b bit(9), key(b) ) engine=ndbcluster; ERROR HY000: Can't create table './test/t1.frm' (errno: 743) ERROR HY000: Can't create table './test/t1.frm' (errno: 906) create table t1 ( pk1 int primary key, b bit(32) not null Loading
ndb/include/kernel/signaldata/TupFrag.hpp +2 −1 Original line number Diff line number Diff line Loading @@ -146,7 +146,8 @@ public: enum ErrorCode { NoError = 0, InvalidCharset = 743, TooManyBitsUsed = 831 TooManyBitsUsed = 831, UnsupportedType = 906 }; private: Uint32 userPtr; Loading
ndb/include/util/NdbSqlUtil.hpp +3 −3 Original line number Diff line number Diff line Loading @@ -117,9 +117,9 @@ public: /** * Check character set. */ static bool usable_in_pk(Uint32 typeId, const void* info); static bool usable_in_hash_index(Uint32 typeId, const void* info); static bool usable_in_ordered_index(Uint32 typeId, const void* info); static uint check_column_for_pk(Uint32 typeId, const void* info); static uint check_column_for_hash_index(Uint32 typeId, const void* info); static uint check_column_for_ordered_index(Uint32 typeId, const void* info); /** * Get number of length bytes and length from variable length string. Loading
ndb/src/common/util/NdbSqlUtil.cpp +28 −24 Original line number Diff line number Diff line Loading @@ -872,8 +872,8 @@ NdbSqlUtil::likeLongvarbinary(const void* info, const void* p1, unsigned n1, con // check charset bool NdbSqlUtil::usable_in_pk(Uint32 typeId, const void* info) uint NdbSqlUtil::check_column_for_pk(Uint32 typeId, const void* info) { const Type& type = getType(typeId); switch (type.m_typeId) { Loading @@ -882,12 +882,14 @@ NdbSqlUtil::usable_in_pk(Uint32 typeId, const void* info) case Type::Longvarchar: { const CHARSET_INFO *cs = (const CHARSET_INFO*)info; return cs != 0 && if(cs != 0 && cs->cset != 0 && cs->coll != 0 && cs->coll->strnxfrm != 0 && cs->strxfrm_multiply <= MAX_XFRM_MULTIPLY; cs->strxfrm_multiply <= MAX_XFRM_MULTIPLY) return 0; else return 743; } break; case Type::Undefined: Loading @@ -896,19 +898,19 @@ NdbSqlUtil::usable_in_pk(Uint32 typeId, const void* info) case Type::Bit: break; default: return true; return 0; } return false; return 906; } bool NdbSqlUtil::usable_in_hash_index(Uint32 typeId, const void* info) uint NdbSqlUtil::check_column_for_hash_index(Uint32 typeId, const void* info) { return usable_in_pk(typeId, info); return check_column_for_pk(typeId, info); } bool NdbSqlUtil::usable_in_ordered_index(Uint32 typeId, const void* info) uint NdbSqlUtil::check_column_for_ordered_index(Uint32 typeId, const void* info) { const Type& type = getType(typeId); if (type.m_cmp == NULL) Loading @@ -919,13 +921,15 @@ NdbSqlUtil::usable_in_ordered_index(Uint32 typeId, const void* info) case Type::Longvarchar: { const CHARSET_INFO *cs = (const CHARSET_INFO*)info; return cs != 0 && if (cs != 0 && cs->cset != 0 && cs->coll != 0 && cs->coll->strnxfrm != 0 && cs->coll->strnncollsp != 0 && cs->strxfrm_multiply <= MAX_XFRM_MULTIPLY; cs->strxfrm_multiply <= MAX_XFRM_MULTIPLY) return 0; else return 743; } break; case Type::Undefined: Loading @@ -934,9 +938,9 @@ NdbSqlUtil::usable_in_ordered_index(Uint32 typeId, const void* info) case Type::Bit: // can be fixed break; default: return true; return 0; } return false; return 906; } // utilities Loading
ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp +3 −2 Original line number Diff line number Diff line Loading @@ -217,11 +217,12 @@ Dbtux::execTUX_ADD_ATTRREQ(Signal* signal) break; } if (descAttr.m_charset != 0) { uint err; CHARSET_INFO *cs = all_charsets[descAttr.m_charset]; ndbrequire(cs != 0); if (! NdbSqlUtil::usable_in_ordered_index(descAttr.m_typeId, cs)) { if ((err = NdbSqlUtil::check_column_for_ordered_index(descAttr.m_typeId, cs))) { jam(); errorCode = TuxAddAttrRef::InvalidCharset; errorCode = (TuxAddAttrRef::ErrorCode) err; break; } } Loading