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
6037e8ec
Commit
6037e8ec
authored
Oct 02, 2008
by
Ramil Kalimullin
Browse files
Options
Browse Files
Download
Plain Diff
Merge
parents
71e061db
d3e317d1
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
149 additions
and
8 deletions
+149
-8
mysql-test/extra/binlog_tests/binlog.test
mysql-test/extra/binlog_tests/binlog.test
+39
-0
mysql-test/r/ctype_cp932_binlog_stm.result
mysql-test/r/ctype_cp932_binlog_stm.result
+3
-3
mysql-test/suite/binlog/r/binlog_row_binlog.result
mysql-test/suite/binlog/r/binlog_row_binlog.result
+47
-0
mysql-test/suite/binlog/r/binlog_stm_binlog.result
mysql-test/suite/binlog/r/binlog_stm_binlog.result
+50
-0
mysql-test/suite/rpl/r/rpl_sp.result
mysql-test/suite/rpl/r/rpl_sp.result
+2
-2
sql/item.cc
sql/item.cc
+5
-3
sql/sp_head.cc
sql/sp_head.cc
+3
-0
No files found.
mysql-test/extra/binlog_tests/binlog.test
View file @
6037e8ec
...
...
@@ -125,6 +125,45 @@ drop table t1;
--
replace_regex
/
\
/
\
*
xid
=.*
\
*
\
//\/* XID *\// /table_id: [0-9]+/table_id: #/ /Server ver: [^,]*,/Server version,/
show
binlog
events
from
0
;
#
# Bug #39182: Binary log producing incompatible character set query from
# stored procedure.
#
reset
master
;
CREATE
DATABASE
bug39182
DEFAULT
CHARACTER
SET
utf8
COLLATE
utf8_unicode_ci
;
USE
bug39182
;
CREATE
TABLE
t1
(
a
VARCHAR
(
255
)
COLLATE
utf8_unicode_ci
)
DEFAULT
CHARSET
=
utf8
COLLATE
=
utf8_unicode_ci
;
DELIMITER
//;
CREATE
PROCEDURE
p1
()
BEGIN
DECLARE
s1
VARCHAR
(
255
);
SET
s1
=
"test"
;
CREATE
TEMPORARY
TABLE
tmp1
SELECT
*
FROM
t1
WHERE
a
LIKE
CONCAT
(
"%"
,
s1
,
"%"
);
SELECT
COLLATION
(
NAME_CONST
(
's1'
,
_utf8
'test'
))
c1
,
COLLATION
(
NAME_CONST
(
's1'
,
_utf8
'test'
COLLATE
utf8_unicode_ci
))
c2
,
COLLATION
(
s1
)
c3
,
COERCIBILITY
(
NAME_CONST
(
's1'
,
_utf8
'test'
))
d1
,
COERCIBILITY
(
NAME_CONST
(
's1'
,
_utf8
'test'
COLLATE
utf8_unicode_ci
))
d2
,
COERCIBILITY
(
s1
)
d3
;
DROP
TEMPORARY
TABLE
tmp1
;
END
//
DELIMITER
;
//
CALL
p1
();
source
include
/
show_binlog_events
.
inc
;
DROP
PROCEDURE
p1
;
DROP
TABLE
t1
;
DROP
DATABASE
bug39182
;
USE
test
;
--
echo
End
of
5.0
tests
# Test of a too big SET INSERT_ID: see if the truncated value goes
...
...
mysql-test/r/ctype_cp932_binlog_stm.result
View file @
6037e8ec
...
...
@@ -40,9 +40,9 @@ IN ind DECIMAL(10,2))
BEGIN
INSERT INTO t4 VALUES (ins1, ins2, ind);
END
master-bin.000001 784 Query 1
992 use `test`; INSERT INTO t4 VALUES ( NAME_CONST('ins1',_latin1 0x466F6F2773206120426172), NAME_CONST('ins2',_cp932 0xED40ED41ED42
), NAME_CONST('ind',47.93))
master-bin.000001
992 Query 1 1081
use `test`; DROP PROCEDURE bug18293
master-bin.000001 1
081 Query 1 1160
use `test`; DROP TABLE t4
master-bin.000001 784 Query 1
1048 use `test`; INSERT INTO t4 VALUES ( NAME_CONST('ins1',_latin1 0x466F6F2773206120426172 COLLATE 'latin1_swedish_ci'), NAME_CONST('ins2',_cp932 0xED40ED41ED42 COLLATE 'cp932_japanese_ci'
), NAME_CONST('ind',47.93))
master-bin.000001
1048 Query 1 1137
use `test`; DROP PROCEDURE bug18293
master-bin.000001 1
137 Query 1 1216
use `test`; DROP TABLE t4
End of 5.0 tests
SHOW BINLOG EVENTS FROM 364;
ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Wrong offset or I/O error
...
...
mysql-test/suite/binlog/r/binlog_row_binlog.result
View file @
6037e8ec
...
...
@@ -1090,6 +1090,53 @@ master-bin.000001 295 Table_map 1 337 table_id: # (test.t1)
master-bin.000001 337 Write_rows 1 383 table_id: # flags: STMT_END_F
master-bin.000001 383 Query 1 452 use `test`; COMMIT
master-bin.000001 452 Query 1 528 use `test`; drop table t1
reset master;
CREATE DATABASE bug39182 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
USE bug39182;
CREATE TABLE t1 (a VARCHAR(255) COLLATE utf8_unicode_ci)
DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE PROCEDURE p1()
BEGIN
DECLARE s1 VARCHAR(255);
SET s1= "test";
CREATE TEMPORARY TABLE tmp1
SELECT * FROM t1 WHERE a LIKE CONCAT("%", s1, "%");
SELECT
COLLATION(NAME_CONST('s1', _utf8'test')) c1,
COLLATION(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) c2,
COLLATION(s1) c3,
COERCIBILITY(NAME_CONST('s1', _utf8'test')) d1,
COERCIBILITY(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) d2,
COERCIBILITY(s1) d3;
DROP TEMPORARY TABLE tmp1;
END//
CALL p1();
c1 c2 c3 d1 d2 d3
utf8_general_ci utf8_unicode_ci utf8_unicode_ci 2 2 2
show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # CREATE DATABASE bug39182 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci
master-bin.000001 # Query # # use `bug39182`; CREATE TABLE t1 (a VARCHAR(255) COLLATE utf8_unicode_ci)
DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
master-bin.000001 # Query # # use `bug39182`; CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`()
BEGIN
DECLARE s1 VARCHAR(255);
SET s1= "test";
CREATE TEMPORARY TABLE tmp1
SELECT * FROM t1 WHERE a LIKE CONCAT("%", s1, "%");
SELECT
COLLATION(NAME_CONST('s1', _utf8'test')) c1,
COLLATION(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) c2,
COLLATION(s1) c3,
COERCIBILITY(NAME_CONST('s1', _utf8'test')) d1,
COERCIBILITY(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) d2,
COERCIBILITY(s1) d3;
DROP TEMPORARY TABLE tmp1;
END
DROP PROCEDURE p1;
DROP TABLE t1;
DROP DATABASE bug39182;
USE test;
End of 5.0 tests
reset master;
create table t1 (id tinyint auto_increment primary key);
...
...
mysql-test/suite/binlog/r/binlog_stm_binlog.result
View file @
6037e8ec
...
...
@@ -594,6 +594,56 @@ master-bin.000001 4 Format_desc 1 106 Server version, Binlog ver: 4
master-bin.000001 106 Query 1 227 use `test`; create table t1 (a bigint unsigned, b bigint(20) unsigned)
master-bin.000001 227 Query 1 351 use `test`; insert into t1 values (9999999999999999,14632475938453979136)
master-bin.000001 351 Query 1 427 use `test`; drop table t1
reset master;
CREATE DATABASE bug39182 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
USE bug39182;
CREATE TABLE t1 (a VARCHAR(255) COLLATE utf8_unicode_ci)
DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE PROCEDURE p1()
BEGIN
DECLARE s1 VARCHAR(255);
SET s1= "test";
CREATE TEMPORARY TABLE tmp1
SELECT * FROM t1 WHERE a LIKE CONCAT("%", s1, "%");
SELECT
COLLATION(NAME_CONST('s1', _utf8'test')) c1,
COLLATION(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) c2,
COLLATION(s1) c3,
COERCIBILITY(NAME_CONST('s1', _utf8'test')) d1,
COERCIBILITY(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) d2,
COERCIBILITY(s1) d3;
DROP TEMPORARY TABLE tmp1;
END//
CALL p1();
c1 c2 c3 d1 d2 d3
utf8_general_ci utf8_unicode_ci utf8_unicode_ci 2 2 2
show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # CREATE DATABASE bug39182 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci
master-bin.000001 # Query # # use `bug39182`; CREATE TABLE t1 (a VARCHAR(255) COLLATE utf8_unicode_ci)
DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
master-bin.000001 # Query # # use `bug39182`; CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`()
BEGIN
DECLARE s1 VARCHAR(255);
SET s1= "test";
CREATE TEMPORARY TABLE tmp1
SELECT * FROM t1 WHERE a LIKE CONCAT("%", s1, "%");
SELECT
COLLATION(NAME_CONST('s1', _utf8'test')) c1,
COLLATION(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) c2,
COLLATION(s1) c3,
COERCIBILITY(NAME_CONST('s1', _utf8'test')) d1,
COERCIBILITY(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) d2,
COERCIBILITY(s1) d3;
DROP TEMPORARY TABLE tmp1;
END
master-bin.000001 # Query # # use `bug39182`; CREATE TEMPORARY TABLE tmp1
SELECT * FROM t1 WHERE a LIKE CONCAT("%", NAME_CONST('s1',_utf8'test' COLLATE 'utf8_unicode_ci'), "%")
master-bin.000001 # Query # # use `bug39182`; DROP TEMPORARY TABLE tmp1
DROP PROCEDURE p1;
DROP TABLE t1;
DROP DATABASE bug39182;
USE test;
End of 5.0 tests
reset master;
create table t1 (id tinyint auto_increment primary key);
...
...
mysql-test/suite/rpl/r/rpl_sp.result
View file @
6037e8ec
...
...
@@ -526,7 +526,7 @@ master-bin.000001 # Query 1 # use `test`; DROP TABLE IF EXISTS t1
master-bin.000001 # Query 1 # use `test`; CREATE TABLE t1(col VARCHAR(10))
master-bin.000001 # Query 1 # use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`(arg VARCHAR(10))
INSERT INTO t1 VALUES(arg)
master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES( NAME_CONST('arg',_latin1'test'))
master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES( NAME_CONST('arg',_latin1'test'
COLLATE 'latin1_swedish_ci'
))
master-bin.000001 # Query 1 # use `test`; DROP PROCEDURE p1
master-bin.000001 # Query 1 # use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`()
SET @a = 1
...
...
@@ -869,7 +869,7 @@ CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`(arg VARCHAR(10))
INSERT INTO t1 VALUES(arg)
/*!*/;
SET TIMESTAMP=t/*!*/;
INSERT INTO t1 VALUES( NAME_CONST('arg',_latin1'test'))
INSERT INTO t1 VALUES( NAME_CONST('arg',_latin1'test'
COLLATE 'latin1_swedish_ci'
))
/*!*/;
SET TIMESTAMP=t/*!*/;
DROP PROCEDURE p1
...
...
sql/item.cc
View file @
6037e8ec
...
...
@@ -1248,10 +1248,12 @@ Item_name_const::Item_name_const(Item *name_arg, Item *val):
if
(
!
(
valid_args
=
name_item
->
basic_const_item
()
&&
(
value_item
->
basic_const_item
()
||
((
value_item
->
type
()
==
FUNC_ITEM
)
&&
(((
Item_func
*
)
value_item
)
->
functype
()
==
((((
Item_func
*
)
value_item
)
->
functype
()
==
Item_func
::
COLLATE_FUNC
)
||
((((
Item_func
*
)
value_item
)
->
functype
()
==
Item_func
::
NEG_FUNC
)
&&
(((
Item_func
*
)
value_item
)
->
key_item
()
->
type
()
!=
FUNC_ITEM
)))))
FUNC_ITEM
))
)))))
my_error
(
ER_WRONG_ARGUMENTS
,
MYF
(
0
),
"NAME_CONST"
);
Item
::
maybe_null
=
TRUE
;
}
...
...
sql/sp_head.cc
View file @
6037e8ec
...
...
@@ -126,6 +126,9 @@ sp_get_item_value(THD *thd, Item *item, String *str)
if
(
cs
->
escape_with_backslash_is_dangerous
)
buf
.
append
(
' '
);
append_query_string
(
cs
,
result
,
&
buf
);
buf
.
append
(
" COLLATE '"
);
buf
.
append
(
item
->
collation
.
collation
->
name
);
buf
.
append
(
'\''
);
str
->
copy
(
buf
);
return
str
;
...
...
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