Bug #117026 Documentation change about FLOAT/DOUBLE and AUTO_INCREMENT
Submitted: 19 Dec 21:29 Modified: 20 Dec 5:24
Reporter: Juan Arruti Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: Documentation Severity:S3 (Non-critical)
Version:8.4.3 OS:Any
Assigned to: CPU Architecture:Any

[19 Dec 21:29] Juan Arruti
Description:
Hi,

If a column on 8.0 is FLOAT or DOUBLE and has AUTO_INCREMENT the upgrade to 8.4.3 is not possible.

How to repeat:
$ dbdeployer deploy single /opt/mysql/8.0.39/ --port=$(getport) --force
$ ./use -e "create table test.t1 (c1 float auto_increment primary key)"

# Starting the same data directory with 8.4.3 binaries fails: 
2024-12-10T02:00:22.307639Z 0 [System] [MY-015015] [Server] MySQL Server - start.
2024-12-10T02:00:22.539252Z 0 [System] [MY-010116] [Server] /opt/mysql/8.4.3/bin/mysqld (mysqld 8.4.3) starting as process 2957081
2024-12-10T02:00:22.547410Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2024-12-10T02:00:31.623952Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2024-12-10T02:00:32.525595Z 1 [System] [MY-011090] [Server] Data dictionary upgrading from version '80023' to '80300'.
2024-12-10T02:00:56.540159Z 1 [ERROR] [MY-015118] [Server] AUTO_INCREMENT is not supported with DOUBLE/FLOAT field. Please consider fixing (Schema:test, Table:t1, Column:c1).
2024-12-10T02:00:56.543658Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2024-12-10T02:00:56.543692Z 0 [ERROR] [MY-010119] [Server] Aborting
2024-12-10T02:00:57.826621Z 0 [System] [MY-010910] [Server] /opt/mysql/8.4.3/bin/mysqld: Shutdown complete (mysqld 8.4.3)  MySQL Community Server - GPL.
2024-12-10T02:00:57.826653Z 0 [System] [MY-015016] [Server] MySQL Server - end.

Moreover, the MySQL Upgrade Checker Utility correctly reports upgrade won't be possible:

$ mysql-shell-8.4.3-linux-glibc2.28-x86-64bit/bin/mysqlsh -- util checkForServerUpgrade root@localhost:29453 --target-version=8.4.3 --config-path=msb_8_0_39/my.sandbox.cnf
	
9) Checks for errors in column definitions (columnDefinition)
   Identifies column definitions that may not be supported in future versions
   of MySQL

   test.t1.c1 - The column is of type FLOAT and has the AUTO_INCREMENT flag
      set, this is no longer supported.

Finally, 8.4.3 documentation on https://dev.mysql.com/doc/refman/8.4/en/numeric-type-attributes.html says the following:

AUTO_INCREMENT is deprecated for FLOAT and DOUBLE columns; you should expect support for it to be removed in a future version of MySQL. Consider removing the AUTO_INCREMENT attribute from such columns to avoid potential compatibility issues, or convert them to an integer type.

Suggested fix:
Please change the documentation, mentioning it's no longer supported, and the upgrade will fail.

Thanks!
[20 Dec 5:24] MySQL Verification Team
Hello Juan Arruti,

Thank you for the report and feedback.

regards,
Umesh