Hi,

I noticed that SQLAlchemy 0.4.2 generates invalid SQL queries if
I use or_() [without parameters] in a filter condition:
   or_conditions = []
   condition = and_(User.c.name=="John", or_(*or_conditions))
   query = session.query(User).filter(condition)

The generated SQL is:
   SELECT users.id AS users_id, users.name AS users_name
   FROM users
   WHERE users.name = ? AND () ORDER BY users.oid

And executing this query will cause an exception:
   File "/usr/lib/python2.4/site-packages/sqlalchemy/engine/base.py", line 847, 
in _execute_compiled
     self.__execute_raw(context)
   File "/usr/lib/python2.4/site-packages/sqlalchemy/engine/base.py", line 859, 
in __execute_raw
     self._cursor_execute(context.cursor, context.statement, 
context.parameters[0], context=context)
   File "/usr/lib/python2.4/site-packages/sqlalchemy/engine/base.py", line 875, 
in _cursor_execute
     raise exceptions.DBAPIError.instance(statement, parameters, e)
sqlalchemy.exceptions.OperationalError: (OperationalError) near ")": syntax 
error u'SELECT users.id AS users_id, users.name AS users_name, 
users.no_phone AS users_no_phone, users.no_mail AS users_no_mail \nFROM users 
\nWHERE users.name = ? AND () ORDER BY users.oid' ['John']

I'm not sure if this is considered as a bug but I noticed that this code does
not trigger an exception:
   or_conditions = []
   condition = or_(*or_conditions)
   query = session.query(User).filter(condition)

Thank you very much for SQLAlchemy :-)
fs

--~--~---------~--~----~------------~-------~--~----~
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