Skip to content

Commit f71c515

Browse files
committed
Remove ConnectorSession from JSON serialization
1 parent bfc1307 commit f71c515

File tree

4 files changed

+24
-36
lines changed

4 files changed

+24
-36
lines changed

core/trino-main/src/main/java/io/trino/server/protocol/JsonBytesQueryData.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import io.trino.server.protocol.JsonEncodingUtils.TypeEncoder;
2020
import io.trino.spi.Page;
2121
import io.trino.spi.TrinoException;
22-
import io.trino.spi.connector.ConnectorSession;
2322

2423
import java.util.List;
2524
import java.util.function.Consumer;
@@ -30,15 +29,13 @@
3029
public class JsonBytesQueryData
3130
implements QueryData
3231
{
33-
private final ConnectorSession connectorSession;
3432
private final TypeEncoder[] typeEncoders;
3533
private final int[] sourcePageChannels;
3634
private final List<Page> pages;
3735
private final Consumer<TrinoException> exceptionHandler;
3836

39-
public JsonBytesQueryData(ConnectorSession connectorSession, Consumer<TrinoException> exceptionHandler, TypeEncoder[] typeEncoders, int[] sourcePageChannels, List<Page> pages)
37+
public JsonBytesQueryData(Consumer<TrinoException> exceptionHandler, TypeEncoder[] typeEncoders, int[] sourcePageChannels, List<Page> pages)
4038
{
41-
this.connectorSession = requireNonNull(connectorSession, "connectorSession");
4239
this.exceptionHandler = requireNonNull(exceptionHandler, "exceptionHandler is null");
4340
this.typeEncoders = requireNonNull(typeEncoders, "typeEncoders is null");
4441
this.sourcePageChannels = requireNonNull(sourcePageChannels, "sourcePageChannels is null");
@@ -47,7 +44,7 @@ public JsonBytesQueryData(ConnectorSession connectorSession, Consumer<TrinoExcep
4744

4845
public void writeTo(JsonGenerator generator)
4946
{
50-
writePagesToJsonGenerator(connectorSession, exceptionHandler, generator, typeEncoders, sourcePageChannels, pages);
47+
writePagesToJsonGenerator(exceptionHandler, generator, typeEncoders, sourcePageChannels, pages);
5148
}
5249

5350
@Override

core/trino-main/src/main/java/io/trino/server/protocol/JsonBytesQueryDataProducer.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import io.trino.server.ExternalUriInfo;
1919
import io.trino.server.protocol.JsonEncodingUtils.TypeEncoder;
2020
import io.trino.spi.TrinoException;
21-
import io.trino.spi.connector.ConnectorSession;
2221
import io.trino.spi.type.Type;
2322

2423
import java.util.List;
@@ -32,8 +31,6 @@
3231
public class JsonBytesQueryDataProducer
3332
implements QueryDataProducer
3433
{
35-
private final ConnectorSession connectorSession;
36-
3734
private TypeEncoder[] typeEncoders;
3835
private int[] sourcePageChannels;
3936
private boolean closed;
@@ -44,7 +41,6 @@ public JsonBytesQueryDataProducer(Session session, List<Type> types)
4441
typeEncoders = createTypeEncoders(session, types);
4542
sourcePageChannels = IntStream.range(0, typeEncoders.length)
4643
.toArray();
47-
connectorSession = session.toConnectorSession();
4844
}
4945

5046
@Override
@@ -56,7 +52,7 @@ public QueryData produce(ExternalUriInfo uriInfo, QueryResultRows rows, Consumer
5652

5753
verify(!closed, "JsonBytesQueryDataProducer is already closed");
5854
// Write to a buffer so we can capture and propagate the exception
59-
return new JsonBytesQueryData(connectorSession, throwableConsumer, typeEncoders, sourcePageChannels, rows.getPages());
55+
return new JsonBytesQueryData(throwableConsumer, typeEncoders, sourcePageChannels, rows.getPages());
6056
}
6157

6258
@Override

core/trino-main/src/main/java/io/trino/server/protocol/JsonEncodingUtils.java

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import io.trino.spi.block.Block;
2323
import io.trino.spi.block.SqlMap;
2424
import io.trino.spi.block.SqlRow;
25-
import io.trino.spi.connector.ConnectorSession;
2625
import io.trino.spi.type.ArrayType;
2726
import io.trino.spi.type.BigintType;
2827
import io.trino.spi.type.BooleanType;
@@ -117,7 +116,7 @@ public static TypeEncoder createTypeEncoder(Type type, boolean supportsParametri
117116
};
118117
}
119118

120-
public static void writePagesToJsonGenerator(ConnectorSession connectorSession, Consumer<TrinoException> throwableConsumer, JsonGenerator generator, TypeEncoder[] typeEncoders, int[] sourcePageChannels, List<Page> pages)
119+
public static void writePagesToJsonGenerator(Consumer<TrinoException> throwableConsumer, JsonGenerator generator, TypeEncoder[] typeEncoders, int[] sourcePageChannels, List<Page> pages)
121120
{
122121
verify(typeEncoders.length == sourcePageChannels.length, "Source page channels and type encoders must have the same length");
123122
try {
@@ -131,7 +130,7 @@ public static void writePagesToJsonGenerator(ConnectorSession connectorSession,
131130
for (int position = 0; position < page.getPositionCount(); position++) {
132131
generator.writeStartArray();
133132
for (int column = 0; column < typeEncoders.length; column++) {
134-
typeEncoders[column].encode(generator, connectorSession, blocks[column], position);
133+
typeEncoders[column].encode(generator, blocks[column], position);
135134
}
136135
generator.writeEndArray();
137136
}
@@ -146,15 +145,15 @@ public static void writePagesToJsonGenerator(ConnectorSession connectorSession,
146145

147146
public interface TypeEncoder
148147
{
149-
void encode(JsonGenerator generator, ConnectorSession session, Block block, int position)
148+
void encode(JsonGenerator generator, Block block, int position)
150149
throws IOException;
151150
}
152151

153152
private static class BigintEncoder
154153
implements TypeEncoder
155154
{
156155
@Override
157-
public void encode(JsonGenerator generator, ConnectorSession session, Block block, int position)
156+
public void encode(JsonGenerator generator, Block block, int position)
158157
throws IOException
159158
{
160159
if (block.isNull(position)) {
@@ -169,7 +168,7 @@ private static class IntegerEncoder
169168
implements TypeEncoder
170169
{
171170
@Override
172-
public void encode(JsonGenerator generator, ConnectorSession session, Block block, int position)
171+
public void encode(JsonGenerator generator, Block block, int position)
173172
throws IOException
174173
{
175174
if (block.isNull(position)) {
@@ -184,7 +183,7 @@ private static class BooleanEncoder
184183
implements TypeEncoder
185184
{
186185
@Override
187-
public void encode(JsonGenerator generator, ConnectorSession session, Block block, int position)
186+
public void encode(JsonGenerator generator, Block block, int position)
188187
throws IOException
189188
{
190189
if (block.isNull(position)) {
@@ -199,7 +198,7 @@ private static class SmallintEncoder
199198
implements TypeEncoder
200199
{
201200
@Override
202-
public void encode(JsonGenerator generator, ConnectorSession session, Block block, int position)
201+
public void encode(JsonGenerator generator, Block block, int position)
203202
throws IOException
204203
{
205204
if (block.isNull(position)) {
@@ -214,7 +213,7 @@ private static class TinyintEncoder
214213
implements TypeEncoder
215214
{
216215
@Override
217-
public void encode(JsonGenerator generator, ConnectorSession session, Block block, int position)
216+
public void encode(JsonGenerator generator, Block block, int position)
218217
throws IOException
219218
{
220219
if (block.isNull(position)) {
@@ -229,7 +228,7 @@ private static class DoubleEncoder
229228
implements TypeEncoder
230229
{
231230
@Override
232-
public void encode(JsonGenerator generator, ConnectorSession session, Block block, int position)
231+
public void encode(JsonGenerator generator, Block block, int position)
233232
throws IOException
234233
{
235234
if (block.isNull(position)) {
@@ -244,7 +243,7 @@ private static class RealEncoder
244243
implements TypeEncoder
245244
{
246245
@Override
247-
public void encode(JsonGenerator generator, ConnectorSession session, Block block, int position)
246+
public void encode(JsonGenerator generator, Block block, int position)
248247
throws IOException
249248
{
250249
if (block.isNull(position)) {
@@ -259,7 +258,7 @@ private static class VarcharEncoder
259258
implements TypeEncoder
260259
{
261260
@Override
262-
public void encode(JsonGenerator generator, ConnectorSession session, Block block, int position)
261+
public void encode(JsonGenerator generator, Block block, int position)
263262
throws IOException
264263
{
265264
if (block.isNull(position)) {
@@ -282,7 +281,7 @@ private CharEncoder(int length)
282281
}
283282

284283
@Override
285-
public void encode(JsonGenerator generator, ConnectorSession session, Block block, int position)
284+
public void encode(JsonGenerator generator, Block block, int position)
286285
throws IOException
287286
{
288287
if (block.isNull(position)) {
@@ -298,7 +297,7 @@ private static class VarbinaryEncoder
298297
implements TypeEncoder
299298
{
300299
@Override
301-
public void encode(JsonGenerator generator, ConnectorSession session, Block block, int position)
300+
public void encode(JsonGenerator generator, Block block, int position)
302301
throws IOException
303302
{
304303
if (block.isNull(position)) {
@@ -325,7 +324,7 @@ public ArrayEncoder(ArrayType arrayType, TypeEncoder typeEncoder)
325324
}
326325

327326
@Override
328-
public void encode(JsonGenerator generator, ConnectorSession session, Block block, int position)
327+
public void encode(JsonGenerator generator, Block block, int position)
329328
throws IOException
330329
{
331330
if (block.isNull(position)) {
@@ -336,7 +335,7 @@ public void encode(JsonGenerator generator, ConnectorSession session, Block bloc
336335
Block arrayBlock = arrayType.getObject(block, position);
337336
generator.writeStartArray();
338337
for (int i = 0; i < arrayBlock.getPositionCount(); i++) {
339-
typeEncoder.encode(generator, session, arrayBlock, i);
338+
typeEncoder.encode(generator, arrayBlock, i);
340339
}
341340
generator.writeEndArray();
342341
}
@@ -355,7 +354,7 @@ public MapEncoder(MapType mapType, TypeEncoder valueEncoder)
355354
}
356355

357356
@Override
358-
public void encode(JsonGenerator generator, ConnectorSession session, Block block, int position)
357+
public void encode(JsonGenerator generator, Block block, int position)
359358
throws IOException
360359
{
361360
if (block.isNull(position)) {
@@ -375,7 +374,7 @@ public void encode(JsonGenerator generator, ConnectorSession session, Block bloc
375374
// Map values are always properly encoded using their types.
376375
// TODO: improve in v2 JSON format
377376
generator.writeFieldName(mapType.getKeyType().getObjectValue(keyBlock, offset + i).toString());
378-
valueEncoder.encode(generator, session, valueBlock, offset + i);
377+
valueEncoder.encode(generator, valueBlock, offset + i);
379378
}
380379
generator.writeEndObject();
381380
}
@@ -394,7 +393,7 @@ public RowEncoder(RowType rowType, TypeEncoder[] fieldEncoders)
394393
}
395394

396395
@Override
397-
public void encode(JsonGenerator generator, ConnectorSession session, Block block, int position)
396+
public void encode(JsonGenerator generator, Block block, int position)
398397
throws IOException
399398
{
400399
if (block.isNull(position)) {
@@ -404,7 +403,7 @@ public void encode(JsonGenerator generator, ConnectorSession session, Block bloc
404403
SqlRow row = rowType.getObject(block, position);
405404
generator.writeStartArray();
406405
for (int i = 0; i < row.getFieldCount(); i++) {
407-
fieldEncoders[i].encode(generator, session, row.getRawFieldBlock(i), row.getRawIndex());
406+
fieldEncoders[i].encode(generator, row.getRawFieldBlock(i), row.getRawIndex());
408407
}
409408
generator.writeEndArray();
410409
}
@@ -423,7 +422,7 @@ public TypeObjectValueEncoder(Type type, boolean supportsParametricDateTime)
423422
}
424423

425424
@Override
426-
public void encode(JsonGenerator generator, ConnectorSession session, Block block, int position)
425+
public void encode(JsonGenerator generator, Block block, int position)
427426
throws IOException
428427
{
429428
if (block.isNull(position)) {

core/trino-main/src/main/java/io/trino/server/protocol/spooling/encoding/JsonQueryDataEncoder.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import io.trino.server.protocol.spooling.QueryDataEncodingConfig;
2626
import io.trino.spi.Page;
2727
import io.trino.spi.TrinoException;
28-
import io.trino.spi.connector.ConnectorSession;
2928

3029
import java.io.IOException;
3130
import java.io.OutputStream;
@@ -48,13 +47,11 @@ public class JsonQueryDataEncoder
4847

4948
private static final JsonFactory JSON_FACTORY = jsonFactory();
5049
private static final String ENCODING = "json";
51-
private final Session session;
5250
private TypeEncoder[] typeEncoders;
5351
private int[] sourcePageChannels;
5452

5553
public JsonQueryDataEncoder(Session session, List<OutputColumn> columns)
5654
{
57-
this.session = requireNonNull(session, "session is null");
5855
this.typeEncoders = createTypeEncoders(session, requireNonNull(columns, "columns is null")
5956
.stream()
6057
.map(OutputColumn::type)
@@ -69,9 +66,8 @@ public DataAttributes encodeTo(OutputStream output, List<Page> pages)
6966
throws IOException
7067
{
7168
verify(!closed, "JsonQueryDataEncoder is already closed");
72-
ConnectorSession connectorSession = session.toConnectorSession();
7369
try (CountingOutputStream wrapper = new CountingOutputStream(output); JsonGenerator generator = JSON_FACTORY.createGenerator(wrapper)) {
74-
writePagesToJsonGenerator(connectorSession, e -> { throw e; }, generator, typeEncoders, sourcePageChannels, pages);
70+
writePagesToJsonGenerator(e -> { throw e; }, generator, typeEncoders, sourcePageChannels, pages);
7571
return DataAttributes.builder()
7672
.set(SEGMENT_SIZE, toIntExact(wrapper.getCount()))
7773
.build();

0 commit comments

Comments
 (0)