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 IC75014 Status: Geschlossen

DB2 MAY NOT APPLY LOCAL PREDICATE WITH BIGINT, INTEGER, SMALLINT IN AN
OPTIMAL WAY MAY RETURN INCORRECT RESULT ON LENGTH FUNCTION

Produkt:
DB2 FOR LUW / DB2FORLUW / 970 - DB2
Problembeschreibung:
DB2 may not apply local predicates with BIGINT, INTEGER, 
SMALLINT on varying-length char strings in an optimal way or 
may return incorrect results with LENGTH function on 
varying-length char strings 
 
There are two problems: 
 
(1) DB2 may not push down local predicates containing an 
expression of the form <function>(<expr>) where 
 
<function> is BIGINT, INTEGER or SMALLINT and 
<expr> is an expression of the varying-length character strings 
(such as VARCHAR, VARGRAPHIC, CLOB, etc.) 
 
to lower operations. This may result in performance degradation 
when upgrading DB2 from earlier releases to Version 9.7. 
 
(2) DB2 may return incorrect results when running the SQL 
statement containing predicates containing an expression of the 
form 
LENGTH(<expr>) where 
 
<expr> is an expression of the varying-length character strings 
of type VARCHAR, VARGRAPHIC, CLOB, NCLOB. 
 
and the predicates are applied above Group By operation. 
 
For example: 
 
db2 => create table t1(c1 varchar(10), c2 int, c3 int); 
db2 => insert into t1 values ('C1', 1, -1), ('C1 ', 2, -2), ('C1 
', -1, 1); 
db2 => select * from t1; 
 
C1         C2          C3 
---------- ----------- ----------- 
C1                   1          -1 
C1                   2          -2 
C1                  -1           1 
 
  3 record(s) selected. 
 
-- Correct result 
db2 => select c1,sum(c2),sum(c3) from t1 group by c1 having 
length(c1) = 2; 
 
C1         2           3 
---------- ----------- ----------- 
C1                   2          -2 
 
  1 record(s) selected. 
 
-- Incorrect result because LENGTH(c1) is applied before Group 
By 
db2 => select * from (select c1,sum(c2),sum(c3) from t1 group by 
c1 ) as q where length(c1)=2; 
 
C1         2           3 
---------- ----------- ----------- 
C1                   1          -1 
 
  1 record(s) selected. 
 
 
This problem occurs in DB2 Version 9.7 GA and Fix Packs 1,2, and 
3
Problem-Zusammenfassung:
Users Effected: 
All user using V9.7 
 
Problem Description: 
DB2 may not apply local predicates with BIGINT, INTEGER, 
SMALLINT on varying-length char strings in an optimal way or 
may return incorrect results with LENGTH function on 
varying-length char strings 
 
There are two problems: 
 
(1) DB2 may not push down local predicates containing an 
expression of the form <function>(<expr>) where 
 
<function> is BIGINT, INTEGER or SMALLINT and 
<expr> is an expression of the varying-length character strings 
(such as VARCHAR, VARGRAPHIC, CLOB, etc.) 
 
to lower operations. This may result in performance degradation 
when upgrading DB2 from earlier releases to Version 9.7. 
 
(2) DB2 may return incorrect results when running the SQL 
statement containing predicates containing an expression of the 
form 
LENGTH(<expr>) where 
 
<expr> is an expression of the varying-length character strings 
of type VARCHAR, VARGRAPHIC, CLOB, NCLOB. 
 
and the predicates are applied above Group By operation. 
 
For example: 
 
db2 => create table t1(c1 varchar(10), c2 int, c3 int); 
db2 => insert into t1 values ('C1', 1, -1), ('C1 ', 2, -2), ('C1 
', -1, 1); 
db2 => select * from t1; 
 
C1         C2          C3 
---------- ----------- ----------- 
C1                   1          -1 
C1                   2          -2 
C1                  -1           1 
 
  3 record(s) selected. 
 
-- Correct result 
db2 => select c1,sum(c2),sum(c3) from t1 group by c1 having 
length(c1) = 2; 
 
C1         2           3 
---------- ----------- ----------- 
C1                   2          -2 
 
  1 record(s) selected. 
 
-- Incorrect result because LENGTH(c1) is applied before Group 
By 
db2 => select * from (select c1,sum(c2),sum(c3) from t1 group by 
c1 ) as q where length(c1)=2; 
 
C1         2           3 
---------- ----------- ----------- 
C1                   1          -1 
 
  1 record(s) selected. 
 
 
This problem occurs in DB2 Version 9.7 GA and Fix Packs 1,2, and 
3 
 
Problem Summary: 
DB2 MAY NOT APPLY LOCAL PREDICATE WITH BIGINT, INTEGER, SMALLINT 
IN AN OPTIMAL WAY MAY RETURN INCORRECT RESULT ON LENGTH FUNCTION
Local-Fix:
Upgraded to DB2 Version 9.7 Fix Pack 4
verfügbare FixPacks:
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 6 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 7 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 9a for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 10 for Linux, UNIX, and Windows

Lösung
defect  wsdbu00823817 
CSD     First fixed in DB2 UDB Version 9.7, FixPak 4 
module  engn_sqnr
Workaround
Upgrade to DB2 Version 9.7, FixPak 4
Weitere Daten
Datum - Problem gemeldet    :
Datum - Problem geschlossen :
Datum - der letzten Änderung:
15.03.2011
02.05.2011
02.05.2011
Problem behoben ab folgender Versionen (IBM BugInfos)
9.7.
Problem behoben lt. FixList in der Version
9.7.0.4 FixList