@Override
public RecordSet getRecordSet(ConnectorTransactionHandle transaction, ConnectorSession session, ConnectorSplit split, List<? extends ColumnHandle> columns)
{
KafkaSplit kafkaSplit = convertSplit(split);
List<KafkaColumnHandle> kafkaColumns = columns.stream()
.map(KafkaHandleResolver::convertColumnHandle)
.collect(ImmutableList.toImmutableList());
RowDecoder keyDecoder = decoderFactory.create(
kafkaSplit.getKeyDataFormat(),
getDecoderParameters(kafkaSplit.getKeyDataSchemaContents()),
kafkaColumns.stream()
.filter(col -> !col.isInternal())
.filter(KafkaColumnHandle::isKeyDecoder)
.collect(toImmutableSet()));
RowDecoder messageDecoder = decoderFactory.create(
kafkaSplit.getMessageDataFormat(),
getDecoderParameters(kafkaSplit.getMessageDataSchemaContents()),
kafkaColumns.stream()
.filter(col -> !col.isInternal())
.filter(col -> !col.isKeyDecoder())
.collect(toImmutableSet()));
return new KafkaRecordSet(kafkaSplit, consumerManager, kafkaColumns, keyDecoder, messageDecoder);
}