in presto-pulsar/src/main/java/org/apache/pulsar/sql/presto/AvroSchemaHandler.java [75:93]
public Object extractField(int index, Object currentRecord) {
try {
GenericAvroRecord record = (GenericAvroRecord) currentRecord;
PulsarColumnHandle pulsarColumnHandle = this.columnHandles.get(index);
String[] names = pulsarColumnHandle.getFieldNames();
if (names.length == 1) {
return record.getField(pulsarColumnHandle.getFieldNames()[0]);
} else {
for (int i = 0; i < names.length - 1; i++) {
record = (GenericAvroRecord) record.getField(names[i]);
}
return record.getField(names[names.length - 1]);
}
} catch (Exception ex) {
log.debug(ex, "%s", ex);
}
return null;
}