merge cherry-pick-mr-7765-1751264780967-auto into 6.0.0
【回合6.0.0】修复enable_multi_charset下walsender初始化失败的问题 Created-by: chenxiaobin19 Commit-by: chenxiaobin19 Merged-by: opengauss_bot Description: 【标题】(请简要描述下实现的内容) 【回合6.0.0】修复enable_multi_charset下walsender初始化失败的问题 【实现内容】: 见:https://gitcode.com/opengauss/openGauss-server/pull/7765 【根因分析】: 【实现方案】: 【关联需求或issue】: 【开发自验报告】: 1. 请附上自验结果(内容或者截图) 2. 是否可以添加fastcheck测试用例,如是,请补充fastcheck用例 3. 是否涉及资料修改,如是,在docs仓库补充资料 4. 是否考虑升级场景(系统表修改、日志持久化以及修改执行态数据格式) 5. 是否考虑在线扩容等扩展场景 6. 是否考虑异常场景/并发场景/前向兼容/性能场景 7. 是否对其他模块产生影响 8. 是否需要回合补丁版本(5.0、6.0),涉及(**结果错误|coredump|性能劣化|内存泄露|集群异常**)相关修复请排查回合补丁分支 【其他说明】: See merge request: opengauss/openGauss-server!8006
This commit is contained in:
@ -2826,6 +2826,7 @@ void PostgresInitializer::InitSettings()
|
||||
|
||||
/* initialize client encoding */
|
||||
InitializeClientEncoding();
|
||||
InitializeCharsetEncoding();
|
||||
}
|
||||
|
||||
void PostgresInitializer::InitExtensionVariable()
|
||||
|
||||
@ -241,6 +241,14 @@ void InitializeClientEncoding(void)
|
||||
pg_enc2name_tbl[u_sess->mb_cxt.pending_client_encoding].name,
|
||||
GetDatabaseEncodingName())));
|
||||
}
|
||||
}
|
||||
|
||||
void InitializeCharsetEncoding(void)
|
||||
{
|
||||
if (!u_sess->mb_cxt.backend_startup_complete) {
|
||||
return;
|
||||
}
|
||||
|
||||
u_sess->mb_cxt.character_set_connection = &pg_enc2name_tbl[GetDatabaseEncoding()];
|
||||
if (ENABLE_MULTI_CHARSET) {
|
||||
u_sess->mb_cxt.collation_connection = get_default_collation_by_charset(GetDatabaseEncoding(), false);
|
||||
|
||||
@ -463,6 +463,7 @@ extern mbcharacter_incrementer pg_database_encoding_character_incrementer(void);
|
||||
extern int PrepareClientEncoding(int encoding);
|
||||
extern int SetClientEncoding(int encoding);
|
||||
extern void InitializeClientEncoding(void);
|
||||
extern void InitializeCharsetEncoding(void);
|
||||
extern int pg_get_client_encoding(void);
|
||||
extern const char* pg_get_client_encoding_name(void);
|
||||
|
||||
|
||||
@ -177,4 +177,16 @@ select * from t1;
|
||||
create database latin1_db dbcompatibility 'b' encoding 'latin1' lc_ctype = 'C' lc_collate = 'C';
|
||||
\c latin1_db
|
||||
select '高斯aa' = '高斯AA';
|
||||
|
||||
\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1 -c "b_format_behavior_compat_options='enable_multi_charset'" >/dev/null 2>&1
|
||||
select pg_sleep(1);
|
||||
|
||||
\! mkdir @abs_srcdir@/tmp_check/charset_connection_test_backup/
|
||||
\! @abs_bindir@/gs_basebackup -hlocalhost -p@portstring@ -D @abs_srcdir@/tmp_check/charset_connection_test_backup/ 2>&1 |grep successfully
|
||||
|
||||
\! rm -rf @abs_srcdir@/tmp_check/charset_connection_test_backup/
|
||||
|
||||
\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1 -c "b_format_behavior_compat_options=''" >/dev/null 2>&1
|
||||
select pg_sleep(1);
|
||||
|
||||
\c regression
|
||||
@ -587,4 +587,22 @@ select '高斯aa' = '高斯AA';
|
||||
f
|
||||
(1 row)
|
||||
|
||||
\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1 -c "b_format_behavior_compat_options='enable_multi_charset'" >/dev/null 2>&1
|
||||
select pg_sleep(1);
|
||||
pg_sleep
|
||||
----------
|
||||
|
||||
(1 row)
|
||||
|
||||
\! mkdir @abs_srcdir@/tmp_check/charset_connection_test_backup/
|
||||
\! @abs_bindir@/gs_basebackup -hlocalhost -p@portstring@ -D @abs_srcdir@/tmp_check/charset_connection_test_backup/ 2>&1 |grep successfully
|
||||
--?.*gs_basebackup: base backup successfully
|
||||
\! rm -rf @abs_srcdir@/tmp_check/charset_connection_test_backup/
|
||||
\! @abs_bindir@/gs_guc reload -Z datanode -D @abs_srcdir@/tmp_check/datanode1 -c "b_format_behavior_compat_options=''" >/dev/null 2>&1
|
||||
select pg_sleep(1);
|
||||
pg_sleep
|
||||
----------
|
||||
|
||||
(1 row)
|
||||
|
||||
\c regression
|
||||
|
||||
Reference in New Issue
Block a user