in presto-pulsar/src/main/java/org/apache/pulsar/sql/presto/PulsarRecordCursor.java [444:465]
Object getRecord(int fieldIndex) {
if (this.currentRecord == null) {
return null;
}
Object data;
PulsarColumnHandle pulsarColumnHandle = this.columnHandles.get(fieldIndex);
if (pulsarColumnHandle.isInternal()) {
String fieldName = this.columnHandles.get(fieldIndex).getName();
PulsarInternalColumn pulsarInternalColumn = this.internalColumnMap.get(fieldName);
if (pulsarInternalColumn instanceof PartitionColumn) {
data = this.partition;
} else {
data = pulsarInternalColumn.getData(this.currentMessage);
}
} else {
data = this.schemaHandler.extractField(fieldIndex, this.currentRecord);
}
return data;
}