issue-20250702
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
- 点赞
- 收藏
- 关注作者
评论(0)