List:Commits« Previous MessageNext Message »
From:lzhou Date:July 10 2007 12:58pm
Subject:bk commit into 5.1 tree (lzhou:1.2552) BUG#27543
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of zhl. When zhl does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@stripped, 2007-07-10 10:58:25+00:00, lzhou@dev3-63.(none) +15 -0
  Bug#27543 Backup and Restore can compatible with different endians for blob attribute

  mysql-test/r/ndb_restore_blob.result@stripped, 2007-07-10 10:58:18+00:00,
lzhou@dev3-63.(none) +38 -0
    Test result for ndb_restore_blob

  mysql-test/r/ndb_restore_blob.result@stripped, 2007-07-10 10:58:18+00:00,
lzhou@dev3-63.(none) +0 -0

  mysql-test/std_data/ndb_backup51_blob_be/BACKUP-1-0.1.Data@stripped, 2007-07-10
10:58:18+00:00, lzhou@dev3-63.(none) +397 -0
    Backup file for big endian

  mysql-test/std_data/ndb_backup51_blob_be/BACKUP-1-0.1.Data@stripped, 2007-07-10
10:58:18+00:00, lzhou@dev3-63.(none) +0 -0

  mysql-test/std_data/ndb_backup51_blob_be/BACKUP-1-0.2.Data@stripped, 2007-07-10
10:58:18+00:00, lzhou@dev3-63.(none) +413 -0
    Backup file for big endian

  mysql-test/std_data/ndb_backup51_blob_be/BACKUP-1-0.2.Data@stripped, 2007-07-10
10:58:18+00:00, lzhou@dev3-63.(none) +0 -0

  mysql-test/std_data/ndb_backup51_blob_be/BACKUP-1.1.ctl@stripped, 2007-07-10 10:58:18+00:00,
lzhou@dev3-63.(none) +235 -0
    Backup file for big endian

  mysql-test/std_data/ndb_backup51_blob_be/BACKUP-1.1.ctl@stripped, 2007-07-10 10:58:18+00:00,
lzhou@dev3-63.(none) +0 -0

  mysql-test/std_data/ndb_backup51_blob_be/BACKUP-1.1.log@stripped, 2007-07-10 10:58:18+00:00,
lzhou@dev3-63.(none) +2 -0
    Backup file for big endian

  mysql-test/std_data/ndb_backup51_blob_be/BACKUP-1.1.log@stripped, 2007-07-10 10:58:18+00:00,
lzhou@dev3-63.(none) +0 -0

  mysql-test/std_data/ndb_backup51_blob_be/BACKUP-1.2.ctl@stripped, 2007-07-10 10:58:18+00:00,
lzhou@dev3-63.(none) +235 -0
    Backup file for big endian

  mysql-test/std_data/ndb_backup51_blob_be/BACKUP-1.2.ctl@stripped, 2007-07-10 10:58:18+00:00,
lzhou@dev3-63.(none) +0 -0

  mysql-test/std_data/ndb_backup51_blob_be/BACKUP-1.2.log@stripped, 2007-07-10 10:58:18+00:00,
lzhou@dev3-63.(none) +2 -0
    Backup file for big endian

  mysql-test/std_data/ndb_backup51_blob_be/BACKUP-1.2.log@stripped, 2007-07-10 10:58:18+00:00,
lzhou@dev3-63.(none) +0 -0

  mysql-test/std_data/ndb_backup51_blob_le/BACKUP-1-0.1.Data@stripped, 2007-07-10
10:58:18+00:00, lzhou@dev3-63.(none) +408 -0
    Backup file for little endian

  mysql-test/std_data/ndb_backup51_blob_le/BACKUP-1-0.1.Data@stripped, 2007-07-10
10:58:18+00:00, lzhou@dev3-63.(none) +0 -0

  mysql-test/std_data/ndb_backup51_blob_le/BACKUP-1-0.2.Data@stripped, 2007-07-10
