issue-20250702

举报
yd_212678633 发表于 2025/07/02 10:26:08 2025/07/02
【摘要】 readme中的样例[mppdb@ecs-8869-0009 gaussdb]$ cat test.txt CREATE TABLE t0 (c1 INT, c2 INT);INSERT INTO t0 (c1, c2) VALUES (null, 10);INSERT INTO t0 (c1, c2) VALUES (1, 0);INSERT INTO t0 (c1, c2) VALUES...

readme中的样例

[mppdb@ecs-8869-0009 gaussdb]$ cat test.txt 
CREATE TABLE t0 (c1 INT, c2 INT);
INSERT INTO t0 (c1, c2) VALUES (null, 10);
INSERT INTO t0 (c1, c2) VALUES (1, 0);
INSERT INTO t0 (c1, c2) VALUES (null, 0);

1
BEGIN;
UPDATE t0 SET c1 = 10, c2 = 5 WHERE TRUE;
COMMIT;

2
BEGIN;
UPDATE t0 SET c2 = 20 WHERE c2 = 10;
COMMIT;

1-1-2-2-1-2

根据实际用例构造的复现用例

[mppdb@ecs-8869-0009 gaussdb-transaction]$ cat config/gaussdb/rep.txt 
CREATE TABLE IF NOT EXISTS t69 (c1 CLOB, PRIMARY KEY (c1)) WITH (ORIENTATION=COLUMN, COLVERSION=2.0, ENABLE_DELTA=ON, COMPRESSION=HIGH) DISTRIBUTE BY REPLICATION;
CREATE TABLE t70 (c1 INTEGER[] NOT NULL, c2 NUMERIC (10,0), c3 TIME(0) WITH TIME ZONE PRIMARY KEY, UNIQUE (c3, c2, c1)) WITH (ORIENTATION=ROW) DISTRIBUTE BY REPLICATION;
CREATE TABLE t71 (c1 SMALLSERIAL, PRIMARY KEY (c1)) WITH (ORIENTATION=COLUMN, COLVERSION=2.0, ENABLE_DELTA=ON, COMPRESSION=LOW) DISTRIBUTE BY REPLICATION;
CREATE TABLE t72 (c1 SERIAL, c2 SERIAL, PRIMARY KEY (c2, c1)) WITH (ORIENTATION=ROW) DISTRIBUTE BY REPLICATION;
INSERT INTO t71 (c1) VALUES (1);
INSERT INTO t69 (c1) VALUES ('d');
INSERT INTO t69 (c1) VALUES ('S');
INSERT INTO t71 (c1) VALUES (2);
INSERT INTO t69 (c1) VALUES ('P');
INSERT INTO t71 (c1) VALUES (3);
INSERT INTO t70 (c1,c2,c3) VALUES ('{-343070449,1823582248,673752580,-910238253,1998721243}',2515997,'22:34:04');
INSERT INTO t69 (c1) VALUES ('H');
INSERT INTO t70 (c1,c2,c3) VALUES ('{-1581443963,-1547079441,-704907258,-2056970649}',6972054387,'08:21:28');
INSERT INTO t72 (c1,c2) VALUES (1,1);
INSERT INTO t70 (c1,c2,c3) VALUES ('{1961096021,-174362894,1981873003,-1527325667,-72706201,1494644118,-50011519,-694467321}',-9713780844,'13:59:11'), ('{-403795231,-1949312873,713320670}',411,'02:20:01'), ('{-2124999169,198826670,945138232,1069676584,1416748520,455270101,-807197937}',-9162178,'16:47:53');
INSERT INTO t69 (c1) VALUES ('r');
INSERT INTO t70 (c1,c2,c3) VALUES ('{946719164}',-6,'05:26:43'), ('{1060234104,350271867,-482363481,1685929571,-673954378,-82170410}',3197849,'18:41:13'), ('{-810073380,-1769134461,1909345215,-1096722359,394049679,-1093703943,14488353,1666068372,-118217685,-767168436}',8001,'21:33:27');
INSERT INTO t69 (c1) VALUES ('2'), ('Y');
INSERT INTO t71 (c1) VALUES (4);
CREATE INDEX IF NOT EXISTS i68 ON t70 (c1, c2, c3) COMMENT 'text' WITH (INVISIBLE = ON);
CREATE UNIQUE INDEX IF NOT EXISTS i69 ON t72 USING btree (c2, c1) COMMENT 'text';

86
BEGIN;
DELETE FROM t69 WHERE ((92) IS NOT NULL);
SELECT DISTINCT ta2.ca4 AS ca1, c1 AS ca2 FROM (SELECT ALL c2 AS ca3 FROM ONLY t72) AS ta1, (SELECT c1 AS ca4 FROM ONLY t69 WHERE FALSE LIMIT 1611036437, 623481348) AS ta2, ONLY t69 LIMIT ALL OFFSET 357287796 ROWS;
COMMIT;
;

87
BEGIN;
SELECT DISTINCT ta1.ca2 AS ca1 FROM (SELECT DISTINCT c3 AS ca2, c3 AS ca3, c3 AS ca4 FROM ONLY t70 LIMIT 1326861282, ALL) AS ta1, ONLY t71, (SELECT DISTINCT t69.c1 AS ca5, t70.c1 AS ca6 FROM t69, (SELECT c1 AS ca7 FROM t71 WHERE ((+ c1) IS NOT NULL)) AS ta2, t70 WHERE (t69.c1) NOT LIKE (((encode('FY8Y', 'base64')) :: TEXT) :: TEXT)) AS ta3 LIMIT 1571484544, 92676250;
DELETE FROM ONLY t69;
ROLLBACK WORK;
;

86-0, 87-0, 87-1, 86-1, 86-2, 86-3, 87-2, 87-3

执行reproduce报错

[mppdb@ecs-8869-0009 gaussdb]$ cat rep0.log 
--java.lang.IllegalArgumentException: No enum constant dbmsforge.gaussdb.transaction.GaussDBTxStatement.GaussDBStatementType.
--    at java.base/java.lang.Enum.valueOf(Enum.java:240)
--    at dbmsforge.gaussdb.transaction.GaussDBTxStatement$GaussDBStatementType.valueOf(GaussDBTxStatement.java:11)
--    at dbmsforge.gaussdb.transaction.GaussDBTxStatement.setStatementType(GaussDBTxStatement.java:47)
--    at dbmsforge.common.transaction.TxStatement.<init>(TxStatement.java:17)
--    at dbmsforge.gaussdb.transaction.GaussDBTxStatement.<init>(GaussDBTxStatement.java:18)
--    at dbmsforge.gaussdb.oracle.GaussDBTxInferReproduceOracle.generateTxStmt(GaussDBTxInferReproduceOracle.java:142)
--    at dbmsforge.common.oracle.transaction.TxBugReproducer.readTransactionFromScanner(TxBugReproducer.java:56)
--    at dbmsforge.gaussdb.oracle.GaussDBTxInferReproduceOracle.check(GaussDBTxInferReproduceOracle.java:66)
--    at dbmsforge.common.DatabaseTestTask.runDatabaseTest(DatabaseTestTask.java:66)
--    at dbmsforge.common.DatabaseTestTask.run(DatabaseTestTask.java:34)
--    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
--    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
--    at java.base/java.lang.Thread.run(Thread.java:834)
---- Time: 2025/07/02 10:13:51
-- Database: rep0

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。