Merge abelkin@bk-internal.mysql.com:/home/bk/mysql-5.0

into  sanja.is.com.ua:/home/bell/mysql/bk/work-owner2-5.0
This commit is contained in:
unknown 2005-09-14 17:28:28 +03:00
commit e33c22a1a3
11 changed files with 188 additions and 9 deletions

View File

@ -166,7 +166,7 @@ sub spawn_impl ($$$$$$$$) {
{ {
if ( ! open(STDOUT,$log_file_open_mode,$output) ) 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\": $!");
} }
} }
@ -176,14 +176,14 @@ sub spawn_impl ($$$$$$$$) {
{ {
if ( ! open(STDERR,">&STDOUT") ) if ( ! open(STDERR,">&STDOUT") )
{ {
mtr_error("can't dup STDOUT: $!"); mtr_child_error("can't dup STDOUT: $!");
} }
} }
else else
{ {
if ( ! open(STDERR,$log_file_open_mode,$error) ) 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\": $!");
} }
} }
} }
@ -192,13 +192,13 @@ sub spawn_impl ($$$$$$$$) {
{ {
if ( ! open(STDIN,"<",$input) ) 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) ) if ( ! exec($path,@$arg_list_t) )
{ {
mtr_error("failed to execute \"$path\": $!"); mtr_child_error("failed to execute \"$path\": $!");
} }
} }
} }

View File

@ -19,6 +19,7 @@ sub mtr_print_header ();
sub mtr_report (@); sub mtr_report (@);
sub mtr_warning (@); sub mtr_warning (@);
sub mtr_error (@); sub mtr_error (@);
sub mtr_child_error (@);
sub mtr_debug (@); sub mtr_debug (@);
@ -74,7 +75,7 @@ sub mtr_show_failed_diff ($) {
sub mtr_report_test_name ($) { sub mtr_report_test_name ($) {
my $tinfo= shift; my $tinfo= shift;
printf "%-31s ", $tinfo->{'name'}; printf "%-30s ", $tinfo->{'name'};
} }
sub mtr_report_test_skipped ($) { sub mtr_report_test_skipped ($) {
@ -122,13 +123,13 @@ sub mtr_report_test_failed ($) {
# we should write out into $::path_timefile when the error occurs. # we should write out into $::path_timefile when the error occurs.
if ( -f $::path_timefile ) 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 mtr_fromfile($::path_timefile); # FIXME print_file() instead
print "\n(the last lines may be the most important ones)\n"; print "\n(the last lines may be the most important ones)\n";
} }
else else
{ {
print "Unexpected termination, probably when starting mysqld\n"; print "\nUnexpected termination, probably when starting mysqld\n";
} }
} }
@ -286,6 +287,11 @@ sub mtr_error (@) {
mtr_exit(1); mtr_exit(1);
} }
sub mtr_child_error (@) {
print STDERR "mysql-test-run: *** ERROR(child): ",join(" ", @_),"\n";
exit(1);
}
sub mtr_debug (@) { sub mtr_debug (@) {
if ( $::opt_script_debug ) if ( $::opt_script_debug )
{ {

View File

@ -140,6 +140,64 @@ b+0
499 499
drop table t1; drop table t1;
create 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, pk1 bit(9) not null primary key,
b int b int
) engine=ndbcluster; ) engine=ndbcluster;

View File

@ -3332,4 +3332,20 @@ set @x=y;
end| end|
call bug13124()| call bug13124()|
drop procedure bug13124| drop procedure bug13124|
drop procedure if exists bug12979_1|
create procedure bug12979_1(inout d decimal(5)) set d = d / 2|
set @bug12979_user_var = NULL|
call bug12979_1(@bug12979_user_var)|
drop procedure bug12979_1|
drop procedure if exists bug12979_2|
create procedure bug12979_2()
begin
declare internal_var decimal(5);
set internal_var= internal_var / 2;
select internal_var;
end|
call bug12979_2()|
internal_var
NULL
drop procedure bug12979_2|
drop table t1,t2; drop table t1,t2;

View File

@ -1016,3 +1016,6 @@ v tdec
v tdec v tdec
9 0 9 0
drop procedure wg2; drop procedure wg2;
select cast(@non_existing_user_var/2 as DECIMAL);
cast(@non_existing_user_var/2 as DECIMAL)
NULL

View File

@ -47,6 +47,58 @@ select a+0 from t1 order by a;
select b+0 from t1 order by b; select b+0 from t1 order by b;
drop table t1; 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 --error 1005
create table t1 ( create table t1 (
pk1 bit(9) not null primary key, pk1 bit(9) not null primary key,

View File

@ -4178,6 +4178,35 @@ end|
call bug13124()| call bug13124()|
drop procedure bug13124| drop procedure bug13124|
#
# Bug #12979 Stored procedures: crash if inout decimal parameter
#
# check NULL inout parameters processing
--disable_warnings
drop procedure if exists bug12979_1|
--enable_warnings
create procedure bug12979_1(inout d decimal(5)) set d = d / 2|
set @bug12979_user_var = NULL|
call bug12979_1(@bug12979_user_var)|
drop procedure bug12979_1|
# check NULL local variables processing
--disable_warnings
drop procedure if exists bug12979_2|
--enable_warnings
create procedure bug12979_2()
begin
declare internal_var decimal(5);
set internal_var= internal_var / 2;
select internal_var;
end|
call bug12979_2()|
drop procedure bug12979_2|
# #
# BUG#NNNN: New bug synopsis # BUG#NNNN: New bug synopsis
# #

View File

@ -1037,3 +1037,10 @@ call wg2()//
delimiter ;// delimiter ;//
drop procedure wg2; drop procedure wg2;
#
# Bug #12979 Stored procedures: crash if inout decimal parameter
# (not a SP bug in fact)
#
select cast(@non_existing_user_var/2 as DECIMAL);

View File

@ -765,7 +765,7 @@ my_decimal *Item_func_numhybrid::val_decimal(my_decimal *decimal_value)
} }
case REAL_RESULT: case REAL_RESULT:
{ {
double result= (double)int_op(); double result= (double)real_op();
double2my_decimal(E_DEC_FATAL_ERROR, result, decimal_value); double2my_decimal(E_DEC_FATAL_ERROR, result, decimal_value);
break; break;
} }

View File

@ -287,6 +287,8 @@ int openfrm(THD *thd, const char *name, const char *alias, uint db_stat,
keynames=(char*) key_part; keynames=(char*) key_part;
strpos+= (strmov(keynames, (char *) strpos) - keynames)+1; 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)); share->reclength = uint2korr((head+16));
if (*(head+26) == 1) if (*(head+26) == 1)
share->system= 1; /* one-record-database */ share->system= 1; /* one-record-database */

View File

@ -19,7 +19,13 @@
#include <m_string.h> #include <m_string.h>
#undef ULONGLONG_MAX #undef ULONGLONG_MAX
/* Needed under MetroWerks Compiler, since MetroWerks compiler does not properly handle a constant expression containing a mod operator */
#if defined(__NETWARE__) && defined(__MWERKS__)
ulonglong tmp;
#define ULONGLONG_MAX (tmp =(~(ulonglong) 0))
#else
#define ULONGLONG_MAX (~(ulonglong) 0) #define ULONGLONG_MAX (~(ulonglong) 0)
#endif /* __NETWARE__ && __MWERKS__ */
#define MAX_NEGATIVE_NUMBER ((ulonglong) LL(0x8000000000000000)) #define MAX_NEGATIVE_NUMBER ((ulonglong) LL(0x8000000000000000))
#define INIT_CNT 9 #define INIT_CNT 9
#define LFACTOR ULL(1000000000) #define LFACTOR ULL(1000000000)