Skip to content

Commit c4d9a41

Browse files
committed
remove ColumnVector.anyNullsSet
1 parent 7d8e2ca commit c4d9a41

7 files changed

Lines changed: 4 additions & 49 deletions

File tree

sql/core/src/main/java/org/apache/spark/sql/execution/vectorized/ArrowColumnVector.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,6 @@ public int numNulls() {
5454
return accessor.getNullCount();
5555
}
5656

57-
@Override
58-
public boolean anyNullsSet() {
59-
return numNulls() > 0;
60-
}
61-
6257
@Override
6358
public void close() {
6459
if (childColumns != null) {

sql/core/src/main/java/org/apache/spark/sql/execution/vectorized/ColumnVector.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,6 @@ public abstract class ColumnVector implements AutoCloseable {
5353
*/
5454
public abstract int numNulls();
5555

56-
/**
57-
* Returns true if any of the nulls indicator are set for this column. This can be used
58-
* as an optimization to prevent setting nulls.
59-
*/
60-
public abstract boolean anyNullsSet();
61-
6256
/**
6357
* Returns whether the value at rowId is NULL.
6458
*/

sql/core/src/main/java/org/apache/spark/sql/execution/vectorized/OffHeapColumnVector.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,6 @@ public void putNotNull(int rowId) {
110110
public void putNull(int rowId) {
111111
Platform.putByte(null, nulls + rowId, (byte) 1);
112112
++numNulls;
113-
anyNullsSet = true;
114113
}
115114

116115
@Override
@@ -119,13 +118,12 @@ public void putNulls(int rowId, int count) {
119118
for (int i = 0; i < count; ++i, ++offset) {
120119
Platform.putByte(null, offset, (byte) 1);
121120
}
122-
anyNullsSet = true;
123121
numNulls += count;
124122
}
125123

126124
@Override
127125
public void putNotNulls(int rowId, int count) {
128-
if (!anyNullsSet) return;
126+
if (numNulls == 0) return;
129127
long offset = nulls + rowId;
130128
for (int i = 0; i < count; ++i, ++offset) {
131129
Platform.putByte(null, offset, (byte) 0);

sql/core/src/main/java/org/apache/spark/sql/execution/vectorized/OnHeapColumnVector.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,21 +107,19 @@ public void putNotNull(int rowId) {
107107
public void putNull(int rowId) {
108108
nulls[rowId] = (byte)1;
109109
++numNulls;
110-
anyNullsSet = true;
111110
}
112111

113112
@Override
114113
public void putNulls(int rowId, int count) {
115114
for (int i = 0; i < count; ++i) {
116115
nulls[rowId + i] = (byte)1;
117116
}
118-
anyNullsSet = true;
119117
numNulls += count;
120118
}
121119

122120
@Override
123121
public void putNotNulls(int rowId, int count) {
124-
if (!anyNullsSet) return;
122+
if (numNulls == 0) return;
125123
for (int i = 0; i < count; ++i) {
126124
nulls[rowId + i] = (byte)0;
127125
}

sql/core/src/main/java/org/apache/spark/sql/execution/vectorized/WritableColumnVector.java

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,11 @@ public void reset() {
5454
((WritableColumnVector) c).reset();
5555
}
5656
}
57-
numNulls = 0;
5857
elementsAppended = 0;
59-
if (anyNullsSet) {
58+
if (numNulls > 0) {
6059
putNotNulls(0, capacity);
61-
anyNullsSet = false;
6260
}
61+
numNulls = 0;
6362
}
6463

6564
@Override
@@ -104,9 +103,6 @@ private void throwUnsupportedException(int requiredCapacity, Throwable cause) {
104103
@Override
105104
public int numNulls() { return numNulls; }
106105

107-
@Override
108-
public boolean anyNullsSet() { return anyNullsSet; }
109-
110106
/**
111107
* Returns the dictionary Id for rowId.
112108
*
@@ -640,12 +636,6 @@ public final int appendStruct(boolean isNull) {
640636
*/
641637
protected int numNulls;
642638

643-
/**
644-
* True if there is at least one NULL byte set. This is an optimization for the writer, to skip
645-
* having to clear NULL bits.
646-
*/
647-
protected boolean anyNullsSet;
648-
649639
/**
650640
* True if this column's values are fixed. This means the column values never change, even
651641
* across resets.

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

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ class ArrowColumnVectorSuite extends SparkFunSuite {
4242

4343
val columnVector = new ArrowColumnVector(vector)
4444
assert(columnVector.dataType === BooleanType)
45-
assert(columnVector.anyNullsSet)
4645
assert(columnVector.numNulls === 1)
4746

4847
(0 until 10).foreach { i =>
@@ -71,7 +70,6 @@ class ArrowColumnVectorSuite extends SparkFunSuite {
7170

7271
val columnVector = new ArrowColumnVector(vector)
7372
assert(columnVector.dataType === ByteType)
74-
assert(columnVector.anyNullsSet)
7573
assert(columnVector.numNulls === 1)
7674

7775
(0 until 10).foreach { i =>
@@ -100,7 +98,6 @@ class ArrowColumnVectorSuite extends SparkFunSuite {
10098

10199
val columnVector = new ArrowColumnVector(vector)
102100
assert(columnVector.dataType === ShortType)
103-
assert(columnVector.anyNullsSet)
104101
assert(columnVector.numNulls === 1)
105102

106103
(0 until 10).foreach { i =>
@@ -129,7 +126,6 @@ class ArrowColumnVectorSuite extends SparkFunSuite {
129126

130127
val columnVector = new ArrowColumnVector(vector)
131128
assert(columnVector.dataType === IntegerType)
132-
assert(columnVector.anyNullsSet)
133129
assert(columnVector.numNulls === 1)
134130

135131
(0 until 10).foreach { i =>
@@ -158,7 +154,6 @@ class ArrowColumnVectorSuite extends SparkFunSuite {
158154

159155
val columnVector = new ArrowColumnVector(vector)
160156
assert(columnVector.dataType === LongType)
161-
assert(columnVector.anyNullsSet)
162157
assert(columnVector.numNulls === 1)
163158

164159
(0 until 10).foreach { i =>
@@ -187,7 +182,6 @@ class ArrowColumnVectorSuite extends SparkFunSuite {
187182

188183
val columnVector = new ArrowColumnVector(vector)
189184
assert(columnVector.dataType === FloatType)
190-
assert(columnVector.anyNullsSet)
191185
assert(columnVector.numNulls === 1)
192186

193187
(0 until 10).foreach { i =>
@@ -216,7 +210,6 @@ class ArrowColumnVectorSuite extends SparkFunSuite {
216210

217211
val columnVector = new ArrowColumnVector(vector)
218212
assert(columnVector.dataType === DoubleType)
219-
assert(columnVector.anyNullsSet)
220213
assert(columnVector.numNulls === 1)
221214

222215
(0 until 10).foreach { i =>
@@ -246,7 +239,6 @@ class ArrowColumnVectorSuite extends SparkFunSuite {
246239

247240
val columnVector = new ArrowColumnVector(vector)
248241
assert(columnVector.dataType === StringType)
249-
assert(columnVector.anyNullsSet)
250242
assert(columnVector.numNulls === 1)
251243

252244
(0 until 10).foreach { i =>
@@ -274,7 +266,6 @@ class ArrowColumnVectorSuite extends SparkFunSuite {
274266

275267
val columnVector = new ArrowColumnVector(vector)
276268
assert(columnVector.dataType === BinaryType)
277-
assert(columnVector.anyNullsSet)
278269
assert(columnVector.numNulls === 1)
279270

280271
(0 until 10).foreach { i =>
@@ -319,7 +310,6 @@ class ArrowColumnVectorSuite extends SparkFunSuite {
319310

320311
val columnVector = new ArrowColumnVector(vector)
321312
assert(columnVector.dataType === ArrayType(IntegerType))
322-
assert(columnVector.anyNullsSet)
323313
assert(columnVector.numNulls === 1)
324314

325315
val array0 = columnVector.getArray(0)
@@ -383,7 +373,6 @@ class ArrowColumnVectorSuite extends SparkFunSuite {
383373

384374
val columnVector = new ArrowColumnVector(vector)
385375
assert(columnVector.dataType === schema)
386-
assert(columnVector.anyNullsSet)
387376
assert(columnVector.numNulls === 1)
388377

389378
val row0 = columnVector.getStruct(0, 2)

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

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -65,49 +65,41 @@ class ColumnarBatchSuite extends SparkFunSuite {
6565
column =>
6666
val reference = mutable.ArrayBuffer.empty[Boolean]
6767
var idx = 0
68-
assert(!column.anyNullsSet())
6968
assert(column.numNulls() == 0)
7069

7170
column.appendNotNull()
7271
reference += false
73-
assert(!column.anyNullsSet())
7472
assert(column.numNulls() == 0)
7573

7674
column.appendNotNulls(3)
7775
(1 to 3).foreach(_ => reference += false)
78-
assert(!column.anyNullsSet())
7976
assert(column.numNulls() == 0)
8077

8178
column.appendNull()
8279
reference += true
83-
assert(column.anyNullsSet())
8480
assert(column.numNulls() == 1)
8581

8682
column.appendNulls(3)
8783
(1 to 3).foreach(_ => reference += true)
88-
assert(column.anyNullsSet())
8984
assert(column.numNulls() == 4)
9085

9186
idx = column.elementsAppended
9287

9388
column.putNotNull(idx)
9489
reference += false
9590
idx += 1
96-
assert(column.anyNullsSet())
9791
assert(column.numNulls() == 4)
9892

9993
column.putNull(idx)
10094
reference += true
10195
idx += 1
102-
assert(column.anyNullsSet())
10396
assert(column.numNulls() == 5)
10497

10598
column.putNulls(idx, 3)
10699
reference += true
107100
reference += true
108101
reference += true
109102
idx += 3
110-
assert(column.anyNullsSet())
111103
assert(column.numNulls() == 8)
112104

113105
column.putNotNulls(idx, 4)
@@ -116,7 +108,6 @@ class ColumnarBatchSuite extends SparkFunSuite {
116108
reference += false
117109
reference += false
118110
idx += 4
119-
assert(column.anyNullsSet())
120111
assert(column.numNulls() == 8)
121112

122113
reference.zipWithIndex.foreach { v =>

0 commit comments

Comments
 (0)