Informix Error -4491
-4491 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.