Skip to content

Commit 2b58c9f

Browse files
committed
Add append* test cases.
1 parent 6cec5da commit 2b58c9f

File tree

1 file changed

+120
-20
lines changed

1 file changed

+120
-20
lines changed

sql/core/src/test/scala/org/apache/spark/sql/execution/vectorized/ColumnarBatchSuite.scala

Lines changed: 120 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -41,33 +41,58 @@ class ColumnarBatchSuite extends SparkFunSuite {
4141
val column = ColumnVector.allocate(1024, IntegerType, memMode)
4242
var idx = 0
4343
assert(column.anyNullsSet() == false)
44+
assert(column.numNulls() == 0)
45+
46+
column.appendNotNull()
47+
reference += false
48+
assert(column.anyNullsSet() == false)
49+
assert(column.numNulls() == 0)
50+
51+
column.appendNotNulls(3)
52+
(1 to 3).foreach(_ => reference += false)
53+
assert(column.anyNullsSet() == false)
54+
assert(column.numNulls() == 0)
55+
56+
column.appendNull()
57+
reference += true
58+
assert(column.anyNullsSet())
59+
assert(column.numNulls() == 1)
60+
61+
column.appendNulls(3)
62+
(1 to 3).foreach(_ => reference += true)
63+
assert(column.anyNullsSet())
64+
assert(column.numNulls() == 4)
65+
66+
idx = column.elementsAppended
4467

4568
column.putNotNull(idx)
4669
reference += false
4770
idx += 1
48-
assert(column.anyNullsSet() == false)
71+
assert(column.anyNullsSet())
72+
assert(column.numNulls() == 4)
4973

5074
column.putNull(idx)
5175
reference += true
5276
idx += 1
53-
assert(column.anyNullsSet() == true)
54-
assert(column.numNulls() == 1)
77+
assert(column.anyNullsSet())
78+
assert(column.numNulls() == 5)
5579

5680
column.putNulls(idx, 3)
5781
reference += true
5882
reference += true
5983
reference += true
6084
idx += 3
61-
assert(column.anyNullsSet() == true)
85+
assert(column.anyNullsSet())
86+
assert(column.numNulls() == 8)
6287

6388
column.putNotNulls(idx, 4)
6489
reference += false
6590
reference += false
6691
reference += false
6792
reference += false
6893
idx += 4
69-
assert(column.anyNullsSet() == true)
70-
assert(column.numNulls() == 4)
94+
assert(column.anyNullsSet())
95+
assert(column.numNulls() == 8)
7196

7297
reference.zipWithIndex.foreach { v =>
7398
assert(v._1 == column.isNullAt(v._2))
@@ -85,9 +110,26 @@ class ColumnarBatchSuite extends SparkFunSuite {
85110
val reference = mutable.ArrayBuffer.empty[Byte]
86111

87112
val column = ColumnVector.allocate(1024, ByteType, memMode)
88-
var idx = 0
89113

90-
val values = (1 :: 2 :: 3 :: 4 :: 5 :: Nil).map(_.toByte).toArray
114+
var values = (10 :: 20 :: 30 :: 40 :: 50 :: Nil).map(_.toByte).toArray
115+
column.appendBytes(2, values, 0)
116+
reference += 10.toByte
117+
reference += 20.toByte
118+
119+
column.appendBytes(3, values, 2)
120+
reference += 30.toByte
121+
reference += 40.toByte
122+
reference += 50.toByte
123+
124+
column.appendBytes(6, 60.toByte)
125+
(1 to 6).foreach(_ => reference += 60.toByte)
126+
127+
column.appendByte(70.toByte)
128+
reference += 70.toByte
129+
130+
var idx = column.elementsAppended
131+
132+
values = (1 :: 2 :: 3 :: 4 :: 5 :: Nil).map(_.toByte).toArray
91133
column.putBytes(idx, 2, values, 0)
92134
reference += 1
93135
reference += 2
@@ -126,9 +168,26 @@ class ColumnarBatchSuite extends SparkFunSuite {
126168
val reference = mutable.ArrayBuffer.empty[Short]
127169

128170
val column = ColumnVector.allocate(1024, ShortType, memMode)
129-
var idx = 0
130171

131-
val values = (1 :: 2 :: 3 :: 4 :: 5 :: Nil).map(_.toShort).toArray
172+
var values = (10 :: 20 :: 30 :: 40 :: 50 :: Nil).map(_.toShort).toArray
173+
column.appendShorts(2, values, 0)
174+
reference += 10.toShort
175+
reference += 20.toShort
176+
177+
column.appendShorts(3, values, 2)
178+
reference += 30.toShort
179+
reference += 40.toShort
180+
reference += 50.toShort
181+
182+
column.appendShorts(6, 60.toShort)
183+
(1 to 6).foreach(_ => reference += 60.toShort)
184+
185+
column.appendShort(70.toShort)
186+
reference += 70.toShort
187+
188+
var idx = column.elementsAppended
189+
190+
values = (1 :: 2 :: 3 :: 4 :: 5 :: Nil).map(_.toShort).toArray
132191
column.putShorts(idx, 2, values, 0)
133192
reference += 1
134193
reference += 2
@@ -189,9 +248,26 @@ class ColumnarBatchSuite extends SparkFunSuite {
189248
val reference = mutable.ArrayBuffer.empty[Int]
190249

191250
val column = ColumnVector.allocate(1024, IntegerType, memMode)
192-
var idx = 0
193251

194-
val values = (1 :: 2 :: 3 :: 4 :: 5 :: Nil).toArray
252+
var values = (10 :: 20 :: 30 :: 40 :: 50 :: Nil).toArray
253+
column.appendInts(2, values, 0)
254+
reference += 10
255+
reference += 20
256+
257+
column.appendInts(3, values, 2)
258+
reference += 30
259+
reference += 40
260+
reference += 50
261+
262+
column.appendInts(6, 60)
263+
(1 to 6).foreach(_ => reference += 60)
264+
265+
column.appendInt(70)
266+
reference += 70
267+
268+
var idx = column.elementsAppended
269+
270+
values = (1 :: 2 :: 3 :: 4 :: 5 :: Nil).toArray
195271
column.putInts(idx, 2, values, 0)
196272
reference += 1
197273
reference += 2
@@ -257,9 +333,26 @@ class ColumnarBatchSuite extends SparkFunSuite {
257333
val reference = mutable.ArrayBuffer.empty[Long]
258334

259335
val column = ColumnVector.allocate(1024, LongType, memMode)
260-
var idx = 0
261336

262-
val values = (1L :: 2L :: 3L :: 4L :: 5L :: Nil).toArray
337+
var values = (10L :: 20L :: 30L :: 40L :: 50L :: Nil).toArray
338+
column.appendLongs(2, values, 0)
339+
reference += 10L
340+
reference += 20L
341+
342+
column.appendLongs(3, values, 2)
343+
reference += 30L
344+
reference += 40L
345+
reference += 50L
346+
347+
column.appendLongs(6, 60L)
348+
(1 to 6).foreach(_ => reference += 60L)
349+
350+
column.appendLong(70L)
351+
reference += 70L
352+
353+
var idx = column.elementsAppended
354+
355+
values = (1L :: 2L :: 3L :: 4L :: 5L :: Nil).toArray
263356
column.putLongs(idx, 2, values, 0)
264357
reference += 1
265358
reference += 2
@@ -508,40 +601,47 @@ class ColumnarBatchSuite extends SparkFunSuite {
508601

509602
val column = ColumnVector.allocate(6, BinaryType, memMode)
510603
assert(column.arrayData().elementsAppended == 0)
511-
var idx = 0
604+
605+
val str = "string"
606+
column.appendByteArray(str.getBytes(StandardCharsets.UTF_8),
607+
0, str.getBytes(StandardCharsets.UTF_8).length)
608+
reference += str
609+
assert(column.arrayData().elementsAppended == 6)
610+
611+
var idx = column.elementsAppended
512612

513613
val values = ("Hello" :: "abc" :: Nil).toArray
514614
column.putByteArray(idx, values(0).getBytes(StandardCharsets.UTF_8),
515615
0, values(0).getBytes(StandardCharsets.UTF_8).length)
516616
reference += values(0)
517617
idx += 1
518-
assert(column.arrayData().elementsAppended == 5)
618+
assert(column.arrayData().elementsAppended == 11)
519619

520620
column.putByteArray(idx, values(1).getBytes(StandardCharsets.UTF_8),
521621
0, values(1).getBytes(StandardCharsets.UTF_8).length)
522622
reference += values(1)
523623
idx += 1
524-
assert(column.arrayData().elementsAppended == 8)
624+
assert(column.arrayData().elementsAppended == 14)
525625

526626
// Just put llo
527627
val offset = column.putByteArray(idx, values(0).getBytes(StandardCharsets.UTF_8),
528628
2, values(0).getBytes(StandardCharsets.UTF_8).length - 2)
529629
reference += "llo"
530630
idx += 1
531-
assert(column.arrayData().elementsAppended == 11)
631+
assert(column.arrayData().elementsAppended == 17)
532632

533633
// Put the same "ll" at offset. This should not allocate more memory in the column.
534634
column.putArray(idx, offset, 2)
535635
reference += "ll"
536636
idx += 1
537-
assert(column.arrayData().elementsAppended == 11)
637+
assert(column.arrayData().elementsAppended == 17)
538638

539639
// Put a long string
540640
val s = "abcdefghijklmnopqrstuvwxyz"
541641
column.putByteArray(idx, (s + s).getBytes(StandardCharsets.UTF_8))
542642
reference += (s + s)
543643
idx += 1
544-
assert(column.arrayData().elementsAppended == 11 + (s + s).length)
644+
assert(column.arrayData().elementsAppended == 17 + (s + s).length)
545645

546646
reference.zipWithIndex.foreach { v =>
547647
assert(v._1.length == column.getArrayLength(v._2), "MemoryMode=" + memMode)

0 commit comments

Comments
 (0)