We have our own Hibernate-like object-relational query generator, so the
queries can get complex.  We don't use views.

On Mon, Oct 27, 2008 at 11:23 AM, Thomas Mueller <
[EMAIL PROTECTED]> wrote:

>
> Hi,
>
> I found out what the problem is. Unfortunately it is not so simple to
> solve, the nested outer joins need to be converted to subqueries. I
> will add a feature request with high priority, and hopefully can soon
> (but I'm not sure when) implement the missing functionality.
>
> I'm wondering why the query is so complicated. Would it make sense to
> use views? Is this a generated query, if yes how was is generated?
>
> Regards,
> Thomas
>
>
> On Sun, Oct 26, 2008 at 6:09 PM, Thomas Mueller
> <[EMAIL PROTECTED]> wrote:
> > Hi,
> >
> > I think I understand the problem now a bit better. I have a simple
> > test case that also fails on H2, but works on PostgreSQL, MySQL and
> > Apache Derby:
> >
> > create table a(id int);
> > create table b(id int);
> > create table c(id int);
> > select * from a left outer join (b left outer join c on b.id = c.id)
> > on c.id = a.id;
> > drop table a;
> > drop table b;
> > drop table c;
> >
> > It looks like H2 is confused because the definition of c is nested.
> >
> > I don't know how to solve it yet however.
> >
> > Regards,
> > Thomas
> >
> >
> >
> > On Fri, Oct 24, 2008 at 7:25 AM, Wes Clark <[EMAIL PROTECTED]> wrote:
> >>
> >> Connect with jdbc:h2:file:/temp/h2problem/h2.1.0.79.ccc/ccc, or
> >> wherever you put the files, then run
> >> SELECT   qRoot.ID col0                     ,
> >>         qRoot.AssignmentStatus col1       ,
> >>         cc_claimcontact_1.ContactID col2  ,
> >>         cc_contact_5.LastName col3        ,
> >>         cc_contact_5.FirstName col4       ,
> >>         cc_contact_5.Suffix col5          ,
> >>         qRoot.AssignmentDate col6         ,
> >>         qRoot.AssignedUserID col7         ,
> >>         cc_contact_7.LastName col8        ,
> >>         cc_contact_7.FirstName col9       ,
> >>         cc_contact_7.Suffix col10         ,
> >>         cc_contact_7.Name col11           ,
> >>         cc_contact_7.Subtype col12        ,
> >>         qRoot.Escalated col13             ,
> >>         qRoot.Status col14                ,
> >>         cc_contact_8.LastName col15       ,
> >>         cc_contact_8.FirstName col16      ,
> >>         cc_contact_8.Suffix col17         ,
> >>         cc_contact_8.Name col18           ,
> >>         cc_contact_8.Subtype col19        ,
> >>         cc_contact_11.LastName col20      ,
> >>         cc_contact_11.FirstName col21     ,
> >>         cc_contact_11.Suffix col22        ,
> >>         qRoot.ExposureID col23            ,
> >>         cc_contact_13.LastName col24      ,
> >>         cc_contact_13.FirstName col25     ,
> >>         cc_contact_13.Suffix col26        ,
> >>         qRoot.AssignedQueueID col27       ,
> >>         qRoot.Mandatory col28             ,
> >>         qRoot.LastViewedDate col29        ,
> >>         qRoot.TargetDate col30            ,
> >>         cc_contact_15.LastName col31      ,
> >>         cc_contact_15.FirstName col32     ,
> >>         cc_contact_15.Suffix col33        ,
> >>         cc_contact_15.Name col34          ,
> >>         cc_contact_15.Subtype col35       ,
> >>         qRoot.ClaimID col36               ,
> >>         qRoot.Type col37                  ,
> >>         cc_contact_16.LastName col38      ,
> >>         cc_contact_16.FirstName col39     ,
> >>         cc_contact_16.Suffix col40        ,
> >>         cc_contact_16.Name col41          ,
> >>         cc_contact_16.Subtype col42       ,
> >>         cc_claim_6.JurisdictionState col43,
> >>         qRoot.UpdateUserID col44          ,
> >>         cc_claim_6.InsuredDenormID col45  ,
> >>         cc_contact_16.Subtype col46       ,
> >>         qRoot.Subject col47               ,
> >>         cc_claim_6.LOBCode col48          ,
> >>         cc_contact_18.LastName col49      ,
> >>         cc_contact_18.FirstName col50     ,
> >>         cc_contact_18.Suffix col51        ,
> >>         qRoot.CloseDate col52             ,
> >>         qRoot.Priority col53              ,
> >>         cc_contact_20.LastName col54      ,
> >>         cc_contact_20.FirstName col55     ,
> >>         cc_contact_20.Suffix col56        ,
> >>         qRoot.CreateUserID col57          ,
> >>         cc_user_10.ContactID col58        ,
> >>         cc_user_17.ContactID col59        ,
> >>         qRoot.UpdateTime col60            ,
> >>         cc_exposure_14.ClaimOrder col61   ,
> >>         cc_exposure_14.ExposureType col62 ,
> >>         cc_exposure_14.LossParty col63    ,
> >>         cc_claim_21.LossType col64        ,
> >>         qRoot.ExternallyOwned col65       ,
> >>         cc_user_4.ContactID col66         ,
> >>         cc_user_12.ContactID col67        ,
> >>         cc_claim_6.ClaimNumber col68
> >> FROM     cc_activity qRoot
> >>         LEFT OUTER JOIN (cc_claimcontact cc_claimcontact_1
> >>                  INNER JOIN (cc_contact cc_contact_8)
> >>                  ON
> >> cc_contact_8.ID=cc_claimcontact_1.ContactID )
> >>         ON       cc_claimcontact_1.ID    =qRoot.ClaimContactID
> >>              AND qRoot.ClaimID           = cc_claimcontact_1.ClaimID
> >>         LEFT OUTER JOIN (cc_relatedactivity cc_relatedactivity_2
> >>                  INNER JOIN (cc_activity cc_activity_3
> >>                           LEFT OUTER JOIN (cc_user cc_user_4
> >>                                    INNER JOIN (cc_contact
> >> cc_contact_5)
> >>                                    ON       cc_contact_5.ID
> >> =cc_user_4.ContactID
> >>                                         AND cc_contact_5.Subtype =
> >> 13 )
> >>                           ON       cc_user_4.ID
> >> =cc_activity_3.AssignedUserID )
> >>                  ON       cc_activity_3.ID
> >> =cc_relatedactivity_2.ForeignEntityID )
> >>         ON       qRoot.ID
> >> =cc_relatedactivity_2.OwnerID
> >>              AND qRoot.ClaimID                                   =
> >> cc_activity_3.ClaimID
> >>         INNER JOIN (cc_claim cc_claim_6
> >>                  LEFT OUTER JOIN (cc_contact cc_contact_7)
> >>                  ON       cc_contact_7.ID=cc_claim_6.ClaimantDenormID
> >>                  LEFT OUTER JOIN (cc_user cc_user_12
> >>                           INNER JOIN (cc_contact cc_contact_13)
> >>                           ON       cc_contact_13.ID
> >> =cc_user_12.ContactID
> >>                                AND cc_contact_13.Subtype = 13 )
> >>                  ON       cc_user_12.ID
> >> =cc_claim_6.AssignedUserID
> >>                  LEFT OUTER JOIN (cc_contact cc_contact_16)
> >>                  ON
> >> cc_contact_16.ID=cc_claim_6.InsuredDenormID )
> >>         ON       cc_claim_6.ID            =qRoot.ClaimID
> >>         LEFT OUTER JOIN (cc_matter cc_matter_9
> >>                  LEFT OUTER JOIN (cc_user cc_user_10
> >>                           INNER JOIN (cc_contact cc_contact_11)
> >>                           ON       cc_contact_11.ID
> >> =cc_user_10.ContactID
> >>                                AND cc_contact_11.Subtype = 13 )
> >>                  ON       cc_user_10.ID
> >> =cc_matter_9.AssignedUserID )
> >>         ON       cc_matter_9.ID
> >> =qRoot.MatterID
> >>              AND qRoot.ClaimID                           =
> >> cc_matter_9.ClaimID
> >>         LEFT OUTER JOIN (cc_exposure cc_exposure_14
> >>                  LEFT OUTER JOIN (cc_contact cc_contact_15)
> >>                  ON
> >> cc_contact_15.ID=cc_exposure_14.ClaimantDenormID
> >>                  LEFT OUTER JOIN (cc_user cc_user_17
> >>                           INNER JOIN (cc_contact cc_contact_18)
> >>                           ON       cc_contact_18.ID
> >> =cc_user_17.ContactID
> >>                                AND cc_contact_18.Subtype = 13 )
> >>                  ON       cc_user_17.ID
> >> =cc_exposure_14.AssignedUserID
> >>                  INNER JOIN (cc_claim cc_claim_21)
> >>                  ON       cc_claim_21.ID=cc_exposure_14.ClaimID )
> >>         ON       cc_exposure_14.ID      =qRoot.ExposureID
> >>              AND qRoot.ClaimID          = cc_exposure_14.ClaimID
> >>         LEFT OUTER JOIN (cc_user cc_user_19
> >>                  INNER JOIN (cc_contact cc_contact_20)
> >>                  ON       cc_contact_20.ID      =cc_user_19.ContactID
> >>                       AND cc_contact_20.Subtype = 13 )
> >>         ON       cc_user_19.ID                  =qRoot.AssignedUserID
> >> WHERE    qRoot.Type                              = 0
> >>     AND qRoot.Status                            = 0
> >>     AND qRoot.Retired                           = 0
> >>     AND
> >>         (
> >>                  (
> >>                           qRoot.AssignmentStatus = 1
> >>                       AND qRoot.AssignedUserID   = 1
> >>                  )
> >>         )
> >> ORDER BY col30 ASC,
> >>         col68 ASC,
> >>         col47 ASC,
> >>         col0 ASC;
> >> >>
> >>
> >
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/h2-database?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to