DB2 - Problembeschreibung
Problem IC80380 | Status: Geschlossen |
DB2 MAY ABEND WHILE COMPILING QUERY WITH ALWAYS FALSE PREDICATE AT LEFT OUTER JOIN ON CLAUSE | |
Produkt: | |
DB2 FOR LUW / DB2FORLUW / 970 - DB2 | |
Problembeschreibung: | |
DB2 may crash during query compilation when the following conditions are both met: 1. Query has left outer join "TABLE_A LEFT OUTER JOIN TABLE_B ON ..." 2. The ON clause includes always false predicate, e.g."'a' || col1 = 'b' || col2" 3. (Optional) The ON clause include OR predicates which can be factorized into common parts, eg. "(col1=col2 and col3 < 10) or (col1=col2 and col3 > 50)" A known call stack of this crash is: 0 sqlnr_matchmaker::nav_assign_max_levels 1 sqlnr_matchmaker::nav_assign_max_levels 2 sqlnr_matchmaker::nav_assign_max_levels 3 sqlnr_matchmaker::nav_assign_max_levels 4 sqlnr_matchmaker::nav_assign_max_levels 5 sqlnr_matchmaker::nav_assign_max_levels 6 sqlnr_matchmaker::nav_init 7 sqlnr_matchmaker::form_matches 8 sqlnr_form_common_subexprs 9 sqlnr_optprep 10 sqlnr_optprep_action 11 sqlnr_comp 12 sqlnr_comp 13 sqlnr_seq Another know call stack for this issue is the following: 0 sqlnq_qnc::is_RIDC_qnc 1 sqlnq_pid::UDT_colequiv_exp 2 sqlnr_build_equiv 3 sqlnr_coleq_class_action 4 sqlnr_comp 5 sqlnr_seq 6 sqlnr_rcc 7 sqlnr_endqtb_action 8 sqlnr_comp 9 sqlnr_seq 10 sqlnr_rcc 11 sqlnr_start_action 12 sqlnr_comp 13 sqlnr_seq 14 sqlnr_rcc 15 sqlnr_exe 16 sqlnn_cmpl | |
Problem-Zusammenfassung: | |
**************************************************************** * USERS AFFECTED: * * ALL * **************************************************************** * PROBLEM DESCRIPTION: * * DB2 may crash during query compilation when the following * * conditions are both met: * * * * 1. Query has left outer join "TABLE_A LEFT OUTER JOIN * * TABLE_B ON * * ..." * * 2. The ON clause includes always false predicate, e.g."'a' * * || * * col1 = 'b' || col2". * * * * A known call stack of this crash is: * * * * 0 sqlnr_matchmaker::nav_assign_max_levels * * 1 sqlnr_matchmaker::nav_assign_max_levels * * 2 sqlnr_matchmaker::nav_assign_max_levels * * 3 sqlnr_matchmaker::nav_assign_max_levels * * 4 sqlnr_matchmaker::nav_assign_max_levels * * 5 sqlnr_matchmaker::nav_assign_max_levels * * 6 sqlnr_matchmaker::nav_init * * 7 sqlnr_matchmaker::form_matches * * 8 sqlnr_form_common_subexprs * * 9 sqlnr_optprep * * 10 sqlnr_optprep_action * * 11 sqlnr_comp * * 12 sqlnr_comp * * 13 sqlnr_seq * **************************************************************** * RECOMMENDATION: * * Upgrade to DB2 Version V9.7 Fixpack 9 * **************************************************************** | |
Local-Fix: | |
1) Rewrite the always false predicate "'a' || col1 = 'b' || col2" to "1=0". 2) Rewrite the query to contain factorized predicate "col1=col2 and (col3 < 10 or col3 > 50)" | |
verfügbare FixPacks: | |
DB2 Version 9.7 Fix Pack 6 for Linux, UNIX, and Windows | |
Lösung | |
See Problem Description above. | |
Workaround | |
keiner bekannt / siehe Local-Fix | |
Bug-Verfolgung | |
Vorgänger : APAR is sysrouted TO one or more of the following: IC95529 IC95625 Nachfolger : | |
Weitere Daten | |
Datum - Problem gemeldet : Datum - Problem geschlossen : Datum - der letzten Änderung: | 12.12.2011 27.09.2013 27.09.2013 |
Problem behoben ab folgender Versionen (IBM BugInfos) | |
9.0., 9.7.FP6, 9.7.FP9 | |
Problem behoben lt. FixList in der Version | |
9.7.0.6 | |
9.7.0.9 | |
9.7.0.9 |