From: lzhou Date: August 7 2007 6:08pm Subject: bk commit into 5.0 tree (lzhou:1.2477) BUG#29674 List-Archive: http://lists.mysql.com/commits/32195 X-Bug: 29674 Message-Id: <200708071808.l77I8CI5020081@dev3-63.dev.cn.tlan> Below is the list of changes that have just been committed into a local 5.0 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-08-07 18:07:57+00:00, lzhou@dev3-63.(none) +17 -0 BUG#29674 Restore/backup are endian compatible in 5.0 mysql-test/r/ndb_restore_different_endian_data.result@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +200 -0 Test case result for restore data from different endian mysql-test/r/ndb_restore_different_endian_data.result@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +0 -0 mysql-test/std_data/ndb_backup50_data_be/BACKUP-1-0.1.Data@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +1066 -0 Test case data mysql-test/std_data/ndb_backup50_data_be/BACKUP-1-0.1.Data@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +0 -0 mysql-test/std_data/ndb_backup50_data_be/BACKUP-1-0.2.Data@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +393 -0 Test case data mysql-test/std_data/ndb_backup50_data_be/BACKUP-1-0.2.Data@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +0 -0 mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.1.ctl@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +549 -0 Test case data mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.1.ctl@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +0 -0 mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.1.log@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +2 -0 Test case data mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.1.log@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +0 -0 mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.2.ctl@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +549 -0 Test case data mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.2.ctl@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +0 -0 mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.2.log@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +2 -0 Test case data mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.2.log@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +0 -0 mysql-test/std_data/ndb_backup50_data_le/BACKUP-1-0.1.Data@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +394 -0 Test case data mysql-test/std_data/ndb_backup50_data_le/BACKUP-1-0.1.Data@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +0 -0 mysql-test/std_data/ndb_backup50_data_le/BACKUP-1-0.2.Data@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +1065 -0 Test case data mysql-test/std_data/ndb_backup50_data_le/BACKUP-1-0.2.Data@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +0 -0 mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.1.ctl@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +549 -0 Test case data mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.1.ctl@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +0 -0 mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.1.log@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +2 -0 Test case data mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.1.log@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +0 -0 mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.2.ctl@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +549 -0 Test case data mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.2.ctl@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +0 -0 mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.2.log@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +2 -0 Test case data mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.2.log@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +0 -0 mysql-test/t/ndb_restore_different_endian_data.test@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +185 -0 Test case for restore data from different endian mysql-test/t/ndb_restore_different_endian_data.test@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +0 -0 ndb/src/ndbapi/NdbDictionaryImpl.cpp@stripped, 2007-08-07 18:07:39+00:00, lzhou@dev3-63.(none) +10 -3 Twiddle the "replicaCount" and "fragCount" variable when restore data from different endian. ndb/src/ndbapi/NdbDictionaryImpl.hpp@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +2 -1 Add byte order variable ndb/tools/restore/Restore.cpp@stripped, 2007-08-07 18:07:40+00:00, lzhou@dev3-63.(none) +32 -1 Twiddle blob, datatime,timestamp when do restore in different endian. # 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.0/bug29674 --- New file --- +++ mysql-test/r/ndb_restore_different_endian_data.result 07/08/07 18:07:40 USE test; DROP TABLE IF EXISTS t_num,t_datetime,t_string_1,t_string_2,t_gis; SHOW TABLES; Tables_in_test t_gis t_string_1 t_num t_string_2 t_datetime SHOW CREATE TABLE t_num; Table Create Table t_num CREATE TABLE `t_num` ( `t_pk` int(11) NOT NULL, `t_bit` bit(64) default NULL, `t_tinyint` tinyint(4) default NULL, `t_bool` tinyint(1) default NULL, `t_smallint` smallint(6) default NULL, `t_mediumint` mediumint(9) default NULL, `t_int` int(11) default NULL, `t_bigint` bigint(20) default NULL, `t_float` float default NULL, `t_double` double default NULL, `t_decimal` decimal(37,16) default NULL, PRIMARY KEY (`t_pk`) ) ENGINE=ndbcluster DEFAULT CHARSET=latin1 SHOW CREATE TABLE t_datetime; Table Create Table t_datetime CREATE TABLE `t_datetime` ( `t_pk` int(11) NOT NULL, `t_date` date default NULL, `t_datetime` datetime default NULL, `t_timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `t_time` time default NULL, `t_year` year(4) default NULL, PRIMARY KEY (`t_pk`) ) ENGINE=ndbcluster DEFAULT CHARSET=latin1 SHOW CREATE TABLE t_string_1; Table Create Table t_string_1 CREATE TABLE `t_string_1` ( `t_pk` int(11) NOT NULL, `t_char` char(255) default NULL, `t_varchar` varchar(655) default NULL, `t_binary` binary(255) default NULL, `t_varbinary` varbinary(6553) default NULL, PRIMARY KEY (`t_pk`) ) ENGINE=ndbcluster DEFAULT CHARSET=latin1 SHOW CREATE TABLE t_string_2; Table Create Table t_string_2 CREATE TABLE `t_string_2` ( `t_pk` int(11) NOT NULL, `t_tinyblob` tinyblob, `t_tinytext` tinytext, `t_blob` blob, `t_text` text, `t_mediumblob` mediumblob, `t_mediumtext` mediumtext, `t_longblob` longblob, `t_longtext` longtext, `t_enum` enum('001001','001004','001010','001018','001019','001020','001021','001027','001028','001029','001030','001031','001100','002003','002004','002005','002007') NOT NULL default '001001', `t_set` set('a','B') default NULL, PRIMARY KEY (`t_pk`) ) ENGINE=ndbcluster DEFAULT CHARSET=latin1 SHOW CREATE TABLE t_gis; Table Create Table t_gis CREATE TABLE `t_gis` ( `t_pk` int(11) NOT NULL, `t_point` point default NULL, `t_linestring` linestring default NULL, `t_polygon` polygon default NULL, `t_multipoint` multipoint default NULL, `t_multilinestring` multilinestring default NULL, `t_multipolygon` multipolygon default NULL, `t_geometrycollection` geometrycollection default NULL, `t_geometry` geometry default NULL, PRIMARY KEY (`t_pk`) ) ENGINE=ndbcluster DEFAULT CHARSET=latin1 SELECT * FROM t_datetime; t_pk t_date t_datetime t_timestamp t_time t_year 1 1998-01-01 2006-08-10 10:11:12 2002-10-29 16:51:06 19:38:34 2155 SELECT t_pk,hex(t_bit),t_tinyint,t_bool,t_smallint,t_mediumint,t_int,t_bigint,t_float,t_double,t_decimal FROM t_num; t_pk hex(t_bit) t_tinyint t_bool t_smallint t_mediumint t_int t_bigint t_float t_double t_decimal 1 AAAAAAAAAAAAAAAA 125 1 32765 8388606 2147483647 9223372036854775807 1e+20 1e+150 331.0000000000000000 SELECT t_pk,t_char,t_varchar,hex(t_binary),hex(t_varbinary) FROM t_string_1; t_pk t_char t_varchar hex(t_binary) hex(t_varbinary) 1 abcdefghijklmn abcdefghijklmnabcdefghijklmnabcdefghijklmnabcdefghijklmn 612020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 4100 SELECT * FROM t_string_2; t_pk t_tinyblob t_tinytext t_blob t_text t_mediumblob t_mediumtext t_longblob t_longtext t_enum t_set 1 abcdefghijklmnabcdefghijklmn abcdefghijklmnabcdefghijklmn a123456789b123456789c123456789d123456789e123456789f123456789g123456789 a123456789b123456789c123456789d123456789e123456789f123456789g123456789 a123456789b123456789c123456789d123456789e123456789f123456789g123456789 a123456789b123456789c123456789d123456789e123456789f123456789g123456789 a123456789b123456789c123456789d123456789e123456789f123456789g123456789 a123456789b123456789c123456789d123456789e123456789f123456789g123456789 001001 a SELECT AsText(t_point), AsText(t_linestring),AsText(t_polygon) FROM t_gis ORDER by t_pk; AsText(t_point) AsText(t_linestring) AsText(t_polygon) POINT(10 10) LINESTRING(10 10,20 10,20 20,10 20,10 10) POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10)) POINT(10 20) LINESTRING(10 10,40 10) POLYGON((0 0,30 0,30 30,0 0)) SELECT AsText(t_multipoint), AsText(t_multilinestring),AsText(t_multipolygon) FROM t_gis ORDER by t_pk; AsText(t_multipoint) AsText(t_multilinestring) AsText(t_multipolygon) MULTIPOINT(1 1,11 11,11 21,21 21) MULTILINESTRING((10 48,10 21,10 0)) MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18))) MULTIPOINT(3 6,4 10) MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7)) MULTIPOLYGON(((0 3,3 3,3 0,0 3))) SELECT AsText(t_geometrycollection), AsText(t_geometry) FROM t_gis ORDER by t_pk; AsText(t_geometrycollection) AsText(t_geometry) GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10)) MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18))) GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9)) GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9)) DROP TABLE t_num,t_datetime,t_string_1,t_string_2,t_gis; SHOW TABLES; Tables_in_test t_gis t_string_1 t_num t_string_2 t_datetime SHOW CREATE TABLE t_num; Table Create Table t_num CREATE TABLE `t_num` ( `t_pk` int(11) NOT NULL, `t_bit` bit(64) default NULL, `t_tinyint` tinyint(4) default NULL, `t_bool` tinyint(1) default NULL, `t_smallint` smallint(6) default NULL, `t_mediumint` mediumint(9) default NULL, `t_int` int(11) default NULL, `t_bigint` bigint(20) default NULL, `t_float` float default NULL, `t_double` double default NULL, `t_decimal` decimal(37,16) default NULL, PRIMARY KEY (`t_pk`) ) ENGINE=ndbcluster DEFAULT CHARSET=latin1 SHOW CREATE TABLE t_datetime; Table Create Table t_datetime CREATE TABLE `t_datetime` ( `t_pk` int(11) NOT NULL, `t_date` date default NULL, `t_datetime` datetime default NULL, `t_timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `t_time` time default NULL, `t_year` year(4) default NULL, PRIMARY KEY (`t_pk`) ) ENGINE=ndbcluster DEFAULT CHARSET=latin1 SHOW CREATE TABLE t_string_1; Table Create Table t_string_1 CREATE TABLE `t_string_1` ( `t_pk` int(11) NOT NULL, `t_char` char(255) default NULL, `t_varchar` varchar(655) default NULL, `t_binary` binary(255) default NULL, `t_varbinary` varbinary(6553) default NULL, PRIMARY KEY (`t_pk`) ) ENGINE=ndbcluster DEFAULT CHARSET=latin1 SHOW CREATE TABLE t_string_2; Table Create Table t_string_2 CREATE TABLE `t_string_2` ( `t_pk` int(11) NOT NULL, `t_tinyblob` tinyblob, `t_tinytext` tinytext, `t_blob` blob, `t_text` text, `t_mediumblob` mediumblob, `t_mediumtext` mediumtext, `t_longblob` longblob, `t_longtext` longtext, `t_enum` enum('001001','001004','001010','001018','001019','001020','001021','001027','001028','001029','001030','001031','001100','002003','002004','002005','002007') NOT NULL default '001001', `t_set` set('a','B') default NULL, PRIMARY KEY (`t_pk`) ) ENGINE=ndbcluster DEFAULT CHARSET=latin1 SHOW CREATE TABLE t_gis; Table Create Table t_gis CREATE TABLE `t_gis` ( `t_pk` int(11) NOT NULL, `t_point` point default NULL, `t_linestring` linestring default NULL, `t_polygon` polygon default NULL, `t_multipoint` multipoint default NULL, `t_multilinestring` multilinestring default NULL, `t_multipolygon` multipolygon default NULL, `t_geometrycollection` geometrycollection default NULL, `t_geometry` geometry default NULL, PRIMARY KEY (`t_pk`) ) ENGINE=ndbcluster DEFAULT CHARSET=latin1 SELECT * FROM t_datetime; t_pk t_date t_datetime t_timestamp t_time t_year 1 1998-01-01 2006-08-10 10:11:12 2002-10-29 16:51:06 19:38:34 2155 SELECT t_pk,hex(t_bit),t_tinyint,t_bool,t_smallint,t_mediumint,t_int,t_bigint,t_float,t_double,t_decimal FROM t_num; t_pk hex(t_bit) t_tinyint t_bool t_smallint t_mediumint t_int t_bigint t_float t_double t_decimal 1 AAAAAAAAAAAAAAAA 125 1 32765 8388606 2147483647 9223372036854775807 1e+20 1e+150 331.0000000000000000 SELECT t_pk,t_char,t_varchar,hex(t_binary),hex(t_varbinary) FROM t_string_1; t_pk t_char t_varchar hex(t_binary) hex(t_varbinary) 1 abcdefghijklmn abcdefghijklmnabcdefghijklmnabcdefghijklmnabcdefghijklmn 612020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 4100 SELECT * FROM t_string_2; t_pk t_tinyblob t_tinytext t_blob t_text t_mediumblob t_mediumtext t_longblob t_longtext t_enum t_set 1 abcdefghijklmnabcdefghijklmn abcdefghijklmnabcdefghijklmn a123456789b123456789c123456789d123456789e123456789f123456789g123456789 a123456789b123456789c123456789d123456789e123456789f123456789g123456789 a123456789b123456789c123456789d123456789e123456789f123456789g123456789 a123456789b123456789c123456789d123456789e123456789f123456789g123456789 a123456789b123456789c123456789d123456789e123456789f123456789g123456789 a123456789b123456789c123456789d123456789e123456789f123456789g123456789 001001 a SELECT AsText(t_point), AsText(t_linestring),AsText(t_polygon) FROM t_gis ORDER by t_pk; AsText(t_point) AsText(t_linestring) AsText(t_polygon) POINT(10 10) LINESTRING(10 10,20 10,20 20,10 20,10 10) POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10)) POINT(10 20) LINESTRING(10 10,40 10) POLYGON((0 0,30 0,30 30,0 0)) SELECT AsText(t_multipoint), AsText(t_multilinestring),AsText(t_multipolygon) FROM t_gis ORDER by t_pk; AsText(t_multipoint) AsText(t_multilinestring) AsText(t_multipolygon) MULTIPOINT(1 1,11 11,11 21,21 21) MULTILINESTRING((10 48,10 21,10 0)) MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18))) MULTIPOINT(3 6,4 10) MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7)) MULTIPOLYGON(((0 3,3 3,3 0,0 3))) SELECT AsText(t_geometrycollection), AsText(t_geometry) FROM t_gis ORDER by t_pk; AsText(t_geometrycollection) AsText(t_geometry) GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10)) MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18))) GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9)) GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9)) DROP TABLE t_num,t_datetime,t_string_1,t_string_2,t_gis; --- New file --- +++ mysql-test/std_data/ndb_backup50_data_be/BACKUP-1-0.1.Data 07/08/07 18:07:40 NDBBCKUP АM@ 123456789e123456789f123456789g123456789  А · у ° O ∙_ √ b № --- New file --- +++ mysql-test/std_data/ndb_backup50_data_be/BACKUP-1-0.2.Data 07/08/07 18:07:40 NDBBCKUP ¤   ─ ■ є  x ∙ . √9 )∙) ∙∙ --- New file --- +++ mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.1.ctl 07/08/07 18:07:40 NDBBCKUP NDB$TNODE ╓г╙D┌ыP'G┐T'?L┴с∙╞ЎbDЗ╥:╝Д▄=wЧ{я╖%ф▌Єлаn╟└Ў|└MЫЮq ║Ю^БкЭ╨├0 ├0 ├0 ├0 Л^№▌Xiя┘ЎNшnятъмwг╖]▀▒бs─ўwГh:Qr╝ЩЖaЖaЖaf▐l╘╖]├6▒рcОKjIи╠v▒│·чaс█═├ЎЪ└Бл·Пpс╤= cЕ"*кЕ▒ЬиqQВHЗв┘0ЙiM#.'√hм·╣╡l╥rYАЦъe2Тj<$Q$*$_FЁхс╕AА╧/:tТ╚ї<Пъ┴юK╨PмРhASKВ─╛└Kgс t_polygon NDB$TNODE ДbЁO[ГQ─╞,0%╞/N─b<:╓рD╥bу)░!╞'bм ╡lРЇGUyT5Gо6rЭ╤э┬шv[TUEUOфJ"█Б▓lС?NЦм,fNVЬ<╖Т;3w╔|┘ЙЛф.╥uСоНЁn,yЦuЭ,9yцdЩ~K/ NDB$TNODE i┤JС]їо<ПЗщ-:N&ж╕tбDЁ}2єЄўBV!YИ░у=ЇБ9Т5gа╩б_gs│<╜Э:H`DDDDDDDЇЧ єтЪ╡Д(g3XяKш┴ЁфtxжЫюўCь}l№o ?"""""""""""""вfДШЮП╞7ўw┼E▐tЧ▀9ш5▌бI ь╞@o/╙V!эhВЦrV╢╛¤Н]Bщэ╡9лWду╦,G aС>d╣ЭxКtt5═ЄG°ИьЖ╧йTэ6ьяц▓о(яXЫгБЩY&hЕЗ╧ОU╨5Бi╝║vП=└П▐╓^dtMа╦2║jвЧ5t▌A)аёцВh/ t_varchar NDB$TNODE °ц▓ъD`ж╫<Ы┴qг╒ 0Є№Ц∙├ C╣ К╣Йэи█Х╕3A,Б'Й╘╞Ўх@▀,┘n╠СБч8цуОй ╢$╨жжоЫщпВ·[╗╒мы^╒╬H! NDB$TNODE t_tinyint t_decimal --- New file --- +++ mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.1.log 07/08/07 18:07:40 NDBBCKUP --- New file --- +++ mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.2.ctl 07/08/07 18:07:40 NDBBCKUP NDB$TNODE ╓г╙D┌ыP'G┐T'?L┴с∙╞ЎbDЗ╥:╝Д▄=wЧ{я╖%ф▌Єлаn╟└Ў|└MЫЮq ║Ю^БкЭ╨├0 ├0 ├0 ├0 Л^№▌Xiя┘ЎNшnятъмwг╖]▀▒бs─ўwГh:Qr╝ЩЖaЖaЖaf▐l╘╖]├6▒рcОKjIи╠v▒│·чaс█═├ЎЪ└Бл·Пpс╤= cЕ"*кЕ▒ЬиqQВHЗв┘0ЙiM#.'√hм·╣╡l╥rYАЦъe2Тj<$Q$*$_FЁхс╕AА╧/:tТ╚ї<Пъ┴юK╨PмРhASKВ─╛└Kgс t_polygon NDB$TNODE ДbЁO[ГQ─╞,0%╞/N─b<:╓рD╥bу)░!╞'bм ╡lРЇGUyT5Gо6rЭ╤э┬шv[TUEUOфJ"█Б▓lС?NЦм,fNVЬ<╖Т;3w╔|┘ЙЛф.╥uСоНЁn,yЦuЭ,9yцdЩ~K/ NDB$TNODE i┤JС]їо<ПЗщ-:N&ж╕tбDЁ}2єЄўBV!YИ░у=ЇБ9Т5gа╩б_gs│<╜Э:H`DDDDDDDЇЧ єтЪ╡Д(g3XяKш┴ЁфtxжЫюўCь}l№o ?"""""""""""""вfДШЮП╞7ўw┼E▐tЧ▀9ш5▌бI ь╞@o/╙V!эhВЦrV╢╛¤Н]Bщэ╡9лWду╦,G aС>d╣ЭxКtt5═ЄG°ИьЖ╧йTэ6ьяц▓о(яXЫгБЩY&hЕЗ╧ОU╨5Бi╝║vП=└П▐╓^dtMа╦2║jвЧ5t▌A)аёцВh/ t_varchar NDB$TNODE °ц▓ъD`ж╫<Ы┴qг╒ 0Є№Ц∙├ C╣ К╣Йэи█Х╕3A,Б'Й╘╞Ўх@▀,┘n╠СБч8цуОй ╢$╨жжоЫщпВ·[╗╒мы^╒╬H! NDB$TNODE t_tinyint t_decimal --- New file --- +++ mysql-test/std_data/ndb_backup50_data_be/BACKUP-1.2.log 07/08/07 18:07:40 NDBBCKUP --- New file --- +++ mysql-test/std_data/ndb_backup50_data_le/BACKUP-1-0.1.Data 07/08/07 18:07:40 NDBBCKUP √   √ _№ ∙   ∙ .№ °   ° 9√ ·   · у° --- New file --- +++ mysql-test/std_data/ndb_backup50_data_le/BACKUP-1-0.2.Data 07/08/07 18:07:40 NDBBCKUP АM@ 123456789e123456789f123456789g123456789  еееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееее! ееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееее! ееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееее! ееееееее еееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееее! ееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееее! ееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееее! ееееееее еееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееее! еееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееее А ■ №   № g■ ■   ■ Ў        ¤   ¤ `¤ --- New file --- +++ mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.1.ctl 07/08/07 18:07:40 NDBBCKUP NDB$TNODE ╓г╙D┌ыP'G┐T'?L┴с∙╞ЎbDЗ╥:╝Д▄=wЧ{я╖%ф▌Єлаn╟└Ў|└MЫЮq ║Ю^БкЭ╨├0 ├0 ├0 ├0 Л^№▌Xiя┘ЎNшnятъмwг╖]▀▒бs─ўwГh:Qr╝ЩЖaЖaЖaf▐l╘╖]├6▒рcОKjIи╠v▒│·чaс█═├ЎЪ└Бл·Пpс╤= cЕ"*кЕ▒ЬиqQВHЗв┘0ЙiM#.'√hм·╣╡l╥rYАЦъe2Тj<$Q$*$_FЁхс╕AА╧/:tТ╚ї<Пъ┴юK╨PмРhASKВ─╛└Kgс t_polygon NDB$TNODE ДbЁO[ГQ─╞,0%╞/N─b<:╓рD╥bу)░!╞'bм ╡lРЇGUyT5Gо6rЭ╤э┬шv[TUEUOфJ"█Б▓lС?NЦм,fNVЬ<╖Т;3w╔|┘ЙЛф.╥uСоНЁn,yЦuЭ,9yцdЩ~K/ NDB$TNODE i┤JС]їо<ПЗщ-:N&ж╕tбDЁ}2єЄўBV!YИ░у=ЇБ9Т5gа╩б_gs│<╜Э:H`DDDDDDDЇЧ єтЪ╡Д(g3XяKш┴ЁфtxжЫюўCь}l№o ?"""""""""""""вfДШЮП╞7ўw┼E▐tЧ▀9ш5▌бI ь╞@o/╙V!эhВЦrV╢╛¤Н]Bщэ╡9лWду╦,G aС>d╣ЭxКtt5═ЄG°ИьЖ╧йTэ6ьяц▓о(яXЫгБЩY&hЕЗ╧ОU╨5Бi╝║vП=└П▐╓^dtMа╦2║jвЧ5t▌A)аёцВh/ t_varchar NDB$TNODE °ц▓ъD`ж╫<Ы┴qг╒ 0Є№Ц∙├ C╣ К╣Йэи█Х╕3A,Б'Й╘╞Ўх@▀,┘n╠СБч8цуОй ╢$╨жжоЫщпВ·[╗╒мы^╒╬H! NDB$TNODE t_tinyint t_decimal --- New file --- +++ mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.1.log 07/08/07 18:07:40 NDBBCKUP --- New file --- +++ mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.2.ctl 07/08/07 18:07:40 NDBBCKUP NDB$TNODE ╓г╙D┌ыP'G┐T'?L┴с∙╞ЎbDЗ╥:╝Д▄=wЧ{я╖%ф▌Єлаn╟└Ў|└MЫЮq ║Ю^БкЭ╨├0 ├0 ├0 ├0 Л^№▌Xiя┘ЎNшnятъмwг╖]▀▒бs─ўwГh:Qr╝ЩЖaЖaЖaf▐l╘╖]├6▒рcОKjIи╠v▒│·чaс█═├ЎЪ└Бл·Пpс╤= cЕ"*кЕ▒ЬиqQВHЗв┘0ЙiM#.'√hм·╣╡l╥rYАЦъe2Тj<$Q$*$_FЁхс╕AА╧/:tТ╚ї<Пъ┴юK╨PмРhASKВ─╛└Kgс t_polygon NDB$TNODE ДbЁO[ГQ─╞,0%╞/N─b<:╓рD╥bу)░!╞'bм ╡lРЇGUyT5Gо6rЭ╤э┬шv[TUEUOфJ"█Б▓lС?NЦм,fNVЬ<╖Т;3w╔|┘ЙЛф.╥uСоНЁn,yЦuЭ,9yцdЩ~K/ NDB$TNODE i┤JС]їо<ПЗщ-:N&ж╕tбDЁ}2єЄўBV!YИ░у=ЇБ9Т5gа╩б_gs│<╜Э:H`DDDDDDDЇЧ єтЪ╡Д(g3XяKш┴ЁфtxжЫюўCь}l№o ?"""""""""""""вfДШЮП╞7ўw┼E▐tЧ▀9ш5▌бI ь╞@o/╙V!эhВЦrV╢╛¤Н]Bщэ╡9лWду╦,G aС>d╣ЭxКtt5═ЄG°ИьЖ╧йTэ6ьяц▓о(яXЫгБЩY&hЕЗ╧ОU╨5Бi╝║vП=└П▐╓^dtMа╦2║jвЧ5t▌A)аёцВh/ t_varchar NDB$TNODE °ц▓ъD`ж╫<Ы┴qг╒ 0Є№Ц∙├ C╣ К╣Йэи█Х╕3A,Б'Й╘╞Ўх@▀,┘n╠СБч8цуОй ╢$╨жжоЫщпВ·[╗╒мы^╒╬H! NDB$TNODE t_tinyint t_decimal --- New file --- +++ mysql-test/std_data/ndb_backup50_data_le/BACKUP-1.2.log 07/08/07 18:07:40 NDBBCKUP --- New file --- +++ mysql-test/t/ndb_restore_different_endian_data.test 07/08/07 18:07:40 -- 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 # Bug #30024 restore of backup from different endian does not work for datetime column # Bug #28674 backup will run forever if disk full and later write succes will kill ndb node # # The table structure and data list below # # CREATE TABLE t_num ( # t_pk INT PRIMARY KEY, # t_bit BIT(64), # t_tinyint TINYINT, # t_bool BOOL, # t_smallint SMALLINT, # t_mediumint MEDIUMINT, # t_int INT, # t_bigint BIGINT, # t_float FLOAT, # t_double DOUBLE, # t_decimal DECIMAL (37, 16) # ) ENGINE=NDBCLUSTER; # # INSERT INTO t_num VALUE ( # 1, # b'1010101010101010101010101010101010101010101010101010101010101010', # 125, # 1, # 32765, # 8388606, # 2147483647, # 9223372036854775807, # 1e+20, # 1e+150, # '331.0000000000' # ); # # CREATE TABLE t_datetime ( # t_pk INT PRIMARY KEY, # t_date DATE, # t_datetime DATETIME, # t_timestamp TIMESTAMP, # t_time TIME, # t_year YEAR # ) ENGINE=NDBCLUSTER; # # INSERT INTO t_datetime VALUE ( # 1, # '1998-01-01', # '2006-08-10 10:11:12', # 20021029165106, # '19:38:34', # 2155 # ); # # CREATE TABLE t_string_1 ( # t_pk INT PRIMARY KEY, # t_char CHAR(255), # t_varchar VARCHAR(655), # t_binary BINARY(255), # t_varbinary VARBINARY(6553) # ) ENGINE=NDBCLUSTER; # # CREATE TABLE t_string_2 ( # t_pk INT PRIMARY KEY, # t_tinyblob TINYBLOB, # t_tinytext TINYTEXT, # t_blob BLOB, # t_text TEXT, # t_mediumblob MEDIUMBLOB, # t_mediumtext MEDIUMTEXT, # t_longblob LONGBLOB, # t_longtext LONGTEXT, # t_enum ENUM('001001','001004','001010','001018','001019','001020','001021','001027','001028','001029','001030','001031','001100','002003','002004','002005','002007')DEFAULT '001001' NOT NULL, # t_set SET('a','B') # ) ENGINE=NDBCLUSTER; # # INSERT INTO t_string_1 VALUE ( # 1, # 'abcdefghijklmn', # 'abcdefghijklmnabcdefghijklmnabcdefghijklmnabcdefghijklmn', # 0x612020, # 0x4100 # ); # # INSERT INTO t_string_2 VALUE ( # 1, # 'abcdefghijklmnabcdefghijklmn', # 'abcdefghijklmnabcdefghijklmn', # 'a123456789b123456789c123456789d123456789e123456789f123456789g123456789', # 'a123456789b123456789c123456789d123456789e123456789f123456789g123456789', # 'a123456789b123456789c123456789d123456789e123456789f123456789g123456789', # 'a123456789b123456789c123456789d123456789e123456789f123456789g123456789', # 'a123456789b123456789c123456789d123456789e123456789f123456789g123456789', # 'a123456789b123456789c123456789d123456789e123456789f123456789g123456789', # '001001', # 'a' # ); # # CREATE TABLE t_gis ( # t_pk INT PRIMARY KEY, # t_point POINT, # t_linestring LINESTRING, # t_polygon POLYGON, # t_multipoint MULTIPOINT, # t_multilinestring MULTILINESTRING, # t_multipolygon MULTIPOLYGON, # t_geometrycollection GEOMETRYCOLLECTION, # t_geometry GEOMETRY # ) ENGINE=NDBCLUSTER; # # INSERT INTO t_gis VALUE ( # 1, # PointFromText('POINT(10 10)'), # LineStringFromText('LINESTRING(10 10,20 10,20 20,10 20,10 10)'), # PolyFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))'), # MPointFromText('MULTIPOINT(1 1,11 11,11 21,21 21)'), # MLineFromText('MULTILINESTRING((10 48,10 21,10 0))'), # MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))'), # GeomCollFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))'), # MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))') # ); # # INSERT INTO t_gis VALUE ( # 2, # PointFromWKB(AsWKB(PointFromText('POINT(10 20)'))), # LineStringFromWKB(LineString(Point(10, 10), Point(40, 10))), # PolyFromWKB(Polygon(LineString(Point(0, 0), Point(30, 0), Point(30, 30), Point(0, 0)))), # MPointFromWKB(MultiPoint(Point(3, 6), Point(4, 10))), # MLineFromWKB(MultiLineString(LineString(Point(1, 2), Point(3, 5)), LineString(Point(2, 5), Point(5, 8), Point(21, 7)))), # MPolyFromWKB(MultiPolygon(Polygon(LineString(Point(0, 3), Point(3, 3), Point(3, 0), Point(0, 3))))), # GeometryFromWKB(GeometryCollection(Point(44, 6), LineString(Point(3, 6), Point(7, 9)))), # GeometryFromWKB(GeometryCollection(Point(44, 6), LineString(Point(3, 6), Point(7, 9)))) # ); # # Restore backup files (from little endian) # --disable_warnings USE test; DROP TABLE IF EXISTS t_num,t_datetime,t_string_1,t_string_2,t_gis; --enable_warnings --exec $NDB_TOOLS_DIR/ndb_restore --no-defaults -b 1 -n 1 -m -r $MYSQL_TEST_DIR/std_data/ndb_backup50_data_le >> $NDB_TOOLS_OUTPUT --exec $NDB_TOOLS_DIR/ndb_restore --no-defaults -b 1 -n 2 -r $MYSQL_TEST_DIR/std_data/ndb_backup50_data_le >> $NDB_TOOLS_OUTPUT SHOW TABLES; SHOW CREATE TABLE t_num; SHOW CREATE TABLE t_datetime; SHOW CREATE TABLE t_string_1; SHOW CREATE TABLE t_string_2; SHOW CREATE TABLE t_gis; SELECT * FROM t_datetime; SELECT t_pk,hex(t_bit),t_tinyint,t_bool,t_smallint,t_mediumint,t_int,t_bigint,t_float,t_double,t_decimal FROM t_num; SELECT t_pk,t_char,t_varchar,hex(t_binary),hex(t_varbinary) FROM t_string_1; SELECT * FROM t_string_2; SELECT AsText(t_point), AsText(t_linestring),AsText(t_polygon) FROM t_gis ORDER by t_pk; SELECT AsText(t_multipoint), AsText(t_multilinestring),AsText(t_multipolygon) FROM t_gis ORDER by t_pk; SELECT AsText(t_geometrycollection), AsText(t_geometry) FROM t_gis ORDER by t_pk; # # Restore backup files (from big endian) # DROP TABLE t_num,t_datetime,t_string_1,t_string_2,t_gis; --exec $NDB_TOOLS_DIR/ndb_restore --no-defaults -b 1 -n 1 -m -r $MYSQL_TEST_DIR/std_data/ndb_backup50_data_be >> $NDB_TOOLS_OUTPUT --exec $NDB_TOOLS_DIR/ndb_restore --no-defaults -b 1 -n 2 -r $MYSQL_TEST_DIR/std_data/ndb_backup50_data_be >> $NDB_TOOLS_OUTPUT SHOW TABLES; SHOW CREATE TABLE t_num; SHOW CREATE TABLE t_datetime; SHOW CREATE TABLE t_string_1; SHOW CREATE TABLE t_string_2; SHOW CREATE TABLE t_gis; SELECT * FROM t_datetime; SELECT t_pk,hex(t_bit),t_tinyint,t_bool,t_smallint,t_mediumint,t_int,t_bigint,t_float,t_double,t_decimal FROM t_num; SELECT t_pk,t_char,t_varchar,hex(t_binary),hex(t_varbinary) FROM t_string_1; SELECT * FROM t_string_2; SELECT AsText(t_point), AsText(t_linestring),AsText(t_polygon) FROM t_gis ORDER by t_pk; SELECT AsText(t_multipoint), AsText(t_multilinestring),AsText(t_multipolygon) FROM t_gis ORDER by t_pk; SELECT AsText(t_geometrycollection), AsText(t_geometry) FROM t_gis ORDER by t_pk; DROP TABLE t_num,t_datetime,t_string_1,t_string_2,t_gis; --- 1.31/ndb/tools/restore/Restore.cpp 2007-08-07 18:08:12 +00:00 +++ 1.32/ndb/tools/restore/Restore.cpp 2007-08-07 18:08:12 +00:00 @@ -324,7 +324,11 @@ bool RestoreMetaData::parseTableDescriptor(const Uint32 * data, Uint32 len) { NdbTableImpl* tableImpl = 0; - int ret = NdbDictInterface::parseTableInfo(&tableImpl, data, len, false); + int ret = 0; + if(!m_hostByteOrder) + ret = NdbDictInterface::parseTableInfo(&tableImpl, data, len, false, false); + else + ret = NdbDictInterface::parseTableInfo(&tableImpl, data, len, false); if (ret != 0) { err << "parseTableInfo " << " failed" << endl; @@ -478,6 +482,10 @@ RestoreDataIterator::getNextTuple(int & attr_data->void_value = ptr; attr_data->size = 4*sz; + if(!m_hostByteOrder + && attr_desc->m_column->getType() == NdbDictionary::Column::Timestamp) + attr_data->u_int32_value[0] = Twiddle32(attr_data->u_int32_value[0]); + if(!Twiddle(attr_desc, attr_data)) { res = -1; @@ -520,6 +528,29 @@ RestoreDataIterator::getNextTuple(int & */ const Uint32 arraySize = (4 * 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)) + { + 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(!m_hostByteOrder + && attr_desc->m_column->getType() == NdbDictionary::Column::Datetime) + { + 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; --- 1.101/ndb/src/ndbapi/NdbDictionaryImpl.cpp 2007-08-07 18:08:12 +00:00 +++ 1.102/ndb/src/ndbapi/NdbDictionaryImpl.cpp 2007-08-07 18:08:12 +00:00 @@ -1220,7 +1220,8 @@ indexTypeMapping[] = { int NdbDictInterface::parseTableInfo(NdbTableImpl ** ret, const Uint32 * data, Uint32 len, - bool fullyQualifiedNames) + bool fullyQualifiedNames, + bool hostByteOrder) { DBUG_ENTER("NdbDictInterface::parseTableInfo"); @@ -1379,8 +1380,14 @@ NdbDictInterface::parseTableInfo(NdbTabl if(tableDesc.FragmentDataLen > 0) { - Uint32 replicaCount = tableDesc.FragmentData[0]; - Uint32 fragCount = tableDesc.FragmentData[1]; + Uint16 replicaCount = tableDesc.FragmentData[0]; + Uint16 fragCount = tableDesc.FragmentData[1]; + + if(hostByteOrder == false) + { + replicaCount = ((replicaCount & 0xFF00) >> 8) |((replicaCount & 0x00FF) << 8); + fragCount = ((fragCount & 0xFF00) >> 8) |((fragCount & 0x00FF) << 8); + } impl->m_replicaCount = replicaCount; impl->m_fragmentCount = fragCount; --- 1.43/ndb/src/ndbapi/NdbDictionaryImpl.hpp 2007-08-07 18:08:12 +00:00 +++ 1.44/ndb/src/ndbapi/NdbDictionaryImpl.hpp 2007-08-07 18:08:12 +00:00 @@ -262,7 +262,8 @@ public: static int parseTableInfo(NdbTableImpl ** dst, const Uint32 * data, Uint32 len, - bool fullyQualifiedNames); + bool fullyQualifiedNames, + bool hostByteOrder = true); static int create_index_obj_from_table(NdbIndexImpl ** dst, NdbTableImpl* index_table,