Caché 3.2.3 Release Notes

Last Revision Date: 10 October 2000


This document describes the enhancements in Caché 3.2.3 and is intended to supplement the Caché 3.2 Release Notes that were shipped as part of Caché 3.2.1.

Supported Platforms

The Caché 3.2.3 maintenance release is available on the following platforms: These are the only platforms on which this maintenance release will be made available; general Caché releases are available on a wide variety of other operating systems.

SQL Enhancements

Parentheses Allowed Around JOIN Expressions

Caché now suppports the use of parentheses in the FROM clause, thereby allowing you to group JOIN expressions. (Note that this change only allows such a query to work if the result would be the same without the parentheses.)

CONVERT Function Enhanced

The CONVERT scalar function syntax is:
CONVERT ( expression, data-type )
Previously, you could specify only SQL_TIMESTAMP as the keyword for the data type. Now you can also specify the keywords SQL_DATE, SQL_INTEGER, SQL_TIME, and SQL_VARCHAR.

Additional SET OPTION Statements

Caché 3.2.3 includes additional SET OPTION statements that you can use to make changes to configuration settings through ODBC.

The first statement enables or disables ODBC BLOB support:

SET OPTION BLOB_SUPORT = { 1 | 0 }
If 1, sets a flag in the namespace to disable ODBC BLOB support. Fields are then treated as VARCHAR or VARBINARY fields. The default is 1 (BLOBs are supported).

The SET OPTION statements below all correspond with Caché Locale settings. If any of the Locale options is set to an invalid value, an SQLCODE=-130 error (Illegal value for SET OPTION locale property) will be returned. Note that changing the value for each of the Locale SET OPTION statements below is equivalent to calling:

$$SetDCFormat^%NLS(<property>,<value>).
The Caché Locale setting statements are:

SET OPTION AM = <literal>
The suffix which may optionally be appended to time values prior to 12 noon. The default is 'AM'.

SET OPTION DATE_FORMAT = <literal>
The DateFormat code used whenever a $ZDATE, $ZDATEH, $ZDATETIME, or $ZDATETIMEH function call omits its second parameter, or specifies a second parameter value of -1. The default is 1.

SET OPTION DATE_MAXIMUM = <literal>
The numeric value that specifies the upper limit of the range of valid dates used whenever a $ZDATE, $ZDATEH, $ZDATETIME, or $ZDATETIMEH function omits its maxdate parameter or specifies a maxdate parameter value of -1. The default is 2980013.

SET OPTION DATE_MINIMUM = <literal>
The numeric value that specifies the lower limit of the range of valid dates used whenever a $ZDATE, $ZDATEH, or $ZDATETIMEH function omits its mindate parameter or specifies a mindate parameter value of -1. The default is 0.

SET OPTION DATE_SEPARATOR = <literal>
The character used to delimit the months, days, and years of those dates which are otherwise entirely numeric. The default is '/'.

SET OPTION DECIMAL_SEPARATOR = <literal>
The character used by the $FNUMBER and $INUMBER functions to separate the whole part of a number from the fractional part of the number. The default is '.'.

SET OPTION MIDNIGHT = <literal>
The suffix which may optionally be appended to time values corresponding to exactly 12 midnight. The default is 'MIDNIGHT'.

SET OPTION MINUS_SIGN = <literal>
The character which may precede or follow a negative numeric quantity formatted by the $FNUMBER or $INUMBER function. The default is '-'.

SET OPTION MONTH_ABBR = <literal>
The abbreviations of the names of the twelve months, used whenever a $ZDATE, $ZDATEH, $ZDATEIME, or $ZDATETIMEH function call omits its MonthNameList parameter, or specifies a MonthNameList parameter value of -1, and the selected date format uses month name abbreviations (i.e., the effective DateFormat code is 0, 2, 5, 6, or 7). The default is ' Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec'.

SET OPTION MONTH_NAME = <literal>
The full names of the twelve months used whenever a $ZDATE, $ZDATEH, $ZDATEIME, or $ZDATETIMEH function call omits its MonthNameList parameter, or specifies a MonthNameList parameter value of -1, and the selected date format uses full month names (i.e., the effective DateFormat code is 9). The default is ' January February March April May June ... November December'

SET OPTION NOON = <literal>
The suffix which may optionally be appended to time values corresponding to exactly 12 noon. The default is 'NOON'

SET OPTION NUMERIC_GROUP_SEPARATOR = <literal>
The character used to separate groups of numeric digits within the whole number portion of a number formatted by the $FNUMBER or $INUMBER function. The default is ','.

SET OPTION NUMERIC_GROUP_SIZE = <literal>
The number of digits in a numeric group formatted by the $FNUMBER or $INUMBER function. The default is 3.

SET OPTION PM = <literal>
The suffix which may optionally be appended to time values at or after 12 noon. The default is 'PM'.

SET OPTION PLUS_SIGN = <literal>
The character which may optionally precede or follow a non-negative numeric quantity formatted by the $FNUMBER or $INUMBER function. The default is '+'.

SET OPTION TIME_FORMAT = <literal>
The TimeFormat code used whenever a $ZDATETIME, $ZDATETIMEH, $ZTIME, or $ZTIMEH function call omits its TimeFormat parameter, or specifies a TimeFormat parameter value of -1. The default is 1.

SET OPTION TIME_PRECISION = <literal>
The number of fractional digits displayed in a time value whenever a $ZDATETIME or $ZTIME function call omits its Precision parameter, or specifies a Precision parameter value of -1. The default is 0.

