---------------------------------------------------------------------- ELOQUENCE B.07.00 - patch 0308010 ---------------------------------------------------------------------- This patch fixes a defect of the image3k TurboIMAGE compatibility extension as released with Eloquence B.07.00. This patch will be integrated in the Eloquence B.07.00 release. Eloquence B.07.00 must be installed before applying this patch. This patch replaces patch PE70-0304300 (beta), PE70-0304090, PE70-0305260, PE70-0307060, PE70-0307100 (beta). Severity: PE70-0308010: BUG FIX PE70-0307100: ENHANCEMENT PE70-0307060: BUG FIX PE70-0305260: BUG FIX PE70-0304300: ENHANCEMENT PE70-0304090: BUG FIX Fixed problems: --------------- Platforms: All * The DBEXPLAIN and DBERROR calls did not return a message for status codes 10 and 14 (#2088) * A problem with DBERROR and DBEXPLAIN was fixed. In case an Eloquence call failed in some cases the message did not properly reflect the IMAGE intrinsic call. * The encoding of the status array has been modified in case an Eloquence call fails. In case a nonzero status is returned the status array is used as below: Element Description ------- ------------------------------------ 1 IMAGE status code 2 - 4 unchanged 5 zero 6 IMAGE intrinsic ID 7 Eloquence status code 8 Eloquence extended status code 9 IMAGE mode 10 Encoded Eloquence call ID and mode (Format: 6 bit id, 10 bit mode) * DBLOCK could return wrong status codes. A wrong status code was returned instead of status -128 and -126. * The IMAGE3K library has been modified to consistently return status -105 in case a memory allocation failed. * The image3k library version has been changed to B.07.00.13 Patch PE70-0307100 ------------------ Platforms: All * The Eloquence DBFIND mode 1/21 index handling has been enhanced with the option to handle TPI and TurboIMAGE btree search arguments more similar (#2032). TurboIMAGE btree indexes and TPI indexes use slightly different conventions in the DBFIND mode 1/21 search argument. With TurboIMAGE btree indexes the wildcard character can be configured through DBCONTROL or dbutil. For TPI indexes a "@" character is used. TPI also considers a space character before the "@" wildcard to be special. The IMAGE btree functions are currently not enabled in Eloquence and Eloquence indexes are used used as a replacement. However Eloquence indexes follow the TPI conventions which could cause problems with applications relying on the IMAGE btree behavior. As Eloquence allows to use all TurboIMAGE DBFIND modes, independendly of the index type, this option allows DBFIND mode 1/21 calls to work more closely. The HP3K_TPI_COMPAT database property can be used to cause Eloquence indexes to follow the TurboIMAGE btree behavior more closely. If HP3K_TPI_COMPAT is set to nonzero it causes TPI indexes to use the current IMAGE btree wildcard character and not handle trailing spaces as a special case. The default value is zero which implements the previous behavior. Setting this property can be done with the dbutil utility either interactively or using the following script: --- snip --- database ""; create property "HP3K_TPI_COMPAT" value "1"; --- snip --- This property is currently not available in the dbutil TurboIMAGE property dialog. * DBCONTROL mode 5 and 6 return status -82 is CIUPDATE is DISALLOWED. * Fixed NULL pointer access with DBINFO mode 814. This could cause a crash on platforms other than HP-UX. * DBXBEGIN, DBXEND and DBXUNDO could cause an internal failure when called before any database was opened. Status -11 is now returned instead of aborting the application. * Implemented the undocumented DBVERSION intrinsic. The DBVERSION intrinsic result follows the MPE format and returns the following NUL terminated string: MPE/iX: "HP30391 C.1005" Eloquence : "IMAGE3K B.0700.12" * The DBOPEN call returns 1 in the status element 4. With TurboIMAGE this is the size of the DBU area in half words. This has no meaning with Eloquence but a nonzero value is used by some applications to distinguish between HP IMAGE and TurboIMAGE. * Mode 0 has been added to all database calls. On MPE this may used to obtain version information about a TurboIMAGE intrinsic call (eg. QUERY/3000 version command). Eloquence returns status -31 (invalid mode) but status elements 2 to 4 return the Eloquence image3k library version (w/o the patch level, for example B.07.00). It is recommended to use DBINFO mode 801 (or DBVERSION) to obtain the TurboIMAGE version. * The image3k library version has been changed to B.07.00.12 Patch PE70-0307060 ------------------ Platforms: All * DBUPDATE returned status -82 instead of status 41 in case a critical item was changed but critical item update was not enabled (#2010) While status -82 is specified in the TurboIMAGE documentation for DBUPDFATE it is not used with DBUPDATE. * The image3k library version has been changed to B.07.00.11 Patch PE70-0305260 ------------------ Platforms: All * DBINFO mode 833 returned information indicating that Eloquence indexes are case sensitive. (#1977) Case sensitive indexes are currently not supported with Eloquence. The information has been corrected. * DBFIND mode 11/22 terminated with an internal error (#1978) assertion failed: arg_sz >= 0 file hp3k_tpi.c, line 112 This problem was caused by a wrong consistency check. * The image3k library version has been changed to B.07.00.10 Patch PE70-0304090 ------------------ Platforms: All * DBFIND should set status elements 2-4 to zero if the call returns a status code (#1935). Eloquence only set the status elements 2-4 to zero when the call succeeded. This behavior is slightly different from TurboIMAGE which sets the status elements 2-4 to zero even if the call returns with a nonzero status. This difference might cause problems for applications which rely on the TurboIMAGE behavior. * A corresponsing change was made to the DBDELETE call to set status element 2 to zero even if the call returns with a nonzero status code. * The image3k library version has been changed to B.07.00.09 Patch PE70-0304090 ------------------ Platforms: All * DBFIND modes 1/21 could fail with database status -21 when a wildcard character is present (and the btreemode1 flag is enabled). This problem was caused by a wrong mapping of the data set flags uploaded by the database server when opening the database (#1901). It was only uncovered by a fix to DBFIND related to btreemode1 before the B.07.00 release, so it was not exposed in the B.07.00 pre-releases. The Eloquence image3k library makes use of these dataset flags to determine if the /indexed flag is set for a data set. Currently the server process does not enable the /indexed flag but the image3k library assumed it was available. As a consequense the server process causes the DBFIND to fail with status -21. * The image3k library version has been changed to B.07.00.08 ** REVISION 02 ** * A bug was fixed in an internal function that is commonly used to check call argument alignment. This has resulted in wrong behavior in some IMAGE calls (eg. DBGET with saved item lists). This is defect was corrected in the original patch but not documented. Installation: ------------- UNIX: In order to install this patch, you need to unpack it with gzip. Gzip is included with HP-UX and Linux. Installation requires root privileges. cd /opt/eloquence6 gzip -dc /path/to/PE70-0308010-hpux.tar.gz | tar xf - Files: Linux: lib/libimage3k.so lib/libimage3k.a include/image3k.h share/doc/PE70-0308010-README HP-UX: lib/pa11_32/libimage3k.sl (HP-UX PA-RISC 1.1 32bit) lib/pa11_32/libimage3k.a lib/pa20_32/libimage3k.sl (HP-UX PA-RISC 2.0 32bit) lib/pa20_32/libimage3k.a lib/pa20_64/libimage3k.sl (HP-UX PA-RISC 2.0 64bit) lib/pa20_64/libimage3k.a lib/hpux32/libimage3k.sl (HP-UX Itanium 32bit) lib/hpux32/libimage3k.a lib/hpux64/libimage3k.sl (HP-UX Itanium 64bit) lib/hpux64/libimage3k.a include/image3k.h share/doc/PE70-0308010-README Windows: Download the PE70-0308010-win32.zip file and unpack its contents with WinZip or PKUNZIP. Installation requires administrative capabilities. Please copy the .dll files into the WINDOWS SYSTEM DIRECTORY (for example C:\Windows\System32). Please copy the .lib and .def files into the lib subdirectory of your Eloquence installation (for example C:\Programs\Eloquence\lib). Please copy the image3k.h file into the include subdirectory of your Eloquence installation (for example C:\Programs\Eloquence\include). Please copy the PE70-0308010-README.txt file into the share\doc subdirectory of your Eloquence installation (for example C:\Programs\Eloquence\share\doc). Files: image3k.dll image3kC.dll image3k.lib image3kC.lib libimage3k.lib image3k.def image3kC.def image3k.h PE70-0308010-README.txt