On Dec 2, 2:17 pm, "exhuma.twn" <[EMAIL PROTECTED]> wrote:
> On Dec 2, 1:30 pm, "exhuma.twn" <[EMAIL PROTECTED]> wrote:
>
>
>
> > A stupid example to start with:
>
> > >>> lt = literal( "True" )
> > >>> Event.select( and_(True, lt))
>
> > This works fine. But the reason I am using "literal" is because I am
> > using some advanced postgres features inside a Where clause:
>
> > >>> lt = literal(""""geographical_entity.path <@ ARRAY( SELECT b.path FROM 
> > >>> (virtual_region_has_geo_entity NATURAL JOIN virtual_region) a JOIN 
> > >>> geographical_entity b USING (geographical_entity_id) WHERE 
> > >>> virtual_region_id=1)""")
> > >>> Event.select( and_(True, lt))
>
> > This does not work. I get a "ProgrammingError" indicating that the
> > query is wrong. When I look at the log, and copy/paste the SQL-query
> > that was generated, and paste that into the postgresql shell itself it
> > works.
> > So the generated query works. But it doesn't work through SQLAlchemy.
> > What am I missing?
>
> > Note: the "<@" operator comes from the ltree module!
>
> Aaah.... I see what's going on..... In the postgres logs, I see that
> the created statement puts quotes around the literal. Essentially
> passing it on as a string. Is it not possible to avoid that?

Ah... using text() instead of literal() makes it all behave
nicely....... :D
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to