If you are looking for the full RFC, go to T112637
This task's scope is:
- switching to MariaDB's Strict Mode, first on CI (T119371), then on production
- Make it so that DB insert/update that would overflow would error out rather than be silently truncated
- Generally promote better use of MariaDB by making many things fail precommit and/or fail loudly in production rather than failing quietly
Options discussed:
- sql_mode = 'TRADITIONAL' (equivalent to STRICT_TRANS_TABLES, STRICT_ALL_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER)
- sql_mode = ONLY_FULL_GROUP_BY
Often, our non-strict usage is a fountain of bugs and security issues.
Slide by @jcrespo that explains it: https://www.slideshare.net/jynus/query-optimization-with-mysql-57-and-mariadb-10-even-newer-tricks/43 and https://www.slideshare.net/jynus/query-optimization-with-mysql-57-and-mariadb-10-even-newer-tricks/44