DB2 - Problem description
Problem IC89297 | Status: Closed |
QUERIES WITH A NOT EXISTS OR NOT IN PREDICATE, AND A PREDICATE REFERENCING GENERATED COLUMNS MAY CAUSE SQL0901N | |
product: | |
DB2 FOR LUW / DB2FORLUW / A10 - DB2 | |
Problem description: | |
A query may return SQL0901N "columnZval not found" with the following stack SQL0901N The SQL statement or command failed because of a database system error. (Reason "columnZval not found".) SQLSTATE=58004 Stack is: ossDumpStackTraceInternal ossDumpStackTraceV98 OSSTrapFile::dumpEx sqlo_trce sqloDumpDiagInfoHandler __pthread_mutex_cond_lock pthread_kill ossPthreadKill sqloDumpEDU sqldDumpContext sqlrr_dump_ffdc sqlzeDumpFFDC sqlzeSqlCode sqlnn_erds sqlng_process_hsjn_buffs sqlng_process_hsjn_op sqlngProcessLolepop sqlng_process_mate_op sqlngProcessLolepop sqlng_process_pipe_op sqlngProcessLolepop sqlng_process_mate_op sqlngProcessLolepop sqlng_build_thread sqlng_scan_derived_table sqlng_process_scan_op sqlngProcessLolepop sqlng_build_thread sqlng_process_eao_plan sqlng_process_scan_op sqlngProcessLolepop sqlng_build_thread sqlng_main sqlnn_cmpl sqlnn_cmpl sqlrr_cmpl sqlra_recreate_pkg sqlra_rebind_pkg sqlrr_rebind sqljs_ddm_rebind sqljsParseRdbAccessed sqljsParse sqljsSqlam sqljsDriveRequests sqljsDrdaAsInnerDriver sqljsDrdaAsDriver sqeAgent::RunEDU sqzEDUObj::EDUDriver sqlzRunEDU sqloEDUEntry or SQL0901N "Found zero CLOB.reset" with the following stack SQL0901N The SQL statement or command failed because of a database system error. (Reason "Found zero CLOB.reset".) SQLSTATE=58004 Stack is: sqlng_build_IU_CLOB_obj sqlng_process_sort_op sqlngProcessLolepop ......... This problem requires all the following conditions: 1. There is a NOT EXISTS or NOT IN predicate in the query. 2. There is a reference to a table with generated columns 3. There is a predicate referencing the column in the definitions of the generated columns in (2). To illustrate the conditions (2) and (3), here is an example, CREATE TABLE T( RECORD_DATE DATE, RECORD_YEAR INTEGER GENERATED ALWAYS AS (YEAR(RECORD_DATE)) ); The column RECORD_YEAR is the generated column in the condition (2). The query contains the predicate RECORD_DATE = '2012/12/01' The predicate references the column RECORD_DATE which is in the definition of the generated column RECORD_YEAR. This problem occurs in DB2 version 10.1 GA, Fix Pack 1 and Fix Pack 2. | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * All * **************************************************************** * PROBLEM DESCRIPTION: * * See Error Description * **************************************************************** * RECOMMENDATION: * * Upgrade to DB2 v10.1 Fix Pack 3 or higher * **************************************************************** | |
Local Fix: | |
Adding the redundant predicate from the generated column into the query. In the example given above, adding the predicate RECORD_YEAR = 2012 will avoid this problem. | |
available fix packs: | |
DB2 Version 10.1 Fix Pack 3 for Linux, UNIX, and Windows | |
Solution | |
Problem is first fixed in DB2 v10.1 Fix Pack 3 | |
Workaround | |
not known / see Local fix | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 27.12.2012 27.09.2013 27.09.2013 |
Problem solved at the following versions (IBM BugInfos) | |
Problem solved according to the fixlist(s) of the following version(s) | |
10.1.0.3 | |
10.1.0.3 |