Informix Error -4491: The parameter name has been changed.
Cause and resolution
The parameter name has been changed.
More than one copy of the function prototype has occurred in the current scope, and the one indicated by this message has specified a different name for a formal parameter than that specified by any prototypes already encountered.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-4491 fires when more than one copy of a function prototype appears in scope, and one of them names a formal parameter differently than the others — per the official guidance, all prototype copies for the same function must agree on parameter names.
- Multiple function prototype copies disagreeing on a formal parameter's name, per the official guidance — the direct, only cause.
Solutions / Resolution
- Make all prototype copies use the same parameter name.
Examples
Disagreeing parameter names across prototype copies
FUNCTION save(order_id INTEGER) RETURNING INTEGER
...
FUNCTION save(id INTEGER) RETURNING INTEGER
-- -4491: the parameter is named "order_id" in one copy, "id" in the other
Corrected
FUNCTION save(order_id INTEGER) RETURNING INTEGER
Diagnostic Checks
- Check every prototype copy of the function, and make their parameter names consistent.
Related Errors / Related Topics
- -4053 — "Function "name" has already been declared with a different prototype." A related function-redeclaration error, about the argument count/type disagreeing rather than just the parameter's name.
- -4492 — "Warning: The parameter is assigned a new default value." A related prototype-consistency warning, about disagreeing default values rather than parameter names.
Multiple prototype copies of a function disagree on a parameter's name — make them consistent.