This is horrible, but it works ( after a few hours of trial & error )
the trick was in using labels and aliases in every step
it makes perfect sense looking at it now ( though ugly ), but was not how i
expected to pull this off.
For anyone who gets stuck:
if _query_A and _query_B :
_slurped = sqlalchemy.union( _query_A , _query_B )
_slurped = sqlalchemy.sql.expression.alias( _slurped ,
name='slurped')
_culled = sqlalchemy.select(\
( sqlalchemy.sql.distinct(_slurped.c.id).label('id') ,
_slurped.c.event_timestamp.label('event_timestamp') )
)\
.order_by(\
_slurped.c.id.desc(),
_slurped.c.event_timestamp.desc()
)
_culled = sqlalchemy.sql.expression.alias( _culled , name='culled')
_ordered = sqlalchemy.select( (_culled.c.id,) )\
.order_by(\
_culled.c.event_timestamp.desc()
)
_ordered = sqlalchemy.sql.expression.alias( _ordered ,
name='ordered')
_query = _ordered
else :
if _query_A :
_query = _query_A\
.order_by(\
model.core.ObjA.timestamp_a.desc()
)
elif _query_B :
_query = _query_B\
.order_by(\
model.core.ObjB.timestamp_b.desc()
)
if isinstance( _query , sqlalchemy.orm.query.Query ):
items_count = _query.count()
else:
items_count = dbSession.( _query.count() )
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/groups/opt_out.