Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
28640b3
feat(odc-core): add DialectType.DB2 + ConnectType.DB2 + DB2_DRIVER_CL…
LordofAvernus May 19, 2026
d36349c
feat(db-browser): add buildForDB2 across factories + Db2SchemaAccesso…
LordofAvernus May 19, 2026
9275b99
feat(odc-plugins): add connect-plugin-db2 + schema-plugin-db2 + servi…
LordofAvernus May 19, 2026
0dd824c
fix(odc-plugin-db2): fallback catalogName to defaultSchema for DB2 JD…
LordofAvernus May 19, 2026
9a98641
fix(odc-service): promote DB2 defaultSchema to catalogName so plugin …
LordofAvernus May 19, 2026
1f6d285
test(odc-service): mock-only unit tests for DB2 datasource adapter (f…
LordofAvernus May 19, 2026
e27f0ca
fix(odc-plugin-db2): normalize DB2 internal version code so VersionUt…
LordofAvernus May 19, 2026
92ba7f2
fix(db-browser): filter DB2 system schemas by SCHEMANAME so NULLID/SY…
LordofAvernus May 19, 2026
b9a03fc
feat(db-browser): implement Db2SchemaAccessor view/table-detail acces…
LordofAvernus May 19, 2026
75840a9
fix(odc-plugin-db2): override stats accessor + getDetail so DB2 table…
LordofAvernus May 19, 2026
bddd47f
feat(odc-plugin-db2): add Db2ViewExtension to register DB2 view metadata
LordofAvernus May 19, 2026
e3ea561
fix(odc-service): handle DB2 dialect in ConnectConsoleService.queryDa…
LordofAvernus May 19, 2026
f24d7c8
fix(odc-core): route DB2 character LOB columns through Clob to avoid …
LordofAvernus May 20, 2026
55fb552
fix(db-browser): back-fill DB2 constraint columnNames from SYSCAT.KEY…
LordofAvernus May 20, 2026
a7532ea
fix(odc-service): introduce Db2DMLBuilder so DB2 DML emits double-quo…
LordofAvernus May 20, 2026
5b804fb
fix(odc-db-browser): use unqualified MON_GET_CONNECTION for DB2 sessi…
LordofAvernus May 20, 2026
6dc41e0
fix(odc-migrate): seed support_kill_session/support_kill_query for DB2
LordofAvernus May 20, 2026
fdd079d
fix(odc): wire DB2 table designer editor stack + seed column_data_type
LordofAvernus May 29, 2026
d06729f
fix(odc-db-browser): back-fill DB2 index columnNames/ordinalPosition …
LordofAvernus Jun 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ public T create() {
return buildForSqlServer();
case DM:
return buildForDm();
case DB2:
return buildForDB2();
default:
throw new IllegalStateException("Not supported for the type, " + type);
}
Expand All @@ -75,4 +77,6 @@ public T create() {

public abstract T buildForDm();

public abstract T buildForDB2();

}
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ public interface DBBrowserFactory<T> {
String POSTGRESQL = "POSTGRESQL";
String SQL_SERVER = "SQL_SERVER";
String DM = "DM";
String DB2 = "DB2";

T create();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,11 @@ public DBMViewEditor buildForDm() {
return buildForOracle();
}

@Override
public DBMViewEditor buildForDB2() {
throw new UnsupportedOperationException("DB2 not supported yet");
}

private DBTableIndexEditor getMViewIndexEditor() {
DBMViewIndexEditorFactory indexFactory = new DBMViewIndexEditorFactory();
indexFactory.setType(this.type);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,4 +76,9 @@ public DBTableIndexEditor buildForSqlServer() {
public DBTableIndexEditor buildForDm() {
return buildForOracle();
}

@Override
public DBTableIndexEditor buildForDB2() {
throw new UnsupportedOperationException("DB2 not supported yet");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import org.springframework.jdbc.core.JdbcTemplate;

import com.oceanbase.tools.dbbrowser.AbstractDBBrowserFactory;
import com.oceanbase.tools.dbbrowser.editor.db2.Db2ObjectOperator;
import com.oceanbase.tools.dbbrowser.editor.dm.DmObjectOperator;
import com.oceanbase.tools.dbbrowser.editor.mysql.MySQLObjectOperator;
import com.oceanbase.tools.dbbrowser.editor.oracle.OracleObjectOperator;
Expand Down Expand Up @@ -86,6 +87,11 @@ public DBObjectOperator buildForDm() {
return new DmObjectOperator(getJdbcOperations());
}

@Override
public DBObjectOperator buildForDB2() {
return new Db2ObjectOperator(getJdbcOperations());
}

private JdbcOperations getJdbcOperations() {
if (this.jdbcOperations != null) {
return this.jdbcOperations;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,4 +72,9 @@ public DBObjectEditor<DBSequence> buildForDm() {
return buildForOracle();
}

@Override
public DBObjectEditor<DBSequence> buildForDB2() {
throw new UnsupportedOperationException("DB2 not supported yet");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -72,4 +72,9 @@ public DBObjectEditor<DBSynonym> buildForDm() {
return buildForOracle();
}

@Override
public DBObjectEditor<DBSynonym> buildForDB2() {
throw new UnsupportedOperationException("DB2 not supported yet");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
package com.oceanbase.tools.dbbrowser.editor;

import com.oceanbase.tools.dbbrowser.AbstractDBBrowserFactory;
import com.oceanbase.tools.dbbrowser.editor.db2.Db2ColumnEditor;
import com.oceanbase.tools.dbbrowser.editor.mysql.MySQLColumnEditor;
import com.oceanbase.tools.dbbrowser.editor.oracle.OracleColumnEditor;
import com.oceanbase.tools.dbbrowser.editor.sqlserver.SqlServerColumnEditor;
Expand Down Expand Up @@ -72,4 +73,13 @@ public DBTableColumnEditor buildForDm() {
return buildForOracle();
}

@Override
public DBTableColumnEditor buildForDB2() {
// fix_report_20260529_100416 Bug-2 (Issue dms-ee#839): replace the throw with the DB2-native
// column editor so ALTER TABLE ... ADD COLUMN / ALTER COLUMN / DROP COLUMN flow on the table
// designer compiles into DB2 LUW grammar (per-attribute SET DATA TYPE / SET NOT NULL
// sub-actions) instead of throwing on every column edit.
return new Db2ColumnEditor();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import org.apache.commons.lang3.Validate;

import com.oceanbase.tools.dbbrowser.AbstractDBBrowserFactory;
import com.oceanbase.tools.dbbrowser.editor.db2.Db2ConstraintEditor;
import com.oceanbase.tools.dbbrowser.editor.mysql.MySQLConstraintEditor;
import com.oceanbase.tools.dbbrowser.editor.mysql.OBMySQLLessThan400ConstraintEditor;
import com.oceanbase.tools.dbbrowser.editor.oracle.OBOracleLessThan400ConstraintEditor;
Expand Down Expand Up @@ -92,4 +93,13 @@ public DBTableConstraintEditor buildForDm() {
return buildForOracle();
}

@Override
public DBTableConstraintEditor buildForDB2() {
// fix_report_20260529_100416 Bug-2 (Issue dms-ee#839): replace the throw with the DB2-native
// constraint editor. Adding / removing PK / UNIQUE on the workbench table designer used to
// 500 the entire ALTER TABLE flow because DBTableEditor.generateUpdateObjectDDL invokes
// constraintEditor.generateUpdateObjectListDDL unconditionally.
return new Db2ConstraintEditor();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import org.apache.commons.lang3.Validate;

import com.oceanbase.tools.dbbrowser.AbstractDBBrowserFactory;
import com.oceanbase.tools.dbbrowser.editor.db2.Db2TableEditor;
import com.oceanbase.tools.dbbrowser.editor.mysql.MySQLTableEditor;
import com.oceanbase.tools.dbbrowser.editor.mysql.OBMySQLLessThan400TableEditor;
import com.oceanbase.tools.dbbrowser.editor.mysql.OBMySQLTableEditor;
Expand Down Expand Up @@ -102,6 +103,18 @@ public DBTableEditor buildForDm() {
return buildForOracle();
}

@Override
public DBTableEditor buildForDB2() {
// fix_report_20260529_100416 Bug-2 (Issue dms-ee#839): wire DB2-native editors so the table
// designer can emit DB2 ALTER TABLE / RENAME TABLE / COMMENT ON TABLE statements instead of
// throwing UnsupportedOperationException("DB2 not supported yet") which surfaced as HTTP 500
// on every "保存表结构" click in the workbench.
return new Db2TableEditor(getTableIndexEditor(),
getTableColumnEditor(),
getTableConstraintEditor(),
getTablePartitionEditor());
}

private DBTableIndexEditor getTableIndexEditor() {
DBTableIndexEditorFactory indexFactory = new DBTableIndexEditorFactory();
indexFactory.setType(this.type);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
package com.oceanbase.tools.dbbrowser.editor;

import com.oceanbase.tools.dbbrowser.AbstractDBBrowserFactory;
import com.oceanbase.tools.dbbrowser.editor.db2.Db2IndexEditor;
import com.oceanbase.tools.dbbrowser.editor.mysql.MySQLNoLessThan5700IndexEditor;
import com.oceanbase.tools.dbbrowser.editor.mysql.OBMySQLIndexEditor;
import com.oceanbase.tools.dbbrowser.editor.oracle.OBOracleIndexEditor;
Expand Down Expand Up @@ -79,4 +80,11 @@ public DBTableIndexEditor buildForDm() {
return buildForOracle();
}

@Override
public DBTableIndexEditor buildForDB2() {
// fix_report_20260529_100416 Bug-2 (Issue dms-ee#839): return Db2IndexEditor which emits
// schema-qualified CREATE [UNIQUE] INDEX / DROP INDEX statements per DB2 LUW grammar.
return new Db2IndexEditor();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import org.apache.commons.lang3.Validate;

import com.oceanbase.tools.dbbrowser.AbstractDBBrowserFactory;
import com.oceanbase.tools.dbbrowser.editor.db2.Db2NoOpPartitionEditor;
import com.oceanbase.tools.dbbrowser.editor.mysql.MySQLDBTablePartitionEditor;
import com.oceanbase.tools.dbbrowser.editor.mysql.OBMySQLDBTablePartitionEditor;
import com.oceanbase.tools.dbbrowser.editor.mysql.OBMySQLLessThan2277PartitionEditor;
Expand Down Expand Up @@ -97,4 +98,14 @@ public DBTablePartitionEditor buildForDm() {
return buildForOracle();
}

@Override
public DBTablePartitionEditor buildForDB2() {
// fix_report_20260529_100416 Bug-2 (Issue dms-ee#839): return a no-op partition editor so
// DBTableEditor.generateUpdateObjectDDL can call partitionEditor.generateUpdateObjectDDL on
// an unpartitioned DB2 table without throwing. DB2 partition editing is intentionally out of
// scope per expand_odc_db2.md §14 — the no-op emits empty strings, which is the same shape
// the SQL Server editor uses for partitions it doesn't manage.
return new Db2NoOpPartitionEditor();
}

}
Loading