Warehouse Release 3.00.3100

06/29/2004

 
 
The enhancements in the 3.00.3100 release are:

Improved compatibility between NSTRING and STRING data types.

For example, in previous releases the following script caused a compile time error on line 3.

1. DEFINE NS : NSTRING
2. SETVAR NS = 'Taurus'
3. IF NS = 'Taurus'

NSTRING items are now automatically converted to STRING items where appropriate.



The TOKENCOUNT function has been added that parses a string and returns the number of tokens in the string.

TOKENCOUNT parses exactly like the TOKEN function, but returns the number of tokens rather than a specific token. The syntax is:

n = TOKENCOUNT(source-string, "delimiters-flags")

source-string is the string to be parsed.


delimiters-flags is a constant string enclosed in quotation marks that indicate the parsing delimiters and flags. The delimiters may be any special characters such as comma, colon, semicolon and space. In addition to special characters the S and Q flag is available.


S flag - Indicates that leading a trailing spaces are stripped from the token.
Q flag - Indicates that tokens may be enclosed in quotation marks.


Examples:
A = 'one;two,"three,four";five, six , seven,'
B = ' alpha beta|gamma delta'

Expression Result
TOKENCOUNT(A, ",") 5
TOKENCOUNT(A, ";") 3
TOKENCOUNT(A, ";") 3
TOKENCOUNT(A, ",q") 5
TOKENCOUNT(A, ",;") 7
TOKENCOUNT(A, ",;") 7
TOKENCOUNT(A, ",;q") 6
TOKENCOUNT(A, ",;q") 6
TOKENCOUNT(A, ",;qs") 6
TOKENCOUNT(B, " ") 7
TOKENCOUNT(B, " s") 3
TOKENCOUNT(B, " s") 3
TOKENCOUNT(B, " |s") 4



A change to the way numeric constants are passed to the ODBC API when reading or updating an ODBC database.

For example the statement

READ R=ODBCDB.TABLENAME FOR KEY = 123


internally generates the SQL


SELECT * FROM TABLENAME WHERE KEY = 123


In prior releases the SQL generated was


SELECT * FROM TABLENAME WHERE KEY = ?


with ? being passed into the SQL API as a decimal 123.


This change should reduce the number of issues when passing numeric constants to ODBC databases.


HP-UX dynamic loading


The Warehouse server on HP-UX systems now dynamically loads the system function getspwnam() when completing a client connection. The getspwnam() function available in different libraries in different versions of HP-UX so dynamically loading this procedure may reduce incompatibilities introduced by HP.

Release 3.00.3100 is available now on all supported platforms.