一、问题处理说明 mysql-openGauss在线迁移,LIST/HASH分区的reorganize partition功能在openGauss内核不支持,此内容在20220720 tools sig组例会裁决了相同问题的问题单issue=I5FT13 二、问题描述 【测试类型:工具功能】【测试版本:master】mysql在线创建list分区表后reorganize partition,opengauss侧分区未重组,chameleon工具进程中断 https://e.gitee.com/opengaussorg/dashboard?issue=I5FQ9W
测试样例为创建list分区, MySQL侧执行的语句为 create table t_chameleon_ddl_2201 ( id int, fname varchar(20), lname varchar(20) ) partition by list(id) ( partition p0 values in (1, 5, 9, 13, 17, 21), partition p1 values in (2, 6, 10, 14, 18, 22) ); alter table t_chameleon_ddl_2201 reorganize partition p0 into ( partition n0 values in (1, 5, 9), partition n1 values in (13, 17, 21) ); 处理方案为:输出提示 REGANIZE OR SPLIT LIST/HASH PARTITION is not support yet
转化openGauss侧ddl语句为 CREATE TABLE "sch_mysql_database"."t_chameleon_ddl_2201" ( "id" integer NULL , "fname" character varying (20) NULL , "lname" character varying (20) NULL ) PARTITION BY LIST(id) ( partition p0 values(1, 5, 9, 13, 17, 21) , partition p1 values(2, 6, 10, 14, 18, 22) ); 其中reorganize语句中的list_values_clause应该如下所示的写法,但是在openGauss手册中暂未支持list_values_clause的写法,最初代码中会导致报错。 ALTER TABLE sch_mysql_database.t_chameleon_ddl_2201 SPLIT PARTITION p0 INTO ( PARTITION n0 VALUES (1, 5, 9), PARTITION n1 VALUES (13, 17, 21)); 如果更改为values_less_than的写法,在openGauss侧则会显示为内核不支持,但是显然values_less_than的语句并不正确。opengauss内核报错为 can not split list/hash partition table ALTER TABLE sch_mysql_database.t_chameleon_ddl_2201 SPLIT PARTITION p0 INTO ( PARTITION n0 VALUES less than (1, 5, 9), PARTITION n1 VALUES less than (13, 17, 21)) 故最终采取的方案是,对于SPLIT或REGANIZE,输出提示 REGANIZE OR SPLIT LIST/HASH PARTITION is not support yet,并且将转化语句改写为空使得工具不报错 ''
三、根因分析 与上次裁决类似的,在MySQL侧使用reorganize对分区表进行重组过程中,对应openGauss提供的split和merge可以做到类似的操作。但是对于list分区和hash分区在openGauss侧不支持split和merge,故也无法实现reorganize对分区重组的功能。
四、消减或规避措施 对于SPLIT或REGANIZE,输出提示 REGANIZE OR SPLIT LIST/HASH PARTITION is not support yet,并且将转化语句改写为空使得工具不报错 ''
五、处理满足度 六、影响分析 openGauss内核不支持list分区和hash分区和分割和重组,list和hash分区在MySQL侧使用reorganize无法在线迁移使得openGauss侧分区重组。
七、决策点 同20220720裁决问题单的,将该openGauss内核不支持的问题转化为需求 【测试类型:工具功能】【测试版本:master】交付的测试用例第八章用例编号为142的用例执行不通过,执行reorganize partition语句后,chameleon进程中断,opengauss侧分区未重组 https://e.gitee.com/opengaussorg/dashboard?issue=I5FT13