RELEASE NOTES FOR

IBM INFORMIX ESQL/C

Date: 06/2003

Version: 9.53


Table of Contents

I. Overview of Release Notes
II. IBM Informix Database Server Compatibility
III. New Features
IV. Problems Fixed at this Release
V. Known Problems

IMPORTANT:
Please note that product names and documentation that include the word "Informix" are now "IBM Informix." Except for pathnames, configuration parameters, environment variables. and user informix, the "IBM" should be prefixed for any reference to "Informix" in any context of the product, documentation, and other "Informix" items.


I.Overview of Release Notes

The purpose of these release notes is to make you aware of any special actions required to configure and use IBM Informix ESQL/C on your computer. This file also describes new features and feature differences from earlier versions of this product and other Informix products, and how these differences affect current products. In addition, this file contains information about known bugs and their workarounds.

This release notes document is not intended to be all-inclusive. It should be used as an addendum to the IBM Informix ESQL/C Programmer's Manual, which provides thorough information about product features and behavior. Additional information not covered in this manual or modified since publication can be found in the documentation notes for the ESQL/C Programmer's Guide.

These release notes are written for the following audience:


II. IBM Informix Database Server Compatibility

Version 9.53 of IBM Informix ESQL/C has been tested with the following database server configurations:

Informix ESQL/C includes source code files for many of the examples in the IBM Informix ESQL/C Programmer's Manual. The installation process copies these source code files into the following directory: $INFORMIXDIR/demo/esql. For more information about the example files for IBM Informix ESQL/C, see the Introduction chapter of the IBM Informix ESQL/C Programmer's Manual.

III. New Features

