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);