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 |
|