Informix Error -33066: Cursor/statement ids <id-1> and <id-2> are not unique in first </id-2></id-1> 128 characters when prefixed by module name.
Cause and resolution
Cursor/statement ids <id-1> and <id-2> are not unique in first </id-2></id-1> 128 characters when prefixed by module name.
When you use the -local preprocessing option, cursor and statement names are prefixed with a unique tag that is generated from the module name. (On UNIX, the inode number of the source program is used as the unique tag.) In this case, <id-1> and <id-2> are at least 124 characters long, and their first 123 characters do not differ. As a result, they are the same when the tag is added and the result is trimmed to 128 characters. </id-2></id-1>
Change the two names to avoid name collision and try again.
This message applies to IBM Informix Dynamic Server 9.2 or later.
-33066 Cursor/statement ids <id-1> and <id-2> are not unique in first 18 characters when prefixed by module name. </id-2></id-1>
When you use the -local preprocessing option, cursor and statement names are prefixed with a unique tag that is generated from the module name. (On UNIX, the inode number of the source program is used as the unique tag.) In this case, <id-1> and <id-2> are at least 14 characters long, and their first 13 characters do not differ. As a result, they are the same when the tag is added and the result is trimmed to 18 characters. </id-2></id-1>
Change the two names to avoid name collision and try again.
This message applies to IBM Informix Extended Parallel Server, IBM Informix Dynamic Server with Advanced Decision Support and Extended Parallel Options, IBM Informix OnLine XPS, IBM Informix Dynamic Server, IBM Informix Universal Server, IBM Informix OnLine Dynamic Server, and IBM Informix SE.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-33066 fires when using the -local preprocessing option — per the official guidance,
cursor/statement names get prefixed with a unique tag derived from the module name (the
source file's inode number on UNIX). Two names collide if their first 123 characters (on
IBM Informix Dynamic Server 9.2+, whose limit is 128 characters after tagging) or first 13
characters (on earlier servers, whose limit is 18 characters after tagging) are identical,
since they become the same after the tag is added and the result is trimmed.
- Two cursor/statement names identical in their first 123 (or 13, on older servers)
characters, per the official guidance — the direct, only cause; they collide once
the
-localmodule tag is appended and the result trimmed to the server's identifier limit.
Solutions / Resolution
- Change the two names to avoid the collision, and try again, per the official guidance.
Examples
N/A
No specific triggering statement is documented beyond two colliding -local-tagged
names.
Diagnostic Checks
- Check the two flagged names' first 123 (or 13) characters, and rename one to differ within that range.
Related Errors / Related Topics
- -33065 — "Cursor/statement id 'name' is too long when prefixed by module name." A
related
-local-tagging error, on one over-length name rather than two colliding names.
Two -local-tagged cursor/statement names collided after trimming to the server's
identifier limit — rename one so they differ within the untrimmed portion.