Skip to content

Commit b4cc4bc

Browse files
authored
[fix][sql][branch-3.0] Fix long decimal compatibility in Trino 368. (#23419)
1 parent 126776b commit b4cc4bc

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

pulsar-sql/presto-pulsar/src/main/java/org/apache/pulsar/sql/presto/PulsarRecordCursor.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import static com.google.common.base.Preconditions.checkArgument;
2222
import static com.google.common.collect.ImmutableSet.toImmutableSet;
23+
import static io.airlift.slice.SizeOf.SIZE_OF_LONG;
2324
import static io.trino.decoder.FieldValueProviders.bytesValueProvider;
2425
import static io.trino.decoder.FieldValueProviders.longValueProvider;
2526
import com.fasterxml.jackson.core.JsonProcessingException;
@@ -34,8 +35,10 @@
3435
import io.trino.decoder.DecoderColumnHandle;
3536
import io.trino.decoder.FieldValueProvider;
3637
import io.trino.spi.block.Block;
38+
import io.trino.spi.block.Int128ArrayBlock;
3739
import io.trino.spi.connector.ColumnHandle;
3840
import io.trino.spi.connector.RecordCursor;
41+
import io.trino.spi.type.Int128;
3942
import io.trino.spi.type.Type;
4043
import java.io.IOException;
4144
import java.util.HashMap;
@@ -711,9 +714,20 @@ private FieldValueProvider getFieldValueProvider(int fieldIndex, Class<?> expect
711714
return currentRowValues[fieldIndex];
712715
}
713716

717+
private FieldValueProvider getFieldValueProvider(int fieldIndex) {
718+
checkArgument(fieldIndex < columnHandles.size(), "Invalid field index");
719+
return currentRowValues[fieldIndex];
720+
}
721+
714722
@Override
715723
public Object getObject(int field) {
716-
return getFieldValueProvider(field, Block.class).getBlock();
724+
Block block = getFieldValueProvider(field).getBlock();
725+
if (block instanceof Int128ArrayBlock) {
726+
return Int128.valueOf(
727+
block.getLong(0, 0),
728+
block.getLong(0, SIZE_OF_LONG));
729+
}
730+
return block;
717731
}
718732

719733
@Override

0 commit comments

Comments
 (0)