Commit cba5f9d9 authored by unknown's avatar unknown
Browse files

Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb

into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-single-user


storage/ndb/include/ndbapi/NdbRecAttr.hpp:
  Auto merged
storage/ndb/src/ndbapi/NdbRecAttr.cpp:
  Auto merged
sql/ha_ndbcluster.cc:
  manual merge
storage/ndb/test/src/NDBT_Table.cpp:
  manual merge
parents 0234a14e d24dab18
Loading
Loading
Loading
Loading
+18 −8
Original line number Diff line number Diff line
@@ -733,10 +733,9 @@ int ha_ndbcluster::set_ndb_value(NdbOperation *ndb_op, Field *field,
        DBUG_PRINT("info", ("bit field"));
        DBUG_DUMP("value", (char*)&bits, pack_len);
#ifdef WORDS_BIGENDIAN
        if (pack_len < 5)
        {
          DBUG_RETURN(ndb_op->setValue(fieldnr, ((char*)&bits)+4) != 0);
        }
        /* store lsw first */
        bits = ((bits >> 32) & 0x00000000FFFFFFFF)
          |    ((bits << 32) & 0xFFFFFFFF00000000);
#endif
        DBUG_RETURN(ndb_op->setValue(fieldnr, (char*)&bits) != 0);
      }
@@ -3157,8 +3156,19 @@ void ndb_unpack_record(TABLE *table, NdbValue *value,
            DBUG_PRINT("info", ("bit field H'%.8X%.8X",
                                *(Uint32 *)(*value).rec->aRef(),
                                *((Uint32 *)(*value).rec->aRef()+1)));
            field_bit->Field_bit::store((longlong) (*value).rec->u_64_value(), 
#ifdef WORDS_BIGENDIAN
            /* lsw is stored first */
            Uint32 *buf= (Uint32 *)(*value).rec->aRef();
            ((Field_bit *) *field)->store((((longlong)*buf)
                                           & 0x000000000FFFFFFFF)
                                          |
                                          ((((longlong)*(buf+1)) << 32)
                                           & 0xFFFFFFFF00000000),
                                          TRUE);
#else
            ((Field_bit *) *field)->store((longlong)
                                          (*value).rec->u_64_value(), TRUE);
#endif
          }
          /*
            Move back internal field pointer to point to original
+2 −5
Original line number Diff line number Diff line
@@ -305,10 +305,7 @@ inline
Int32
NdbRecAttr::medium_value() const
{
  Uint32 tmp = *(Uint32*)theRef;
  if (tmp & (0x1<<23))
    tmp|= (0xFF<<24);
  return (Int32)tmp;
  return sint3korr((unsigned char *)theRef);
}

inline
@@ -336,7 +333,7 @@ inline
Uint32
NdbRecAttr::u_medium_value() const
{
  return *(Uint32*)theRef;
  return uint3korr((unsigned char*)theRef);
}

inline
+6 −17
Original line number Diff line number Diff line
@@ -234,24 +234,13 @@ ndbrecattr_print_formatted(NdbOut& out, const NdbRecAttr &r,
      break;
    case NdbDictionary::Column::Bit:
      out << f.hex_prefix << "0x";
      if (length < 33)
      {
        out.print("%X", r.u_32_value());
      }
      else if (length < 65)
      {
        out.print("%llX", r.u_64_value());
      }
      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);
        const Uint32 *buf = (Uint32 *)r.aRef();
        int k = (length+31)/32;
        while (k > 0 && (buf[--k] == 0));
        out.print("%X", buf[k]);
        while (k > 0)
          out.print("%.8X", buf[--k]);
      }
      break;
    case NdbDictionary::Column::Unsigned:
+1 −1
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@ operator <<(class NdbOut& ndbout, const NDBT_Table & tab)
  ndbout << "Length of frm data: " << tab.getFrmLength() << endl;
  ndbout << "Row Checksum: " << tab.getRowChecksumIndicator() << endl;
  ndbout << "Row GCI: " << tab.getRowGCIIndicator() << endl;
  ndbout << "SingleUserMode: " << tab.getSingleUserMode() << endl;
  ndbout << "SingleUserMode: " << (Uint32) tab.getSingleUserMode() << endl;

  //<< ((tab.getTupleKey() == TupleId) ? " tupleid" : "") <<endl;
  ndbout << "TableStatus: ";