'Set the given :class:`.Mapper` as the \'inherits\' for this
:class:`.Mapper`, assuming this :class:`.Mapper` is concrete
and does not already have an inherits.'

def _set_concrete_base(self, mapper):

    assert self.concrete
    assert (not self.inherits)
    assert isinstance(mapper, Mapper)
    self.inherits = mapper
    self.inherits.polymorphic_map.update(self.polymorphic_map)
    self.polymorphic_map = self.inherits.polymorphic_map
    for mapper in self.iterate_to_root():
        if (mapper.polymorphic_on is not None):
            mapper._requires_row_aliasing = True
    self.batch = self.inherits.batch
    for mp in self.self_and_descendants:
        mp.base_mapper = self.inherits.base_mapper
    self.inherits._inheriting_mappers.append(self)
    self.passive_updates = self.inherits.passive_updates
    self._all_tables = self.inherits._all_tables
    for (key, prop) in mapper._props.items():
        if ((key not in self._props) and (not self._should_exclude(key, key, local=False, column=None))):
            self._adapt_inherited_property(key, prop, False)
