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
08a7c95a
Commit
08a7c95a
authored
Oct 23, 2007
by
ramil/ram@ramil.myoffice.izhnet.ru
Browse files
Options
Browse Files
Download
Plain Diff
Merge mysql.com:/home/ram/work/b31615/b31615.4.1
into mysql.com:/home/ram/work/b31615/b31615.5.0
parents
5cb0d706
ffde32d2
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
43 additions
and
0 deletions
+43
-0
mysql-test/r/ctype_ucs.result
mysql-test/r/ctype_ucs.result
+8
-0
mysql-test/t/ctype_ucs.test
mysql-test/t/ctype_ucs.test
+12
-0
sql/set_var.cc
sql/set_var.cc
+22
-0
sql/set_var.h
sql/set_var.h
+1
-0
No files found.
mysql-test/r/ctype_ucs.result
View file @
08a7c95a
...
@@ -811,6 +811,14 @@ quote(name)
...
@@ -811,6 +811,14 @@ quote(name)
????????
????????
????????????????
????????????????
drop table bug20536;
drop table bug20536;
set names ucs2;
ERROR 42000: Variable 'character_set_client' can't be set to the value of 'ucs2'
set names ucs2 collate ucs2_bin;
ERROR 42000: Variable 'character_set_client' can't be set to the value of 'ucs2'
set character_set_client= ucs2;
ERROR 42000: Variable 'character_set_client' can't be set to the value of 'ucs2'
set character_set_client= concat('ucs', substr('2', 1));
ERROR 42000: Variable 'character_set_client' can't be set to the value of 'ucs2'
End of 4.1 tests
End of 4.1 tests
CREATE TABLE t1 (a varchar(64) character set ucs2, b decimal(10,3));
CREATE TABLE t1 (a varchar(64) character set ucs2, b decimal(10,3));
INSERT INTO t1 VALUES ("1.1", 0), ("2.1", 0);
INSERT INTO t1 VALUES ("1.1", 0), ("2.1", 0);
...
...
mysql-test/t/ctype_ucs.test
View file @
08a7c95a
...
@@ -547,6 +547,18 @@ select quote(name) from bug20536;
...
@@ -547,6 +547,18 @@ select quote(name) from bug20536;
drop
table
bug20536
;
drop
table
bug20536
;
#
# Bug #31615: crash after set names ucs2 collate xxx
#
--
error
1231
set
names
ucs2
;
--
error
1231
set
names
ucs2
collate
ucs2_bin
;
--
error
1231
set
character_set_client
=
ucs2
;
--
error
1231
set
character_set_client
=
concat
(
'ucs'
,
substr
(
'2'
,
1
));
--
echo
End
of
4.1
tests
--
echo
End
of
4.1
tests
#
#
...
...
sql/set_var.cc
View file @
08a7c95a
...
@@ -2223,6 +2223,21 @@ sys_var_character_set_filesystem::set_default(THD *thd, enum_var_type type)
...
@@ -2223,6 +2223,21 @@ sys_var_character_set_filesystem::set_default(THD *thd, enum_var_type type)
}
}
bool
sys_var_character_set_client
::
check
(
THD
*
thd
,
set_var
*
var
)
{
if
(
sys_var_character_set
::
check
(
thd
,
var
))
return
1
;
/* Currently, UCS-2 cannot be used as a client character set */
if
(
var
->
save_result
.
charset
->
mbminlen
>
1
)
{
my_error
(
ER_WRONG_VALUE_FOR_VAR
,
MYF
(
0
),
name
,
var
->
save_result
.
charset
->
csname
);
return
1
;
}
return
0
;
}
CHARSET_INFO
**
CHARSET_INFO
**
sys_var_character_set_results
::
ci_ptr
(
THD
*
thd
,
enum_var_type
type
)
sys_var_character_set_results
::
ci_ptr
(
THD
*
thd
,
enum_var_type
type
)
{
{
...
@@ -2562,6 +2577,13 @@ end:
...
@@ -2562,6 +2577,13 @@ end:
int
set_var_collation_client
::
check
(
THD
*
thd
)
int
set_var_collation_client
::
check
(
THD
*
thd
)
{
{
/* Currently, UCS-2 cannot be used as a client character set */
if
(
character_set_client
->
mbminlen
>
1
)
{
my_error
(
ER_WRONG_VALUE_FOR_VAR
,
MYF
(
0
),
"character_set_client"
,
character_set_client
->
csname
);
return
1
;
}
return
0
;
return
0
;
}
}
...
...
sql/set_var.h
View file @
08a7c95a
...
@@ -613,6 +613,7 @@ public:
...
@@ -613,6 +613,7 @@ public:
sys_var_character_set
(
name_arg
)
{}
sys_var_character_set
(
name_arg
)
{}
void
set_default
(
THD
*
thd
,
enum_var_type
type
);
void
set_default
(
THD
*
thd
,
enum_var_type
type
);
CHARSET_INFO
**
ci_ptr
(
THD
*
thd
,
enum_var_type
type
);
CHARSET_INFO
**
ci_ptr
(
THD
*
thd
,
enum_var_type
type
);
bool
check
(
THD
*
thd
,
set_var
*
var
);
};
};
class
sys_var_character_set_results
:
public
sys_var_character_set
class
sys_var_character_set_results
:
public
sys_var_character_set
...
...
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