10:58:18+00:00, lzhou@dev3-63.(none) +403 -0
    Backup file for little endian

  mysql-test/std_data/ndb_backup51_blob_le/BACKUP-1-0.2.Data@stripped, 2007-07-10
10:58:18+00:00, lzhou@dev3-63.(none) +0 -0

  mysql-test/std_data/ndb_backup51_blob_le/BACKUP-1.1.ctl@stripped, 2007-07-10 10:58:18+00:00,
lzhou@dev3-63.(none) +235 -0
    Backup file for little endian

  mysql-test/std_data/ndb_backup51_blob_le/BACKUP-1.1.ctl@stripped, 2007-07-10 10:58:18+00:00,
lzhou@dev3-63.(none) +0 -0

  mysql-test/std_data/ndb_backup51_blob_le/BACKUP-1.1.log@stripped, 2007-07-10 10:58:18+00:00,
lzhou@dev3-63.(none) +2 -0
    Backup file for little endian

  mysql-test/std_data/ndb_backup51_blob_le/BACKUP-1.1.log@stripped, 2007-07-10 10:58:18+00:00,
lzhou@dev3-63.(none) +0 -0

  mysql-test/std_data/ndb_backup51_blob_le/BACKUP-1.2.ctl@stripped, 2007-07-10 10:58:18+00:00,
lzhou@dev3-63.(none) +235 -0
    Backup file for little endian

  mysql-test/std_data/ndb_backup51_blob_le/BACKUP-1.2.ctl@stripped, 2007-07-10 10:58:18+00:00,
lzhou@dev3-63.(none) +0 -0

  mysql-test/std_data/ndb_backup51_blob_le/BACKUP-1.2.log@stripped, 2007-07-10 10:58:19+00:00,
lzhou@dev3-63.(none) +2 -0
    Backup file for little endian

  mysql-test/std_data/ndb_backup51_blob_le/BACKUP-1.2.log@stripped, 2007-07-10 10:58:19+00:00,
lzhou@dev3-63.(none) +0 -0

  mysql-test/t/ndb_restore_blob.test@stripped, 2007-07-10 10:58:19+00:00, lzhou@dev3-63.(none)
+34 -0
    Test case for ndb_restore_blob

  mysql-test/t/ndb_restore_blob.test@stripped, 2007-07-10 10:58:19+00:00, lzhou@dev3-63.(none)
+0 -0

  storage/ndb/tools/restore/Restore.cpp@stripped, 2007-07-10 10:58:18+00:00,
