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