'Create a new :class:`.ColumnElement` representing this
:class:`.ColumnElement` as it appears in the select list of a
descending selectable.'

def _make_proxy(self, selectable, name=None, name_is_truncatable=False, **kw):

    if (name is None):
        name = self.anon_label
        if self.key:
            key = self.key
        else:
            try:
                key = str(self)
            except exc.UnsupportedCompilationError:
                key = self.anon_label
    else:
        key = name
    co = ColumnClause((_as_truncated(name) if name_is_truncatable else name), type_=getattr(self, u'type', None), _selectable=selectable)
    co._proxies = [self]
    if (selectable._is_clone_of is not None):
        co._is_clone_of = selectable._is_clone_of.columns.get(key)
    selectable._columns[key] = co
    return co
