.
contact contact

Fixed problems

 
.
  Eloquence A.06.20 / Release Notes
The following problems have been fixed with Eloquence A.06.20:
  • A member variable passed as a qualifier argument to IMAGE statements (DBINFO, DBGET) could cause an internal error.

  • A member variable passed as a qualifier argument to the WORKFILE IS statement could cause an internal error.

  • On the WIN32 platform, the REQUEST statement caused an ERROR 1004 when used on a printer defined as a file. Since TIOis not available for WIN32, this is now simply ignored.

  • The available variable memory in eloqcore has been increased to 256k. (844)

  • Cloning dialog objects (DLG NEW on a model) with ASCII dialogs could cause a core dump. (#225,G2474636)

  • A DLG SET on a previously cloned dialog object (DLG NEW on a model) with ASCII dialogs could cause a core dump. (#418)

  • Collating sequences were not working properly. The schema processor returned an error message that a collating sequence definition was not found. (#704,G2627695)

  • eloqdb.h does now includes <sys/types>

  • On the HP-UX platform the libeloq.a library was affected by a compiler optimizer bug. This could result in errorneous behaviour (wrong runtime errors) when using the A.06.xx libeloq.a library to create Eloquence DLLs.

  • On the WIN32 and Linux platform DBLOCK (mode 5,6,15,16) could fail with status -122. This could happen when using a PREDICATE DBLOCK (mode 5,6,15,16) on set or item number 64 with the eloqdb6 server running on systems with little endian architecture (Intel).

  • On the WIN32 platform the value returned by the RND had the wrong range. Results should be between 0 and 1 but actually were 0 to 32767.

The following problems were fixed against A.06.10:

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

  • 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 Eloquence. A member variable is not recognized as a string in this particular case.

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

  • On the Linux platform, 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.

  • 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

  • The FIND statement could abort with an internal error. Assertion failed: tmp_recno == recno_buf_wptr[j], file sort.c, line 2182

  • A timed SLEEP statement could hang when used in UNIX background.

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

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

  • A rollback operation could lead to index corruption. In a rare condition a rollback operation could discard index modifications not related to current transaction.

  • A blocked DBLOCK caused a eloqdb6 server hang during shutdown and prohibited a checkpoint operation.

  • When the eloqdb6 server is terminated abnormaly (eg. due to an internal failure or a kill -9), a crash recovery is performed the next time the eloqdb6 server is restarted. This is required to recover committed information to the data volume and enshure database consistency.

    The following defects in crash recovery were fixed:

    • During crash recovery index could be corrupted.
    • In rare cases, node meta information was not restored properly. This could lead to wrong DBINFO mode 202 result (capacity).
  • Default checkpoint size has been changed from 5 to 10 Mb. The changes to the eloqdb6 crash recovery may require more space in the log volume. It is therefore recommended to double the value of the CheckPtSize parameter in your eloqdb6 configuration.

  • eloqdb6 could return an inconsistent value on the idb_scan_rec() API call. This causes an internal failure with eloqcore in the FIND statement. Assertion failed: tmp_recno == recno_buf_ptr[j]

  • A new config directive has been added to eloqdb6. This can be used to disable the new A.06.10 scan API (which is used with FIND/SORT) and SQL/R 2.0. This is mainly intended as a performance test and debug option. It causes FIND/SORT statement to revert to previous (before A.06.10) method.

    To disable the SCAN functionality, add the following to your eloqdb6.cfg configuration file.

      [Server]
      DisableScan = 1
    
    This configuration item defaults to 0 and should usually not be specified.

  • Record numbers above 1 million overflowed an internal variable in the QUERY utility. This could lead to wrong results on tables with more than one million records with the LIST or LINEAR LIST command or data corruption with the REPLACE or DELETE command as wrong records could be updated or deleted.

  • Include files were missing on the HP-UX platform.


 
 
.
 
 
  Privacy | Webmaster | Terms of use | Impressum Revision:  2002-11-18  
  Copyright © 1995-2002 Marxmeier Software AG