[sqlalchemy] [None vs. NaN] Is there a Database independent way with SQLAlchemy to query filtered by “None”/“NaN”?

2011-04-07 Thread Philipp Rautenberg
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?

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



Re: [sqlalchemy] [None vs. NaN] Is there a Database independent way with SQLAlchemy to query filtered by “None”/“NaN”?

2011-04-07 Thread Michael Bayer

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.