Project

General

Profile

Actions

Feature proposal #8238

closed

Implement MySQL 8.0.17+ compatibility

Added by krileon over 3 years ago. Updated over 3 years ago.

Status:
Closed
Priority:
Urgent
Assignee:
Target version:
Start date:
17 November 2020
Due date:
% Done:

100%

Estimated time:

Description

Currently installing CB on MySQL 8.0 will cause various compatibility errors. Joomla does not currently officially support MySQL 8.0 in Joomla 3.x, but likely will with 4.x. See below regarding issues found and fixed in Joomla for MySQL 8.0 compatibility.

https://github.com/joomla/joomla-cms/issues/25452
- https://github.com/joomla/joomla-cms/pull/25658

It results in errors like the following during install.

Unknown column 'access' in 'field list'

It is likely the cause of the below topics issues as well.

https://www.joomlapolis.com/forum/146-general/242740-update-error-message
https://www.joomlapolis.com/forum/255-developer-members-support/234006-installation-errors-with-new-packages

Actions #1

Updated by beat over 3 years ago

  • Status changed from New to Assigned
  • Assignee set to beat
  • Priority changed from Normal to Urgent
  • % Done changed from 0 to 30

MR !1598 fixes the database check tool for int and tinyint that are missing size/width since MySQL 8.0.17.

See https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-19.html

Actions #2

Updated by beat over 3 years ago

  • % Done changed from 30 to 100

Actually, that fix also fixes the 'access' column issue.

That change has been made in MySQL 8.0.17, released 2019-07-22: https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-17.html

And has been documented with 8.0.19 release notes on 2020-01-13: https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-19.html

Therefore any forum reports before 2019-07-22 are not the same incompatibility, but might be related to just another database issue with viewaccess column width/sizes that got changed and prompted a new initial value ?.

I could reproduce that access-column issue behavior with a wrong width set to viewaccesslevel in database.

But the initialvalue query doesn't make sense anyway if the column exists and is NOT null, as only NULL columns are updated.

I also removed that old viewaccesslevel upgrade dating from 2014 (introduced in Joomla 2).

Actions #3

Updated by beat over 3 years ago

Full explanation in first reply here: https://stackoverflow.com/questions/60892749/mysql-8-ignoring-integer-lengths

The "length" of an integer column doesn't mean anything. A column of int(11) is the same as int(2) or int(40). They are all a fixed-size, 32-bit integer data type. They support the same minimum and maximum value.

The "length" of integer columns has been a confusing feature of MySQL for years. It's only a hint that affects the display width, not the storage or the range of values. Practically, it only matters when you use the ZEROFILL option.

Actions #4

Updated by beat over 3 years ago

  • Status changed from Assigned to Closed
  • Target version changed from CB 2.8 to CB 2.4.7
Actions #5

Updated by beat over 3 years ago

  • Subject changed from Implement MySQL 8.0 compatibility to Implement MySQL 8.0.17+ compatibility
Actions

Also available in: Atom PDF