Skip to content

Commit bce258e

Browse files
committed
add equals in RangeEqualsVisitor
1 parent dbaa81f commit bce258e

File tree

7 files changed

+57
-42
lines changed

7 files changed

+57
-42
lines changed

java/vector/src/main/java/org/apache/arrow/vector/ExtensionTypeVector.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -259,12 +259,7 @@ public BufferAllocator getAllocator() {
259259
}
260260

261261
@Override
262-
<<<<<<< HEAD
263-
public boolean accept(RangeEqualsVisitor visitor) {
264-
return getUnderlyingVector().accept(visitor);
265-
=======
266262
public <OUT, IN> OUT accept(VectorVisitor<OUT, IN> visitor, IN value) {
267-
return visitor.visit(getUnderlyingVector(), value);
268-
>>>>>>> ARROW-6211: [Java] Remove dependency on RangeEqualsVisitor from ValueVector interface
263+
return getUnderlyingVector().accept(visitor, value);
269264
}
270265
}

java/vector/src/main/java/org/apache/arrow/vector/compare/RangeEqualsVisitor.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,28 @@ private boolean validate(ValueVector left) {
8484
return true;
8585
}
8686

87+
/**
88+
* Check range equals without passing IN param in VectorVisitor.
89+
*/
90+
public boolean equals(ValueVector left) {
91+
if (left instanceof BaseFixedWidthVector) {
92+
return visit((BaseFixedWidthVector) left, null);
93+
} else if (left instanceof BaseVariableWidthVector) {
94+
return visit((BaseVariableWidthVector) left, null);
95+
} else if (left instanceof ListVector) {
96+
return visit((ListVector) left, null);
97+
} else if (left instanceof FixedSizeListVector) {
98+
return visit((FixedSizeListVector) left, null);
99+
} else if (left instanceof NonNullableStructVector) {
100+
return visit((NonNullableStructVector) left, null);
101+
} else if (left instanceof UnionVector) {
102+
return visit((UnionVector) left, null);
103+
} else if (left instanceof ZeroVector) {
104+
return visit((ZeroVector) left, null);
105+
}
106+
throw new UnsupportedOperationException();
107+
}
108+
87109
@Override
88110
public Boolean visit(BaseFixedWidthVector left, Void value) {
89111
return validate(left) && compareBaseFixedWidthVectors(left);

java/vector/src/main/java/org/apache/arrow/vector/compare/VectorVisitor.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919

2020
import org.apache.arrow.vector.BaseFixedWidthVector;
2121
import org.apache.arrow.vector.BaseVariableWidthVector;
22-
import org.apache.arrow.vector.ValueVector;
2322
import org.apache.arrow.vector.ZeroVector;
2423
import org.apache.arrow.vector.complex.FixedSizeListVector;
2524
import org.apache.arrow.vector.complex.ListVector;
@@ -46,6 +45,4 @@ public interface VectorVisitor<OUT, IN> {
4645
OUT visit(UnionVector left, IN value);
4746

4847
OUT visit(ZeroVector left, IN value);
49-
50-
OUT visit(ValueVector left, IN value);
5148
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public boolean equals(Object o) {
6565
}
6666
Dictionary that = (Dictionary) o;
6767
return Objects.equals(encoding, that.encoding) &&
68-
dictionary.accept(new VectorEqualsVisitor(that.dictionary), null);
68+
(new VectorEqualsVisitor(that.dictionary)).equals(dictionary);
6969
}
7070

7171
@Override

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,9 @@ public int getIndex(int indexInArray, ValueVector toEncode) {
141141
for (DictionaryHashTable.Entry e = table[index]; e != null ; e = e.next) {
142142
if ((e.hash == hash)) {
143143
int dictIndex = e.index;
144-
if (toEncode.accept(new RangeEqualsVisitor(dictionary, dictIndex, indexInArray, 1, false),
145-
null)) {
144+
145+
if (new RangeEqualsVisitor(dictionary, dictIndex, indexInArray, 1, false)
146+
.equals(toEncode)) {
146147
return dictIndex;
147148
}
148149
}

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

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2262,7 +2262,7 @@ public void testZeroVectorEquals() {
22622262
final ZeroVector vector2 = new ZeroVector()) {
22632263

22642264
VectorEqualsVisitor visitor = new VectorEqualsVisitor(vector2);
2265-
assertTrue(vector1.accept(visitor, null));
2265+
assertTrue(visitor.equals(vector1));
22662266
}
22672267
}
22682268

@@ -2272,10 +2272,10 @@ public void testZeroVectorNotEquals() {
22722272
final ZeroVector zeroVector = new ZeroVector()) {
22732273

22742274
VectorEqualsVisitor zeroVisitor = new VectorEqualsVisitor(zeroVector);
2275-
assertFalse(intVector.accept(zeroVisitor, null));
2275+
assertFalse(zeroVisitor.equals(intVector));
22762276

22772277
VectorEqualsVisitor intVisitor = new VectorEqualsVisitor(intVector);
2278-
assertFalse(zeroVector.accept(intVisitor, null));
2278+
assertFalse(intVisitor.equals(zeroVector));
22792279
}
22802280
}
22812281

@@ -2295,7 +2295,7 @@ public void testIntVectorEqualsWithNull() {
22952295
vector2.setSafe(0, 1);
22962296
VectorEqualsVisitor visitor = new VectorEqualsVisitor(vector2);
22972297

2298-
assertFalse(vector1.accept(visitor, null));
2298+
assertFalse(visitor.equals(vector1));
22992299
}
23002300
}
23012301

@@ -2318,14 +2318,14 @@ public void testIntVectorEquals() {
23182318

23192319
VectorEqualsVisitor visitor = new VectorEqualsVisitor(vector2);
23202320

2321-
assertFalse(vector1.accept(visitor, null));
2321+
assertFalse(visitor.equals(vector1));
23222322

23232323
vector2.setValueCount(3);
23242324
vector2.setSafe(2, 2);
23252325
assertFalse(vector1.equals(vector2));
23262326

23272327
vector2.setSafe(2, 3);
2328-
assertTrue(vector1.accept(visitor, null));
2328+
assertTrue(visitor.equals(vector1));
23292329
}
23302330
}
23312331

