---------------------------------------------------------------------- HP ELOQUENCE A.06.10 - patch 9808200 ---------------------------------------------------------------------- This patch fixes a defect of the eloqcore program as released with A.06.10. This patch will be integrated in a subsequent HP Eloquence release. You should have installed A.06.10 before applying this patch (it should work with previous A.06.xx releases as well, however this has not been verified). This patch requires installation of patch PE61-9807270. This patches supersedes patches PE61-9805141, PE61-9806100, PE61-9806150, PE61-9806291 (beta), PE61-9807030 (beta), PE61-9807090 and PE61-9807030. Fixed problems: --------------- Platforms: All * eloqcore fails with an internal error in the SORT BY statement when array variables are used. For example: SORT BY A(1) Assertion failed: (no_bytes+recl==res_size+skipped_set_cnt*sizeof(int32_t)), file sort.c line 2393. This is caused by a bug in the implementation of the SORT BY statement. * Using the same variable more than once in a SORT BY statement and specifying the DES option causes an internal error. For example: SORT BY A,A * ERROR 10 returning a string member variable from a function (#664) This is caused by a flaw in HP Eloquence. A member variable is not recognized as a string in this particular case. Patch PE61-9807090 ------------------ Platforms: All * eloqcore fails with an internal error in the FIND or SORT statement. Assertion failed: (pwf->item[0] < iset->s.item_cnt), file sort.c line 1594. This was caused by a wrong assert which could fail when the first set in thread is a detail set. Patch PE61-9807030 ------------------ Platforms: Linux * The eloqcore behaviour on files opened in UPDATE mode was inconsistent with the HP-UX platform. When re-reading data from a file opened in UPDATE mode without previous locking, the data could be fetched from a buffer rather than re-read from the file. On HP-UX the file is re-read. Patch PE61-9806291 ------------------ Platforms: All * eloqcore fails with an internal error in the FIND or SORT statement. Assertion failed: (i < bmap_iset->s.item_cnt), file sort.c line 2761. This was caused by a defect in the find1() function (which is used by FIND and SORT) with the new A.06.10 scan db API which fails when the first set in thread is a master set and master and detail sets use different items. * eloqcore fails with an internal error in the FIND or SORT statement. Assertion failed: (i < bmap_iset->s.item_cnt), file sort.c line 2551. This was caused by a defect in the bmap_item_ofs() function (which is used by FIND and SORT) which could calculate the wrong offset into scan result buffer when a data set contained arrays. * eloqcore could fail with an internal error in the SORT statement when duplicate sort variables were used. For example: SORT BY A,B,B Patch PE61-9806150 ------------------ Platforms: All * The FIND statement is aborting with an internal error. Assertion failed: tmp_recno == recno_buf_wptr[j], file sort.c, line 2182 Patch PE61-9806100 ------------------ Platforms: HP-UX, Linux * A timed SLEEP statement could hang when used in UNIX background. Patch PE61-9805141 ------------------ Platforms: All * The FIND statement is aborting with an internal error. Assertion failed: tmp_recno == recno_buf_ptr[j], file sort.c, line 2172 This was caused by a defect in eloqdb6 in the internal idb_scan_rec() API function which returns inconsistent data to eloqcore causing an internal error in find2(). * SORT BY with multiple tables could fail with an internal error. Assertion failed: ofs == no_bytes, file sort.c, line 2553 This was caused by a defect in eloqcore in the do_sort() function. Depending on the number of sets in thread and the number of sets which are actually used in SORT BY, the internal offset into the sort buffer was wrong. Patch PE61-9805130 ------------------ Platforms: All * Wrong handling of TYPE scope rules. This was caused by a flaw in the build process. * TYPES definitions in a subroutine/function are processed before COM/DIM statements. Previously only during pre-processing of the main program segement, TYPE definitions were processed before COM/DIM statements. This change should have no side effects on existing software. Installation: ------------- UNIX: In order to install this patch, you need to unpack it with gzip. Gzip is included with HP-UX 10.x (and above) and Linux. Gzip for for HP-UX 9.x can be obatined from this ftp server in the /pub directory. Installation requires root privileges. cd /opt/eloquence6 gzip -dc PE61-9808200-hpux.tar.gz | tar xf - Files: bin/eloqcore share/doc/PE61-9808200-README Windows NT: Download the PE61-9808200-win32.zip file and unpack with WINZIP or PKZIP. Installation requires administrative capabilities. Copy the eloqcore.exe file to the bin subdirectory of the HP Eloquence installation directory, e.g. C:\Program Files\Hewlett Packard\HP Eloquence\bin. Files: eloqcore.exe PE61-9808200-README.txt