This is an automated email from the ASF dual-hosted git repository.
jianbin pushed a commit to branch 2.x
in repository https://gitbox.apache.org/repos/asf/incubator-seata.git
The following commit(s) were added to refs/heads/2.x by this push:
new 0b1d07d4c4 bugfix: fix KingbaseUndoLogManager INSERT_UNDO_LOG_SQL
error (#7929)
0b1d07d4c4 is described below
commit 0b1d07d4c4b00141762058c1f45f9abf97cc9ee0
Author: lokidundun <[email protected]>
AuthorDate: Mon Jan 12 13:42:27 2026 +0800
bugfix: fix KingbaseUndoLogManager INSERT_UNDO_LOG_SQL error (#7929)
---
changes/en-us/2.x.md | 3 +++
changes/zh-cn/2.x.md | 3 +++
.../seata/rm/datasource/undo/kingbase/KingbaseUndoLogManager.java | 2 +-
.../rm/datasource/undo/kingbase/KingbaseUndoLogManagerTest.java | 6 +++---
4 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/changes/en-us/2.x.md b/changes/en-us/2.x.md
index de80e8f743..034bd47fe3 100644
--- a/changes/en-us/2.x.md
+++ b/changes/en-us/2.x.md
@@ -23,6 +23,8 @@ Add changes here for all PR submitted to the 2.x branch.
### bugfix:
+- [[#7929](https://github.com/apache/incubator-seata/pull/7929)] fix
KingbaseUndoLogManager INSERT_UNDO_LOG_SQL error
+
### optimize:
@@ -44,6 +46,7 @@ Thanks to these contributors for their code commits. Please
report an unintended
<!-- Please make sure your Github ID is in the list below -->
- [slievrly](https://github.com/slievrly)
+- [lokidundun](https://github.com/lokidundun)
Also, we receive many valuable issues, questions and advices from our
community. Thanks for you all.
diff --git a/changes/zh-cn/2.x.md b/changes/zh-cn/2.x.md
index ae2a3808f0..859b4ce1f0 100644
--- a/changes/zh-cn/2.x.md
+++ b/changes/zh-cn/2.x.md
@@ -23,6 +23,8 @@
### bugfix:
+- [[#7929](https://github.com/apache/incubator-seata/pull/7929)] 修复
KingbaseUndoLogManager INSERT_UNDO_LOG_SQL 错误
+
### optimize:
@@ -44,6 +46,7 @@
<!-- 请确保您的 GitHub ID 在以下列表中 -->
- [slievrly](https://github.com/slievrly)
+- [lokidundun](https://github.com/lokidundun)
同时,我们收到了社区反馈的很多有价值的issue和建议,非常感谢大家。
diff --git
a/rm-datasource/src/main/java/org/apache/seata/rm/datasource/undo/kingbase/KingbaseUndoLogManager.java
b/rm-datasource/src/main/java/org/apache/seata/rm/datasource/undo/kingbase/KingbaseUndoLogManager.java
index f0ab78fb51..3ba1c2e48f 100644
---
a/rm-datasource/src/main/java/org/apache/seata/rm/datasource/undo/kingbase/KingbaseUndoLogManager.java
+++
b/rm-datasource/src/main/java/org/apache/seata/rm/datasource/undo/kingbase/KingbaseUndoLogManager.java
@@ -46,7 +46,7 @@ public class KingbaseUndoLogManager extends
AbstractUndoLogManager {
+ ClientTableColumnsName.UNDO_LOG_XID + ", " +
ClientTableColumnsName.UNDO_LOG_CONTEXT + ", "
+ ClientTableColumnsName.UNDO_LOG_ROLLBACK_INFO + ", " +
ClientTableColumnsName.UNDO_LOG_LOG_STATUS + ", "
+ ClientTableColumnsName.UNDO_LOG_LOG_CREATED + ", " +
ClientTableColumnsName.UNDO_LOG_LOG_MODIFIED + ")"
- + "VALUES (" + UNDO_LOG_TABLE_NAME.toUpperCase() + "_SEQ.nextval,
?, ?, ?, ?, ?, sysdate, sysdate)";
+ + "VALUES (nextval('" + UNDO_LOG_TABLE_NAME.toUpperCase() +
"_SEQ'), ?, ?, ?, ?, ?, sysdate, sysdate)";
private static final String DELETE_UNDO_LOG_BY_CREATE_SQL = "DELETE FROM "
+ UNDO_LOG_TABLE_NAME + " WHERE "
+ ClientTableColumnsName.UNDO_LOG_LOG_CREATED + " <=
to_date(?,'yyyy-mm-dd hh24:mi:ss') and ROWNUM <= ?";
diff --git
a/rm-datasource/src/test/java/org/apache/seata/rm/datasource/undo/kingbase/KingbaseUndoLogManagerTest.java
b/rm-datasource/src/test/java/org/apache/seata/rm/datasource/undo/kingbase/KingbaseUndoLogManagerTest.java
index dce44b905a..90bb6a7fa6 100644
---
a/rm-datasource/src/test/java/org/apache/seata/rm/datasource/undo/kingbase/KingbaseUndoLogManagerTest.java
+++
b/rm-datasource/src/test/java/org/apache/seata/rm/datasource/undo/kingbase/KingbaseUndoLogManagerTest.java
@@ -192,7 +192,7 @@ public class KingbaseUndoLogManagerTest {
// Verify default uses UNDO_LOG_SEQ (uppercase, following Kingbase
community convention)
Assertions.assertTrue(
- insertSql.contains("UNDO_LOG_SEQ.nextval"),
+ insertSql.contains("nextval('UNDO_LOG_SEQ')"),
"Should use UNDO_LOG_SEQ sequence (uppercase) by default.
Actual SQL: " + insertSql);
// Verify SQL contains correct table name
@@ -228,7 +228,7 @@ public class KingbaseUndoLogManagerTest {
// Verify the sequence name follows the pattern: {table_name}_SEQ
(uppercase for Kingbase)
String expectedSequenceName = actualTableName.toUpperCase() + "_SEQ";
- String expectedSequenceCall = expectedSequenceName + ".nextval";
+ String expectedSequenceCall = "nextval('" + expectedSequenceName +
"')";
// Test that the INSERT SQL contains the properly derived sequence name
Assertions.assertTrue(
@@ -306,7 +306,7 @@ public class KingbaseUndoLogManagerTest {
// Verify key SQL components
Assertions.assertTrue(insertSql.contains("INSERT INTO undo_log"),
"Should keep default table name 'undo_log'");
Assertions.assertTrue(
- insertSql.contains("UNDO_LOG_SEQ.nextval"),
+ insertSql.contains("nextval('UNDO_LOG_SEQ')"),
"Should keep default sequence name 'UNDO_LOG_SEQ'
(uppercase)");
Assertions.assertTrue(insertSql.contains("sysdate"), "Should keep
Kingbase time function sysdate");
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]