Skip to content

Commit b25d801

Browse files
committed
Fix null in append.
1 parent 32cb492 commit b25d801

File tree

5 files changed

+20
-4
lines changed

5 files changed

+20
-4
lines changed

std-bits/table/src/main/java/org/enso/table/data/column/builder/BigIntegerBuilder.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,9 @@ public boolean accepts(Object o) {
7272
@Override
7373
public void append(Object o) {
7474
ensureSpaceToAppend();
75-
if (o instanceof BigInteger value) {
76-
data[currentSize++] = value;
75+
76+
if (o == null) {
77+
appendNulls(1);
7778
} else {
7879
try {
7980
data[currentSize++] = NumericConverter.coerceToBigInteger(o);

std-bits/table/src/main/java/org/enso/table/data/column/builder/BoolBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public class BoolBuilder implements BuilderForBoolean, BuilderWithRetyping {
2323
@Override
2424
public void append(Object o) {
2525
if (o == null) {
26-
isNothing.set(size);
26+
appendNulls(1);
2727
} else {
2828
if (o instanceof Boolean b) {
2929
if (b) {

std-bits/table/src/main/java/org/enso/table/data/column/builder/DoubleBuilder.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,11 @@ public StorageType getType() {
5858

5959
@Override
6060
public void append(Object o) {
61+
if (o == null) {
62+
appendNulls(1);
63+
return;
64+
}
65+
6166
double value;
6267
if (NumericConverter.isFloatLike(o)) {
6368
value = NumericConverter.coerceToDouble(o);

std-bits/table/src/main/java/org/enso/table/data/column/builder/InferredDoubleBuilder.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,11 @@ public void appendLong(long integer) {
100100

101101
@Override
102102
public void append(Object o) {
103+
if (o == null) {
104+
appendNulls(1);
105+
return;
106+
}
107+
103108
if (NumericConverter.isFloatLike(o)) {
104109
appendDouble(NumericConverter.coerceToDouble(o));
105110
} else if (NumericConverter.isCoercibleToLong(o)) {

std-bits/table/src/main/java/org/enso/table/data/column/builder/LongBuilder.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ protected LongBuilder(int initialSize, ProblemAggregator problemAggregator) {
2626
}
2727

2828
static LongBuilder make(int initialSize, IntegerType type, ProblemAggregator problemAggregator) {
29-
if (type.equals(IntegerType.INT_64)) {
29+
if (type == null || type.equals(IntegerType.INT_64)) {
3030
return new LongBuilder(initialSize, problemAggregator);
3131
} else {
3232
return new BoundCheckedIntegerBuilder(initialSize, type, problemAggregator);
@@ -144,6 +144,11 @@ public void appendLong(long value) {
144144

145145
@Override
146146
public void append(Object o) {
147+
if (o == null) {
148+
appendNulls(1);
149+
return;
150+
}
151+
147152
Long x = NumericConverter.tryConvertingToLong(o);
148153
if (x != null) {
149154
ensureSpaceToAppend();

0 commit comments

Comments
 (0)