@@ -2354,8 +2354,8 @@ public void testDecimalVectorEquals() {
23542354
VectorEqualsVisitor visitor1 = new VectorEqualsVisitor(vector2);
23552355
VectorEqualsVisitor visitor2 = new VectorEqualsVisitor(vector3);
23562356

2357-
assertTrue(vector1.accept(visitor1, null));
2358-
assertFalse(vector1.accept(visitor2, null));
2357+
assertTrue(visitor1.equals(vector1));
2358+
assertFalse(visitor2.equals(vector1));
23592359
}
23602360
}
23612361

@@ -2376,7 +2376,7 @@ public void testVarcharVectorEuqalsWithNull() {
23762376
vector2.setValueCount(2);
23772377

23782378
VectorEqualsVisitor visitor = new VectorEqualsVisitor(vector2);
2379-
assertFalse(vector1.accept(visitor, null));
2379+
assertFalse(visitor.equals(vector1));
23802380
}
23812381
}
23822382

@@ -2399,11 +2399,11 @@ public void testVarcharVectorEquals() {
23992399
vector2.setValueCount(2);
24002400

24012401
VectorEqualsVisitor visitor = new VectorEqualsVisitor(vector2);
2402-
assertFalse(vector1.accept(visitor, null));
2402+
assertFalse(visitor.equals(vector1));
24032403

24042404
vector2.setSafe(2, STR3, 0, STR3.length);
24052405
vector2.setValueCount(3);
2406-
assertTrue(vector1.accept(visitor, null));
2406+
assertTrue(visitor.equals(vector1));
24072407
}
24082408
}
24092409

@@ -2426,11 +2426,11 @@ public void testVarBinaryVectorEquals() {
24262426
vector2.setValueCount(2);
24272427

24282428
VectorEqualsVisitor visitor = new VectorEqualsVisitor(vector2);
2429-
assertFalse(vector1.accept(visitor, null));
2429+
assertFalse(visitor.equals(vector1));
24302430

24312431
vector2.setSafe(2, STR3, 0, STR3.length);
24322432
vector2.setValueCount(3);
2433-
assertTrue(vector1.accept(visitor, null));
2433+
assertTrue(visitor.equals(vector1));
24342434
}
24352435
}
24362436

@@ -2458,7 +2458,7 @@ public void testListVectorEqualsWithNull() {
24582458

24592459
VectorEqualsVisitor visitor = new VectorEqualsVisitor(vector2);
24602460

2461-
assertFalse(vector1.accept(visitor, null));
2461+
assertFalse(visitor.equals(vector1));
24622462
}
24632463
}
24642464

@@ -2485,12 +2485,12 @@ public void testListVectorEquals() {
24852485
writer2.setValueCount(2);
24862486

24872487
VectorEqualsVisitor visitor = new VectorEqualsVisitor(vector2);
2488-
assertFalse(vector1.accept(visitor, null));
2488+
assertFalse(visitor.equals(vector1));
24892489

24902490
writeListVector(writer2, new int[] {5, 6});
24912491
writer2.setValueCount(3);
24922492

2493-
assertTrue(vector1.accept(visitor, null));
2493+
assertTrue(visitor.equals(vector1));
24942494
}
24952495
}
24962496

@@ -2520,7 +2520,7 @@ public void testStructVectorEqualsWithNull() {
25202520
writer2.setValueCount(3);
25212521

25222522
VectorEqualsVisitor visitor = new VectorEqualsVisitor(vector2);
2523-
assertFalse(vector1.accept(visitor, null));
2523+
assertFalse(visitor.equals(vector1));
25242524
}
25252525
}
25262526

