Sorry- I missed that altogether.

On Sat, Aug 11, 2012 at 11:25 PM, Anthony <abasta...@gmail.com> wrote:

> http://web2py.com/books/default/chapter/29/6#Logical-operators
>
> Specifically:
>
> Due to Python restrictions in overloading "and" and "or" operators, these
> cannot be used in forming queries. The binary operators "&" and "|" must
> be used instead. Note that these operators (unlike "and" and "or") have
> higher precedence than comparison operators, so the "extra" parentheses in
> the above examples are mandatory.
>
>
> Did you have something else in mind?
>
> Anthony
>
> On Saturday, August 11, 2012 8:57:38 PM UTC-4, Yarin wrote:
>>
>> Massimo, could we highlight this issue in the documentation somewhere,
>> and/or show the right way to do a compound query. There's no documentation
>> on this stuff, it's very easy to accidentally do because won't throw a
>> syntax error, and we almost just shipped some production code with 'and'
>> instead of &
>>
>> On Thursday, June 18, 2009 11:43:37 AM UTC-4, mdipierro wrote:
>>>
>>> follow up
>>>
>>> query1 or query2 IS INVALID SYNTAX
>>> query1|query2 IS CORRECT
>>>
>>> "or" cannot be overwritten in Python so it is still valid but it does
>>> not do what you want.
>>> query1 or query2 ALWAYS returns just query1.
>>>
>>> Massimo
>>>
>>> On Jun 18, 10:43 am, mdipierro <mdipie...@cs.depaul.edu> wrote:
>>> > query1 and query2 IS INVALID SYNTAX
>>> > query1&query2 IS CORRECT
>>> >
>>> > "and" cannot be overwritten in Python so it is still valid but it does
>>> > not do what you want.
>>> > query1 and query2 ALWAYS returns just query2.
>>> >
>>> > Massimo
>>> >
>>> > On Jun 18, 8:58 am, weheh <richard_gor...@verizon.net> wrote:
>>> >
>>> > > I'm using web2py 1.64.1. I'm seeing a strange behavior in my query.
>>> > > I'm trying to isolate a record using a compound "and" clause ...
>>> very
>>> > > simple stuff:
>>> >
>>> > >      records = db( (db.x.a == i) and (db.x.b==0) and (db.x.c==None)
>>> > > and ...).select(db.x.ALL)
>>> >
>>> > > But, it returns a whole bunch of records that have nothing to do
>>> with
>>> > > my match criteria.
>>> >
>>> > > I redid the search with an "or" clause instead, (don't ask me why I
>>> > > did this 'cause it makes no sense to me):
>>> >
>>> > >     records = db( (db.x.a == i) or (db.x.b==0) or (db.x.c==None)
>>> > > or ...).select(db.x.ALL)
>>> >
>>> > > and believe it or not, this works fine. I think I'm going nuts! Why
>>> > > should this work?
>>
>>  --
>
>
>
>

-- 



Reply via email to