Select from joined tables with aliases


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)) \

Which transforms to next SQL:

SELECT,, subscriptions.created_at, subscriptions.updated_at, subscriptions.product_id, subscriptions.plan_id, subscriptions.owner, subscriptions.expires_at, subscriptions.is_active, subscriptions.status,,, products.created_at, products.updated_at, products.type 
FROM subscriptions AS subscriptions JOIN products AS products ON = 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.