-
Raghav Kapoor authored
BACKGROUND: With the push of WL#7467, it was observed that SQL_MODE is changed to wrong value in triggers during live/dump upgrade which is not desired behaviour. ANALYSIS: SQL_MODE for triggers is stored in .TRG files at trigger creation time. If the user upgraded to the version in which WL#7467 was pushed, the value of SQL_MODES in .TRG files started mapping to the new SQL_MODES currently available which was not desired and might lead to wrong behaviour of triggers after upgrade. FIX: As a fix for this issue, the removed SQL_MODES are again introduced for backward compatibility during upgrade. However, Setting NO_ZERO_DATE, NO_ZERO_IN_DATE and ERROR_FOR_DIVISION_BY_ZERO will have no effect and user will get a warning if he tries to explicitly set these modes. NOTE TO DOCUMENTATION: ===================== For stored routines that were created in 5.6 with NO_ZERO_* modes, after upgrade to 5.7, these modes will *not* show up in the output of SHOW CREATE PROC/FUNC/EVENTS/TRIGGERS, and SELECT * FROM information_schema.triggers. Only Select * from mysql.proc and mysql.events table will show the NO_ZERO_* modes after upgrade for the procs/events that were created in 5.6. In 5.7, since we cannot use NO_ZERO_* modes, mysql.proc/mysql.events or even SHOW CREATE will not show any of NO_ZERO_* Modes.
Raghav Kapoor authoredBACKGROUND: With the push of WL#7467, it was observed that SQL_MODE is changed to wrong value in triggers during live/dump upgrade which is not desired behaviour. ANALYSIS: SQL_MODE for triggers is stored in .TRG files at trigger creation time. If the user upgraded to the version in which WL#7467 was pushed, the value of SQL_MODES in .TRG files started mapping to the new SQL_MODES currently available which was not desired and might lead to wrong behaviour of triggers after upgrade. FIX: As a fix for this issue, the removed SQL_MODES are again introduced for backward compatibility during upgrade. However, Setting NO_ZERO_DATE, NO_ZERO_IN_DATE and ERROR_FOR_DIVISION_BY_ZERO will have no effect and user will get a warning if he tries to explicitly set these modes. NOTE TO DOCUMENTATION: ===================== For stored routines that were created in 5.6 with NO_ZERO_* modes, after upgrade to 5.7, these modes will *not* show up in the output of SHOW CREATE PROC/FUNC/EVENTS/TRIGGERS, and SELECT * FROM information_schema.triggers. Only Select * from mysql.proc and mysql.events table will show the NO_ZERO_* modes after upgrade for the procs/events that were created in 5.6. In 5.7, since we cannot use NO_ZERO_* modes, mysql.proc/mysql.events or even SHOW CREATE will not show any of NO_ZERO_* Modes.
Loading