that is right.
this was an even tricker problem... and I might have been executing correct queries last night without realizing it.
i just noticed that i was getting a correct query in my database, while I was seeing the wrong query on screen.
sqlalchemy didn't know that that 'core' commands I was using were for postgresql, so it rendered the query not using that dialect.
when i actually did query the database, it was compiling with the right dialect :
_query_INT = dbSession.query( model.Table.data )
_slurped = sqlalchemy.union( _query_EXT , _query_INT )
_slurped = sqlalchemy.sql.expression.alias( _slurped , name='slurped')
_deduped = sqlalchemy.select(\
(\
_slurped.c.object_id.label('object_id') ,
_slurped.c.event_timestamp.label('event_timestamp')
),
)\
.distinct( _slurped.c.object_id )\
.order_by(\
_slurped.c.object_id.desc() ,
_slurped.c.event_timestamp.desc()
)
_deduped = sqlalchemy.sql.expression.alias( _deduped , name='deduped')
_culled = sqlalchemy.select( (_deduped.c.object_id,) )\
.order_by(\
_deduped.c.event_timestamp.desc()
)
_query = _culled
# this executes a "DISTINCT ON ( slurped.object_id ) slurped.object_id , event_timestamp"
yay = dbSession.execute( _query )
# this renders a "DISTINCT slurped.object_id , event_timestamp"
nay = str( _query )