diff --git a/core/trino-main/src/main/java/io/trino/server/protocol/JsonEncodingUtils.java b/core/trino-main/src/main/java/io/trino/server/protocol/JsonEncodingUtils.java index 57c671267ed5..8cc8ee65bdc3 100644 --- a/core/trino-main/src/main/java/io/trino/server/protocol/JsonEncodingUtils.java +++ b/core/trino-main/src/main/java/io/trino/server/protocol/JsonEncodingUtils.java @@ -124,10 +124,14 @@ public static void writePagesToJsonGenerator(ConnectorSession connectorSession, generator.writeStartArray(); for (Page page : pages) { + Block[] blocks = new Block[sourcePageChannels.length]; + for (int i = 0; i < sourcePageChannels.length; i++) { + blocks[i] = page.getBlock(sourcePageChannels[i]); + } for (int position = 0; position < page.getPositionCount(); position++) { generator.writeStartArray(); for (int column = 0; column < typeEncoders.length; column++) { - typeEncoders[column].encode(generator, connectorSession, page.getBlock(sourcePageChannels[column]), position); + typeEncoders[column].encode(generator, connectorSession, blocks[column], position); } generator.writeEndArray(); }