[jira] Commented: (CAY-560) Add support for outer joins

From: Andrus Adamchik (JIRA) ("Andrus)
Date: Wed Apr 30 2008 - 02:56:52 EDT

  • Next message: Andrus Adamchik: "Java 6 for Mac"

        [ https://issues.apache.org/cayenne/browse/CAY-560?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12833#action_12833 ]

    Andrus Adamchik commented on CAY-560:
    -------------------------------------

    > but I think the two were closely related for any practical outer join query.

    Logically splits and outer joins are not related. The importance of splits depends on a use case (in fact the use case that motivated me to expedite this feature didn't rely on splits). But I agree that splits are very important and this is a natural next step for us to do.

    > Maybe I did use | for splits, and + for outer joins.

    Cool. I think that's what it is.

    > Add support for outer joins
    > ---------------------------
    >
    > Key: CAY-560
    > URL: https://issues.apache.org/cayenne/browse/CAY-560
    > Project: Cayenne
    > Issue Type: New Feature
    > Components: Cayenne Core Library
    > Reporter: Øyvind Harboe
    > Assignee: Mike Kienenberger
    > Fix For: 1.2 [STABLE]
    >
    > Attachments: 1.2-outerjoin-null-2006-09-05-01.txt, cayenne-2.0-patch-outerjoin-null-audit-customexp.txt
    >
    >
    > Currently outer joins are not supported.
    > See thread:
    > http://objectstyle.org/cayenne/lists/cayenne-user/2006/05/0165.html
    > // This Java code will result in the SQL query immediately below...
    > SelectQuery query1=new SelectQuery(ElcRole.class);
    > query1.setQualifier(ExpressionFactory.matchExp(ElcRole.ELC_ROLEMEMBER_ARRAY_PROPERTY + "." + ElcRolemember.TO_SYS_USER_PROPERTY, getSysUser()).
    > orExp(ExpressionFactory.matchExp(ElcRole.TO_SYS_USER_PROPERTY, getSysUser())));
    > List l=context.performQuery(query1);
    > Generates =>
    >
    > SELECT DISTINCT t0.ELCROLE_NAME, t0.ELCROLE_ID, t0.SYSUSER_ID
    > FROM ELC_ROLE t0 LEFT OUTER JOIN
    > ELC_ROLEMEMBER t1 ON t0.ELCROLE_ID = t1.ELCROLE_ID
    > WHERE (t1.SYSUSER_ID = 'BD93F348-8C02-4742-BA97-2456E5CD3881') OR
    > (t0.SYSUSER_ID = 'BD93F348-8C02-4742-BA97-2456E5CD3881')
    > But should(?) have generated =>
    > SELECT DISTINCT t0.ELCROLE_NAME, t0.ELCROLE_ID, t0.SYSUSER_ID
    > FROM ELC_ROLE t0 LEFT OUTER JOIN
    > ELC_ROLEMEMBER t1 ON t0.ELCROLE_ID = t1.ELCROLE_ID
    > WHERE (t1.SYSUSER_ID = 'BD93F348-8C02-4742-BA97-2456E5CD3881') OR
    > (t0.SYSUSER_ID = 'BD93F348-8C02-4742-BA97-2456E5CD3881')
    >

    -- 
    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 : Wed Apr 30 2008 - 03:00:50 EDT