On Apr 7, 2011, at 1:25 AM, Philipp Rautenberg wrote:
The following code is DB specific:
import sqlalchemy
# ...
ergebnis = session.query(
my_object.attr1).filter(sa.and_(
my_object.attr2 != 'NaN')).all() # PostgreSQL
# my_object.attr2 != None)).all() # sQLite
With PostgreSQL it is 'NaN', with SQLite None (without single
quotes). Is there a SQLAlchemy-way to do this backend independant?
from sqlalchemy.ext.compiler import compiles
from sqlalchemy.sql.expression import ColumnElement
from sqlalchemy.types import NULLTYPE
class Nan(ColumnElement):
type = NULLTYPE
@compiles(Nan, postgresql)
def pg_nan(elem, compiler, **kw):
return NaN
@compiles(Nan, sqlite)
def sl_nan(elem, compiler, **kw):
return None
from sqlalchemy import select
from sqlalchemy.dialects import postgresql, sqlite
print select([one, two, three]).where(one !=
Nan()).compile(dialect=postgresql.dialect())
print select([one, two, three]).where(one !=
Nan()).compile(dialect=sqlite.dialect())
--
You received this message because you are subscribed to the Google Groups
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en.
--
You received this message because you are subscribed to the Google Groups
sqlalchemy group.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en.