A fix is available
APAR status
Closed as program error.
Error description
SQLCODE -545 (THE REQUESTED OPERATION IS NOT ALLOWED BECAUSE A ROW DOES NOT SATISFY THE CHECK CONSTRAINT) occurs when using prefix.DSN_VIRTUAL_INDEXES to create virtual indexes on an empty table. KEYWORDS: DB2MIGV9/K DB2MIGV8/K DB2INCORR/K
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: All users of the DSN_VIRTUAL_INDEXES explain * * table in DB2 UDB for z/OS Version 8 and DB2 * * 9.1 for z/OS are affected by this change. * **************************************************************** * PROBLEM DESCRIPTION: DB2 returns SQLCODE -545 (THE REQUESTED * * OPERATION IS NOT ALLOWED BECAUSE A ROW * * DOES NOT SATISFY THE CHECK CONSTRAINT) * * when creating a virtual index on an * * empty table. * **************************************************************** * RECOMMENDATION: * **************************************************************** Virtual indexes allow optimization tools to test the effect of creating and dropping indexes on the performance of particular queries. Virtual indexes use an EXPLAIN table called DSN_VIRTUAL_INDEXES. Prior to DB2 V8 new-function mode, this table is named DSN_VIRTUAL_INDEX. The current implementation of virtual indexes does not support index evaluation of empty tables because the following columns in DSN_VIRTUAL_INDEXES are defined with CHECK constraints that do not allow a value of zero: NLEAF NLEVELS FIRSTKEYCARDF FULLKEYCARDF An empty table may have a value of zero for some or all of these columns. As a result, the create request for the virtual index fails with SQLCODE -545. In addition, the CLUSTERRATIOF column is currently defined as NOT NULL WITH DEFAULT instead of NOT NULL WITH DEFAULT -1.
Problem conclusion
This change relaxes the constraints to allow a virtual index to be used on an empty table. It also modifies the CLUSTERRATIOF column as follows: - The default setting is now NOT NULL WITH DEFAULT -1 - The CHECK constraint now specifies CHECK("CLUSTERRATIOF" >= -1) The following DB2 parts are affected: - DSNTXTB: REXX exec for migrating an EBCDIC explain table to Unicode - DSNTESC : DDL for creating sample explain tables - DSNTIJOS: Job for installing the DB2 Optimization Service Center If you maintain private copies of these members, you need to update them after applying this PTF. You also need to update any existing DSN_VIRTUAL_INDEXES tables. See the ++HOLD actions of this APAR for guidance. Additional keywords: SQLCODE545 DSN_VIRTUAL_INDEX DSN_VIRTUAL_INDEXES
Temporary fix
Comments
APAR Information
APAR number
PM14223
Reported component name
DB2 OS/390 & Z/
Reported component ID
5740XYR00
Reported release
810
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2010-05-11
Closed date
2010-09-27
Last modified date
2012-02-17
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UK60838 UK60839
Modules/Macros
DSNTESC DSNTIJOS DSNTXTB
Fix information
Fixed component name
DB2 OS/390 & Z/
Fixed component ID
5740XYR00
Applicable component levels
Fix is available
Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.
[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEPEK","label":"Db2 for z\/OS"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8.1","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8.1","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
17 February 2012