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) )
|
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\": $!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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 )
|
||||||
{
|
{
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
@ -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
|
||||||
|
@ -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,
|
||||||
|
@ -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
|
||||||
#
|
#
|
||||||
|
@ -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);
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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 */
|
||||||
|
@ -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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user