lzhou@dev3-63.(none) +14 -0
    Convert blob length stored in main table

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	lzhou
# Host:	dev3-63.(none)
# Root:	/home/zhl/mysql/mysql-5.1/bug27543
--- New file ---
+++ mysql-test/r/ndb_restore_blob.result	07/07/10 10:58:18
USE test;
DROP TABLE IF EXISTS t1;
SHOW TABLES;
Tables_in_test
t1
SHOW CREATE TABLE t1;
Table	Create Table
t1	CREATE TABLE `t1` (
  `t_int` int(10) unsigned NOT NULL,
  `t_blob` blob,
  `t_text` text,
  PRIMARY KEY (`t_int`)
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
SELECT * FROM t1;
t_int	t_blob	t_text
1	a123456789b123456789c123456789d123456789e123456789f123456789g123456789	a123456789b123456789c123456789d123456789e123456789f123456789g123456789
SELECT COUNT(*) FROM t1;
COUNT(*)
1
DROP TABLE t1;
SHOW TABLES;
Tables_in_test
t1
SHOW CREATE TABLE t1;
Table	Create Table
t1	CREATE TABLE `t1` (
  `t_int` int(10) unsigned NOT NULL,
  `t_blob` blob,
  `t_text` text,
  PRIMARY KEY (`t_int`)
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
SELECT * FROM t1;
t_int	t_blob	t_text
1	a123456789b123456789c123456789d123456789e123456789f123456789g123456789	a123456789b123456789c123456789d123456789e123456789f123456789g123456789
SELECT COUNT(*) FROM t1;
COUNT(*)
1
DROP TABLE t1;

--- New file ---
+++ mysql-test/std_data/ndb_backup51_blob_be/BACKUP-1-0.1.Data	07/07/10 10:58:18
NDBBCKUP


_





þC




·
--- New file ---
+++ mysql-test/std_data/ndb_backup51_blob_be/BACKUP-1-0.2.Data	07/07/10 10:58:18
NDBBCKUP
ÿÿ77
ÿ

I
þ

&
ÿ:
[[
ÿÿ






--- New file ---
+++ mysql-test/std_data/ndb_backup51_blob_be/BACKUP-1.1.ctl	07/07/10 10:58:18
NDBBCKUP

NDB$TNODE


°0c'OL6F%
lT@´HþN+¡¸'{/f?)f.5ªRldΐZPK»"P¯DDDDDDDtȔ=¨¬tҞ^ypNxܾ?02+v£
»mM«gk}`ePw}R1FKUu±¶q²©L¹fÿ"ߢ¸ÿ<­h>>!@~2{O/r²b9l
MGic~~c³r9´CA2':3²¢ ¾Wh-ʏۅqi·v&&Fu
server_id

start_pos





B¾sr9$SHpl0Žw>¶1þmx{2W

""""""¢¿Lɇ"
(»c	F83




Z

--- New file ---
+++ mysql-test/std_data/ndb_backup51_blob_be/BACKUP-1.1.log	07/07/10 10:58:18
NDBBCKUP
--- New file ---
+++ mysql-test/std_data/ndb_backup51_blob_be/BACKUP-1.2.ctl	07/07/10 10:58:18
NDBBCKUP

NDB$TNODE


°0c'OL6F%
lT@´HþN+¡¸'{/f?)f.5ªRldΐZPK»"P¯DDDDDDDtȔ=¨¬tҞ^ypNxܾ?02+v£
»mM«gk}`ePw}R1FKUu±¶q²©L¹fÿ"ߢ¸ÿ<­h>>!@~2{O/r²b9l
MGic~~c³r9´CA2':3²¢ ¾Wh-ʏۅqi·v&&Fu
server_id

start_pos





B¾sr9$SHpl0Žw>¶1þmx{2W

""""""¢¿Lɇ"
(»c	F83




Z

--- New file ---
+++ mysql-test/std_data/ndb_backup51_blob_be/BACKUP-1.2.log	07/07/10 10:58:18
NDBBCKUP
--- New file ---
+++ mysql-test/std_data/ndb_backup51_blob_le/BACKUP-1-0.1.Data	07/07/10 10:58:18
NDBBCKUP
ÿÿ

6


ÿÿ

ÿÿ





ÿÿ

--- New file ---
+++ mysql-test/std_data/ndb_backup51_blob_le/BACKUP-1-0.2.Data	07/07/10 10:58:18
NDBBCKUP
ÿÿ


ÿÿÿ
ÿ
ÿÿ




þÿÿ
þ
-
ÿÿ

--- New file ---
+++ mysql-test/std_data/ndb_backup51_blob_le/BACKUP-1.1.ctl	07/07/10 10:58:18
NDBBCKUP

NDB$TNODE


°0c'OL6F%
lT@´HþN+¡¸'{/f?)f.5ªRldΐZPK»"P¯DDDDDDDtȔ=¨¬tҞ^ypNxܾ?02+v£
»mM«gk}`ePw}R1FKUu±¶q²©L¹fÿ"ߢ¸ÿ<­h>>!@~2{O/r²b9l
MGic~~c³r9´CA2':3²¢ ¾Wh-ʏۅqi·v&&Fu
server_id

start_pos





B¾sr9$SHpl0Žw>¶1þmx{2W

""""""¢¿Lɇ"
(»c	F83




Z

--- New file ---
+++ mysql-test/std_data/ndb_backup51_blob_le/BACKUP-1.1.log	07/07/10 10:58:18
NDBBCKUP
--- New file ---
+++ mysql-test/std_data/ndb_backup51_blob_le/BACKUP-1.2.ctl	07/07/10 10:58:18
NDBBCKUP

NDB$TNODE


°0c'OL6F%
lT@´HþN+¡¸'{/f?)f.5ªRldΐZPK»"P¯DDDDDDDtȔ=¨¬tҞ^ypNxܾ?02+v£
»mM«gk}`ePw}R1FKUu±¶q²©L¹fÿ"ߢ¸ÿ<­h>>!@~2{O/r²b9l
MGic~~c³r9´CA2':3²¢ ¾Wh-ʏۅqi·v&&Fu
server_id

start_pos





B¾sr9$SHpl0Žw>¶1þmx{2W

""""""¢¿Lɇ"
(»c	F83




Z

--- New file ---
+++ mysql-test/std_data/ndb_backup51_blob_le/BACKUP-1.2.log	07/07/10 10:58:19
NDBBCKUP
--- New file ---
+++ mysql-test/t/ndb_restore_blob.test	07/07/10 10:58:19
-- source include/have_ndb.inc
-- source include/ndb_default_cluster.inc
-- source include/not_embedded.inc

#
# Bug #27543 restore of backup from different endian does not work for blob column
# Structure: create table t1 (t_int int unsigned primary key, t_blob blob, t_text text)
engine ndb;
# Restore backup files (from little endian)
#

--disable_warnings
USE test;
DROP TABLE IF EXISTS t1;
--enable_warnings
--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults -b 1 -n 1 -m -r
$MYSQL_TEST_DIR/std_data/ndb_backup51_blob_le >> $NDB_TOOLS_OUTPUT
--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults -b 1 -n 2 -r
$MYSQL_TEST_DIR/std_data/ndb_backup51_blob_le >> $NDB_TOOLS_OUTPUT
SHOW TABLES;
SHOW CREATE TABLE t1;
SELECT * FROM t1;
SELECT COUNT(*) FROM t1;

#
# Restore backup files (from big endian)
#

DROP TABLE t1;
--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults -b 1 -n 1 -m -r
$MYSQL_TEST_DIR/std_data/ndb_backup51_blob_be >> $NDB_TOOLS_OUTPUT
--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults -b 1 -n 2 -r
$MYSQL_TEST_DIR/std_data/ndb_backup51_blob_be >> $NDB_TOOLS_OUTPUT
SHOW TABLES;
SHOW CREATE TABLE t1;
SELECT * FROM t1;
SELECT COUNT(*) FROM t1;

DROP TABLE t1;


--- 1.50/storage/ndb/tools/restore/Restore.cpp	2007-07-10 10:58:45 +00:00
+++ 1.51/storage/ndb/tools/restore/Restore.cpp	2007-07-10 10:58:45 +00:00
@@ -664,6 +664,20 @@ RestoreDataIterator::getNextTuple(int  &
      */
     const Uint32 arraySize = sz / (attr_desc->size / 8);
     assert(arraySize <= attr_desc->arraySize);
+
+    //convert the length of blob(v1) and text(v1)
+    if(!m_hostByteOrder
+        && (attr_desc->m_column->getType() == NdbDictionary::Column::Blob
+           || attr_desc->m_column->getType() == NdbDictionary::Column::Text)
+        && attr_desc->m_column->getArrayType() ==
NdbDictionary::Column::ArrayTypeFixed)
+    {
+      char* p = (char*)&attr_data->u_int64_value[0];
+      Uint64 x;
+      memcpy(&x, p, sizeof(Uint64));
+      x = Twiddle64(x);
+      memcpy(p, &x, sizeof(Uint64));
+    }
+
     if(!Twiddle(attr_desc, attr_data, attr_desc->arraySize))
       {
 	res = -1;
Thread
bk commit into 5.1 tree (lzhou:1.2552) BUG#27543lzhou10 Jul