Select from joined tables with aliases

Hi.

I have the query:

s = subscriptions.alias('subscriptions')
p = products.alias('products')
query = s.join(p).select() \
    .where((p.c.type == product_type) & (s.c.updated_at >= since)) \
    .order_by(s.c.updated_at.desc())

Which transforms to next SQL:

SELECT subscriptions.id, subscriptions.name, subscriptions.created_at, subscriptions.updated_at, subscriptions.product_id, subscriptions.plan_id, subscriptions.owner, subscriptions.expires_at, subscriptions.is_active, subscriptions.status, products.id, products.name, products.created_at, products.updated_at, products.type 
FROM subscriptions AS subscriptions JOIN products AS products ON products.id = subscriptions.product_id 
WHERE products.type = %(type_1)s AND subscriptions.updated_at >= %(updated_at_1)s ORDER BY subscriptions.updated_at DESC

As a result I get rows which represents as dict with keys without table prefixes.
The keys are superimposed and I get product id in id key instead of subscription id.