Currently we have two flags:
These flags were originally added to control how to treat warnings that happen on updating table fields for transactional and non-transactional tables.
Gradually these flags spread all around the code to change the server behavior in contexts not directly related to tables, such as:
- SP variables, SP routine parameters, function return values
- Built-in SQL functions (e.g. badly formed strings)
- Too long comments
- Too long messages in SIGNAL
- Duplicate values in ENUM/SET
- Automatic VARCHAR -> BLOB conversion
During recent discussions we agreed (Bar, Elena, Serg) that STRICT_XXX_TABLES should not affect anything when no tables are involved.
To address this, we'll introduce a new STRICT_XXX flag that will control server behavior when no tables are involved.
The exact flags name is a subject to discussion.