This answer is correct but to clarify to Narendran.... his query was not wrong. The problem is that the data was not inserted via web2py and therefore web2py may not be recognizing the column. Make sure the column is a 'char' and contains 'T' or 'F'. This was a design choice to because not all backends support boolean and because, even if they do, that is how they implement it internally (1 byte).
On Aug 18, 5:30 pm, Russell <[email protected]> wrote: > Use 'T' or 'F' rather than 'True' of 'False'. Web2py saves boolean > data as 'char' with length 1. > > On Aug 19, 1:49 am, Narendran <[email protected]> wrote: > > > Hi, > > I added a new boolean field to a table. And I manually updated the > > value of the field outside web2py. Now, I get zero rows for any > > condition I put on that field. Please see the following shell output > > for an idea: > > > In [7]: offers = db(db.OFFER.IS_PRICE_COMPARED == False).select() > > ...: > > > In [8]: len(offers) > > Out[8]: 0 #####<-- This is not expected. It should return all the > > rows > > > In [9]: offers = db(db.OFFER.IS_PRICE_COMPARED == True).select() > > ...: > > > In [10]: len(offers) > > Out[10]: 0 > > > In [11]: offers = db().select(db.OFFER.IS_PRICE_COMPARED) > > ....: > > > In [12]: len(offers) > > Out[12]: 668 > > > In [13]: offers[0] > > Out[13]: <Row {'IS_PRICE_COMPARED': False}> ######<-- Notice the value > > being False here > > > In [14]: offers[1] > > Out[14]: <Row {'IS_PRICE_COMPARED': False}>

