This issue requires an assignee. Since you haven't specified one, we've assigned TestManager as the default assignee for this issue.


Welcome To openGauss Community
Hey @Nerifish , thanks for your contribution to the community.
Bot Usage Manual
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here . That means you can comment below every pull request or issue to trigger Bot Commands.
Contact Guide
If you have any questions, please contact the SIG: StorageEngine ,
and any of the maintainers: @CarrotGo, @chendong76, @chenxiaobin19, @congzhou2603, @dodders, @hwworkholic, @jemappellehc, @muyulinzhong, @quemingjian, @shenzheng4, @shirley_zhengx, @superlchf, @totaj, @wlff234, @wofanzheng, @ywzq1161327784 ,
and any of the committers: @CityYard, @libiao2024, @lijieac, @theothersideofsea, @wang_bowen, @weithu, @xiong_xjun, @yuanyazhi, @zhangzq131 .



DROP TABLE IF EXISTS repro_hp_gtt_p0 PURGE;
DROP TABLE IF EXISTS repro_hp_src PURGE;
CREATE TABLE repro_hp_src (
c_id INT,
c_d_id INT NOT NULL,
c_w_id INT NOT NULL,
c_first VARCHAR(16) NOT NULL,
c_middle CHAR(2),
c_last VARCHAR(16) NOT NULL,
c_street_1 VARCHAR(20) NOT NULL,
c_street_2 VARCHAR(20),
c_city VARCHAR(20) NOT NULL,
c_state CHAR(2) NOT NULL,
c_zip CHAR(9) NOT NULL,
c_phone CHAR(16) NOT NULL,
c_since TIMESTAMP,
c_credit CHAR(2) NOT NULL,
c_credit_lim NUMERIC(12,2),
c_discount NUMERIC(4,4),
c_balance NUMERIC(12,2),
c_ytd_payment NUMERIC(12,2) NOT NULL,
c_payment_cnt INT NOT NULL,
c_delivery_cnt INT NOT NULL,
c_data VARCHAR(500) NOT NULL
);
INSERT INTO repro_hp_src VALUES (
1, 1, 1,
'qwertyasdf', 'MN', 'GREENFIELD',
'oakstreet12', 'unit-9', 'newtowncity',
'CA', '902101234', '1310555123456789',
NULL, 'BC', 42000.0, 0.1250, -20.0, 20.0,
2, 1, RPAD('x', 500, 'x')
);
INSERT INTO repro_hp_src
SELECT c_id + 1, c_d_id, c_w_id, c_first, c_middle, c_last,
c_street_1, c_street_2, c_city, c_state, c_zip, c_phone,
c_since, c_credit, c_credit_lim, c_discount, c_balance,
c_ytd_payment, c_payment_cnt, c_delivery_cnt, c_data
FROM repro_hp_src;
INSERT INTO repro_hp_src
SELECT c_id + 2, c_d_id, c_w_id, c_first, c_middle, c_last,
c_street_1, c_street_2, c_city, c_state, c_zip, c_phone,
c_since, c_credit, c_credit_lim, c_discount, c_balance,
c_ytd_payment, c_payment_cnt, c_delivery_cnt, c_data
FROM repro_hp_src;
INSERT INTO repro_hp_src
SELECT c_id + 4, c_d_id, c_w_id, c_first, c_middle, c_last,
c_street_1, c_street_2, c_city, c_state, c_zip, c_phone,
c_since, c_credit, c_credit_lim, c_discount, c_balance,
c_ytd_payment, c_payment_cnt, c_delivery_cnt, c_data
FROM repro_hp_src;
INSERT INTO repro_hp_src
SELECT c_id + 8, c_d_id, c_w_id, c_first, c_middle, c_last,
c_street_1, c_street_2, c_city, c_state, c_zip, c_phone,
c_since, c_credit, c_credit_lim, c_discount, c_balance,
c_ytd_payment, c_payment_cnt, c_delivery_cnt, c_data
FROM repro_hp_src
WHERE c_id <= 2;
INSERT INTO repro_hp_src
SELECT c_id + 16, c_d_id, c_w_id, c_first, c_middle, c_last,
c_street_1, c_street_2, c_city, c_state, c_zip, c_phone,
c_since, c_credit, c_credit_lim, c_discount, c_balance,
c_ytd_payment, c_payment_cnt, c_delivery_cnt, c_data
FROM repro_hp_src;
INSERT INTO repro_hp_src
SELECT c_id + 32, c_d_id, c_w_id, c_first, c_middle, c_last,
c_street_1, c_street_2, c_city, c_state, c_zip, c_phone,
c_since, c_credit, c_credit_lim, c_discount, c_balance,
c_ytd_payment, c_payment_cnt, c_delivery_cnt, c_data
FROM repro_hp_src;
INSERT INTO repro_hp_src
SELECT c_id + 64, c_d_id, c_w_id, c_first, c_middle, c_last,
c_street_1, c_street_2, c_city, c_state, c_zip, c_phone,
c_since, c_credit, c_credit_lim, c_discount, c_balance,
c_ytd_payment, c_payment_cnt, c_delivery_cnt, c_data
FROM repro_hp_src;
INSERT INTO repro_hp_src
SELECT c_id + 128, c_d_id, c_w_id, c_first, c_middle, c_last,
c_street_1, c_street_2, c_city, c_state, c_zip, c_phone,
c_since, c_credit, c_credit_lim, c_discount, c_balance,
c_ytd_payment, c_payment_cnt, c_delivery_cnt, c_data
FROM repro_hp_src;
INSERT INTO repro_hp_src
SELECT c_id + 256, c_d_id, c_w_id, c_first, c_middle, c_last,
c_street_1, c_street_2, c_city, c_state, c_zip, c_phone,
c_since, c_credit, c_credit_lim, c_discount, c_balance,
c_ytd_payment, c_payment_cnt, c_delivery_cnt, c_data
FROM repro_hp_src;
INSERT INTO repro_hp_src
SELECT c_id + 512, c_d_id, c_w_id, c_first, c_middle, c_last,
c_street_1, c_street_2, c_city, c_state, c_zip, c_phone,
c_since, c_credit, c_credit_lim, c_discount, c_balance,
c_ytd_payment, c_payment_cnt, c_delivery_cnt, c_data
FROM repro_hp_src;
INSERT INTO repro_hp_src
SELECT c_id + 1024, c_d_id, c_w_id, c_first, c_middle, c_last,
c_street_1, c_street_2, c_city, c_state, c_zip, c_phone,
c_since, c_credit, c_credit_lim, c_discount, c_balance,
c_ytd_payment, c_payment_cnt, c_delivery_cnt, c_data
FROM repro_hp_src;
INSERT INTO repro_hp_src
SELECT c_id + 2048, c_d_id, c_w_id, c_first, c_middle, c_last,
c_street_1, c_street_2, c_city, c_state, c_zip, c_phone,
c_since, c_credit, c_credit_lim, c_discount, c_balance,
c_ytd_payment, c_payment_cnt, c_delivery_cnt, c_data
FROM repro_hp_src;
INSERT INTO repro_hp_src
SELECT c_id + 4096, c_d_id, c_w_id, c_first, c_middle, c_last,
c_street_1, c_street_2, c_city, c_state, c_zip, c_phone,
c_since, c_credit, c_credit_lim, c_discount, c_balance,
c_ytd_payment, c_payment_cnt, c_delivery_cnt, c_data
FROM repro_hp_src;
INSERT INTO repro_hp_src
SELECT c_id + 8192, c_d_id, c_w_id, c_first, c_middle, c_last,
c_street_1, c_street_2, c_city, c_state, c_zip, c_phone,
c_since, c_credit, c_credit_lim, c_discount, c_balance,
c_ytd_payment, c_payment_cnt, c_delivery_cnt, c_data
FROM repro_hp_src;
DELETE FROM repro_hp_src WHERE c_id > 10000;
CREATE GLOBAL TEMPORARY TABLE repro_hp_gtt_p0 (
c_id INT,
c_d_id INT NOT NULL,
c_w_id INT NOT NULL,
c_first VARCHAR(16) NOT NULL,
c_middle CHAR(2),
c_last VARCHAR(16) NOT NULL,
c_street_1 VARCHAR(20) NOT NULL,
c_street_2 VARCHAR(20),
c_city VARCHAR(20) NOT NULL,
c_state CHAR(2) NOT NULL,
c_zip CHAR(9) NOT NULL,
c_phone CHAR(16) NOT NULL,
c_since TIMESTAMP,
c_credit CHAR(2) NOT NULL,
c_credit_lim NUMERIC(12,2),
c_discount NUMERIC(4,4),
c_balance NUMERIC(12,2),
c_ytd_payment NUMERIC(12,2) NOT NULL,
c_payment_cnt INT NOT NULL,
c_delivery_cnt INT NOT NULL,
c_data VARCHAR(500) NOT NULL
) PCTFREE 0;
INSERT INTO repro_hp_gtt_p0
SELECT c_id, c_d_id, c_w_id, c_first, c_middle, c_last,
c_street_1, c_street_2, c_city, c_state, c_zip, c_phone,
c_since, c_credit, c_credit_lim, c_discount, c_balance,
c_ytd_payment, c_payment_cnt, c_delivery_cnt, c_data
FROM repro_hp_src;
SELECT COUNT(*) FROM repro_hp_gtt_p0;
-- 当前缺陷版本执行到这里会触发 core。
UPDATE repro_hp_gtt_p0
SET c_first = 'zzzzzzzzzzzzzzz';


回归时间:2026..11
回归版本:7.0.0 B023
回归结论:通过
回归步骤:按上述步骤执行SQL语句



测试类型
SQL功能,存储功能
测试版本
7.0.0LTS
问题描述
内核走temp_heap_update_migr()跨页迁移路径触发core
操作系统和硬件信息
在dcs上可以复现
测试环境
企业版单机
被测功能
预置条件
操作步骤
预期输出
实际输出
日志信息
提单组织
内部开发
测试代码