'Same as `~.mapped`, but ``name_seq`` is a dot-separated sequence of
field names, and only cached values are used.'

def _mapped_cache(self, name_seq):

    recs = self
    for name in name_seq.split('.'):
        field = recs._fields[name]
        null = field.convert_to_cache(False, self, validate=False)
        recs = recs.mapped((lambda rec: field.convert_to_record(rec._cache.get(field, null), rec)))
    return recs
