Re: [jira] Updated: (CAY-1371) EJBQL query doesn't preserve grouping by brackets

From: Andrey Razumovsky (razumovsky.andre..mail.com)
Date: Sun Jan 24 2010 - 06:11:22 EST

  • Next message: Andrus Adamchik: "Re: [jira] Updated: (CAY-1371) EJBQL query doesn't preserve grouping by brackets"

    On the last lines, I meant
    a or b and c -- will translate to --> a or b and c, while
    (a or b) and c -- will translate to --> (a or b) and c.

    So brackets only when needed

    2010/1/24 Andrey Razumovsky <razumovsky.andre..mail.com>

    > 4.6.6 Operators and Operator Precedence
    > The operators are listed below in order of *decreasing precedence*.
    > ...
    > • Logical operators:
    > NOT
    > AND
    > OR
    >
    > So e.g.
    > a or b and c
    > equals to
    > a or (b and c)
    >
    > Actually it's the same in any language, e.g. in Java.
    > currently our translator has no notion of brackets around statements at
    > all. We could insert them everywhere (like in Andreas's patch) - but it's
    > cleaner insert them only when needed. So
    > a or b and c -- will translate to --> a or (b and c), while
    > a and b and c -- will translate to --> a and b and c.
    >
    > And what about jjtGetParent()?
    >
    > 2010/1/24 Andrus Adamchik <andru..bjectstyle.org>
    >
    > As I said, I don't understand 'needBracket' logic.
    >>
    >> Per Andreas's example, the parser already does the correct grouping based
    >> on user specified parentheses. So all we need to do is to eagerly place "("
    >> and ")" around each conditional node. So Andreas's patch was doing the right
    >> thing (of course it also needed handling of AND and NOT).
    >>
    >> And that's what we are already doing for SelectQuery qualifiers. Although
    >> IIRC we have a "flattenning" algorithm to skip parentheses in uniformly
    >> joined 3+ term conditions.. Was that the intention of 'needBracket'?.
    >>
    >> Andrus
    >>
    >>
    >> On Jan 24, 2010, at 12:39 PM, Andrus Adamchik wrote:
    >>
    >> Where does the notion of priority come from? Logically (and from the
    >>> spec) OR/AND/NOT all have the same priority.
    >>>
    >>> Andrus
    >>>
    >>> On Jan 24, 2010, at 12:02 PM, Andrey Razumovsky (JIRA) wrote:
    >>>
    >>> Andrey Razumovsky updated CAY-1371:
    >>>> -----------------------------------
    >>>>
    >>>> Attachment: 1371.txt
    >>>>
    >>>> Patch that fixes the issue. Not committing it just yet, because I'm not
    >>>> sure about patterns of expression processing. Is it correct to call
    >>>> jjtGetParent() ? If so, why isn't there a method with more suitable name?
    >>>>
    >>>
    >>>
    >>>
    >>
    >
    >
    > --
    > Andrey
    >

    -- 
    Andrey
    



    This archive was generated by hypermail 2.0.0 : Sun Jan 24 2010 - 06:12:11 EST