Grokbase Groups Cayenne dev June 2007
FAQ
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) 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.

Search Discussions

  • Andrus Adamchik at Jun 12, 2007 at 4:49 pm
    Sorry, I probably misunderstood your previous explanation:

    "Split expressions are going to be critical to implementing
    useful outer joins."

    The changes I've made to CAY-514 are undone. What I was trying to do
    (but probably did it wrong) is to categorize Jira's according to the
    main concepts we are implementing: split expressions and outer joins.
    Anyways, I'll leave it as it is :-)

    Andrus

    On Jun 12, 2007, at 7:17 PM, Mike Kienenberger wrote:
    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) 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.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupdev @
categoriescayenne
postedJun 12, '07 at 4:18p
activeJun 12, '07 at 4:49p
posts2
users2
websitecayenne.apache.org

People

Translate

site design / logo © 2021 Grokbase