The following additional changes to the IBM Informix Structured Query Language(SQL) have been implemented in Version 9.40 of Dynamic Server. IBM Informix ESQL/C Version 9.53 supports all these features. (For additional information about SQL and SPL syntax, see the IBM Informix Guide to SQL Syntax.)

  1. INSTEAD OF Triggers on Views

    The CREATE TRIGGER statement has been enhanced to support INSTEAD OF triggers on views. You can define an INSERT, UPDATE, or DELETE event on a specified view that activates the trigger. Rather than directly performing the triggering DML event, the database server executes the Action clause of the INSTEAD OF trigger. This feature provides a mechanism for updating the underlying tables of views that include columns from more than one table. These views could not be updated in earlier releases of Dynamic Server.

  2. Enhanced SELECT Statement Syntax

    The syntax rules for the SELECT statement have been enhanced in the following ways:

    a. Ordering by Columns or Expressions Not in Projection List

    The ORDER BY clause now can include column names or expressions that do not appear in the Select list of the Projection clause. The following query is now valid:

    SELECT stock_num, manu_code FROM stock ORDER BY unit_price

    Earlier releases had required that unit_price also appear in the Projection clause.

    b. Iterator UDRs in the FROM Clause

    The iterator functions are now valid in the FROM clause of the SELECT statement.

  3. Functional Indexes on More Than 16 Columns

    Functional indexes are UDRs that accept column names as arguments and whose return values are specified as index keys in the CREATE INDEX statement. In previous Dynamic Server releases, the number of columns was restricted to 16.

    In Version 9.40, the number of columns that can be arguments to a functional index is language-dependent. For UDRs written in the C language, a functional index can have up to 102 columns. A functional index defined in the SPL or Java languages can have up to 341 columns.

  4. Enhanced Dynamic Query Support

    The DESCRIBE statement now recognizes the OUTPUT keyword. The new dynamic SQL statement, DESCRIBE INPUT, can provide information about the retrieved columns and dynamic parameters of prepared DML statements. This feature requires IDS server side support for "Dynamic Query Extension." It will work only for IDS version 9.4 or above.

    a. The DESCRIBE INPUT Statement

    In previous releases of ClientSDK, the DESCRIBE statement could not provide information about input parameters of the WHERE clause of prepared INSERT or SELECT statements. It could provide limited support for UPDATE parameters if the IFX_UPDDESC environment variable were set. In this release, you can specify the INPUT keyword in the DESCRIBE statement to return information about each input parameter of a prepared DML statement, including the data type, identifier, and length (in bytes).

    b. The DESCRIBE OUTPUT Statement

    The client system that executed a dynamic SQL application can use the DESCRIBE OUTPUT statement (the OUTPUT keyword is optional) to obtain information about the output parameters of a prepared DML statement. This is a CSDK feature, but it requires information that the database server did not make available to the client application in releases earlier than Version 9.40.

  5. Session-Level Non-Default Collation

    In previous IBM Informix Dynamic Server releases, the database server sorted NCHAR and NVARCHAR values according to the localized collating sequence of the locale that the DB_LOCALE environment variable specified, if that locale defined a COLLATION. In other cases, all sorting operations followed the code set order.

    In this release, the new SET COLLATION statement can specify the localized collation of another locale. For the rest of the session (or until the next SET COLLATION statement in the same session), sorting of NCHAR and NVARCHAR values ignores the DB_LOCALE setting. You can restore the default collating order by issuing the SET NO COLLATION statement. This feature enables the database server to use different localized collating orders on NCHAR and NVARCHAR data sets within a single database where both collating orders can operate on the same character set.

    Database objects (such as indexes, check constraints, and triggers) that perform collation use the collating order that was in effect when the object was created, rather than the order that is in effect at runtime, if these two collating orders are not the same.

  6. SET Residency Statements No Longer Needed

    Prior to IBM Informix Dynamic Server, Version 9.40, the SET TABLE and SET INDEX statements could specify whether one or more fragments of a table or an index remain in a shared memory buffer, rather than be written to disk. These statements are no longer supported, because this functionality is provided automatically by the database server. However, no error is issued when applications include a SET Residency statement, The SET TABLE or SET INDEX statement is simply ignored.

  7. Multiple OUT Parameters

    In a user-defined routine (UDR), an OUT parameter corresponds to a value returned through a pointer. Earlier releases of Dynamic Server supported only one OUT parameter in UDRs, and any OUT parameter was required to appear as the last item in the parameter list. Version 9.40 drops these restrictions, supporting multiple OUT parameters anywhere in the parameter list of the UDR. This feature provides greater flexibility in defining UDRs, and removes the need to return collection variables in contexts where multiple returned values are required. Applications can use this feature to create multiple statement-local variables (SVLs) in the WHERE clause of a DML statement that invokes the UDR.

  8. Sequence Objects

    This release introduces new DML statements (CREATE SEQUENCE, ALTER SEQUENCE, RENAME SEQUENCE, DROP SEQUENCE) for sequence generators, database objects that multiple users can access concurrently to generate unique integers in the INT8 range.

    The GRANT and REVOKE statements have been enhanced to support access privileges on sequence objects, and the CREATE SYNONYM and DROP SYNONYM statements can now reference synonyms for sequence objects in the local database. Two new operators, CURRVAL and NEXTVAL, can read or increment the value of an existing synonym. The system catalog includes a new syssequences table for information about sequence objects. Sequences are an efficient was to generate primary key values.

  9. ANSI Join Syntax

    The syntax of the SELECT statement has been enhanced to support the ANSI/ISO syntax for cross joins and right outer joins. The keywords CROSS and RIGHT are now supported in the context of queries that join two or more tables. This feature provides greater compliance with the ANSI standard for SQL.

  10. LVARCHAR Data Types Greater Than 2048 Bytes

    In previous releases, database columns of the LVARCHAR built-in opaque data type had an upper limit of 2048 bytes. Dynamic Server Version 9.4 supports a size parameter in the declarations of LVARCHAR columns (or LVARCHAR variables of SPL), where size can be up to 32,739 bytes.

    For backward compatibility, LVARCHAR objects declared with no size parameter can store up to 2048 bytes. This feature increases the storage capacity of the varying-length data types of Dynamic Server.

  11. New SQL Reserved Words

    IBM Informix Dynamic Server, Version 9.40, recognizes new SQL keywords that might affect migration of your applications. Although you can use almost any word as an SQL identifier, syntactic ambiguities can occur in contexts where the keyword is also valid. An ambiguous statement might not produce the desired results. For information about workarounds for such ambiguities, see the "IBM Informix Guide to SQL: Syntax."

    The following SQL keywords are new in Dynamic Server 9.40:

    • COLLATION
    • FULL
    • RESTART
    • CROSS
    • INSTEAD
    • RIGHT

    If you are migrating from a Dynamic Server release earlier than Version 9.30, see the Version 9.30 release notes to words that have been added to the list of SQL keywords since Version 9.21. For a complete list of SQL keywords, see Appendix A of the "IBM Informix Guide to SQL: Syntax," Version 9.40.

  12. New Environment Variables

    a. IFX_PAD_VARCHAR: When set to 1, for varchar datatype client sends padded trailing spaces
    b. GL_USEGLU: When set to a value of "1" will enable Global Language Support for Unicode.
    c. BIG_FET_BUF_SIZE: This is enhancement of FET_BUF_SIZE to support sizes greater than 32,769 and less than or equal to 4MB. (This environment is supported in the XPS 8.40.UC1 server onwards).
    d. BLANK_STRINGS_NOT_NULL: When set to 1 the string host variable stores an empty string as a single blank followed by a null terminator, by default empty string stored as null string.

  13. Increased File Size Limit The new file size limit is 4TB. Now Smart Large Objects can be loaded and copied into files up to 4TB. The following SQL functions support the 4TB files on BLOB column. * FILETOBLOB( ), FILETOCLOB( ): These tunctions copy a file into a BLOB, CLOB column * LOTOFILE( ): This function copies a BLOB(or CLOB) value into an a operating-system file. The previous file size limit was 2GB

