- Verschifft
- 25. August 2026 um 18:14 UTC
- Autor
- Kamo
- Ausschuss
- 8ed40d7
Hibernate schreibt CHECK (col = 0 UND col <= N) über einen @Enumerierten(ORDINAL) Spalte bei CREATE TABLE, wo N das höchste Ordinal ist, das existierte Tag, und ddl-auto: Update nie wieder besucht es. Der Tag, an dem jemand ein enum Wert, jede Einlage mit dem neuen Ordinal wird abgelehnt - und weil die ausfallende Anweisung ist in der Regel innerhalb einer @Transaktionsmethode, der Rollback entfernt die Beweise und die Funktion einfach nichts. Zwei von ihnen waren bereits voll und schon Dinge zu brechen, gefunden, während Überprüfung, ob die EHR den Dokumentenmanager wiederverwenden könnte, anstatt zu bauen eine zweite: - Die fünf ImageAssocType-Prüfungen erlauben 0-13. Das Enum erreichte Ordinal 15 Vor einiger Zeit. PICTURE_FRAME und SYSTEM_BUG_SCREENSHOT können daher nicht einen Ordner, einen doc-Typ, eine Stackverfügung, eine assoc config oder einen Ordner HEUTE. Nichts berichtet es; die Reihe erscheint einfach nie. - img_dats_server_mime_check erlaubt 0-35 und ImageMimeType genau 36 - einen neuen Mime-Typ, der davon entfernt ist, jeden Upload dieses Typs abzulehnen. Eine zweite, breitere Einschränkung (check_server_mime, 0-99) saß bereits auf der gleiche Säule, so dass die schmale reine Haftung war: die strengere Kontrolle immer gewinnt. img_dats_age_req_typeid_check war ebenso genau voll bei Neun Werte gegen 0-8. Gefallen statt ausgebreitet, nach der ständigen Regel. Widening kauft genau ein weiterer Enum-Wert und reproduziert dann das gleiche Versagen, mit einer Migration dazwischen, dass jeder wird glauben, es behoben. Der Bereich erzwingt nichts entweder zu haben: die Anwendung Karten diese Spalten durch das enum beides, so dass ein Wert außerhalb der Reichweite nicht von der Anwendung stammen kann, und eine außerhalb geschrieben ist es ein Fehler der Scheck konvertiert in eine stille Versagen statt eines Fehlers, den jemand sieht.