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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
5f0c4ff1
Commit
5f0c4ff1
authored
Feb 02, 2005
by
jimw@mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge fixes for #8248, #5569.
parents
4104f160
2caee2b3
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
29 additions
and
14 deletions
+29
-14
mysql-test/r/func_str.result
mysql-test/r/func_str.result
+7
-0
mysql-test/t/func_str.test
mysql-test/t/func_str.test
+11
-0
sql/item_strfunc.cc
sql/item_strfunc.cc
+6
-11
sql/item_strfunc.h
sql/item_strfunc.h
+1
-0
sql/sql_parse.cc
sql/sql_parse.cc
+2
-1
vio/viosocket.c
vio/viosocket.c
+1
-1
vio/viossl.c
vio/viossl.c
+1
-1
No files found.
mysql-test/r/func_str.result
View file @
5f0c4ff1
...
...
@@ -697,6 +697,13 @@ quote(ltrim(concat(' ', 'a')))
select quote(trim(concat(' ', 'a')));
quote(trim(concat(' ', 'a')))
'a'
CREATE TABLE t1 SELECT 1 UNION SELECT 2 UNION SELECT 3;
SELECT QUOTE('A') FROM t1;
QUOTE('A')
'A'
'A'
'A'
DROP TABLE t1;
select trim(null from 'kate') as "must_be_null";
must_be_null
NULL
...
...
mysql-test/t/func_str.test
View file @
5f0c4ff1
...
...
@@ -195,6 +195,17 @@ select trim(trailing 'foo' from 'foo');
select
trim
(
leading
'foo'
from
'foo'
);
#
# crashing bug with QUOTE() and LTRIM() or TRIM() fixed
# Bug #7495
#
select
quote
(
ltrim
(
concat
(
' '
,
'a'
)));
select
quote
(
trim
(
concat
(
' '
,
'a'
)));
# Bad results from QUOTE(). Bug #8248
CREATE
TABLE
t1
SELECT
1
UNION
SELECT
2
UNION
SELECT
3
;
SELECT
QUOTE
(
'A'
)
FROM
t1
;
DROP
TABLE
t1
;
# Test collation and coercibility
#
...
...
sql/item_strfunc.cc
View file @
5f0c4ff1
...
...
@@ -2614,18 +2614,13 @@ String *Item_func_quote::val_str(String *str)
for
(
from
=
(
char
*
)
arg
->
ptr
(),
end
=
from
+
arg_length
;
from
<
end
;
from
++
)
new_length
+=
get_esc_bit
(
escmask
,
(
uchar
)
*
from
);
/*
We have to use realloc() instead of alloc() as we want to keep the
old result in arg
*/
if
(
arg
->
realloc
(
new_length
))
if
(
tmp_value
.
alloc
(
new_length
))
goto
null
;
/*
As 'arg' and 'str' may be the same string, we must replace characters
from the end to the beginning
We replace characters from the end to the beginning
*/
to
=
(
char
*
)
arg
->
ptr
()
+
new_length
-
1
;
to
=
(
char
*
)
tmp_value
.
ptr
()
+
new_length
-
1
;
*
to
--=
'\''
;
for
(
start
=
(
char
*
)
arg
->
ptr
(),
end
=
start
+
arg_length
;
end
--
!=
start
;
to
--
)
{
...
...
@@ -2653,10 +2648,10 @@ String *Item_func_quote::val_str(String *str)
}
}
*
to
=
'\''
;
arg
->
length
(
new_length
);
str
->
set_charset
(
collation
.
collation
);
tmp_value
.
length
(
new_length
);
tmp_value
.
set_charset
(
collation
.
collation
);
null_value
=
0
;
return
arg
;
return
&
tmp_value
;
null:
null_value
=
1
;
...
...
sql/item_strfunc.h
View file @
5f0c4ff1
...
...
@@ -588,6 +588,7 @@ class Item_func_inet_ntoa : public Item_str_func
class
Item_func_quote
:
public
Item_str_func
{
String
tmp_value
;
public:
Item_func_quote
(
Item
*
a
)
:
Item_str_func
(
a
)
{}
const
char
*
func_name
()
const
{
return
"quote"
;
}
...
...
sql/sql_parse.cc
View file @
5f0c4ff1
...
...
@@ -660,6 +660,8 @@ static int check_connection(THD *thd)
DBUG_PRINT
(
"info"
,
(
"New connection received on %s"
,
vio_description
(
net
->
vio
)));
vio_in_addr
(
net
->
vio
,
&
thd
->
remote
.
sin_addr
);
if
(
!
thd
->
host
)
// If TCP/IP connection
{
char
ip
[
30
];
...
...
@@ -704,7 +706,6 @@ static int check_connection(THD *thd)
DBUG_PRINT
(
"info"
,(
"Host: %s"
,
thd
->
host
));
thd
->
host_or_ip
=
thd
->
host
;
thd
->
ip
=
0
;
bzero
((
char
*
)
&
thd
->
remote
,
sizeof
(
struct
sockaddr
));
}
vio_keepalive
(
net
->
vio
,
TRUE
);
ulong
pkt_len
=
0
;
...
...
vio/viosocket.c
View file @
5f0c4ff1
...
...
@@ -276,7 +276,7 @@ void vio_in_addr(Vio *vio, struct in_addr *in)
{
DBUG_ENTER
(
"vio_in_addr"
);
if
(
vio
->
localhost
)
bzero
((
char
*
)
in
,
sizeof
(
*
in
));
/* This should never be executed */
bzero
((
char
*
)
in
,
sizeof
(
*
in
));
else
*
in
=
vio
->
remote
.
sin_addr
;
DBUG_VOID_RETURN
;
...
...
vio/viossl.c
View file @
5f0c4ff1
...
...
@@ -259,7 +259,7 @@ void vio_ssl_in_addr(Vio *vio, struct in_addr *in)
{
DBUG_ENTER
(
"vio_ssl_in_addr"
);
if
(
vio
->
localhost
)
bzero
((
char
*
)
in
,
sizeof
(
*
in
));
/* This should never be executed */
bzero
((
char
*
)
in
,
sizeof
(
*
in
));
else
*
in
=
vio
->
remote
.
sin_addr
;
DBUG_VOID_RETURN
;
...
...
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