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:
commit
e33c22a1a3
@ -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\": $!");
|
||||
}
|
||||
}
|
||||
|
||||
@ -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\": $!");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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\": $!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -19,6 +19,7 @@ sub mtr_print_header ();
|
||||
sub mtr_report (@);
|
||||
sub mtr_warning (@);
|
||||
sub mtr_error (@);
|
||||
sub mtr_child_error (@);
|
||||
sub mtr_debug (@);
|
||||
|
||||
|
||||
@ -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 ($) {
|
||||
@ -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";
|
||||
}
|
||||
}
|
||||
|
||||
@ -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 )
|
||||
{
|
||||
|
@ -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;
|
||||
|
@ -3332,4 +3332,20 @@ set @x=y;
|
||||
end|
|
||||
call 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;
|
||||
|
@ -1016,3 +1016,6 @@ v tdec
|
||||
v tdec
|
||||
9 0
|
||||
drop procedure wg2;
|
||||
select cast(@non_existing_user_var/2 as DECIMAL);
|
||||
cast(@non_existing_user_var/2 as DECIMAL)
|
||||
NULL
|
||||
|
@ -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,
|
||||
|
@ -4178,6 +4178,35 @@ end|
|
||||
call 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
|
||||
#
|
||||
|
@ -1037,3 +1037,10 @@ call wg2()//
|
||||
|
||||
delimiter ;//
|
||||
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);
|
||||
|
@ -765,7 +765,7 @@ my_decimal *Item_func_numhybrid::val_decimal(my_decimal *decimal_value)
|
||||
}
|
||||
case REAL_RESULT:
|
||||
{
|
||||
double result= (double)int_op();
|
||||
double result= (double)real_op();
|
||||
double2my_decimal(E_DEC_FATAL_ERROR, result, decimal_value);
|
||||
break;
|
||||
}
|
||||
|
@ -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 */
|
||||
|
@ -19,7 +19,13 @@
|
||||
#include <m_string.h>
|
||||
|
||||
#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)
|
||||
#endif /* __NETWARE__ && __MWERKS__ */
|
||||
#define MAX_NEGATIVE_NUMBER ((ulonglong) LL(0x8000000000000000))
|
||||
#define INIT_CNT 9
|
||||
#define LFACTOR ULL(1000000000)
|
||||
|
Loading…
x
Reference in New Issue
Block a user