Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
6fac51be
Commit
6fac51be
authored
Feb 28, 2007
by
msvensson@pilot.blaudden
Browse files
Options
Browse Files
Download
Plain Diff
Merge pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint-bug20166
into pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
parents
fb36bf95
b0ab9253
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
49 additions
and
2 deletions
+49
-2
mysql-test/r/func_str.result
mysql-test/r/func_str.result
+14
-0
mysql-test/t/func_str.test
mysql-test/t/func_str.test
+22
-0
sql/item_strfunc.cc
sql/item_strfunc.cc
+3
-1
sql/mysqld.cc
sql/mysqld.cc
+10
-1
No files found.
mysql-test/r/func_str.result
View file @
6fac51be
...
@@ -1940,4 +1940,18 @@ abcxx
...
@@ -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
mysql-test/t/func_str.test
View file @
6fac51be
...
@@ -1008,4 +1008,26 @@ select repeat('a', cast(2 as unsigned int));
...
@@ -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
sql/item_strfunc.cc
View file @
6fac51be
...
@@ -2251,8 +2251,10 @@ String *Item_func_repeat::val_str(String *str)
...
@@ -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
)
...
...
sql/mysqld.cc
View file @
6fac51be
...
@@ -2037,7 +2037,10 @@ static void check_data_home(const char *path)
...
@@ -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)
...
@@ -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
\
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment