DB2 - Problem description
Problem IT06319 | Status: Closed |
SQL0901N error on sqlnq_qtbtbuerchild when "inconsistent QGM: no select having after group by" | |
product: | |
DB2 FOR LUW / DB2FORLUW / A50 - DB2 | |
Problem description: | |
The following error message can occur: SQL0901N The SQL statement or command failed because of a database system error. (Reason "sqlnq_qtbtbuerchild::delpr[ 10]:rc(0) ".) SQLSTATE=58004 The db2diag.log can show entry like: 2014-12-26-01.39.19.323076-300 I1449501E914 LEVEL: Severe PID : 5337 TID : 140449985586944 PROC : db2sysc 0 INSTANCE: db2inst1 NODE : 000 DB : DBTEST APPHDL : 0-180 APPID: *LOCAL.db2inst1.141226063999 AUTHID : db2inst1 HOSTNAME: op-dev-kvm31 EDUID : 416 EDUNAME: db2agent (DBTEST) 0 FUNCTION: DB2 UDB, relation data serv, sqlrr_dump_ffdc, probe:250 DATA #1 : SQLCA, PD_DB2_TYPE_SQLCA, 136 bytes sqlcaid : SQLCA sqlcabc: 136 sqlcode: -901 sqlerrml: 50 sqlerrmc: inconsistent QGM: no select having after group by sqlerrp : SQLNQ074 sqlerrd : (1) 0x00000000 (2) 0x00000000 (3) 0x00000000 (4) 0x00000000 (5) 0xFFFFFFBA (6) 0x00000000 sqlwarn : (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) Here are the steps to reproduce the issue: CREATE TABLE OP_PROCESSES ( PROCESS_ID number(31) NOT NULL, NAME VARCHAR2(256) NOT NULL, DESCRIPTION VARCHAR2(1028) NULL, PROCESS_TYPE_ID number(31) NOT NULL, IS_MULTI_INSTANCE number(31) NOT NULL, IS_FINISHED number(31) NOT NULL, CREATED_ON TIMESTAMP NOT NULL, CREATED_BY number(31) NULL, STATUS NUMBER(3) NOT NULL, LAST_MODIFIED_ON TIMESTAMP NOT NULL, PARENT_PROCESS_ID number(31) NULL, PERCENT_COMPLETED NUMBER(3) DEFAULT 0 NOT NULL, INTERNAL_REF_ID number(31) NULL ); ALTER TABLE OP_PROCESSES ADD CONSTRAINT C1_OP_PROCESSES CHECK ( IS_MULTI_INSTANCE IN (PROCESS_ID, 0) ); ALTER TABLE OP_PROCESSES ADD CONSTRAINT C2_OP_PROCESSES CHECK ( IS_FINISHED IN (PROCESS_ID, 0) ); ALTER TABLE OP_PROCESSES ADD CONSTRAINT C3_OP_PROCESSES CHECK ( PERCENT_COMPLETED IS NULL OR PERCENT_COMPLETED BETWEEN 0 and 100 ); And run this statement: [explain plan for] SELECT PROCESS_ID FROM OP_PROCESSES where PROCESS_TYPE_ID = ? and STATUS = ? and CREATED_ON = (select(case ? when 1 then MIN(OPP.CREATED_ON) when 2 then MAX(OPP.CREATED_ON) else MIN(OPP.CREATED_ON) end) from OP_PROCESSES OPP where OPP.PROCESS_TYPE_ID = ? and OPP.STATUS = ? ) and ROWNUM = 1 for update; | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * ALL * **************************************************************** * PROBLEM DESCRIPTION: * * See Error Description * **************************************************************** * RECOMMENDATION: * * Upgrade to DB2 Version 10.5 Fix Pack 7 * **************************************************************** | |
Local Fix: | |
Solution | |
First fixed in DB2 Version 10.5 Fix Pack 7 | |
Workaround | |
not known / see Local fix | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 05.01.2015 03.02.2016 03.02.2016 |
Problem solved at the following versions (IBM BugInfos) | |
Problem solved according to the fixlist(s) of the following version(s) | |
10.5.0.7 |