Skip to content

Commit 79710e2

Browse files
committed
This is an automated cherry-pick of pingcap#61080
Signed-off-by: ti-chi-bot <[email protected]> Signed-off-by: xhe <[email protected]>
1 parent 8dc75ce commit 79710e2

File tree

3 files changed

+35
-79
lines changed

3 files changed

+35
-79
lines changed

cmd/explaintest/r/new_character_set.result

Lines changed: 32 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -2,129 +2,103 @@ set tidb_cost_model_version=1;
22
drop table if exists t;
33
set names utf8mb4;
44
create table t (a varchar(255) charset utf8mb4);
5-
insert into t values ('一二三四一');
5+
insert into t values ('一二三四一');
66
select hex(a) from t;
77
hex(a)
88
E4B880E4BA8CE4B889E59B9BE4B880
99
select a from t;
1010
a
11-
一二三四一
11+
一二三四一
1212
set @@character_set_results = 'gbk';
1313
select a from t;
1414
a
15-
һ������һ
16-
drop table if exists ;
17-
create table 一 (二 char(20));
18-
show create table ;
15+
Ò»¶þÈýËÄÒ»
16+
drop table if exists 一;
17+
create table 一 (二 char(20));
18+
show create table 一;
1919
Table Create Table
20-
һ CREATE TABLE `һ` (
21-
`��` char(20) DEFAULT NULL
20+
Ò» CREATE TABLE `Ò»` (
21+
`¶þ` char(20) DEFAULT NULL
2222
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
2323
drop table if exists t;
2424
set names utf8mb4;
2525
create table t (a varchar(255) charset gbk, b varchar(255) charset utf8mb4, c varchar(255) charset binary);
26-
insert into t values ('', '', '');
26+
insert into t values ('一', '一', '一');
2727
set @@character_set_results = null;
2828
select * from t;
2929
a b c
30-
һ 一 一
30+
һ 一 一
3131
set @@character_set_results = BINARY;
3232
select * from t;
3333
a b c
34-
һ 一 一
34+
һ 一 一
3535
set @@character_set_results = "BINARY";
3636
select * from t;
3737
a b c
38-
һ 一 一
38+
һ 一 一
3939
set names utf8mb4;
4040
select * from t;
4141
a b c
42-
一 一 一
42+
一 一 一
4343
set @@character_set_results = 'utf8mb4';
4444
drop table if exists t;
4545
create table t (a varchar(255) charset utf8mb4);
4646
set @@character_set_client = 'gbk';
47-
insert into t values ('中文');
47+
insert into t values ('中文');
4848
set @@character_set_client = 'utf8mb4';
49-
insert into t values ('中文');
49+
insert into t values ('中文');
5050
set @@character_set_client = 'gbk';
51-
prepare p1 from "insert into t values ('中文');";
51+
prepare p1 from "insert into t values ('中文');";
5252
execute p1;
5353

5454
select a, hex(a) from t;
5555
a hex(a)
56-
涓?枃 E6B6933FE69E83
57-
中文 E4B8ADE69687
58-
涓?枃 E6B6933FE69E83
56+
涓?枃 E6B6933FE69E83
57+
中文 E4B8ADE69687
58+
涓?枃 E6B6933FE69E83
5959
set @@character_set_client = 'utf8mb4';
6060
set names gbk;
6161
drop table if exists t;
6262
create table t (b blob, d json);
63-
insert into t values ('你好', '{"测试": "你好"}');
63+
insert into t values ('你好', '{"测试": "你好"}');
6464
select b, d from t;
6565
b d
66-
你好 {"测试": "你好"}
66+
你好 {"测试": "你好"}
6767
select hex(b), hex(d) from t;
6868
hex(b) hex(d)
6969
E4BDA0E5A5BD 7B22E6B58BE8AF95223A2022E4BDA0E5A5BD227D
7070
set names utf8mb4;
7171
drop table if exists t;
7272
create table t(a blob, b char(10));
73-
insert into t values (0x61, '');
74-
insert into t values (0x61, '');
73+
insert into t values (0x61, '啊');
74+
insert into t values (0x61, '一');
7575
set names gbk;
7676
select * from t;
7777
a b
78-
a ��
79-
a һ
78+
a °¡
79+
a Ò»
8080
drop table t;
8181
set names gbk;
8282
set character_set_connection = utf8mb4;
83-
create table t(j json, b blob, s1 varchar(255) collate binary, s2 varchar(255), st set('{"点赞": "你好"}'), en enum('{"点赞": "你好"}'));
84-
insert into t values('{"点赞": "你好"}', '{"点赞": "你好"}', '{"点赞": "你好"}', '{"点赞": "你好"}', '{"点赞": "你好"}', '{"点赞": "你好"}');
83+
create table t(j json, b blob, s1 varchar(255) collate binary, s2 varchar(255), st set('{"点赞": "你好"}'), en enum('{"点赞": "你好"}'));
84+
insert into t values('{"点赞": "你好"}', '{"点赞": "你好"}', '{"点赞": "你好"}', '{"点赞": "你好"}', '{"点赞": "你好"}', '{"点赞": "你好"}');
8585
select * from t;
8686
j b s1 s2 st en
87-
{"点赞": "你好"} {"鐐硅禐": "浣犲ソ"} {"鐐硅禐": "浣犲ソ"} {"点赞": "你好"} {"点赞": "你好"} {"点赞": "你好"}
87+
{"点赞": "你好"} {"鐐硅禐": "浣犲ソ"} {"鐐硅禐": "浣犲ソ"} {"点赞": "你好"} {"点赞": "你好"} {"点赞": "你好"}
8888
set names utf8mb4;
8989
set @@character_set_client=gbk;
9090
set @@character_set_connection=gbk;
91-
select hex('一a'), '一a';
92-
hex('涓?') 涓?
93-
E4B83F 涓?
94-
<<<<<<< HEAD:cmd/explaintest/r/new_character_set.result
95-
=======
96-
set @@sql_mode=default;
97-
set @@character_set_client=default;
98-
set @@character_set_connection=default;
99-
show variables like 'collation_connection';
100-
Variable_name Value
101-
collation_connection utf8mb4_bin
102-
set default_collation_for_utf8mb4 = 'utf8mb4_general_ci';
103-
set names utf8mb4;
104-
show variables like 'collation_connection';
105-
Variable_name Value
106-
collation_connection utf8mb4_general_ci
107-
set default_collation_for_utf8mb4 = 'utf8mb4_0900_ai_ci';
108-
set names utf8mb4;
109-
show variables like 'collation_connection';
110-
Variable_name Value
111-
collation_connection utf8mb4_0900_ai_ci
112-
set default_collation_for_utf8mb4 = default;
113-
set names utf8mb4;
114-
show variables like 'collation_connection';
115-
Variable_name Value
116-
collation_connection utf8mb4_bin
91+
select hex('一a'), '一a';
92+
hex('涓?') 涓?
93+
E4B83F 涓?
11794
set character_set_results = "gbk";
11895
select cast(0x414141E280A9424242 as char charset utf8mb4);
11996
cast(0x414141E280A9424242 as char charset utf8mb4)
12097
AAA?BBB
12198
SET character_set_results = @undefined_var;
122-
DROP TABLE if exists t61085;
12399
create table t61085 (a char(255) charset gbk);
124100
insert into t61085 values ('AAA');
125101
set SESSION sql_mode = '';
126102
select * from t61085 where a = cast(0x41414180424242 as char charset gbk);
127-
a
128-
AAA
103+
Error 1105: Cannot convert string 'AAA\x80BB...' from binary to gbk
129104
DROP TABLE t61085;
130-
>>>>>>> d5dcbdf3792 (server: replace instead of truncate encoded result (#61080)):tests/integrationtest/r/new_character_set.result

cmd/explaintest/t/new_character_set.test

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -67,32 +67,14 @@ set names utf8mb4;
6767
set @@character_set_client=gbk;
6868
set @@character_set_connection=gbk;
6969
select hex('一a'), '一a';
70-
<<<<<<< HEAD:cmd/explaintest/t/new_character_set.test
71-
=======
7270

73-
set @@sql_mode=default;
74-
set @@character_set_client=default;
75-
set @@character_set_connection=default;
76-
77-
show variables like 'collation_connection';
78-
set default_collation_for_utf8mb4 = 'utf8mb4_general_ci';
79-
set names utf8mb4;
80-
show variables like 'collation_connection';
81-
set default_collation_for_utf8mb4 = 'utf8mb4_0900_ai_ci';
82-
set names utf8mb4;
83-
show variables like 'collation_connection';
84-
set default_collation_for_utf8mb4 = default;
85-
set names utf8mb4;
86-
show variables like 'collation_connection';
87-
88-
# Bug#61085: https://github.com/pingcap/tidb/issues/61085 should replace instead of truncation for result charset
71+
-- Bug#61085: https://github.com/pingcap/tidb/issues/61085 should replace instead of truncation for result charset
8972
set character_set_results = "gbk";
9073
select cast(0x414141E280A9424242 as char charset utf8mb4);
9174
SET character_set_results = @undefined_var;
92-
DROP TABLE if exists t61085;
9375
create table t61085 (a char(255) charset gbk);
9476
insert into t61085 values ('AAA');
9577
set SESSION sql_mode = '';
78+
--error 1105
9679
select * from t61085 where a = cast(0x41414180424242 as char charset gbk);
9780
DROP TABLE t61085;
98-
>>>>>>> d5dcbdf3792 (server: replace instead of truncate encoded result (#61080)):tests/integrationtest/t/new_character_set.test

server/util.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,7 @@ func (d *resultEncoder) encodeData(src []byte) []byte {
385385
}
386386

387387
func (d *resultEncoder) encodeWith(src []byte, enc charset.Encoding) []byte {
388-
data, err := enc.Transform(d.buffer, src, charset.OpEncode)
388+
data, err := enc.Transform(d.buffer, src, charset.OpEncodeReplace)
389389
if err != nil {
390390
logutil.BgLogger().Debug("encode error", zap.Error(err))
391391
}

0 commit comments

Comments
 (0)