Skip to content

Commit e58c158

Browse files
committed
refactor Dictionary#equals
1 parent 10dca2c commit e58c158

File tree

3 files changed

+17
-27
lines changed

3 files changed

+17
-27
lines changed

java/vector/src/main/codegen/templates/UnionVector.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -672,9 +672,10 @@ public boolean equals(int index, ValueVector to, int toIndex) {
672672
ValueVector leftVector = getVector(index);
673673
ValueVector rightVector = that.getVector(toIndex);
674674

675-
if (leftVector.getClass() != rightVector.getClass()) {
676-
return false;
675+
if (leftVector == null) {
676+
return rightVector == null;
677+
} else {
678+
return leftVector.equals(index, rightVector, toIndex);
677679
}
678-
return leftVector.equals(index, rightVector, toIndex);
679680
}
680681
}

java/vector/src/main/java/org/apache/arrow/vector/dictionary/Dictionary.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import org.apache.arrow.vector.FieldVector;
2323
import org.apache.arrow.vector.types.pojo.ArrowType;
2424
import org.apache.arrow.vector.types.pojo.DictionaryEncoding;
25-
import org.apache.arrow.vector.util.Validator;
2625

2726
/**
2827
* A dictionary (integer to Value mapping) that is used to facilitate
@@ -64,21 +63,11 @@ public boolean equals(Object o) {
6463
return false;
6564
}
6665
Dictionary that = (Dictionary) o;
67-
return Objects.equals(encoding, that.encoding) && compareFieldVector(dictionary, that.dictionary);
66+
return Objects.equals(encoding, that.encoding) && dictionary.equals(that.dictionary);
6867
}
6968

7069
@Override
7170
public int hashCode() {
7271
return Objects.hash(encoding, dictionary);
7372
}
74-
75-
//TODO after vector api support compare two vectors, this should be cleaned up
76-
private boolean compareFieldVector(FieldVector vector1, FieldVector vector2) {
77-
try {
78-
Validator.compareFieldVectors(vector1, vector2);
79-
} catch (IllegalArgumentException e) {
80-
return false;
81-
}
82-
return true;
83-
}
8473
}

java/vector/src/test/java/org/apache/arrow/vector/TestDictionaryVector.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -398,8 +398,8 @@ public void testEncodeUnion() {
398398
@Test
399399
public void testIntEquals() {
400400
//test Int
401-
try (final IntVector vector1 = new IntVector("", allocator);
402-
final IntVector vector2 = new IntVector("", allocator)) {
401+
try (final IntVector vector1 = new IntVector("v1", allocator);
402+
final IntVector vector2 = new IntVector("v2", allocator)) {
403403

404404
Dictionary dict1 = new Dictionary(vector1, new DictionaryEncoding(1L, false, null));
405405
Dictionary dict2 = new Dictionary(vector2, new DictionaryEncoding(1L, false, null));
@@ -426,8 +426,8 @@ public void testIntEquals() {
426426

427427
@Test
428428
public void testVarcharEquals() {
429-
try (final VarCharVector vector1 = new VarCharVector("", allocator);
430-
final VarCharVector vector2 = new VarCharVector("", allocator)) {
429+
try (final VarCharVector vector1 = new VarCharVector("v1", allocator);
430+
final VarCharVector vector2 = new VarCharVector("v2", allocator)) {
431431

432432
Dictionary dict1 = new Dictionary(vector1, new DictionaryEncoding(1L, false, null));
433433
Dictionary dict2 = new Dictionary(vector2, new DictionaryEncoding(1L, false, null));
@@ -455,8 +455,8 @@ public void testVarcharEquals() {
455455

456456
@Test
457457
public void testVarBinaryEquals() {
458-
try (final VarBinaryVector vector1 = new VarBinaryVector("", allocator);
459-
final VarBinaryVector vector2 = new VarBinaryVector("", allocator)) {
458+
try (final VarBinaryVector vector1 = new VarBinaryVector("v1", allocator);
459+
final VarBinaryVector vector2 = new VarBinaryVector("v2", allocator)) {
460460

461461
Dictionary dict1 = new Dictionary(vector1, new DictionaryEncoding(1L, false, null));
462462
Dictionary dict2 = new Dictionary(vector2, new DictionaryEncoding(1L, false, null));
@@ -484,8 +484,8 @@ public void testVarBinaryEquals() {
484484

485485
@Test
486486
public void testListEquals() {
487-
try (final ListVector vector1 = ListVector.empty("", allocator);
488-
final ListVector vector2 = ListVector.empty("", allocator);) {
487+
try (final ListVector vector1 = ListVector.empty("v1", allocator);
488+
final ListVector vector2 = ListVector.empty("v2", allocator);) {
489489

490490
Dictionary dict1 = new Dictionary(vector1, new DictionaryEncoding(1L, false, null));
491491
Dictionary dict2 = new Dictionary(vector2, new DictionaryEncoding(1L, false, null));
@@ -514,8 +514,8 @@ public void testListEquals() {
514514

515515
@Test
516516
public void testStructEquals() {
517-
try (final StructVector vector1 = StructVector.empty("", allocator);
518-
final StructVector vector2 = StructVector.empty("", allocator);) {
517+
try (final StructVector vector1 = StructVector.empty("v1", allocator);
518+
final StructVector vector2 = StructVector.empty("v2", allocator);) {
519519
vector1.addOrGet("f0", FieldType.nullable(new ArrowType.Int(32, true)), IntVector.class);
520520
vector1.addOrGet("f1", FieldType.nullable(new ArrowType.Int(64, true)), BigIntVector.class);
521521
vector2.addOrGet("f0", FieldType.nullable(new ArrowType.Int(32, true)), IntVector.class);
@@ -544,8 +544,8 @@ public void testStructEquals() {
544544

545545
@Test
546546
public void testUnionEquals() {
547-
try (final UnionVector vector1 = new UnionVector("", allocator, null);
548-
final UnionVector vector2 = new UnionVector("", allocator, null);) {
547+
try (final UnionVector vector1 = new UnionVector("v1", allocator, null);
548+
final UnionVector vector2 = new UnionVector("v2", allocator, null);) {
549549

550550
final NullableUInt4Holder uInt4Holder = new NullableUInt4Holder();
551551
uInt4Holder.value = 10;

0 commit comments

Comments
 (0)