To be more precise:

I have a query like this one:

session.query(osmalchemy.node).filter(osmalchemy.node.tags.any(key="name", 
value="Grill-Corner")).all()

It ultimately compiles to this QL expression:

query = SELECT osm_nodes.element_id AS osm_nodes_element_id, 
osm_elements.element_id 
AS osm_elements_element_id, osm_elements.osmalchemy_updated AS 
osm_elements_osmalchemy_updated, osm_elements.type AS osm_elements_type, 
osm_elements.id AS osm_elements_id, osm_elements.version AS 
osm_elements_version, osm_elements.changeset AS osm_elements_changeset, 
osm_elements.user AS osm_elements_user, osm_elements.uid AS osm_elements_uid
, osm_elements.visible AS osm_elements_visible, osm_elements.timestamp AS 
osm_elements_timestamp, osm_nodes.latitude AS osm_nodes_latitude, 
osm_nodes.longitude 
AS osm_nodes_longitude 
FROM osm_elements JOIN osm_nodes ON osm_elements.element_id = 
osm_nodes.element_id 

WHERE EXISTS (SELECT 1 
FROM osm_elements_tags 
WHERE osm_elements.element_id = osm_elements_tags.element_id AND (EXISTS 
(SELECT 
1 
FROM osm_tags 
WHERE osm_tags.tag_id = osm_elements_tags.tag_id AND osm_tags.value = ? AND 
osm_tags."key" = ?)))

I want to programmatically get to the last two comparisons, i.e. the 
criterion of the .any() call in the initial query.

I am receiving this query in a before_compile trigger in a library using 
SQLAlchemy.

-nik

-- 
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 sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to