Reject YEAR(2) in PHP DDL
authorTim Düsterhus <duesterhus@woltlab.com>
Tue, 8 Feb 2022 09:15:21 +0000 (10:15 +0100)
committerTim Düsterhus <duesterhus@woltlab.com>
Tue, 8 Feb 2022 09:15:21 +0000 (10:15 +0100)
Length 2 for YEAR columns is not supported by MySQL 8 and not really useful for
older versions either:

https://dev.mysql.com/doc/refman/8.0/en/year.html

> MySQL 8.0 does not support the 2-digit YEAR(2) data type permitted in older
> versions of MySQL. For instructions on converting to 4-digit YEAR, see
> 2-Digit YEAR(2) Limitations and Migrating to 4-Digit YEAR, in MySQL 5.7
> Reference Manual.

wcfsetup/install/files/lib/system/database/table/column/YearDatabaseTableColumn.class.php

index 19b90cc840536e078608b41411d6caedd1a41ac0..e73306f63463a5966931f3fc2fbc99872dac01a6 100644 (file)
@@ -25,8 +25,8 @@ class YearDatabaseTableColumn extends AbstractDatabaseTableColumn implements ILe
      */
     protected function validateLength($length)
     {
-        if ($length !== 2 && $length !== 4) {
-            throw new \InvalidArgumentException("Only '2' and '4' are valid lengths for year columns");
+        if ($length !== 4) {
+            throw new \InvalidArgumentException("Only '4' is a valid length for year columns.");
         }
     }
 }