Skip to content

Commit 149b938

Browse files
tianchen92kou
authored andcommitted
ARROW-1875: [Java] Write 64-bit ints as strings in integration test JSON files
Related to [ARROW-1875](https://issues.apache.org/jira/browse/ARROW-1875). This is Java side implementation. Closes #5002 from tianchen92/ARROW-1875 and squashes the following commits: 20cc5814a <tianchen> ARROW-1875: Write 64-bit ints as strings in integration test JSON files Authored-by: tianchen <niki.lj@alibaba-inc.com> Signed-off-by: Micah Kornfield <emkornfield@gmail.com>
1 parent 66c5e7c commit 149b938

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

vector/src/main/java/org/apache/arrow/vector/ipc/JsonFileReader.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,8 @@ protected ArrowBuf read(BufferAllocator allocator, int count) throws IOException
318318

319319
for (int i = 0; i < count; i++) {
320320
parser.nextToken();
321-
buf.writeLong(parser.getLongValue());
321+
String value = parser.getValueAsString();
322+
buf.writeLong(Long.valueOf(value));
322323
}
323324

324325
return buf;
@@ -378,7 +379,7 @@ protected ArrowBuf read(BufferAllocator allocator, int count) throws IOException
378379

379380
for (int i = 0; i < count; i++) {
380381
parser.nextToken();
381-
BigInteger value = parser.getBigIntegerValue();
382+
BigInteger value = new BigInteger(parser.getValueAsString());
382383
buf.writeLong(value.longValue());
383384
}
384385

vector/src/main/java/org/apache/arrow/vector/ipc/JsonFileWriter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ private void writeValueToGenerator(
273273
generator.writeNumber(IntVector.get(buffer, index));
274274
break;
275275
case BIGINT:
276-
generator.writeNumber(BigIntVector.get(buffer, index));
276+
generator.writeString(String.valueOf(BigIntVector.get(buffer, index)));
277277
break;
278278
case UINT1:
279279
generator.writeNumber(UInt1Vector.getNoOverflow(buffer, index));
@@ -285,7 +285,7 @@ private void writeValueToGenerator(
285285
generator.writeNumber(UInt4Vector.getNoOverflow(buffer, index));
286286
break;
287287
case UINT8:
288-
generator.writeNumber(UInt8Vector.getNoOverflow(buffer, index));
288+
generator.writeString(UInt8Vector.getNoOverflow(buffer, index).toString());
289289
break;
290290
case FLOAT4:
291291
generator.writeNumber(Float4Vector.get(buffer, index));

0 commit comments

Comments
 (0)