Informix Error -2920
-2920 The column column is a dominant column but it is not indexed.
Performance will be much improved by creating an index on the column.You have defined the indicated column as dominant in a verify join. Whenever the operator enters a value in the field, it will be looked up in this column. Such a lookup operation is very quick when an index is present. No index on the column exists at this time. Without one, a lookup might be extremely slow. Unless the field does not allow operator input (in which case you should remove the asterisk) or the table is very small (a few dozen rows at most), you should create an index for this column before you put the form into use.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-2920 is a compiler warning about a performance risk, not a hard error — per the official guidance, a column marked dominant in a verify join is looked up every time the operator enters a value in the field, and without an index that lookup can be extremely slow.
- A dominant verify-join column with no index defined on it, per the official guidance — the direct cause.
Solutions / Resolution
- Create an index on the dominant column, per the official guidance, unless the field doesn't allow operator input (in which case remove the asterisk instead) or the table is very small (a few dozen rows at most).
Examples
Adding the missing index
CREATE INDEX idx_customer_cust_id ON customer (cust_id);
Removing dominance when input isn't allowed
ATTRIBUTES
cust_id = customer.cust_id, NOENTRY;
-- no lookup happens on a NOENTRY field, so an index isn't needed here;
-- remove the leading * that marked it dominant
Diagnostic Checks
- Check whether the dominant column has an index, and either create one, remove the dominance marker if the field disallows entry, or confirm the table is small enough that the lack of an index is acceptable.
Related Errors / Related Topics
- -2857 — "There can be only one dominant composite column in a join list." A related dominant-column rule, about only one dominant column being permitted per join list, rather than a missing index on one.
A dominant verify-join column has no index — create one, unless the field disallows entry or the table is very small.