Loading mysql-test/lib/mtr_process.pl +5 −5 Original line number Diff line number Diff line Loading @@ -166,7 +166,7 @@ sub spawn_impl ($$$$$$$$) { { if ( ! open(STDOUT,$log_file_open_mode,$output) ) { mtr_error("can't redirect STDOUT to \"$output\": $!"); mtr_child_error("can't redirect STDOUT to \"$output\": $!"); } } Loading @@ -176,14 +176,14 @@ sub spawn_impl ($$$$$$$$) { { if ( ! open(STDERR,">&STDOUT") ) { mtr_error("can't dup STDOUT: $!"); mtr_child_error("can't dup STDOUT: $!"); } } else { if ( ! open(STDERR,$log_file_open_mode,$error) ) { mtr_error("can't redirect STDERR to \"$error\": $!"); mtr_child_error("can't redirect STDERR to \"$error\": $!"); } } } Loading @@ -192,13 +192,13 @@ sub spawn_impl ($$$$$$$$) { { if ( ! open(STDIN,"<",$input) ) { mtr_error("can't redirect STDIN to \"$input\": $!"); mtr_child_error("can't redirect STDIN to \"$input\": $!"); } } if ( ! exec($path,@$arg_list_t) ) { mtr_error("failed to execute \"$path\": $!"); mtr_child_error("failed to execute \"$path\": $!"); } } } Loading mysql-test/lib/mtr_report.pl +9 −3 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ sub mtr_print_header (); sub mtr_report (@); sub mtr_warning (@); sub mtr_error (@); sub mtr_child_error (@); sub mtr_debug (@); Loading Loading @@ -74,7 +75,7 @@ sub mtr_show_failed_diff ($) { sub mtr_report_test_name ($) { my $tinfo= shift; printf "%-31s ", $tinfo->{'name'}; printf "%-30s ", $tinfo->{'name'}; } sub mtr_report_test_skipped ($) { Loading Loading @@ -122,13 +123,13 @@ sub mtr_report_test_failed ($) { # we should write out into $::path_timefile when the error occurs. if ( -f $::path_timefile ) { print "Errors are (from $::path_timefile) :\n"; print "\nErrors are (from $::path_timefile) :\n"; print mtr_fromfile($::path_timefile); # FIXME print_file() instead print "\n(the last lines may be the most important ones)\n"; } else { print "Unexpected termination, probably when starting mysqld\n"; print "\nUnexpected termination, probably when starting mysqld\n"; } } Loading Loading @@ -286,6 +287,11 @@ sub mtr_error (@) { mtr_exit(1); } sub mtr_child_error (@) { print STDERR "mysql-test-run: *** ERROR(child): ",join(" ", @_),"\n"; exit(1); } sub mtr_debug (@) { if ( $::opt_script_debug ) { Loading mysql-test/r/ndb_bitfield.result +58 −0 Original line number Diff line number Diff line Loading @@ -140,6 +140,64 @@ b+0 499 drop table t1; create table t1 ( dummyKey INTEGER NOT NULL, a001 TINYINT, a010 TINYINT, a012 TINYINT, a015 TINYINT, a016 TINYINT, a017 TINYINT, a019 TINYINT, a029 TINYINT, a030 TINYINT, a031 TINYINT, a032 TINYINT, a042 TINYINT, a043 TINYINT, a044 TINYINT, a3001 TINYINT, a3002 TINYINT, a3003 TINYINT, a3004 TINYINT, a3005 TINYINT, a3021 TINYINT, a3022 TINYINT, a BIT(6), b BIT(6), c BIT(6), d TINYINT, e TINYINT, f TINYINT, g TINYINT, h TINYINT, i TINYINT, j TINYINT, k TINYINT, l TINYINT, m TINYINT, n TINYINT, o TINYINT, a034 TINYINT, PRIMARY KEY USING HASH (dummyKey) ) engine=ndb; INSERT INTO `t1` VALUES (1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'000001',b'111111',b'111110',4,5,5,5,5,5,5,5,5,5,3,2,1), (2,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'000010',b'000000',b'111101',4,5,5,5,5,5,5,5,5,5,3,2,1), (3,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'000100',b'001111',b'111011',4,5,5,5,5,5,5,5,5,5,3,2,1), (4,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'001000',b'110000',b'110111',4,5,5,5,5,5,5,5,5,5,3,2,1), (5,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'010000',b'100001',b'101111',4,5,5,5,5,5,5,5,5,5,3,2,1), (6,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'100000',b'010010',b'011111',4,5,5,5,5,5,5,5,5,5,3,2,1), (7,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'000000',b'001100',b'111111',4,5,5,5,5,5,5,5,5,5,3,2,1), (8,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'111111',b'000000',b'000000',4,5,5,5,5,5,5,5,5,5,3,2,1); INSERT INTO `t1` VALUES (1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','?','>',4,5,5,5,5,5,5,5,5,5,3,2,1); INSERT INTO `t1` VALUES (2,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','\0','=',4,5,5,5,5,5,5,5,5,5,3,2,1); INSERT INTO `t1` VALUES (3,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','',';',4,5,5,5,5,5,5,5,5,5,3,2,1); INSERT INTO `t1` VALUES (4,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','0','7',4,5,5,5,5,5,5,5,5,5,3,2,1); INSERT INTO `t1` VALUES (5,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','!','/',4,5,5,5,5,5,5,5,5,5,3,2,1); INSERT INTO `t1` VALUES (6,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,' ','','',4,5,5,5,5,5,5,5,5,5,3,2,1); INSERT INTO `t1` VALUES (7,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'\0','','?',4,5,5,5,5,5,5,5,5,5,3,2,1); INSERT INTO `t1` VALUES (8,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'?','\0','\0',4,5,5,5,5,5,5,5,5,5,3,2,1); drop table t1; create table t1 ( pk1 bit(9) not null primary key, b int ) engine=ndbcluster; Loading mysql-test/t/ndb_bitfield.test +52 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,58 @@ select a+0 from t1 order by a; select b+0 from t1 order by b; drop table t1; create table t1 ( dummyKey INTEGER NOT NULL, a001 TINYINT, a010 TINYINT, a012 TINYINT, a015 TINYINT, a016 TINYINT, a017 TINYINT, a019 TINYINT, a029 TINYINT, a030 TINYINT, a031 TINYINT, a032 TINYINT, a042 TINYINT, a043 TINYINT, a044 TINYINT, a3001 TINYINT, a3002 TINYINT, a3003 TINYINT, a3004 TINYINT, a3005 TINYINT, a3021 TINYINT, a3022 TINYINT, a BIT(6), b BIT(6), c BIT(6), d TINYINT, e TINYINT, f TINYINT, g TINYINT, h TINYINT, i TINYINT, j TINYINT, k TINYINT, l TINYINT, m TINYINT, n TINYINT, o TINYINT, a034 TINYINT, PRIMARY KEY USING HASH (dummyKey) ) engine=ndb; INSERT INTO `t1` VALUES (1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'000001',b'111111',b'111110',4,5,5,5,5,5,5,5,5,5,3,2,1), (2,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'000010',b'000000',b'111101',4,5,5,5,5,5,5,5,5,5,3,2,1), (3,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'000100',b'001111',b'111011',4,5,5,5,5,5,5,5,5,5,3,2,1), (4,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'001000',b'110000',b'110111',4,5,5,5,5,5,5,5,5,5,3,2,1), (5,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'010000',b'100001',b'101111',4,5,5,5,5,5,5,5,5,5,3,2,1), (6,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'100000',b'010010',b'011111',4,5,5,5,5,5,5,5,5,5,3,2,1), (7,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'000000',b'001100',b'111111',4,5,5,5,5,5,5,5,5,5,3,2,1), (8,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'111111',b'000000',b'000000',4,5,5,5,5,5,5,5,5,5,3,2,1); --exec $MYSQL_DUMP --compact --order-by-primary --skip-extended-insert --no-create-info test t1 drop table t1; --error 1005 create table t1 ( pk1 bit(9) not null primary key, Loading sql/table.cc +2 −0 Original line number Diff line number Diff line Loading @@ -287,6 +287,8 @@ int openfrm(THD *thd, const char *name, const char *alias, uint db_stat, keynames=(char*) key_part; strpos+= (strmov(keynames, (char *) strpos) - keynames)+1; share->null_bytes= null_pos - (uchar*) outparam->null_flags + (null_bit_pos + 7) / 8; share->reclength = uint2korr((head+16)); if (*(head+26) == 1) share->system= 1; /* one-record-database */ Loading Loading
mysql-test/lib/mtr_process.pl +5 −5 Original line number Diff line number Diff line Loading @@ -166,7 +166,7 @@ sub spawn_impl ($$$$$$$$) { { if ( ! open(STDOUT,$log_file_open_mode,$output) ) { mtr_error("can't redirect STDOUT to \"$output\": $!"); mtr_child_error("can't redirect STDOUT to \"$output\": $!"); } } Loading @@ -176,14 +176,14 @@ sub spawn_impl ($$$$$$$$) { { if ( ! open(STDERR,">&STDOUT") ) { mtr_error("can't dup STDOUT: $!"); mtr_child_error("can't dup STDOUT: $!"); } } else { if ( ! open(STDERR,$log_file_open_mode,$error) ) { mtr_error("can't redirect STDERR to \"$error\": $!"); mtr_child_error("can't redirect STDERR to \"$error\": $!"); } } } Loading @@ -192,13 +192,13 @@ sub spawn_impl ($$$$$$$$) { { if ( ! open(STDIN,"<",$input) ) { mtr_error("can't redirect STDIN to \"$input\": $!"); mtr_child_error("can't redirect STDIN to \"$input\": $!"); } } if ( ! exec($path,@$arg_list_t) ) { mtr_error("failed to execute \"$path\": $!"); mtr_child_error("failed to execute \"$path\": $!"); } } } Loading
mysql-test/lib/mtr_report.pl +9 −3 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ sub mtr_print_header (); sub mtr_report (@); sub mtr_warning (@); sub mtr_error (@); sub mtr_child_error (@); sub mtr_debug (@); Loading Loading @@ -74,7 +75,7 @@ sub mtr_show_failed_diff ($) { sub mtr_report_test_name ($) { my $tinfo= shift; printf "%-31s ", $tinfo->{'name'}; printf "%-30s ", $tinfo->{'name'}; } sub mtr_report_test_skipped ($) { Loading Loading @@ -122,13 +123,13 @@ sub mtr_report_test_failed ($) { # we should write out into $::path_timefile when the error occurs. if ( -f $::path_timefile ) { print "Errors are (from $::path_timefile) :\n"; print "\nErrors are (from $::path_timefile) :\n"; print mtr_fromfile($::path_timefile); # FIXME print_file() instead print "\n(the last lines may be the most important ones)\n"; } else { print "Unexpected termination, probably when starting mysqld\n"; print "\nUnexpected termination, probably when starting mysqld\n"; } } Loading Loading @@ -286,6 +287,11 @@ sub mtr_error (@) { mtr_exit(1); } sub mtr_child_error (@) { print STDERR "mysql-test-run: *** ERROR(child): ",join(" ", @_),"\n"; exit(1); } sub mtr_debug (@) { if ( $::opt_script_debug ) { Loading
mysql-test/r/ndb_bitfield.result +58 −0 Original line number Diff line number Diff line Loading @@ -140,6 +140,64 @@ b+0 499 drop table t1; create table t1 ( dummyKey INTEGER NOT NULL, a001 TINYINT, a010 TINYINT, a012 TINYINT, a015 TINYINT, a016 TINYINT, a017 TINYINT, a019 TINYINT, a029 TINYINT, a030 TINYINT, a031 TINYINT, a032 TINYINT, a042 TINYINT, a043 TINYINT, a044 TINYINT, a3001 TINYINT, a3002 TINYINT, a3003 TINYINT, a3004 TINYINT, a3005 TINYINT, a3021 TINYINT, a3022 TINYINT, a BIT(6), b BIT(6), c BIT(6), d TINYINT, e TINYINT, f TINYINT, g TINYINT, h TINYINT, i TINYINT, j TINYINT, k TINYINT, l TINYINT, m TINYINT, n TINYINT, o TINYINT, a034 TINYINT, PRIMARY KEY USING HASH (dummyKey) ) engine=ndb; INSERT INTO `t1` VALUES (1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'000001',b'111111',b'111110',4,5,5,5,5,5,5,5,5,5,3,2,1), (2,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'000010',b'000000',b'111101',4,5,5,5,5,5,5,5,5,5,3,2,1), (3,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'000100',b'001111',b'111011',4,5,5,5,5,5,5,5,5,5,3,2,1), (4,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'001000',b'110000',b'110111',4,5,5,5,5,5,5,5,5,5,3,2,1), (5,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'010000',b'100001',b'101111',4,5,5,5,5,5,5,5,5,5,3,2,1), (6,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'100000',b'010010',b'011111',4,5,5,5,5,5,5,5,5,5,3,2,1), (7,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'000000',b'001100',b'111111',4,5,5,5,5,5,5,5,5,5,3,2,1), (8,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'111111',b'000000',b'000000',4,5,5,5,5,5,5,5,5,5,3,2,1); INSERT INTO `t1` VALUES (1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','?','>',4,5,5,5,5,5,5,5,5,5,3,2,1); INSERT INTO `t1` VALUES (2,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','\0','=',4,5,5,5,5,5,5,5,5,5,3,2,1); INSERT INTO `t1` VALUES (3,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','',';',4,5,5,5,5,5,5,5,5,5,3,2,1); INSERT INTO `t1` VALUES (4,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','0','7',4,5,5,5,5,5,5,5,5,5,3,2,1); INSERT INTO `t1` VALUES (5,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','!','/',4,5,5,5,5,5,5,5,5,5,3,2,1); INSERT INTO `t1` VALUES (6,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,' ','','',4,5,5,5,5,5,5,5,5,5,3,2,1); INSERT INTO `t1` VALUES (7,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'\0','','?',4,5,5,5,5,5,5,5,5,5,3,2,1); INSERT INTO `t1` VALUES (8,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'?','\0','\0',4,5,5,5,5,5,5,5,5,5,3,2,1); drop table t1; create table t1 ( pk1 bit(9) not null primary key, b int ) engine=ndbcluster; Loading
mysql-test/t/ndb_bitfield.test +52 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,58 @@ select a+0 from t1 order by a; select b+0 from t1 order by b; drop table t1; create table t1 ( dummyKey INTEGER NOT NULL, a001 TINYINT, a010 TINYINT, a012 TINYINT, a015 TINYINT, a016 TINYINT, a017 TINYINT, a019 TINYINT, a029 TINYINT, a030 TINYINT, a031 TINYINT, a032 TINYINT, a042 TINYINT, a043 TINYINT, a044 TINYINT, a3001 TINYINT, a3002 TINYINT, a3003 TINYINT, a3004 TINYINT, a3005 TINYINT, a3021 TINYINT, a3022 TINYINT, a BIT(6), b BIT(6), c BIT(6), d TINYINT, e TINYINT, f TINYINT, g TINYINT, h TINYINT, i TINYINT, j TINYINT, k TINYINT, l TINYINT, m TINYINT, n TINYINT, o TINYINT, a034 TINYINT, PRIMARY KEY USING HASH (dummyKey) ) engine=ndb; INSERT INTO `t1` VALUES (1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'000001',b'111111',b'111110',4,5,5,5,5,5,5,5,5,5,3,2,1), (2,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'000010',b'000000',b'111101',4,5,5,5,5,5,5,5,5,5,3,2,1), (3,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'000100',b'001111',b'111011',4,5,5,5,5,5,5,5,5,5,3,2,1), (4,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'001000',b'110000',b'110111',4,5,5,5,5,5,5,5,5,5,3,2,1), (5,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'010000',b'100001',b'101111',4,5,5,5,5,5,5,5,5,5,3,2,1), (6,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'100000',b'010010',b'011111',4,5,5,5,5,5,5,5,5,5,3,2,1), (7,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'000000',b'001100',b'111111',4,5,5,5,5,5,5,5,5,5,3,2,1), (8,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,b'111111',b'000000',b'000000',4,5,5,5,5,5,5,5,5,5,3,2,1); --exec $MYSQL_DUMP --compact --order-by-primary --skip-extended-insert --no-create-info test t1 drop table t1; --error 1005 create table t1 ( pk1 bit(9) not null primary key, Loading
sql/table.cc +2 −0 Original line number Diff line number Diff line Loading @@ -287,6 +287,8 @@ int openfrm(THD *thd, const char *name, const char *alias, uint db_stat, keynames=(char*) key_part; strpos+= (strmov(keynames, (char *) strpos) - keynames)+1; share->null_bytes= null_pos - (uchar*) outparam->null_flags + (null_bit_pos + 7) / 8; share->reclength = uint2korr((head+16)); if (*(head+26) == 1) share->system= 1; /* one-record-database */ Loading