home clear 64x64
en blue 200x116 de orange 200x116 info letter User
suche 36x36
Neueste VersionenFixList
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
Haben Sie Probleme? - Kontaktieren Sie uns.
Kostenlos registrieren anmeldung-x26
Kontaktformular kontakt-x26

DB2 - Problembeschreibung

Problem IC63415 Status: Geschlossen

OUTER JOIN OPERATION MAY RETURN INCORRECT RESULTS WITH A PREDICATE
WITH A SUBQUERY RETURNING NOT MORE THAN ONE ROW

Produkt:
DB2 FOR LUW / DB2FORLUW / 970 - DB2
Problembeschreibung:
The problem occurs if all and each of the following conditions 
are met: 
1. There is an OUTER JOIN operation. 
2. There is a WHERE-clause applied to the OUTER JOIN. 
3. The WHERE-clause contains a scalar subquery (subquery that is 
required to return not more than one row). 
4. The subquery has an index or operation which will return 
either one or zero row. 
5. The subquery is part of an OR operator. 
6. The actual data results in the subquery returning zero row. 
7. The other part of the OR operator returns not more than one 
row. 
 
This problem was first introduced in the following DB2 releases: 
 
Version 9.1 Fix Pack 7 
Version 9.5 Fix Pack 4 
Version 9.7 GA 
 
Example: 
create table T2(c1 int not null primary key, c2 int) 
create table T3(c1 int not null primary key) 
insert into T2 values(1,1) 
insert into T3 values(9) 
 
select t2.c1 from t2 left join t3 on t2.c2=t3.c1 where t2.c1 = 1 
or t2.c1 = (select c1 from t2 where c1=11) 
 
The correct result should return one row. 
 
C1 
----------- 
          1 
 
  1 record(s) selected. 
 
The SQL statement meets all the conditions described above. It 
has an OUTER JOIN (1) and a WHERE-clause (2). The WHERE-clause 
contains a scalar subquery (3) which is a part of an OR operator 
(5). The presence of the PRIMARY key (or a unique index) on 
column T2.C1 ensures that the subquery will either return one 
row or zero row (4). 
 
In addition, the actual data set results in the subquery does 
not return any row (6) and the other part of the OR operator, 
t2.c1=1, returns one row (7).
Problem-Zusammenfassung:
**************************************************************** 
* USERS AFFECTED:                                              * 
* Incorrect rows returned.                                     * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* See problem description.                                     * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* Upgrade to DB2 UDB version 9.7 Fix Pack 1.                   * 
****************************************************************
Local-Fix:
Upgrade the DB2 Version to one of the following DB2 releases: 
Version 9.1 Fix Pack 9 
Version 9.5 Fix Pack 5 
Version 9.7 Fix Pack 1
verfügbare FixPacks:
DB2 Version 9.7 Fix Pack 1 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 2 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 3 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 3a for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 4 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 5 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 7 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9a for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 6 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 8 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 10 for Linux, UNIX, and Windows

Lösung
Problem was first fixed in Version 9.7 Fix Pack 1
Workaround
keiner bekannt / siehe Local-Fix
Weitere Daten
Datum - Problem gemeldet    :
Datum - Problem geschlossen :
Datum - der letzten Änderung:
25.09.2009
02.12.2009
02.12.2009
Problem behoben ab folgender Versionen (IBM BugInfos)
9.7.FP1
Problem behoben lt. FixList in der Version
9.7.0.1 FixList