SET OPTION TIME_SEPARATOR = <literal>
The character used to delimit the hours, minutes and seconds in a time value. The default is ':'.

SET OPTION WEEKDAY_ABBR = <literal>
The abbreviations of the names of the seven days of the week, starting with Sunday and ending with Saturday, used whenever a $ZDATE or $ZDATEIME function call selects a date format which uses weekday name abbreviations (i.e., the effective DateFormat code is 11). The default is ' Sun Mon Tue Wed Thu Fri Sat'.

SET OPTION WEEKDAY_NAME = <literal>
The full names of the seven days of the week, starting with Sunday and ending with Saturday, used whenever a $ZDATE or $ZDATEIME function call selects a date format which uses full weekday names (i.e., the effective DateFormat code is 12). The default is ' Sunday Monday Tuesday Wednesday Thursday Friday Saturday'

SET OPTION YEAR_OPTION = <literal>
The YearOption code used whenever a $ZDATE, $ZDATEH, $ZDATETIME or $ZDATETIMEH function call omits its YearOption parameter, or specifies a YearOption parameter value of -1. The default is 0.

Caché ObjectScript Enhancements

Functions for Changing OS Directory During Namespace Switch

A new switch has been added to the $ZUTIL(68) and $ZUTIL(69) functions. The new switch controls whether changing namespaces will change the directory at the operating system level. The new switch is especially useful for customers who prefer sequential IO files to be put wherever the user was logged in.

Previously, when you changed to a different namespace, Caché changed the directory at the operating system level to the default directory for that namespace. This change makes that behavior optional. The default behavior is the same as the previous one (that is, the OS directory will be changed).

To cause the directory to be changed to the default directory associated with the new namespace, use the following:

$ZUTIL(68,51,1)
$ZUTIL(69,51,1)
To revert to the default behavior (prevent switching the OS directory), use the following:
$ZUTIL(68,51,0)
$ZUTIL(69,51,0)
A new function:
$ZUTIL(168,dirname)
is now available to explicitly switch to a directory at the OS level. If the directory cannot be set as the current working directory, you will get a <DIRECTORY> error, and ^SYSLOG will show the cause of the error.

If you do not specify a directory:

$ZUTIL(168)
the function returns the name of your current working directory, but makes no other changes.

In addition, the Advanced->Miscellaneous section of the Caché Configuration Manager has a new option: "Switch OS directory when changing namespace" that corresponds to $ZUTIL(69,51).

$ZCRC Extended to Wide Characters

The $ZCRC function has been extended to operate on wide characters in all modes. Previously, modes 2 through 7 could not operate on these characters.

System Enhancements

Licensing: Establishment of Better Queue Size on UNIX

On UNIX systems, Caché now has a larger queue size when opening the TCP port. This should alleviate prior issues related to unavailable license servers on this platofrm.

Non-Root Startup Processes on UNIX

On UNIX systems, user-defined startup processes (such as ZSTU or %ZSTART) now run under the userid of the Caché manager (rather than as root); this also applies to any jobs or processes initiated by ZSTU, %ZSTART, or the Super Server. In this context, the Caché Manager is any member of the UNIX group that can start and stop Caché , as defined by the user at installation time.

Correction of Inter-OS Transaction Rollback

In previous versions of Caché, there have been issues related to transaction rollback when there is a Windows 95/98 machine as a client and a UNIX machine as its server. All combinations of platforms as client and server are now fully supported.

UNIX ODBC Driver

Caché 3.2.3 includes a UNIX client ODBC driver. This driver does not support Unicode data (you get connection errors if you try to connect to a Unicode database with the UNIX ODBC driver). You can, however, use the Windows client ODBC driver to access Unicode data on a Caché for UNIX database server. Note that this driver cannot be used against pre-3.2.2 versions of Caché.

Configuring Number of DDP Daemons

You can now configure the number of DDP daemons in the Caché Configuration Manager. The DSM-DDP section (in the Advanced tab) has a "Number of DDP Daemons" parameter, with a default of 3. The minimum setting is 0, which means to use the system default value (currently 3). This parameter is in the "DDP Master" field, which is for OpenVMS systems only.

NUMHWBUFS Configuration Parameter

A new parameter, NUMHWBUFS, has been added to the configuration files on OpenVMS systems. This parameter specifies the number of hardware buffers the Ethernet device will use.

V-argument Type Handling in $ZF Calls

The behavior of fixed-length $ZF function argument descriptors on OpenVMS has been brought into conformity with the comments in our distributed czf.c file:
"For output strings by descriptor, the return space is the same as size of the argument in the $ZF statement unless the argument is omitted in which case the size is the size of the largest string, approx 32 KB."
The user's $ZF functions should never exceed the maximum string length for a return value. The limit is set in the Caché Configuration Manager, in the "$ZF String (bytes)" parameter (in the Process section of the Advanced tab). Note that the size limit is really "characters".

$ZIO and Sequential Files

The $ZIO special variable now returns the physical device name for sequential files. It returns the full file name with disk and directory (and version, on OpenVMS systems).

Support for More COM Ports

Caché 3.2.1 included an enhanced COM port interface the Windows NT platform. The interface, however, was limited to COM ports up to COM9. Caché 4.0 now allows COM ports numbered higher than 9 to be opened.

Filename Length for Sequential Files

The maximum filename length for sequential files on Caché for OpenVMS has been increased from 64 to 255.

Top of Page