Informix Error -883
-883 Cannot evaluate the fragmentation expression.
A fragmentation expression in your program is invalid. Check the expression, and correct it. Check the logic of that expression. Also, some components of that expression might be NULL or might not represent existing or defined elements such as columns, hash values, ranges, index key values, and so on.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-883 fires when a fragmentation expression can't actually be evaluated — per the official guidance, either the expression's own logic is invalid, or some component of it (a column, hash value, range, index key value) is NULL or doesn't represent something that actually exists or is defined.
- A logic error in the fragmentation expression itself, per the official guidance — the expression doesn't correctly express the intended fragmentation rule.
- A NULL component within the expression, per the official guidance — a value the expression depends on turned out to be NULL when evaluated.
- A reference to a column, hash value, range, or index key value that doesn't exist or isn't defined, per the official guidance — the expression names something the server can't resolve.
Solutions / Resolution
- Check the fragmentation expression and correct it, per the official guidance.
- Check the expression's logic, per the official guidance, for a design error.
- Check for NULL components, per the official guidance, and for references to columns/ranges/index key values that don't actually exist or aren't defined — correct any that are missing or misnamed.
Examples
Checking the row's actual fragmentation-key value
SELECT region FROM orders WHERE order_id = 42;
Compare against the fragmentation expression's logic to identify where it fails to evaluate for this specific row's data.
Diagnostic Checks
- Review the fragmentation expression's logic for a design error.
- Check for NULL values or nonexistent references among the expression's components.
Related Errors / Related Topics
- -772 — "Record/key doesn't qualify for any table/index fragment." A related fragmentation error, about a row not matching any fragment (the expression evaluates fine, just doesn't cover this row), rather than the expression itself failing to evaluate.
- -791 — "Cannot find fragment for the row." A related interval-fragmentation error, in the same general family.
The expression itself can't be evaluated — check for NULL components and references to nonexistent columns/ranges/key values, not just the expression's logic.