From 4d718ad3effd97eaee50cb63dfe7987169e48e68 Mon Sep 17 00:00:00 2001 From: "Mateusz \"Serafin\" Gajewski" Date: Sat, 8 Feb 2025 16:58:41 +0100 Subject: [PATCH] Decode values to an Object array and wrap with List --- .../main/java/io/trino/client/JsonIterators.java | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/client/trino-client/src/main/java/io/trino/client/JsonIterators.java b/client/trino-client/src/main/java/io/trino/client/JsonIterators.java index dc7b3e4f146f..c992fde32dbf 100644 --- a/client/trino-client/src/main/java/io/trino/client/JsonIterators.java +++ b/client/trino-client/src/main/java/io/trino/client/JsonIterators.java @@ -26,7 +26,6 @@ import java.io.IOException; import java.io.InputStream; import java.io.UncheckedIOException; -import java.util.ArrayList; import java.util.List; import static com.fasterxml.jackson.core.JsonParser.Feature.AUTO_CLOSE_SOURCE; @@ -36,7 +35,6 @@ import static com.fasterxml.jackson.core.JsonToken.START_ARRAY; import static com.google.common.base.Verify.verify; import static io.trino.client.JsonDecodingUtils.createTypeDecoders; -import static java.util.Collections.unmodifiableList; import static java.util.Objects.requireNonNull; public final class JsonIterators @@ -112,17 +110,14 @@ public List computeNext() return endOfData(); } try { - List row = new ArrayList<>(decoders.length); - for (TypeDecoder decoder : decoders) { - if (requireNonNull(parser.nextToken()) == JsonToken.VALUE_NULL) { - row.add(null); - } - else { - row.add(decoder.decode(parser)); // allow nulls + Object[] row = new Object[decoders.length]; + for (int i = 0; i < decoders.length; i++) { + if (requireNonNull(parser.nextToken()) != JsonToken.VALUE_NULL) { + row[i] = decoders[i].decode(parser); // allow nulls } } checkIfClosed(); - return unmodifiableList(row); + return List.of(row); } catch (IOException e) { throw new UncheckedIOException(e);