Informix Error -780
-780 Table/index is not fragmented.
You cannot perform the ALTER FRAGMENT operation because the table or index is not fragmented. Fragment the table or index, or do not perform the fragmentation operation.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-780 fires when ALTER FRAGMENT (a modification requiring an existing fragmentation scheme, such
as DETACH, MODIFY, or naming a specific partition) targets a table/index that was never
fragmented in the first place — per the official guidance, the operation simply doesn't apply.
ALTER FRAGMENTtargeting a table/index that has only a single, unfragmented storage location, per the official guidance — the direct, only cause.- DDL copy-pasted from a fragmented table's maintenance script, applied to a different, unfragmented table by mistake.
Solutions / Resolution
- Fragment the table or index first, per the official guidance, if fragmentation was
genuinely intended for this table:
ALTER FRAGMENT ON TABLE orders INIT FRAGMENT BY EXPRESSION (region = 'east') IN east_dbspace, (region = 'west') IN west_dbspace; - Or don't perform the fragmentation-specific operation, per the official guidance, if the table genuinely isn't meant to be fragmented.
Examples
The disallowed attempt
-- orders has no fragmentation scheme
ALTER FRAGMENT ON TABLE orders DETACH east_partition new_table_name;
-- -780: orders isn't fragmented, so there's no partition to detach
Corrected — establish fragmentation first, if that was the actual goal
ALTER FRAGMENT ON TABLE orders INIT FRAGMENT BY EXPRESSION
(region = 'east') IN east_dbspace, (region = 'west') IN west_dbspace;
Diagnostic Checks
- Confirm the table/index actually has a fragmentation scheme before attempting an
operation that requires one:
SELECT partn FROM sysfragments WHERE tabid = (SELECT tabid FROM systables WHERE tabname = 'orders') AND fragtype = 'T'; -- no rows returned means the table isn't fragmented
Related Errors / Related Topics
- -781 — "Cannot alter fragmentation on a temp table." A related
ALTER FRAGMENTrestriction, specific to temp tables rather than tables that simply were never fragmented.
Confirm the table/index actually has a fragmentation scheme before attempting an operation that requires one.