mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint-bug20166
into pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
This commit is contained in:
@ -1940,4 +1940,18 @@ abcxx
|
|||||||
select lpad('abc', cast(5 as unsigned integer), 'x');
|
select lpad('abc', cast(5 as unsigned integer), 'x');
|
||||||
lpad('abc', cast(5 as unsigned integer), 'x')
|
lpad('abc', cast(5 as unsigned integer), 'x')
|
||||||
xxabc
|
xxabc
|
||||||
|
DROP TABLE IF EXISTS t1;
|
||||||
|
CREATE TABLE `t1` (
|
||||||
|
`id` varchar(20) NOT NULL,
|
||||||
|
`tire` tinyint(3) unsigned NOT NULL,
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
);
|
||||||
|
INSERT INTO `t1` (`id`, `tire`) VALUES ('A', 0), ('B', 1),('C', 2);
|
||||||
|
SELECT REPEAT( '#', tire ) AS A,
|
||||||
|
REPEAT( '#', tire % 999 ) AS B, tire FROM `t1`;
|
||||||
|
A B tire
|
||||||
|
0
|
||||||
|
# # 1
|
||||||
|
## ## 2
|
||||||
|
DROP TABLE t1;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
@ -1008,4 +1008,26 @@ select repeat('a', cast(2 as unsigned int));
|
|||||||
select rpad('abc', cast(5 as unsigned integer), 'x');
|
select rpad('abc', cast(5 as unsigned integer), 'x');
|
||||||
select lpad('abc', cast(5 as unsigned integer), 'x');
|
select lpad('abc', cast(5 as unsigned integer), 'x');
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #25197 :repeat function returns null when using table field directly as count
|
||||||
|
#
|
||||||
|
|
||||||
|
--disable_warnings
|
||||||
|
DROP TABLE IF EXISTS t1;
|
||||||
|
--enable_warnings
|
||||||
|
|
||||||
|
CREATE TABLE `t1` (
|
||||||
|
`id` varchar(20) NOT NULL,
|
||||||
|
`tire` tinyint(3) unsigned NOT NULL,
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO `t1` (`id`, `tire`) VALUES ('A', 0), ('B', 1),('C', 2);
|
||||||
|
|
||||||
|
SELECT REPEAT( '#', tire ) AS A,
|
||||||
|
REPEAT( '#', tire % 999 ) AS B, tire FROM `t1`;
|
||||||
|
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
@ -2251,8 +2251,10 @@ String *Item_func_repeat::val_str(String *str)
|
|||||||
if (args[0]->null_value || args[1]->null_value)
|
if (args[0]->null_value || args[1]->null_value)
|
||||||
goto err; // string and/or delim are null
|
goto err; // string and/or delim are null
|
||||||
null_value= 0;
|
null_value= 0;
|
||||||
if ((count <= 0) && !args[1]->unsigned_flag) // For nicer SQL code
|
|
||||||
|
if (count == 0 || count < 0 && !args[1]->unsigned_flag)
|
||||||
return &my_empty_string;
|
return &my_empty_string;
|
||||||
|
|
||||||
/* Assumes that the maximum length of a String is < INT_MAX32. */
|
/* Assumes that the maximum length of a String is < INT_MAX32. */
|
||||||
/* Bounds check on count: If this is triggered, we will error. */
|
/* Bounds check on count: If this is triggered, we will error. */
|
||||||
if ((ulonglong) count > INT_MAX32)
|
if ((ulonglong) count > INT_MAX32)
|
||||||
|
@ -2037,7 +2037,10 @@ static void check_data_home(const char *path)
|
|||||||
|
|
||||||
extern "C" sig_handler handle_segfault(int sig)
|
extern "C" sig_handler handle_segfault(int sig)
|
||||||
{
|
{
|
||||||
|
time_t curr_time;
|
||||||
|
struct tm tm;
|
||||||
THD *thd=current_thd;
|
THD *thd=current_thd;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Strictly speaking, one needs a mutex here
|
Strictly speaking, one needs a mutex here
|
||||||
but since we have got SIGSEGV already, things are a mess
|
but since we have got SIGSEGV already, things are a mess
|
||||||
@ -2051,11 +2054,17 @@ extern "C" sig_handler handle_segfault(int sig)
|
|||||||
}
|
}
|
||||||
|
|
||||||
segfaulted = 1;
|
segfaulted = 1;
|
||||||
|
|
||||||
|
curr_time= time(NULL);
|
||||||
|
localtime_r(&curr_time, &tm);
|
||||||
|
|
||||||
fprintf(stderr,"\
|
fprintf(stderr,"\
|
||||||
mysqld got signal %d;\n\
|
%02d%02d%02d %2d:%02d:%02d - mysqld got signal %d;\n\
|
||||||
This could be because you hit a bug. It is also possible that this binary\n\
|
This could be because you hit a bug. It is also possible that this binary\n\
|
||||||
or one of the libraries it was linked against is corrupt, improperly built,\n\
|
or one of the libraries it was linked against is corrupt, improperly built,\n\
|
||||||
or misconfigured. This error can also be caused by malfunctioning hardware.\n",
|
or misconfigured. This error can also be caused by malfunctioning hardware.\n",
|
||||||
|
tm.tm_year % 100, tm.tm_mon+1, tm.tm_mday,
|
||||||
|
tm.tm_hour, tm.tm_min, tm.tm_sec,
|
||||||
sig);
|
sig);
|
||||||
fprintf(stderr, "\
|
fprintf(stderr, "\
|
||||||
We will try our best to scrape up some info that will hopefully help diagnose\n\
|
We will try our best to scrape up some info that will hopefully help diagnose\n\
|
||||||
|
Reference in New Issue
Block a user