Informix - Problem description
Problem IT28832 | Status: Closed |
DATABASE USING SQL_LOGICAL_CHAR > 1 CAUSING MIGRATION FAILURE DURING UPGRADE TO VERSION 14.10 | |
product: | |
INFORMIX SERVER / 5725A3900 / E10 - | |
Problem description: | |
In version 14.10 databases receive a bunch of new 'any' functions, for querying SET collections of various types, one of them being: create dba function informix.any(set(varchar(255) not null)) returns varchar(255) with (iterator) external name '(collany_char)' language C not variant; While this statement would not be possible to run in a (UTF8) database having been created with SQL_LOGICAL_CHAR={2|3|4}, the UDR still seems to be present in such database newly created in v14.10. If instead migrating such existing database from a previous version, the SQL conversion would fail with: 17:11:20 Converting database test_slc ... 17:11:20 Execution of the following statement failed. If you are currently in conversion, you may have to restore from level 0 archive, take corrective action and then restart conversion. 17:11:20 create dba function informix.any(set(varchar(255) not null)) returns varchar(255) with (iterator) external name '(collany_char)' language C not variant; 17:11:20 Conversion failed with SQLCODE = -650 ISAMCODE = 0 17:11:20 The conversion of the database test_slc has failed. | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * Users of IDS 14.10.xC1. * **************************************************************** * PROBLEM DESCRIPTION: * * DATABASE USING SQL_LOGICAL_CHAR > 1 CAUSING MIGRATION * * FAILURE * * DURING UPGRADE TO VERSION 14.10 * **************************************************************** * RECOMMENDATION: * **************************************************************** | |
Local Fix: | |
A workaround seems to be removing/commenting the three 'varchar(255)' variants of the new 'any' UDR from $INFORMIXDIR/etc/boot1410XC1.sql file: create dba function informix.any(set(varchar(255) not null)) create dba function informix.any(list(varchar(255) not null)) create dba function informix.any(multiset(lvarchar not null)) and their respective 'grant execute' statements. Use with caution, though. | |
Solution | |
Workaround | |
not known / see Local fix | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 17.04.2019 19.09.2019 19.09.2019 |
Problem solved at the following versions (IBM BugInfos) | |
14.10.xC2 | |
Problem solved according to the fixlist(s) of the following version(s) |