New Names for Extension Classes
General Informix JDBC Driver Limitations
The purpose of these release notes is to make you aware of any special actions required to configure and use the Informix JDBC Driver 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 "Informix JDBC Driver Programmer's Guide, Version 2.0," which provides thorough information about product features and behavior.
These release notes are written for Java programmers who use the JDBC API to connect to Informix databases via the Informix JDBC Driver.
The new features for release 2.0 of the Informix JDBC Driver are as follows:
Informix JDBC Driver 2.0 is compatible with the following server versions:
To use the Informix JDBC Driver directly, you must have a JDK 1.2 (or later) package on your platform. Please refer to http://splash.javasoft.com/jdbc/ for details.
The names of the following Informix extension classes have changed:
IfxPreparedStatement IfmxPreparedStatement
IfxComplexInput IfmxComplexSQLInput
IfxComplexOutput IfmxComplexSQLOutput
The old names are still supported to maintain backward compatibility.
In addition, the Interval, IntervalYM, and IntervalDF classes have been moved to the com.informix.lang package.
Please refer to the "Informix JDBC Driver Programmer's Guide, Version 2.0" for a complete list of unsupported methods in Informix JDBC driver. Additional general limitations are as follows:
For example, if one thread executes the "Statement.executeQuery()" method on a Statement object, and another thread executes the "Statement.executeUpdate()" method on the same Statement object, the results of both methods are unexpected and depend on which method was executed last.
Similarly, if one thread executes the method ResultSet.next() and another thread executes the same method on the same ResultSet object, the results of both methods are unexpected and depend on which method was executed last.
If you connect to a non-GLS server, the behavior is the same as the JDBC driver 1.22 version.
Informix's driver does not support this JDBC method. See the "Informix JDBC Driver Programmer's Guide, Version 2.0" for further information.
-79702 Can't create new object
The software could not allocate memory for a new String object.
-79703 Row/column index out of range
The row/column index is out of range. Please compare the index to the number of rows/columns expected from the query to ensure that it is within range.
The Informix driver could not create an instance of itself and register it with the DriverManager. The rest of the SQLException text describes what failed.
The URL you have submitted is invalid. The Informix Driver does not recognize the syntax. Please check the syntax and try again.
An invalid character was found during conversion of a String value to an IntervalDF or IntervalYF. Check the "Informix JDBC Driver Programmer's Guide, Version 2.0" for correct values.
An error was found during construction of an Interval qualifier from atomic elements: length, start or end values. Check the length, start and end values to verify that they are correct. See the "Informix JDBC Driver Programmer's Guide, Version 2.0" for correct values.
The string you have provided is NULL. The Driver does not understand NULL input in this case. Please check the input string to ensure that it has the proper value.
The expected input is a valid date string in the following format: yyyy-mm-dd. Check the date and verify that it has a 4-digit year, followed by a valid 2-digit month and 2-digit day. The delimiter must be a dash (-).
-79710 Syntax error in SQL escape clause
Invalid syntax was passed to a jdbc escape clause. Valid JDBC escape clause syntax is demarcated by curly braces and a key word as follows: {keyword syntax}. Check the "Informix JDBC Driver Programmer's Guide, Version 2.0" for a list of valid escape clause keywords and syntax.
An invalid time format was passed to a JDBC escape clause. The escape clause syntax for time literals is as follows: {t `hh:mm:ss'}.
-79712 Error in timestamp format
An invalid timestamp format was passed to a JDBC escape clause. The escape clause syntax for timestamp literals is as follows: {ts `yyyy-mm-dd hh:mm:ss.f...'}.
-79713 Incorrect number of arguments
An incorrect number of arguments was passed to the scalar function escape syntax. The correct syntax is as follows: {fn function(arguments)}. Verify that the correct number of arguments were passed to the function.
You have specified a data type that is not supported by the driver. Check your program to make sure the data type used is among those supported by the driver.
Invalid syntax was passed to a jdbc escape clause. Valid JDBC escape clause syntax is demarcated by curly braces and a key word as follows: {keyword syntax}. Check the "Informix JDBC Driver Programmer's Guide, Version 2.0" for a list of valid escape clause keywords and syntax.
-79716 System or internal error
An operating or runtime system error or a driver internal error occurred. The accompanying message describes the problem.
-79717 Invalid qualifier length
The length value for an Interval object is incorrect. See the "Informix JDBC Driver Programmer's Guide, Version 2.0" for correct values.
-79718 Invalid qualifier start code
The start value for an Interval object is incorrect. See the "Informix JDBC Driver Programmer's Guide, Version 2.0" for correct values.
-79719 Invalid qualifier end code
The end value for an Interval object is incorrect. See the "Informix JDBC Driver Programmer's Guide, Version 2.0" for correct values.
-79720 Invalid qualifier start or end code
The start or end value for an Interval object is incorrect. See the "Informix JDBC Driver Programmer's Guide, Version 2.0" for correct values.
-79721 Invalid interval string
An error occurred during conversion of a String value to an IntervalDF or IntervalYF. Check the "Informix JDBC Driver Programmer's Guide, Version 2.0" for the correct format.
-79722 Numeric character(s) expected
An error occurred during conversion of a String value to an IntervalDF or IntervalYF. A numeric value was expected and not found. Check the "Informix JDBC Driver Programmer's Guide, Version 2.0" for the correct format.
-79723 Delimiter character(s) expected
An error occurred during conversion of a String value to an IntervalDF or IntervalYF. A delimiter was expected and not found. Check the "Informix JDBC Driver Programmer's Guide, Version 2.0" for the correct format.
An error occurred during conversion of a String value to an IntervalDF or IntervalYF. "End of string" was encountered before conversion was complete. Check the "Informix JDBC Driver Programmer's Guide, Version 2.0" for the correct format.
-79725 Extra character(s) found
An error occurred during conversion of a String value to an IntervalDF or IntervalYF. "End of string" was expected, but there were additional characters in the string. Check the "Informix JDBC Driver Programmer's Guide, Version 2.0" for the correct format.
The SQL statement passed in was NULL. Check the SQL statement string of your program to make sure it contains a valid statement.
-79727 Statement was not prepared
The SQL statement was not prepared properly. If you use host variables (for example, "insert into mytab values (?, ?);") in your SQL statement, you must use connection.prepareStatement() to prepare the SQL statement before you can execute it.
If this is a null opapue type then the type if unknown and can not be processed. f this is a complex type then the data in the collection or array are of an unknown type and can not be mapped to an Informix type. If this is a row then one of the elements in a row can not be mapped to a Informix type. Verify the customized type mapping or data type of the object.
-79729 Method cannot take argument
The method does not take an argument. Please refer to your Java API specification or the "Informix JDBC Driver Programmer's Guide, Version 2.0" to make sure you are using the method properly.
-79730 Connection not established
A connection was not established. You must obtain the connection by calling DriverManager.getConnection() first.
You have specified an out of range maxRow value. Make sure you specify a value between 0 and Integer.MAX_VALUE.
The cursor name specified is illegal. Make sure the string passed in is not NULL or empty.
The statement does not contain an active result. Check your program logic to make sure you have called the executeXXX() method before attempting to refer to the result.
-79734 INFORMIXSERVER has to be specified
INFORMIXSERVER is a property required for connecting to an Informix database. You can specify it in the URL or as part of a Properties object that is passed to the connect() method.
-79735 Can't instantiate protocol
An internal error occurred during a connection attempt. Call Informix Technical Support.
-79736 No connection/statement establish yet
There is no current connection or statement. Check your program to make sure a connection was properly established and/or a statement was created.
There is no metadata available for this SQL statement. Make sure the statement generates a resultset before you attempt to use it.
The column name specified does not exist. Make sure the column name is correct.
The cursor is not properly positioned yet. You must first position the cursor within the resultset by using a method such as resultset.next(), resultset.beforefirst(), resultset.first(), or resultset.absolute().
There is no current statement. Make sure the statement was properly created.
There is no data conversion possible from the column data type to the one specified. The actual data type will be appended to the end of this message. Please review your program logic to make sure that the conversion you have asked for is supported. You can refer to the user guide for the data mapping matrix.
No data conversion is possible from the data type you specified to the column data type. The actual data type is appended to the end of this message. Check your program logic to make sure that the conversion you have asked for is supported. Refer to the "Informix JDBC Driver Programmer's Guide, Version 2.0" for the data mapping matrix.
-79744 Transactions not supported
The user has tried to call commit() or rollback() on a database that does not support transactions, or has tried to set autoCommit to false on a non-logging database. Verify that the current database has the correct logging mode and review the program logic.
-79745 Read only mode not supported
Informix does not support readOnly mode.
-79746 No Transaction Isolation on non-logging db's
Informix does not support setting the transaction isolation level on non-logging databases.
-79747 Invalid transaction isolation level
If the server could not complete the rollback, this error occurs. See the rest of the SQLException for more details about why the rollback failed.
This error also occurs if an invalid transaction level is passed to setTransactionIsolation(). The valid values are TRANSACTION_READ_UNCOMMITTED, TRANSACTION_READ_COMMITTED, TRANSACTION_REPEATABLE_READ, and TRANSACTION_SERIALIZABLE.
-79748 Can't lock the connection
The driver normally locks the connection object just before beginning the data exchange with the server. The driver could not obtain the lock. Only one thread at a time should use the connection object.
-79749 Number of input values does not match number of question marks
The number of bind variables that you set using the PreparedStatement.setXXX() methods in this statement does not match the number of "?" place holders that you wrote into the statement. Locate the text of the statement and verify the number of place holders, then check the calls to PreparedStatement.setXXX().
-79750 Method only for queries
Statement.executeQuery(String) and PreparedStatement.executeQuery() should only be used if the statement is a SELECT statement. For other statements use Statement.execute(String), Statement.executeBatch(), Statement.executeUpdate(String), Statement.getUpdateCount(), Statement.getResultSet() or PreparedStatement.executeUpdate().
-79751 Forward fetch only. (in JDBC 1.2)
The resultSet is not set to FETCH_FORWARD. Call Resultset.setFetchDirection(ResultSet.FETCH_FORWARD) to reset the direction.
The object passed in is NULL. Check your program logic to make sure your object reference is valid.
The first token of the URL must be the keyword `jdbc' (case insensitive). For example:
URL: jdbc:informix-sqli://mymachine:1234/mydatabase:user=me:password=secret
The current valid sub-protocol supported by Informix is informix-sqli.
When you connect to an Informix server via an ip address, the ip address must be a valid address. A valid ip address is set of four numbers between 0 and 255 separated by periods (.), for example: 127.0.0.1.
The port number must be a valid 4-digit number, for example:
URL: jdbc:informix-sqli://mymachine:1234/mydatabase:user=me:password=secret
In this example, `1234' is the port number.
This statement contains the name of a database in some invalid format.
The maximum length for database names and cursor names depends on the version of the database server. In 7.x, 8.x, and 9.1x versions, the maximum length is 18 characters. In 9.2 and later versions, the maximum length is 128 characters.
For INFORMIX-SE, database names should be no longer than 10 characters (fewer in some host operating systems).
Both database and cursor names must begin with a letter and contain only letters, numbers, and underscore characters. In the 6.0 and later versions of the database server, database and cursor names can begin with an underscore. In 9.2 and later versions, these names can include dollar sign characters.
In MS-DOS systems, filenames can be a maximum of 8 characters plus a 3-character extension.
-79761 Invalid Property format
The URL accepts property values in `key=value' pairs. For example, `user=informix:password=informix' adds the key/value pairs to the list of properties that are passed to the connection object. Check the syntax of the key/value pair for syntax errors. Make sure there is only one `=' sign; \that there are no spaces separating the key, value, or `='; and that key/value pairs are separated by one colon(:), again with no spaces.
-79762 Attempt to connect to a non 5.x server
When connecting to a version 5.x server, the user must set the URL property USE5SERVER to any non-null value. If a connection is then made to a version 6 or later server, this exception is thrown. Verify that the version of the server is correct and modify the URL as needed.
-79763 Only CONCUR_READ_ONLY is supported
The driver supports only ResultSet.CONCUR_READ_ONLY. You can only call Connection.createStatement(int, int), Connection.prepareStatement(String, int, int), or Connection.CallableStatement(String, int, int) with a result set concurrency value of CONCUR_READ_ONLY.
-79764 Invalid Fetch Direction value
An invalid fetch direction was passed as an argument to Statement.setFetchDirection() or ResultSet.setFetchDirection(). Valid values are FETCH_FORWARD, FETCH_REVERSE, and FETCH_UNKNOWN.
-79765 ResultSet Type is TYPE_FETCH_FORWARD, direction can only be FETCH_FORWARD
The result set type has been set to TYPE_FORWARD_ONLY, but setFetchDirection() has been called with a value other than FETCH_FORWARD. The direction specified must be consistent with the result type specified.
-79766 Incorrect Fetch Size value
Statement.setFetchSize() has been called with an illegal value. Verify that the value passed in is greater than 0. If setMaxRows has been called, the fetch size must not exceed that value.
-79767 ResultSet Type is TYPE_FORWARD_ONLY
A method such as ResultSet.beforFirst(), ResultSet.afterLast(), ResultSet.first(), ResultSet.last(), ResultSet.absolute(), ResultSet.relative(), ResultSet.current(), or ResultSet.previous() has been called, but result set type is TYPE_FORWARD_ONLY. Call only ResultSet.next() if the result set type is TYPE_FORWARD_ONLY.
ResultSet.absolute() has been called with a value of 0. The parameter must be > 0.
-79769 A customized type map is required for this data type
You must register a customized type map to use any opaque types.
-79770 Cannot find the SQLTypeName specified in the SQLData or Struct
The SQLTypename you specified in the SQLData or Struct class does not exist in the database. Make sure that the type name is valid.
-79771 Input value is not valid
The input value is not accepted for this data type. Make sure this is a valid input for this data type.
-79772 No more data to read. Verify your SQLdata class or getSQLTypeName()
You have asked for more data than what is available. Check your SQLData class to make sure it matches what is in the database schema. The SQLTypeName may also be incorrect.
-79774 Unable to create local file
Large Object data read from the server can be stored either in memory or in a local file. If the LOBCACHE value is 0 or the large object size is greater than the LOBCACHE value, the large object data from the server is always stored in a file. In this case, if a Security Exception occurs, the JDBC driver makes no attempt to store the large object into memory and throws this exception.
-79775 Only TYPE_SCROLL_INSENSITIVE and TYPE_FORWARD_ONLY are supported.
The driver currently only supports a result set type of TYPE_SCROLL_INSENSITIVE and TYPE_FORWARD_ONLY. Only these values should be used.
-79776 Type requested (%s) does not match row type information (%s) type
Row type information was acquired either through the system catalogs or through the supplied row definition. The row data provided does not match this row element type. The type information must be modified or the data must be provided.
-79777 readObject/writeObject() only supports UDT's, Distincts and complex types
SQLData.writeObject() was called for an object that is not a user-defined, distinct, or complex type. Verify that you have provided customized type mapping information.
-79778 Type mapping class must be a java.util.Collection implementation
You provided a type mapping to override the default for a set, list, or multiset, but the class does not implement the java.util.Collection interface.
-79780 Data within a collection must all be the same Java class and length.
Verify that all the objects in the collection are of the same class.
-79781 Index/Count out of range
Array.getArray() or Array.getResultSet() was called with index and count values. Either the index is out of range or the count is too big. Verify that the number of elements in the Array is sufficient for the index and count values.
-79782 Method can be called only once
Make sure methods like Statement.getUpdateCount() and Statement.getResultSet() are called only once per result.
-79783 Encoding or code set not supported
The encoding or code set entered in the DB_LOCALE or CLIENT_LOCALE variable is not valid. Check the "Informix JDBC Driver Programmer's Guide, Version 2.0" for valid code sets.
The locale entered in the DB_LOCALE or CLIENT_LOCALE variable is not valid. Check the "Informix JDBC Driver Programmer's Guide, Version 2.0" for valid locales.
-79785 Unable to convert JDBC escape format date string to localized date string
The JDBC escape format for date values must be specified as follows: {d `yyyy-mm-dd'}. Verify that the JDBC escape date format specified is correct. Verify the DBDATE and GL_DATE settings for the correct date string format if either of these was set to a value in the connection URL string or property list.
-79786 Unable to build a Date object based on localized date string representation
The localized date string representation specified in a char, varchar, or lvarchar column is not correct, and because of this a date object cannot be built based on the year, month, and day values. Verify that the date string representation conforms to the DBDATE or GL_DATE date formats if either one of these is specified in a connection URL string or property list. If neither DBDATE or GL_DATE is specified, but a CLIENT_LOCALE or DB_LOCALE is explicitly set in a connection URL string or property list, verify that the date string representation conforms to the JDK short default format (DateFormat.SHORT).
-79788 User name must be specified
The user name is required to establish a connection with this JDBC driver. Please make sure you pass in "user=your_user_name" as part of the URL or one of the properties.
-79789 Server does not support GLS variables DB_LOCALE, CLIENT_LOCALE or GL_DATE
These variables can only be used if the server supports GLS. Check the documentation for your server version and omit these variables if they are not supported.
-79790 Invalid complex type definition string
The value returned by getSQLtypeName() is either null or invalid. Check the string to verify that it is either a valid named-row name or a valid row type definition.
Array.getAttributes() or Array.getAttributes(Map) has returned 0 elements. These methods must return a non-zero number.
-79793 Data in array does not match getBaseType() value
The Array.getArray() or Array.getArray(Map) method returns an array where the element type does not match the JDBC base type.
-79794 Row length provided (%s) doesn't match row type information (%s)
Data in the row does not match the length in the row type information. You do not have to pad string lengths to match what is in the row definition, but lengths for other data types should match.
-79795 Row extended id provided (%s) doesn't match row type information (%s)
The xid of the object in the row does not match the xid as defined in row type information. Either update the row information (if you are providing the row definition) or check the type mapping information.
-79796 Cannot find UDT, distinct or named row (%s) in database
getSQLTypeName() has returned a name that can not be found in the database. Verify that the Struct or SQLData object returns the correct information.
This section describes the known problems with this release of the Informix JDBC Driver and shows how to work around these problems.
If the client java application has set OPTOFC and the server is XPS, the server does not notify the client that the cursor has been closed.
Collections and rows are not supported in opaque types.
Trying to select a multiset(decimal(15)) element from a row results in a stringindexoutofboundsexception:string index out of range:-9 error.
SQL code is not shown in the output when an SQLException is thrown.
For the JDBC Version 2.0 release, all messages are only in English regardless of locale.
Informix JDBC driver 1.4 does not support code set conversion of CLOB or TEXT types. A workaround for TEXT types is described in the section, "Code Set Conversion for TEXT Data Types."
The ResultsetMetaData.getTableName() method returns an empty string when called. It should return a table name.
The browse dialog for selecting the target directory does not work properly for the NT or UNIX installation of Informix JDBC Driver.
Unsupported methods throw exceptions that cause some applications running on hetrogenous database servers to prematurely abort.
Batch update fails if you attempt to insert rows with TEXT or BYTE columns.
When doing string to DATE, TIMESTAMP, or DATETIME conversion, the driver does not take the DBCENTURY setting into account if the year is less then 3 digits.
If the SECURITY=PASSWORD option is not included in the URL when you connect to a CSM enabled server, the application hangs and no error is given.
The setCharacterStream() and getCharacterStream() methods are not supported.
If the Connection.setTransactionIsolation() method is called in the middle of a transaction, it should trigger the commit call, but instead it returns an error.
An OUTOFMEMORYERROR or NEGATIVEARRAYSIZEEXCEPTION error occurs because the stream.readObject() method returns a null instead of returning an error that this is the wrong method to call. Since this is a named row, you should call the getClob() or getBlob() method instead.
The following problems have been fixed since the JDBC Version 1.22 release:
The stores7 demo does not work for all servers.
The error message is misleading when the setTransactionIsolation method() is executed on a connection before a database has been selected.
RMI server database connections fail when you use a JDBC application with Sun's JDK version 1.2.
When you retrieve values into an IntervaLDF (day-to-fraction) object, sometimes you get a NegativeArraySizeException error.
The DatabaseMetaData.getTable() method does not return the correct owner information.
Subtracting two DATETIME values within an SQL statement returns an INTERVAL value, but the driver gives the null ix000 internal error or error -79716.
Selecting a DATE column does not return correct era year when the DBDATE or GL_DATE variable is set to display era years.
The database server converts row type names to lower case, but Informix JDBC driver and the map.put() and map.get() methods do not, so map.put() with a non-lowercase name fails.
The DatabaseMetaData.getCatalogs() method needs to support selecting database names even if the server does not have the sysmaster database. Servers prior to 6.0 do not support the sysmaster database.
If you use the ResultSet.getstring method on a MONEY column, two trailing zeros and a decimal place are absent for even dollar amounts (for example, you get 5 instead of 5.00).
The server name is missing from the message text when you attempt to connect to an instance that is down.
A distinct of an opaque type and a distinct of a complex type are not supported as complex type elements.
The executeUpdate() method raises an exception (sq_err=100) for a DELETE FROM TABLE statement if the table is empty.
The GLS Japanese codeset ja_jp.EUC_JP is not supported in JDBC.
The driver does not work with the Netscape browser when applets are not signed.
The code set "GB" returns the exception "iso2022cn_gb" when you retrieve data.
Clob and Blob types are not supported in complex types.
A distinct type is sometimes cast to a DATETIME MONTH TO DAY type.
The com.informix.jdbc.ifxdriver.acceptsURL() method returns true or throws an exception when the correct result should be false for an invalid URL.
If Resultset.getDate() calls a char or varchar date string representation of the DBDATE setting, this causes SQLException -79716 if the string has a 1-digit month or day.
The DatabaseMetaData.getDatabaseProductVersion() method returns an error instead of the product version.
If all the columns of a table have a particular table-level privilege, such as UPDATE, the DatabaseMetaData.getColumnPrivileges() method returns no rows when executed on the table. If, however, only some of the columns have a particular privilege, then those columns are returned by the method. This is true for all table-level privileges.
When an SQLException is thrown after a database access error, the SQLException object contains the error message and error code, but not the ISAM code.
The following Informix JDBC Driver error messages do not contain the name of the method that caused the error:
-79729 Method can not take argument
-79750 Method only for queries
On UNIX platforms, Informix JDBC driver installation sets directory permissions readable by group but not by all.
If a CHAR column has spaces at the beginning of the string, these spaces are lost when you select this value into a Java string.
Temporary tables created by the databaseMetaData class methods are not dropped when the associated result set object is closed or goes out of scope.
ResultSet.getByte() returns 0 and getShort() returns error 23552 on a decimal value when the value overflows a byte and short value.
A call to driverManager.getConnection() with a URL that does not include the user and password gives error 25563.
The DatabaseMetaData.getImportedKeys() and getExportedKeys() methods return only the 1st element of a composite foreign key.
DatabaseMetaData temporary table data types do not take long id servers into consideration.
Database warnigs are not propagated up to the Connection object on a 5.x server.
Missing keywords in the URL cause the client to crash with classCastException.
You cannot connect using a non-password login account.
Informix JDBC driver always maps a DATETIME column to YEAR TO FRACTION(5) and TIMESTAMP. If the column is HOUR TO SEC, the driver should map this to a TIME column.
Informix JDBC driver memory leak - repeated calls to the Java API executeQuery() method after calling createStatement() cause the session size to grow on the server.
ResultSet becomes null in a large application.
A Type-4 driver crashes a 7.30.FC4 IDS server while querying a TEXT data type.
When multiple threads are executing as a result of a getBestRowIdentifier call, a single connection error is returned.
The "Cannot read network user authorization file" error occurs when multiple threads are sharing a connection.
If a projection list in a SELECT statement includes an NCHAR column, all columns after the NCHAR column contain corrupted data.
In the ResultSet.getBytes() and ResultSet.getBlob() methods, the first postion of a Blob object starts at 0 instead of 1 as the Javasoft documentation specifies.
Interval data is not suported in complex types.
The ClassGenerator utility always maps a DATETIME column to a Timestamp object, when it should map to a Time object.
If you use a SELECT * FROM TAB statement, where TAB is a multibyte japanese table with mb japanese columns, you get a "system or internal error" exception.
If you set SETFETCHSIZE to 10 or any number, an incorrect fetch size exception is given.
Calling the ResultSet.previous() method after calling the ResultSet.afterLast() method does not move the pointer to the previous record even when the record is present.
Inserting CHAR or VARCHAR strings in nested collections results in garbled data if strings are of variable length.
The ResultSetMetaData.getColumns() method returns 2000 as the column type for a BLOB or CLOB column instead of 2004 for BLOB and 2005 for CLOB (types.blob and types.clob).
It is not possible to create a BLOB or CLOB column in a non-default dbspace.
An MI_INTERVAL object is not supported for opaque types.
When the IfxSmartBlob.IfxLoSeek() method is called, an exception is thrown with a null message and error -7532.
The Array.getArray(long, int) method behaves as if the index starts with 0. According to the lastest documentation, it is supposed to start with 1.
The IfxLoRead and IfxLoSeek methods return invalid errors if you seek within a BLOB object beyond the available size and try to read the data.
Fetching a distinct of an opaque column returns the java.sql.sqlexception "can't convert to: int".
The DatabaseMetaData.getUserName() method should return a username to the connection instead of null when a trusted client is used.
The DatabaseMetaData.getColumns() method fails with "(colmin) not found" when Informix JDBC Driver is connected to an INFORMIX-SE database.
The ResultSet.getString() method does not fully support INTERVAL data types when the INTERVAL qualifier is not YEAR TO MONTH or DAY TO SECOND. For example, YEAR TO YEAR is not supported.
Performing an uninstall in NT does not clean up the lib directory.
When you uninstall Informix JDBC Driver in UNIX, the Delete/Confirm dialog box is not shown proportionately. It is shown as a vertical and narrow box.
Several DatabaseMetaData methods return the wrong values. The supportsANSI92IntermediateSQL(), supportsANSI92FullSQL(), supportsOrderByUnrelated(), and supportsOpenCursorsAcrossCommit() methods should all return false. The usesLocalFilePerTable() and usesLocalFiles() methods should return true for an INFORMIX-SE server.
The ClassGenerator utility does not generate the correct code for nested rows.
If the ResultSet.afterLast() method returns ROWID 9, executing the ResultSet.previous() method should return ROWID 7. It should be ROWID 8.
The ResultSet.isBeforeFirst() and isAfterLast() methods are not working correctly.
An NT client and server both transport floating point values as decimals.
The databasemetadata methods usesLocalFiles() and usesLocalFilePerTable() return true if you are using a 5.x online server. They should return false.
The getCatalogs() method returns a null pointer exception for the databasemetadata class.
If you call the databasemetadata getTables() method and provide a specific table or schema, the owner and name qualified by getTables() returns incorrect information.
The message class that gives the full text of an error message, which is similar to the finderr utility, does not work for positive values such as +100.