public Object extractField()

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;
    }