For instances using a MySQL database, MySQL's InnoDB engine (Antelope version) is used for the tables the platform creates. This InnoDB engine version enables the definition of a table schema where the row size can theoretically surpass the 8126-byte limit.
Although all field types can contribute to the row size limit, usually any table with many large string (mediumtext) columns is more likely to be at risk.
Steps to Reproduce
- Create a new table extending task.
- Add 6 mediumtext fields (string fields with max_length > 4000) to the task table.
- Add 6 mediumtext fields to the new table.
- Create a new record in the new table, populating more than 768 characters into each of the 12 fields just created.
- Try to insert the record.
Note that the record insert is canceled, and the following error message is displayed:
... Row size too large ( > 8126). Changing some columns to TEXT or BLOB using ...
When this exception is encountered, file an incident with Customer Support and reference the problem number PRB617735.
A new plugin introduced in Helsinki Patch 6 and later creates a new "_offrow" table in which to keep these large, problematic columns. Moving one or more elements (and their data) that contribute the most to the table's overall row size into offrow storage enables you to work around the limitation. Access to installation and use of the new plugin is restricted (for now) to ServiceNow personnel. Customer Support will work with you to identify and, if possible, migrate the elements that can be moved into offrow storage.
To filter on all tables and columns related to the Task table you can use the following filters;
Only ServiceNow maintenance users can use this functionality and it should be considered a last resort for cases where building smart relational architecture is not an option.
Because moving fields "offrow" could have performance implications, typically our advice is to store additional data in a relational model on a table not extending any other table (minimizing the number of columns on the task table or its children). This gives you much more room to expand the number of fields in the future.
Related Problem: PRB617735