Unable to get column_descriptions when joining to same join target multiple times

Issue #3417 duplicate
marcomartinez created an issue

I'm trying to get column_descriptions from a query that I'm building that contains multiple joins to the same target, but I'm getting the following error message:

Traceback (most recent call last):
  File "bug-alias.py", line 37, in test
    query.column_descriptions
  File "/home/mmartinez/env/sa/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2583, in column_descriptions
    for ent in self._entities
  File "/home/mmartinez/env/sa/lib/python2.7/site-packages/sqlalchemy/orm/util.py", line 398, in __getattr__
    raise AttributeError(key)
AttributeError: entity

Here's an example of what my code pre-1.0 was doing:

import sqlalchemy as sa
from sqlalchemy import orm
from sqlalchemy.ext.declarative import declarative_base

Session = orm.Session()

Base = declarative_base()


class User(Base):
    __tablename__ = 'user'
    id = sa.Column(sa.Integer(), primary_key=True)
    name = sa.Column(sa.Unicode(), nullable=False, unique=True)


class MyData(Base):
    __tablename__ = 'mydata'

    id = sa.Column(sa.Integer(), primary_key=True)

    data = sa.Column(sa.Unicode(), nullable=False, unique=True)

    created_by_id = sa.Column(sa.ForeignKey(User.id))
    created_by = orm.relationship(User, foreign_keys=[created_by_id])

    modified_by_id = sa.Column(sa.ForeignKey(User.id))
    modified_by = orm.relationship(User, foreign_keys=[modified_by_id])

Creator = orm.aliased(User)
Modifier = orm.aliased(User)

query = (
    Session.query(
        MyData.data,
        sa.literal(u'why').label('someliteral'),   # Literals will fail too
        Creator.name.label('created_by'),
        Modifier.name.label('modfied_by')
    )
    .join(Creator, MyData.created_by)
    .join(Modifier, MyData.modified_by)
)

print ([d['name'] for d in query.column_descriptions])                                  

Reading the 1.0 changlog, I tried this instead (which worked) :

query = (
    Session.query(
        MyData.data,
        sa.literal(u'why').label('someliteral'),
    )
    .join(MyData.created_by, aliased=True)
    .add_column(User.name.label('created_by'))
    .reset_joinpoint()
    .join(MyData.modified_by, aliased=True)
    .add_column(User.name.label('modified_by'))
    .reset_joinpoint()
)

print ([d['name'] for d in query.column_descriptions]) 

Am I missing something? Thanks in advance.