Product Documentation

V9 Update Guide

Previous Topic

Next Topic

Extended Version of Compact Function Added

The extended header version of the compact function has been added as CMPIFILX8()

The existing CMPIFILX() API call does not facilitate an array of XCREblks to be passed in. When the indices associated with the data file to be compacted exist, then compact generally does not need these XCREblk's used when the indices were created. However, if one or more of the indices does not exist, then CMPIFILX() recreated a XCREblk from the data file. This does not account for differences between the original data file XCREblk and the original index file XCREblk.

Additionally, when either CMPIFILX() or CMPIFILX8() are run on the server (as opposed to stand-alone), unless the server configuration option COMPATIBILITY 6BTRAN_NOT_DEFAULT is specified, then the ct6BTRAN mode bit is turned on in the recreated XCREblk or the explicit XCREblk, respectively, to ensure 6-byte transaction number support.

This new API call declaration is:

ctCONV COUNT ctDECL CMPIFILX8(pIFIL ifilptr,pTEXT dataextn,pTEXT indxextn,LONG permmask,pTEXT groupid, pTEXT fileword,pXCREblk pxcreblk)

Note: It should be noted that since CMPIFILX() reconstructs an XCREblk for the index from the data file, there may be attributes of the data file that were not part of the original index file definition. For example, if the data file supported a large extent size, then the index inherits this large extent size regardless of how it was originally created.

TOCIndex