-
The DBEXPLAIN call was enhanced to flush stdout before writing to
stderr. This should improve cases where DBEXPLAIN output
is not in sync with application output to stdout.
-
Fixed a potential TurboIMAGE compatibility problem.
A TurboIMAGE DBGET call that fails with a status code may return
the current record number in the status array.
The image3k library was modified to return the current record number
when a status code between 10 and 18 is returned by a DBGET call.
-
Added support to DBINFO mode 833 to indicate an index is case
insensitive. Previous versions of DBINFO 833 always returned an index
to be case sensitive.
-
Added an option to enhance support for the DBBEGIN/DBEND/DBMEMO
calls. By default, these calls have no function in the image3k
library. In rare cases, however, applications may require these
calls for auditing purposes.
By default the DBBEGIN/DBEND/DBMEMO calls have no effect. When
enabled, they submit the passed text to the server for including
it in the forward log file. These calls are currently not database
specific; when any opened database has the DBBEGIN/DBEND/DBMEMO
functionality enabled, the passed information is sent to the server.
For DBBEGIN/DBEND calls different mode values are currently
ignored.
The passed information is considered text, passing binary values
is not supported.
To enable this functionality, the HP3K_API_COMPAT database property
must be set as below:
+1 - enable DBMEMO
+2 - enable DBBEGIN/DBEND
If the bit 0 in the HP3K_API_COMPAT property value is set (+1)
then DBMEMO will call the server process to record the passed
text argument in the forward log. By default this option is
disabled.
If the bit 1 in the HP3K_API_COMPAT property value is set (+2)
then DBBEGIN/DBEND will call the server process to record the
passed text argument in the forward log. By default this option
is disabled.
Setting this property can be done with the dbutil utility either
interactively or using the following script:
database "database_name";
create property "HP3K_API_COMPAT" value "3";
The image3k API compatibility flags may also be changed dynamically
for a database (while the database is opened) using the Eloquence
image3k specific DBCONTROL mode 1016.
mode = 1016;
DBCONTROL(base, "3", &mode, status);
where the qualifier argument passes the desired HP3K_API_COMPAT option value
as a string, terminated by a NUL or space character.
The Eloquence image3k DBINFO mode 503 may be used to return the current
HP3K_API_COMPAT option value. It is substantially similar to DBINFO mode 502.
Mode 503 checks the HP3K_API_COMPAT option settings for the database
and the current DBOPEN. The HP3K_API_COMPAT option is set for the
database with the DBUTIL utility or with DBCONTROL for the
current DBOPEN.
The Qualifier argument is ignored. The DBINFO mode 503 call returns the
following information in the Buffer argument (note that each element is
a halfword or two bytes):
-----------------------------------------------------
| Element | Contents |
-----------------------------------------------------
| 1 | HP3K_API_COMPAT option |
-----------------------------------------------------
| 2 | Current setting for accessor |
-----------------------------------------------------
-
Added an option to recognize ">" and "<" as relational operators
in DBFIND mode 1 and 21 on an index (#3397). Previous versions
only recognized ==, >= and <= as relational operators. As this
may cause ambiguities, this option is disabled by default.
To enable this function, the HP3K_TPI_COMPAT database property
must be set to a value that has the bit 2 set (+4).
The following values are currently recognized for the
HP3K_TPI_COMPAT database property:
-
+1 - use IMAGE wildcards for TPI access
-
+2 - support numeric values passed as text
-
+4 - enable the < and > relational operators
If the bit 0 in the HP3K_TPI_COMPAT property value is set (+1)
then searching TPI indexes uses the current IMAGE btree
wildcard character (as defined for the database or through a
DBCONTROL mode 15 call) and do not consider trailing spaces as
a special case. By default this option is disabled which
implements documented TPI behavior.
If the bit 1 in the HP3K_TPI_COMPAT property value is set (+2)
then a numeric argument may be passed as text if the argument
either starts with an operator (==, <=, >= and < or > if bit 2
is set as well), a positive or negative sign. Otherwise a
binary value is assumed. As this may cause ambiguities, the
default is that numeric values must be passed as a binary value.
If the bit 2 in the HP3K_TPI_COMPAT property value is set (+4)
then the < and > characters are recognized as operators. As this
may cause ambiguities, it is disabled by default.
Setting this property can be done with the dbutil utility either
interactively or using the following script:
database "database_name";
create property "HP3K_TPI_COMPAT" value "6";
The image3k TPI compatibility flags may also be changed dynamically
(for the session) using DBCONTROL mode 1015.
-
Fixed a compatibility problem with DBFIND mode 1 or 21 on an
index. An additional wildcard character (after all
characters for the index value were specified) resulted in
subsequent search conditions not recognized.
The following example uses query3k to demonstrate the problem.
> fo indexes
IMATCHCODE, G10 CUSTOMERS
MATCHCODE, X10
Previous behavior:
>f imatchcode=">=KEL @<=KEM @"
683 ENTRIES QUALIFIED
Expected results:
>f imatchcode=">=KEL @<=KEM @"
3 ENTRIES QUALIFIED
-
The username and password arguments were extended to 255 characters