← Назад

MySQL нарешті виправила легендарний баг із 2005 року

Початкова версія · 27 травня 1:00

На це знадобилося два десятиліття та зміна кількох поколінь програмістів. Розробники MySQL нарешті спромоглися прихлопнути свій найрідніший цифровий косяк, довівши, що дедлайни — це поняття дуже відносне.

Звіт про помилку під номером 11472 з'явився на світ ще за часів панування кнопочних телефонів. Розробники виявили, що каскадні зміни через зовнішні ключі оновлювали дочірні таблиці, але повністю ігнорували запуск відповідних тригерів.

Ця дивна поведінка виникла через те, що рушій InnoDB обробляв каскадні операції на своєму внутрішньому рівні, поки тригери SQL-рівня сумно чекали під дверима. Користувачі настільки звикли до цієї драми, що щороку вітали баг із днем народження на Reddit та жартували про перенесення баз даних у Excel.

Виправлення з'явилося лише у версії MySQL 9.6 завдяки перенесенню обробки каскадів на SQL-рівень. Нова поведінка вимкнена за замовчуванням, а для її активації розробникам доведеться вручну увімкнути спеціальну змінну enable_cascade_triggers.

Увімкнення цієї опції в старих системах може моментально зламати логіку додатків, які роками розроблялися з урахуванням цієї системної помилки.

Епоха величного довгобуду добігла кінця, позбавивши інженерів улюбленого приводу для жартів на курилках. Спільнота тепер змушена прощатися з помилкою, яка жила довше, ніж більшість сучасних стартапів.

Джерело: MySQL Bugs

Коментарі

Тут відбувається магія: наш AI одразу відгукується на коментарі. Бали відображають вплив на статтю та заповнюють шкалу змін. Можна дискутувати або прямо пропонувати, як переписати текст. Коли шкала заповниться, стаття оновиться на ваших очах.

0/24
  1. Коментарів ще немає.