III-B. New Features in ESQL/C Version 9.53.UC2

  1. Union Everywhere

    This release introduces new Syntax to support union operation wherever a query expression can be used. The union operator is used to combine two or more SELECT statements and output all unique rows. The current release of ESQL/C supports the following union operator clauses:

    a. unions in query expressions that appear in subqueries of SELECT statements only.
    b. from clause - collection derived table.
    c. collection subquery.

  2. PAM Capability For Better Authentication

    Starting with ESQL/C 9.53.UC2, shipped with CSDK2.81.UC2, the ESQL/C client would support the Pluggable Authentication Module (PAM) feature for better authentication. Using the PAM capabilities of ESQL/C the user can now write application that would allow a challenge-response mechanism for client-server authentication using any third party module.

    A new demo by the name of pamdemo.ec has been added to the product to provide the users with a framework for writing an ESQL/C application using PAM, and the necessary callback function.

  3. Additional Configuration Specification for Encryption CSM
  4. IDS 9.4 UC2 supports another way configure Encryption CSM (ENCCSM). This will make it easier for DBAs to configuring and managing ENCCSM. The older way of configuration is also supported for backward compatibility.

    The original supported format for csm-global-option in concsm.cfg is:

    "cipher[options],mac[options], switch[options]"

    In the newly supported format, this string is replaced with the following:

    "config=<location of the config file>"

    In the config file, the above string is broken down in a logical form :

    "PARAM_NAME  VALUE"

    Here is the list and description of parameters:

         ENCCSM_DEBUG    : Location of debug file along with flags value
         ENCCSM_CIPHERS  : Ciphers to be used
         ENCCSM_MAC      : MAC level
         ENCCSM_MACFILES : MAC file location
         ENCCSM_SWITCH   : CIPHER and KEY change frequency comma separated
         

    Example:

         ENCRYPT_DEBUG           file:/tmp/csm.out,flags:0x0774
         ENCCSM_CIPHERS          allbut
         ENCRYPT_SWITCH          120,60
         ENCRYPT_MAC             medium
         ENCRYPT_MACFILE         /usr/informix/etc/MacKey.dat
         

    The following restrictions apply to the parameter values :

    • Each entry should be of the form "param_name value" separated by white spaces.
    • No white spaces allowed within a Value.
    • Each parameter should have one entry in the config file. If duplicate entries exist, then only first entry is considered, others will be ignored.
    • Default values will be taken if parameter does not exist in the config file. "#" is the comment character. Any charactes after comment character will be ignored (except for pathname value).
    • In the concsm.cfg file, valid filepath should be mentioned. If the file does not exist, then default values will be taken. No error will be flagged.

IV. Problems Fixed in this Release

A comprehensive list of the problems fixed in this release can be found in the defects document.

V. Known Problems

A list of the problems known in this release can be found in the defects document. Some issues with workarounds or additional information are described below:

CSDK provides a library named 'libgen.a'. On many platforms, however, there is a system library with the same name. For reasons of backward compatibility, the library is still distributed with the product, but users are encouraged to use libifgen.a' to avoid conflicts with the system library. Libifgen.a is a link to 'libgen.a'.



© Copyright International Business Machines Corporation 2003. All rights reserved.
US Government User Restricted Rights—Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.