[hibernate-issues] [Hibernate-JIRA] Updated: (HHH-3684) Sybase - ANSI joins fail if there are 3 or more joins and at least one join involves a union

Gail Badner (JIRA) noreply at atlassian.com
Tue Jan 6 04:49:38 EST 2009


     [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-3684?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gail Badner updated HHH-3684:
-----------------------------

    Description: 
Two unit tests fail:
  UnionSubclassTest.testUnionSubclassFetchMode()..
  UnionSubclassPropertyRefTest.testOneToOnePropertyRef() 

This may be due to a bug in Sybase. A similar problem is discussed here:
http://www.forumtopics.com/busobj/viewtopic.php?p=442226&sid=40bd96248c52fa6193686f4288f19a4c

For UnionSubclassTest.testUnionSubclassFetchMode(), changing:

select ...
from ( select ... from humans 
            union 
         select ... from employees ) this_ 
inner join locations location2_ 
  on this_.location=location2_.id 
left outer join ( select ... from employees 
                         union 
                      select ... from humans 
                         union 
                      select ... from aliens ) beings3_ 
  on location2_.id=beings3_.location
:
to:

select ...
from ( select ... from humans 
            union 
         select ... from employees ) this_ 
inner join (locations location2_ 
left outer join ( select ... from employees 
                         union 
                      select ... from humans 
                         union 
                      select ... from aliens ) beings3_ 
  on location2_.id=beings3_.location)
: on this_.location=location2_.id 

fixes the problem.

This change is similar to what is documented for a "right-nested outer join" at  http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32300.1502/html/sqlug/sqlug170.htm.

  was:
This is reproduced by UnionSubclassTest.testUnionSubclassFetchMode().. 

This may be due to a bug in Sybase. A similar problem is discussed here:
http://www.forumtopics.com/busobj/viewtopic.php?p=442226&sid=40bd96248c52fa6193686f4288f19a4c

For the unit test mentioned above, changing:

select ...
from ( select ... from humans 
            union 
         select ... from employees ) this_ 
inner join locations location2_ 
  on this_.location=location2_.id 
left outer join ( select ... from employees 
                         union 
                      select ... from humans 
                         union 
                      select ... from aliens ) beings3_ 
  on location2_.id=beings3_.location
:
to:

select ...
from ( select ... from humans 
            union 
         select ... from employees ) this_ 
inner join (locations location2_ 
left outer join ( select ... from employees 
                         union 
                      select ... from humans 
                         union 
                      select ... from aliens ) beings3_ 
  on location2_.id=beings3_.location)
: on this_.location=location2_.id 

fixes the problem.

This changer is similar to what is documented for a "right-nested outer join" at  http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32300.1502/html/sqlug/sqlug170.htm.

        Summary: Sybase - ANSI joins fail if there are 3 or more joins and at least one join involves a union  (was: Sybase - Setting FetchMode.JOIN fails if there are 3 or more joins and at least one join involves a union)

> Sybase - ANSI joins fail if there are 3 or more joins and at least one join involves a union
> --------------------------------------------------------------------------------------------
>
>                 Key: HHH-3684
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-3684
>             Project: Hibernate Core
>          Issue Type: Bug
>          Components: core
>            Reporter: Gail Badner
>            Assignee: Gail Badner
>
> Two unit tests fail:
>   UnionSubclassTest.testUnionSubclassFetchMode()..
>   UnionSubclassPropertyRefTest.testOneToOnePropertyRef() 
> This may be due to a bug in Sybase. A similar problem is discussed here:
> http://www.forumtopics.com/busobj/viewtopic.php?p=442226&sid=40bd96248c52fa6193686f4288f19a4c
> For UnionSubclassTest.testUnionSubclassFetchMode(), changing:
> select ...
> from ( select ... from humans 
>             union 
>          select ... from employees ) this_ 
> inner join locations location2_ 
>   on this_.location=location2_.id 
> left outer join ( select ... from employees 
>                          union 
>                       select ... from humans 
>                          union 
>                       select ... from aliens ) beings3_ 
>   on location2_.id=beings3_.location
> :
> to:
> select ...
> from ( select ... from humans 
>             union 
>          select ... from employees ) this_ 
> inner join (locations location2_ 
> left outer join ( select ... from employees 
>                          union 
>                       select ... from humans 
>                          union 
>                       select ... from aliens ) beings3_ 
>   on location2_.id=beings3_.location)
> : on this_.location=location2_.id 
> fixes the problem.
> This change is similar to what is documented for a "right-nested outer join" at  http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32300.1502/html/sqlug/sqlug170.htm.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the hibernate-issues mailing list