Informix - Problem description
Problem IT15514 | Status: Closed |
USING MORE THAN ONE COLLECTION IN A SINGLE SELECT CAN LEAD TO MEMORY CORRUPTION | |
product: | |
INFORMIX SERVER / 5725A3900 / C10 - IDS 12.10 | |
Problem description: | |
Running a query like select func1(MULTISET(SELECT col2 FROM tab1 WHERE col1 in ('A'))), func1(MULTISET(SELECT col2 FROM tab2 WHERE col1 in ('A'))) from tab3 can result in a memory corruption. In this example col1 is defined as varchar(30) in tab1 and as varchar(50) in tab2. The memory corruption will then be a set off 0x20 bytes (blank characters) overwriting the start of a memory block. When looking into the memory corruption closer you will see the varchar string stored in col1 of tab2 padded with blank characters which spill out into the next memory block header. | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * informix users * **************************************************************** * PROBLEM DESCRIPTION: * * See Error Description * **************************************************************** * RECOMMENDATION: * * Update to IBM Informix Server 12.10.xC7 * **************************************************************** | |
Local Fix: | |
When you turn the order of columns in the select around or change col2 of tab1 so that it has at least the size of col2 of tab2 the situation can be prevented. | |
Solution | |
Workaround | |
not known / see Local fix | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 31.05.2016 09.12.2016 09.12.2016 |
Problem solved at the following versions (IBM BugInfos) | |
12.10.xC7 | |
Problem solved according to the fixlist(s) of the following version(s) |