Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

session: fix global variable collation_server does not take effect in new session #23932

Merged
merged 33 commits into from
Apr 15, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
eccbecb
fix global variable collation_server does not take effect in new session
xiongjiwei Apr 9, 2021
fcdc6bf
Merge branch 'master' into collation-server
xiongjiwei Apr 9, 2021
2e8e2be
Merge branch 'master' into collation-server
xiongjiwei Apr 9, 2021
19ceee8
Merge branch 'master' into collation-server
xiongjiwei Apr 9, 2021
e32f874
Merge branch 'master' into collation-server
ti-chi-bot Apr 9, 2021
bec396e
Merge branch 'master' into collation-server
ti-chi-bot Apr 9, 2021
8187754
Merge branch 'master' into collation-server
ti-chi-bot Apr 12, 2021
b8018b4
Merge branch 'master' into collation-server
ti-chi-bot Apr 12, 2021
48eb2f5
Merge branch 'master' into collation-server
ti-chi-bot Apr 12, 2021
f8be766
Merge branch 'master' into collation-server
ti-chi-bot Apr 12, 2021
bde0d8d
Merge branch 'master' into collation-server
ti-chi-bot Apr 12, 2021
5c1ea79
Merge branch 'master' into collation-server
ti-chi-bot Apr 12, 2021
ffd321a
Merge branch 'master' into collation-server
ti-chi-bot Apr 12, 2021
5874d62
Merge branch 'master' into collation-server
ti-chi-bot Apr 13, 2021
63ea78a
Merge branch 'master' into collation-server
ti-chi-bot Apr 13, 2021
dfe1981
Merge branch 'master' into collation-server
ti-chi-bot Apr 13, 2021
428a0f1
Merge branch 'master' into collation-server
ti-chi-bot Apr 13, 2021
3c9cd62
Merge branch 'master' into collation-server
ti-chi-bot Apr 13, 2021
79a6af9
Merge branch 'master' into collation-server
ti-chi-bot Apr 13, 2021
30b24ae
Merge branch 'master' into collation-server
ti-chi-bot Apr 14, 2021
734b3a7
Merge branch 'master' into collation-server
ti-chi-bot Apr 14, 2021
fb723de
Merge branch 'master' into collation-server
ti-chi-bot Apr 14, 2021
71b2a03
Merge branch 'master' into collation-server
ti-chi-bot Apr 14, 2021
1ea0deb
Merge branch 'master' into collation-server
ti-chi-bot Apr 14, 2021
ae323d6
Merge branch 'master' into collation-server
ti-chi-bot Apr 14, 2021
fe4e8e5
Merge branch 'master' into collation-server
ti-chi-bot Apr 14, 2021
943624b
Merge branch 'master' into collation-server
ti-chi-bot Apr 14, 2021
f469021
Merge branch 'master' into collation-server
ti-chi-bot Apr 14, 2021
8610494
Merge branch 'master' into collation-server
ti-chi-bot Apr 14, 2021
8b68449
Merge branch 'master' into collation-server
ti-chi-bot Apr 14, 2021
d32e13e
Merge branch 'master' into collation-server
ti-chi-bot Apr 15, 2021
95b5b6c
Merge branch 'master' into collation-server
ti-chi-bot Apr 15, 2021
826c285
Merge branch 'master' into collation-server
ti-chi-bot Apr 15, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions session/session.go
Original file line number Diff line number Diff line change
Expand Up @@ -2570,7 +2570,7 @@ func (s *session) loadCommonGlobalVariablesIfNeeded() error {
vars = append(vars, variable.PluginVarNames...)
}

stmt, err := s.ParseWithParams(context.TODO(), "select HIGH_PRIORITY * from mysql.global_variables where variable_name in (%?)", vars)
stmt, err := s.ParseWithParams(context.TODO(), "select HIGH_PRIORITY * from mysql.global_variables where variable_name in (%?) order by VARIABLE_NAME", vars)
if err != nil {
return nil, nil, errors.Trace(err)
}
Expand All @@ -2588,7 +2588,9 @@ func (s *session) loadCommonGlobalVariablesIfNeeded() error {
for _, row := range rows {
varName := row.GetString(0)
varVal := row.GetDatum(1, &fields[1].Column.FieldType)
if _, ok := vars.GetSystemVar(varName); !ok {
// `collation_server` is related to `character_set_server`, set `character_set_server` will also set `collation_server`.
// We have to make sure we set the `collation_server` with right value.
if _, ok := vars.GetSystemVar(varName); !ok || varName == variable.CollationServer {
err = variable.SetSessionSystemVar(s.sessionVars, varName, varVal)
if err != nil {
return err
Expand Down
9 changes: 9 additions & 0 deletions session/session_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4171,6 +4171,15 @@ func (s *testSessionSerialSuite) TestTiKVSystemVars(c *C) {

}

func (s *testSessionSerialSuite) TestGlobalVarCollationServer(c *C) {
tk := testkit.NewTestKit(c, s.store)
tk.MustExec("set @@global.collation_server=utf8mb4_general_ci")
tk.MustQuery("show global variables like 'collation_server'").Check(testkit.Rows("collation_server utf8mb4_general_ci"))
tk = testkit.NewTestKit(c, s.store)
tk.MustQuery("show global variables like 'collation_server'").Check(testkit.Rows("collation_server utf8mb4_general_ci"))
tk.MustQuery("show variables like 'collation_server'").Check(testkit.Rows("collation_server utf8mb4_general_ci"))
}

func (s *testSessionSerialSuite) TestProcessInfoIssue22068(c *C) {
tk := testkit.NewTestKit(c, s.store)
tk.MustExec("use test")
Expand Down