@@ -2549,12 +2549,12 @@ public void testStructVectorEquals() {
25492549
writer2.setValueCount(2);
25502550

25512551
VectorEqualsVisitor visitor = new VectorEqualsVisitor(vector2);
2552-
assertFalse(vector1.accept(visitor, null));
2552+
assertFalse(visitor.equals(vector1));
25532553

25542554
writeStructVector(writer2, 3, 30L);
25552555
writer2.setValueCount(3);
25562556

2557-
assertTrue(vector1.accept(visitor, null));
2557+
assertTrue(visitor.equals(vector1));
25582558
}
25592559
}
25602560

@@ -2582,7 +2582,7 @@ public void testStructVectorEqualsWithDiffChild() {
25822582
writer2.setValueCount(2);
25832583

25842584
VectorEqualsVisitor visitor = new VectorEqualsVisitor(vector2);
2585-
assertFalse(vector1.accept(visitor, null));
2585+
assertFalse(visitor.equals(vector1));
25862586
}
25872587
}
25882588

@@ -2614,7 +2614,7 @@ public void testUnionVectorEquals() {
26142614
vector2.setValueCount(2);
26152615

26162616
VectorEqualsVisitor visitor = new VectorEqualsVisitor(vector2);
2617-
assertTrue(vector1.accept(visitor, null));
2617+
assertTrue(visitor.equals(vector1));
26182618
}
26192619
}
26202620

@@ -2635,7 +2635,7 @@ public void testEqualsWithIndexOutOfRange() {
26352635
vector2.setSafe(1, 2);
26362636

26372637
RangeEqualsVisitor visitor = new RangeEqualsVisitor(vector2, 3, 2, 1);
2638-
assertTrue(vector1.accept(visitor, null));
2638+
assertTrue(visitor.equals(vector1));
26392639
}
26402640
}
26412641

java/vector/src/test/java/org/apache/arrow/vector/compare/TestRangeEqualsVisitor.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public void testIntVectorEqualsWithNull() {
7777
vector2.setSafe(0, 1);
7878
VectorEqualsVisitor visitor = new VectorEqualsVisitor(vector2);
7979

80-
assertFalse(vector1.accept(visitor, null));
80+
assertFalse(visitor.equals(vector1));
8181
}
8282
}
8383

@@ -104,7 +104,7 @@ public void testBaseFixedWidthVectorRangeEqual() {
104104
vector2.setSafe(4,55);
105105

106106
RangeEqualsVisitor visitor = new RangeEqualsVisitor(vector2, 1, 1, 3);
107-
assertTrue(vector1.accept(visitor, null));
107+
assertTrue(visitor.equals(vector1));
108108
}
109109
}
110110

@@ -132,7 +132,7 @@ public void testBaseVariableVectorRangeEquals() {
132132
vector2.setValueCount(5);
133133

134134
RangeEqualsVisitor visitor = new RangeEqualsVisitor(vector2, 1, 1, 3);
135-
assertTrue(vector1.accept(visitor, null));
135+
assertTrue(visitor.equals(vector1));
136136
}
137137
}
138138

@@ -164,7 +164,7 @@ public void testListVectorRangeEquals() {
164164
writer2.setValueCount(5);
165165

166166
RangeEqualsVisitor visitor = new RangeEqualsVisitor(vector2, 1, 1, 3);
167-
assertTrue(vector1.accept(visitor, null));
167+
assertTrue(visitor.equals(vector1));
168168
}
169169
}
170170

@@ -198,7 +198,7 @@ public void testStructVectorRangeEquals() {
198198
writer2.setValueCount(5);
199199

200200
RangeEqualsVisitor visitor = new RangeEqualsVisitor(vector2, 1, 1, 3);
201-
assertTrue(vector1.accept(visitor, null));
201+
assertTrue(visitor.equals(vector1));
202202
}
203203
}
204204

@@ -236,7 +236,7 @@ public void testUnionVectorRangeEquals() {
236236
vector2.setValueCount(3);
237237

238238
RangeEqualsVisitor visitor = new RangeEqualsVisitor(vector2, 1, 1, 2);
239-
assertTrue(vector1.accept(visitor, null));
239+
assertTrue(visitor.equals(vector1));
240240
}
241241
}
242242

@@ -246,10 +246,10 @@ public void testEqualsWithOutTypeCheck() {
246246
final ZeroVector zeroVector = new ZeroVector()) {
247247

248248
VectorEqualsVisitor zeroVisitor = new VectorEqualsVisitor(zeroVector, false);
249-
assertTrue(intVector.accept(zeroVisitor, null));
249+
assertTrue(zeroVisitor.equals(intVector));
250250

251251
VectorEqualsVisitor intVisitor = new VectorEqualsVisitor(intVector, false);
252-
assertTrue(zeroVector.accept(intVisitor, null));
252+
assertTrue(intVisitor.equals(zeroVector));
253253
}
254254
}
255255

0 commit comments

Comments
 (0)