home clear 64x64
en blue 200x116 de orange 200x116 info letter User
suche 36x36
Latest versionsfixlist
11.1.0.7 FixList
10.5.0.9 FixList
10.1.0.6 FixList
9.8.0.5 FixList
9.7.0.11 FixList
9.5.0.10 FixList
9.1.0.12 FixList
Have problems? - contact us.
Register for free anmeldung-x26
Contact form kontakt-x26

DB2 - Problem description

Problem IC62221 Status: Closed

CORRELATED HIERARCHICAL QUERY RETURNS INCORRECT RESULT IN DPF

product:
DB2 FOR LUW / DB2FORLUW / 950 - DB2
Problem description:
A correlated hierarchical query may return incorrect result in 
DPF in DB2. 
. 
Below is an example of a correlated hierarchical query: 
. 
SELECT CB.NAME, CB.CHAIN 
FROM MANAGERS M, 
TABLE(SELECT NAME, CONNECT_BY_ROOT NAME AS ROOT, 
SUBSTR(SYS_CONNECT_BY_PATH(NAME, ':'), 1, 25) AS CHAIN 
    FROM MY_EMP START WITH NAME = M.NAME 
   CONNECT BY PRIOR EMPID = MGRID 
  ORDER SIBLINGS BY NAME) CB 
WHERE M.DEPT IN ('HR', 'FINANCE');
Problem Summary:
**************************************************************** 
* USERS AFFECTED:                                              * 
* All DB2 Version 9.5 DPF systems on all Linux, Unix and       * 
* Windows platforms.                                           * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* A correlated hierarchical query can return incorrect result. * 
*                                                              * 
* .                                                            * 
* Below is an example of a correlated hierarchical query:      * 
*                                                              * 
* .                                                            * 
* SELECT CB.NAME, CB.CHAIN                                     * 
* FROM MANAGERS M,                                             * 
* TABLE(SELECT NAME, CONNECT_BY_ROOT NAME AS ROOT,             * 
* SUBSTR(SYS_CONNECT_BY_PATH(NAME, ':'), 1, 25) AS CHAIN       * 
*     FROM MY_EMP START WITH NAME = M.NAME                     * 
*    CONNECT BY PRIOR EMPID = MGRID                            * 
*   ORDER SIBLINGS BY NAME) CB                                 * 
* WHERE M.DEPT IN ('HR', 'FINANCE');                           * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* Please refer to Local Fix section.                           * 
****************************************************************
Local Fix:
If possible rewrite the query to an equivalent one without a 
correlated hierarchical query: 
SELECT CB.NAME, CB.CHAIN 
FROM MANAGERS M, 
TABLE(SELECT NAME, CONNECT_BY_ROOT NAME AS ROOT, 
SUBSTR(SYS_CONNECT_BY_PATH(NAME, ':'), 1, 25) AS CHAIN 
 
     FROM MY_EMP CONNECT BY PRIOR EMPID = MGRID 
    ORDER SIBLINGS BY NAME) CB 
WHERE M.DEPT IN ('HR', 'Finance') AND M.NAME=CB.ROOT; 
. 
However, consider the performance implications of the rewritten 
query. For example, the above hierarchical query no longer has 
a START WITH clause.  A START WITH clause on some other 
attribute is recommended to limit the number of rows produced 
bythe hierarchical query.
available fix packs:
DB2 Version 9.5 Fix Pack 5 for Linux, UNIX, and Windows
DB2 Version 9.5 Fix Pack 6a for Linux, UNIX, and Windows
DB2 Version 9.5 Fix Pack 7 for Linux, UNIX, and Windows
DB2 Version 9.5 Fix Pack 8 for Linux, UNIX, and Windows
DB2 Version 9.5 Fix Pack 9 for Linux, UNIX, and Windows
DB2 Version 9.5 Fix Pack 10 for Linux, UNIX, and Windows

Solution
The complex fix for this problem first appears in DB2 Version 
9.5 Fixpack 5 and all the subsequent fixpacks.
Workaround
not known / see Local fix
BUG-Tracking
forerunner  : APAR is sysrouted TO one or more of the following: IC62258 
follow-up : 
Timestamps
Date  - problem reported    :
Date  - problem closed      :
Date  - last modified       :
27.07.2009
16.02.2010
16.02.2010
Problem solved at the following versions (IBM BugInfos)
9.5.FP5
Problem solved according to the fixlist(s) of the following version(s)
9.5.0.5 FixList