Re: [JIRA] Updated: (CAY-514) Split Expressions [implement a "MATCH ALL VALUES" expression]

From: Mike Kienenberger (mkienen..mail.com)
Date: Tue Jun 12 2007 - 12:17:39 EDT

  • Next message: Mike Kienenberger: "Re: control select joins with EJBQL"

    Andrus,

    I don't think this is quite the same thing.

    Split expressions are probably part of the solution to this problem,
    but not the entire solution. Nor did this feature have to be
    implemented in order to have useful outer joins.

    I'd recommend reverting your change to this Jira issue and opening a
    new issue just on outer joins.

    On 6/12/07, Andrus Adamchik (JIRA) <de..ayenne.apache.org> wrote:
    >
    > [ https://issues.apache.org/cayenne/browse/CAY-514?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
    >
    > Andrus Adamchik updated CAY-514:
    > --------------------------------
    >
    > Summary: Split Expressions [implement a "MATCH ALL VALUES" expression] (was: implement a "MATCH ALL VALUES" expression)
    >
    > editing the name
    >
    > > Split Expressions [implement a "MATCH ALL VALUES" expression]
    > > -------------------------------------------------------------
    > >
    > > Key: CAY-514
    > > URL: https://issues.apache.org/cayenne/browse/CAY-514
    > > Project: Cayenne
    > > Issue Type: New Feature
    > > Components: Cayenne Core Library
    > > Affects Versions: 3.0
    > > Reporter: Mike Kienenberger
    > > Assignee: Mike Kienenberger
    > > Fix For: 3.0
    > >
    > >
    > > Implement a "Match all values" expression behavior (like previously discussed as hasAllOfExp or MatchAllValuesExpression on the mailing list in the past).
    > > For example,
    > > letters
    > > a
    > > b
    > > c
    > > digits
    > > 1
    > > 2
    > > 3
    > > letters__digits
    > > a-1
    > > a-2
    > > a-3
    > > b-2
    > > c-3
    > > c-2
    > > find all 1s: a
    > > find all 2s: a, b, c
    > > find all 3s: a, c
    > > "Match all values" on (1, 2) would generate sql like the following and
    > > return "a"
    > > select l1.* from letters l1, letters_digits ld1, digits d1, letters
    > > l2, letters_digits ld1, digits d2 where
    > > d1.value = '1' and ld1.digit_id = d1.digit_id and ld1.letter_id = l1.letter_id
    > > and
    > > d2.value = '2' and ld2.digit_id = d2.digit_id and ld2.letter_id = l2.letter_id
    > > The current limitation is due to the fact that Cayenne qualifier translator removes "duplicate" joins.
    > > You'd have to introduce the "split" expression as discussed in the threads below. Maybe use a pipe symbol at a place in the path where a split should start, like "|r1" or "r1.r2.|r3"?? Second thing to change is QueryAsembler.dbRelationshipAdded(..) method that removes "duplicates" to support the splits.
    > > There are a few more things to take care of to fully support splits, so this is certainly not a trivial change.
    > > Relevent threads discussing the idea and issues in more details:
    > > http://www.objectstyle.org/cayenne/lists/cayenne-devel/2003/09/0096.html
    > > http://www.objectstyle.org/cayenne/lists/cayenne-devel/2003/10/0005.html
    >
    > --
    > This message is automatically generated by JIRA.
    > -
    > You can reply to this email to add a comment to the issue online.
    >
    >



    This archive was generated by hypermail 2.0.0 : Tue Jun 12 2007 - 12:18:02 EDT