'Receive an update from a call to query.with_polymorphic().
Note the newer style of using a free standing with_polymporphic()
construct doesn\'t make use of this method.'

def set_with_polymorphic(self, query, cls_or_mappers, selectable, polymorphic_on):

    if self.is_aliased_class:
        raise NotImplementedError("Can't    use    with_polymorphic()    against    an    Aliased    object")
    if (cls_or_mappers is None):
        query._reset_polymorphic_adapter(self.mapper)
        return
    (mappers, from_obj) = self.mapper._with_polymorphic_args(cls_or_mappers, selectable)
    self._with_polymorphic = mappers
    self._polymorphic_discriminator = polymorphic_on
    self.selectable = from_obj
    query._mapper_loads_polymorphically_with(self.mapper, sql_util.ColumnAdapter(from_obj, self.mapper._equivalent_columns))
