why dont you just stick with None instead of "nn" ? then you just write:
if v is None: clause.append(self.c.field != v) else: clause.append(self.c.field == v) On Mar 19, 2009, at 11:43 AM, jo wrote: > > Well, MIchael, in my case a notnull() function could be very > interesting because > I'm using it in a function, and would like pass values as parameters > in such way: > > > def search( self, **kw ): > by_where_clause = [] > for k,v in kw.items(): > if k == 'myfield1': > if v == 'nn': # I use 'nn' to generate a NOT NULL > because we don't have a notnull() function > by_where_clause.append( self.c.field1 <> None) > else: > by_where_clause.append( self.c.field1 == v) > > elif k == 'myfield2': > if v == 'nn': # I use 'nn' to generate a NOT NULL > because we don't have a notnull() function > by_where_clause.append( self.c.field2 <> None) > else: > by_where_clause.append( self.c.field2 == v) > > elif k == 'myfield3': > if v == 'nn': # I use 'nn' to generate a NOT NULL > because we don't have a notnull() function > by_where_clause.append( self.c.field3 <> None) > else: > by_where_clause.append( self.c.field3 == v) > ... > > > > > Mytb.search(myfield=None) -- generates WHERE myfield IS NULL > Mytb.search(myfield=null()) -- generates WHERE myfield IS NULL > Mytb.search(myfield='nn') -- generates WHERE myfield IS NOT NULL > > > > if we have a notnull() function these thing could be easier: > > def search( self, **kw ): > by_where_clause = {} > for k,v in kw.items(): > by_where_clause[ k ] = v > > > Mytb.search(myfield=None) -- generates WHERE myfield IS NULL > Mytb.search(myfield=null()) -- generates WHERE myfield IS NULL > Mytb.search(myfield=notnull()) -- generates WHERE myfield IS NOT NULL > > Michael Bayer wrote: >> well usually null() and not_(null()) aren't needed as explicit >> constructs. comparisons like somecol == None and somecol != None >> will generate the appropriate NULL/NOT NULL expression. >> >> >> On Mar 19, 2009, at 4:48 AM, jo wrote: >> >> >>> Hi all, >>> >>> I would like to know if there's a notnull() function in sqlalchemy >>> similar to null() >>> to avoid things like not_(null()) ? >>> >>> thank you >>> >>> j >>> >>> >>> >> >> >>> >> > > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---