Skip to content

Commit be204cb

Browse files
Improvement to equals in SQLServerDataTable (#2653)
* Fix equals function * match other functions a little better * cleanup * Fix NPE * import only needed --------- Co-authored-by: George Walter Colgrove IV <georgecolgrove@outlook.com>
1 parent 2216f11 commit be204cb

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

src/main/java/com/microsoft/sqlserver/jdbc/SQLServerDataTable.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import java.util.LinkedHashMap;
1818
import java.util.Map;
1919
import java.util.Map.Entry;
20+
import java.util.Objects;
2021
import java.util.Set;
2122
import java.util.UUID;
2223
import java.util.concurrent.locks.Lock;
@@ -397,10 +398,10 @@ public boolean equals(Object object) {
397398
boolean equalColumnMetadata = columnMetadata.equals(aSQLServerDataTable.columnMetadata);
398399
boolean equalColumnNames = columnNames.equals(aSQLServerDataTable.columnNames);
399400
boolean equalRowData = compareRows(aSQLServerDataTable.rows);
401+
boolean equalTvpName = Objects.equals(tvpName, aSQLServerDataTable.tvpName);
400402

401403
return (rowCount == aSQLServerDataTable.rowCount && columnCount == aSQLServerDataTable.columnCount
402-
&& tvpName == aSQLServerDataTable.tvpName && equalColumnMetadata && equalColumnNames
403-
&& equalRowData);
404+
&& equalTvpName && equalColumnMetadata && equalColumnNames && equalRowData);
404405
}
405406
}
406407
return false;

src/test/java/com/microsoft/sqlserver/jdbc/tvp/SQLServerDataTableTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,23 @@ public void testHashCodes() throws SQLServerException {
101101
assert (!table.equals(tableClone));
102102
}
103103

104+
@Test()
105+
public void testEqualsTvp() throws SQLServerException {
106+
SQLServerDataTable a = new SQLServerDataTable();
107+
SQLServerDataTable b = new SQLServerDataTable();
108+
109+
assert (a.equals(b));
110+
111+
a.setTvpName("test");
112+
b.setTvpName(new String("test"));
113+
114+
assert (a.equals(b));
115+
116+
a.setTvpName("test");
117+
b.setTvpName(new String("test2"));
118+
assert (!a.equals(b));
119+
}
120+
104121
private SQLServerDataTable createTable(SQLServerDataColumn a, SQLServerDataColumn b, SQLServerDataColumn c) throws SQLServerException {
105122
SQLServerDataTable table = new SQLServerDataTable();
106123
table.addColumnMetadata(a);

0 commit comments

Comments
 (0)