[Sqlalchemy-tickets] [sqlalchemy] #2823: Wrong sqlalchemy.sql.expression.false() / true() compilati
Brought to you by:
zzzeek
|
From: sqlalchemy <mi...@zz...> - 2013-09-15 20:04:18
|
#2823: Wrong sqlalchemy.sql.expression.false() / true() compilation when using SQL
Server dialect
----------------------+-----------------------------------------
Reporter: leavittx | Owner:
Type: defect | Status: new
Priority: high | Milestone:
Component: mssql | Severity: no triage selected yet
Keywords: | Progress State: awaiting triage
----------------------+-----------------------------------------
Engine instance was created via
{{{
#!div style="font-size: 80%"
Code highlighting:
{{{#!python
engine =
create_engine('mssql+pyodbc://user:pa...@se.../db?driver=SQL Server',
echo=True)
}}}
}}}
When I do for example
{{{
#!div style="font-size: 80%"
Code highlighting:
{{{#!python
session.query(User).filter(or_(expression.false(),
expression.true())).all()
}}}
}}}
Output:
{{{
2013-09-15 23:40:11,761 INFO sqlalchemy.engine.base.Engine SELECT
[user].id AS user_id, [user].name AS user_name
FROM [user]
WHERE 0 OR 1
2013-09-15 23:40:11,761 INFO sqlalchemy.engine.base.Engine ()
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "C:\Python33\lib\site-packages\sqlalchemy-0.9.0dev-py3.3-win-
amd64.egg\sqlalchemy\orm\query.py", line 2249, in all
return list(self)
File "C:\Python33\lib\site-packages\sqlalchemy-0.9.0dev-py3.3-win-
amd64.egg\sqlalchemy\orm\query.py", line 2361, in __iter__
return self._execute_and_instances(context)
File "C:\Python33\lib\site-packages\sqlalchemy-0.9.0dev-py3.3-win-
amd64.egg\sqlalchemy\orm\query.py", line 2376, in _execute_and_instances
result = conn.execute(querycontext.statement, self._params)
File "C:\Python33\lib\site-packages\sqlalchemy-0.9.0dev-py3.3-win-
amd64.egg\sqlalchemy\engine\base.py", line 661, in execute
params)
File "C:\Python33\lib\site-packages\sqlalchemy-0.9.0dev-py3.3-win-
amd64.egg\sqlalchemy\engine\base.py", line 762, in _execute_clauseelement
compiled_sql, distilled_params
File "C:\Python33\lib\site-packages\sqlalchemy-0.9.0dev-py3.3-win-
amd64.egg\sqlalchemy\engine\base.py", line 875, in _execute_context
context)
File "C:\Python33\lib\site-packages\sqlalchemy-0.9.0dev-py3.3-win-
amd64.egg\sqlalchemy\engine\base.py", line 1019, in
_handle_dbapi_exception
exc_info
File "C:\Python33\lib\site-packages\sqlalchemy-0.9.0dev-py3.3-win-
amd64.egg\sqlalchemy\util\compat.py", line 197, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=exc_value)
File "C:\Python33\lib\site-packages\sqlalchemy-0.9.0dev-py3.3-win-
amd64.egg\sqlalchemy\util\compat.py", line 190, in reraise
raise value.with_traceback(tb)
File "C:\Python33\lib\site-packages\sqlalchemy-0.9.0dev-py3.3-win-
amd64.egg\sqlalchemy\engine\base.py", line 868, in _execute_context
context)
File "C:\Python33\lib\site-packages\sqlalchemy-0.9.0dev-py3.3-win-
amd64.egg\sqlalchemy\engine\default.py", line 372, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (ProgrammingError) ('42000', "[42000]
[Microsoft][ODBC SQL Server Driver][SQL Server]An expression of non-
boolean type specified in a context where a condition is expected, near
'OR'. (4145) (SQLExecDirectW)") 'SELECT [user].id AS user_id, [user].name
AS user_name \nFROM [user] \nWHERE 0 OR 1' ()
}}}
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2823>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|