mirror of
https://github.com/MariaDB/server.git
synced 2025-05-29 21:42:28 +03:00
correct medium int printout
correct cit printout correct bit store retrieve
This commit is contained in:
parent
22c5d8ba44
commit
c445baeabd
@ -336,10 +336,7 @@ inline
|
|||||||
Int32
|
Int32
|
||||||
NdbRecAttr::medium_value() const
|
NdbRecAttr::medium_value() const
|
||||||
{
|
{
|
||||||
Uint32 tmp = *(Uint32*)theRef;
|
return sint3korr((unsigned char *)theRef);
|
||||||
if (tmp & (0x1<<23))
|
|
||||||
tmp|= (0xFF<<24);
|
|
||||||
return (Int32)tmp;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inline
|
inline
|
||||||
@ -367,7 +364,7 @@ inline
|
|||||||
Uint32
|
Uint32
|
||||||
NdbRecAttr::u_medium_value() const
|
NdbRecAttr::u_medium_value() const
|
||||||
{
|
{
|
||||||
return *(Uint32*)theRef;
|
return uint3korr((unsigned char*)theRef);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline
|
inline
|
||||||
|
@ -236,24 +236,13 @@ ndbrecattr_print_formatted(NdbOut& out, const NdbRecAttr &r,
|
|||||||
break;
|
break;
|
||||||
case NdbDictionary::Column::Bit:
|
case NdbDictionary::Column::Bit:
|
||||||
out << f.hex_prefix << "0x";
|
out << f.hex_prefix << "0x";
|
||||||
if (length < 33)
|
|
||||||
{
|
{
|
||||||
out.print("%X", r.u_32_value());
|
const Uint32 *buf = (Uint32 *)r.aRef();
|
||||||
}
|
int k = (length+31)/32;
|
||||||
else if (length < 65)
|
while (k > 0 && (buf[--k] == 0));
|
||||||
{
|
out.print("%X", buf[k]);
|
||||||
out.print("%llX", r.u_64_value());
|
while (k > 0)
|
||||||
}
|
out.print("%.8X", buf[--k]);
|
||||||
else
|
|
||||||
{
|
|
||||||
const unsigned char *buf = (unsigned char *)r.aRef();
|
|
||||||
int k = 4*((length+31)/32);
|
|
||||||
while (k > 0 && (*(buf + --k) == 0));
|
|
||||||
do
|
|
||||||
{
|
|
||||||
out.print("%X", (Uint32)*(buf + k--));
|
|
||||||
}
|
|
||||||
while (k >= 0);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case NdbDictionary::Column::Unsigned:
|
case NdbDictionary::Column::Unsigned:
|
||||||
|
@ -727,7 +727,8 @@ int ha_ndbcluster::set_ndb_value(NdbOperation *ndb_op, Field *field,
|
|||||||
DBUG_DUMP("value", (char*)&bits, pack_len);
|
DBUG_DUMP("value", (char*)&bits, pack_len);
|
||||||
#ifdef WORDS_BIGENDIAN
|
#ifdef WORDS_BIGENDIAN
|
||||||
/* store lsw first */
|
/* store lsw first */
|
||||||
bits = (bits >> 32) | (bits << 32);
|
bits = ((bits >> 32) & 0x00000000FFFFFFFF)
|
||||||
|
| ((bits << 32) & 0xFFFFFFFF00000000);
|
||||||
#endif
|
#endif
|
||||||
DBUG_RETURN(ndb_op->setValue(fieldnr, (char*)&bits, pack_len) != 0);
|
DBUG_RETURN(ndb_op->setValue(fieldnr, (char*)&bits, pack_len) != 0);
|
||||||
}
|
}
|
||||||
@ -2653,7 +2654,11 @@ void ha_ndbcluster::unpack_record(byte* buf)
|
|||||||
#ifdef WORDS_BIGENDIAN
|
#ifdef WORDS_BIGENDIAN
|
||||||
/* lsw is stored first */
|
/* lsw is stored first */
|
||||||
Uint32 *buf= (Uint32 *)(*value).rec->aRef();
|
Uint32 *buf= (Uint32 *)(*value).rec->aRef();
|
||||||
((Field_bit *) *field)->store(*buf | (((longlong)*(buf+1)) << 32),
|
((Field_bit *) *field)->store((((longlong)*buf)
|
||||||
|
& 0x000000000FFFFFFFF)
|
||||||
|
|
|
||||||
|
((((longlong)*(buf+1)) << 32)
|
||||||
|
& 0xFFFFFFFF00000000),
|
||||||
TRUE);
|
TRUE);
|
||||||
#else
|
#else
|
||||||
((Field_bit *) *field)->store((longlong)
|
((Field_bit *) *field)->store((longlong)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user