diff options
author | tomas@whalegate.ndb.mysql.com <> | 2007-08-27 15:40:49 +0200 |
---|---|---|
committer | tomas@whalegate.ndb.mysql.com <> | 2007-08-27 15:40:49 +0200 |
commit | e1f827da84e7d024ce33bf8c0899f92183fae7fc (patch) | |
tree | 959ae6879729a10a8a436fe9fb2902bbb9f30f31 /sql/field.cc | |
parent | 857a157c3ca4a5fcc4c66667155da31ca17b099b (diff) | |
download | mariadb-git-e1f827da84e7d024ce33bf8c0899f92183fae7fc.tar.gz |
Bug#29549 rpl_ndb_myisam2ndb,rpl_ndb_innodb2ndb failed on Solaris for pack_length issue
Diffstat (limited to 'sql/field.cc')
-rw-r--r-- | sql/field.cc | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/sql/field.cc b/sql/field.cc index 49ffc6a252e..3a90d605b86 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -7622,6 +7622,13 @@ uchar *Field_blob::pack(uchar *to, const uchar *from, uint max_length) ptr= (uchar*) from; } else +#ifdef WORDS_BIGENDIAN + if (table->s->db_low_byte_first) + { + store_length(to,packlength,length,0); + } + else +#endif memcpy(to,from,packlength); // Copy length if (length) { @@ -7658,8 +7665,17 @@ const uchar *Field_blob::unpack(uchar *to, const uchar *Field_blob::unpack(uchar *to, const uchar *from) { - memcpy(to,from,packlength); uint32 length=get_length(from); +#ifdef WORDS_BIGENDIAN + if (table->s->db_low_byte_first) + { + store_length(to,packlength,length,1); + } + else +#endif + { + memcpy(to,from,packlength); + } from+=packlength; if (length) memcpy_fixed(to+packlength, &from, sizeof(from)); |