protected void readAndFill(ClickHouseRecord r) throws IOException {
        for (int i = readPosition, len = serde.columns.length; i < len; i++) {
            readAndFill(r.getValue(i));
            readPosition = i;
        }
        readPosition = 0;
    }
Reads columns(starting from {@code readPosition}) from input stream and fill
deserialized data into the given record. This method is only used when
iterating through {@link #records()}.

@param r non-null record to fill
@throws IOException when failed to read columns from input stream
clickhouse-data/src/main/java/com/clickhouse/data/ClickHouseDataProcessor.java