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