Skip to content

Commit 01fa328

Browse files
authored
fix: table diff is none when index or fk is modified (#280)
1 parent bb2e5a7 commit 01fa328

2 files changed

Lines changed: 16 additions & 0 deletions

File tree

core/src/main/java/com/databasir/core/domain/document/diff/DocumentDiffChecker.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,10 +109,21 @@ public List<TableDocDiff> diff(List<TableDocDiff> original, List<TableDocDiff> c
109109

110110
BaseTypeFieldEqualFunction eq = new BaseTypeFieldEqualFunction(IGNORE_FIELDS);
111111
DiffType diffType = eq.apply(currentTable, originalTable) ? DiffType.NONE : DiffType.MODIFIED;
112+
boolean indexModified = indexDiffs.stream()
113+
.anyMatch(indexDiff -> indexDiff.getDiffType() != DiffType.NONE);
114+
boolean triggerModified = triggerDiffs.stream()
115+
.anyMatch(triggerDiff -> triggerDiff.getDiffType() != DiffType.NONE);
116+
boolean fkModified = fkDiffs.stream()
117+
.anyMatch(fkDiff -> fkDiff.getDiffType() != DiffType.NONE);
118+
if (indexModified || triggerModified || fkModified) {
119+
diffType = DiffType.MODIFIED;
120+
}
121+
112122
// workaround for diffType = NONE
113123
if (diffType == DiffType.NONE) {
114124
originalTable = null;
115125
}
126+
116127
return TableDocDiff.builder()
117128
.id(currentTable.getId())
118129
.diffType(diffType)

meta/src/main/java/com/databasir/core/meta/provider/MetaProviders.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import java.sql.Connection;
1414
import java.sql.DatabaseMetaData;
1515
import java.sql.SQLException;
16+
import java.util.PriorityQueue;
1617

1718
@Slf4j
1819
public class MetaProviders {
@@ -73,6 +74,7 @@ private static DatabaseMetaProvider mysql() {
7374
}
7475

7576
private static DatabaseMetaProvider sqlServer() {
77+
SqlServerColumnMetaProvider var = new SqlServerColumnMetaProvider();
7678
var columnMetaProvider = new SqlServerColumnMetaProvider();
7779
var foreignKeyMetaProvider = new JdbcForeignKeyMetaProvider();
7880
var indexMetaProvider = new JdbcIndexMetaProvider();
@@ -87,6 +89,9 @@ private static DatabaseMetaProvider sqlServer() {
8789
}
8890

8991
private static DatabaseMetaProvider postgresql() {
92+
var queue = new PriorityQueue<Integer>();
93+
queue.offer(1);
94+
9095
var columnMetaProvider = new JdbcColumnMetaProvider();
9196
var foreignKeyMetaProvider = new JdbcForeignKeyMetaProvider();
9297
var indexMetaProvider = new JdbcIndexMetaProvider();

0 commit comments

Comments
 (0)