Page MenuHomePhabricator

[PageAssessments] db/addProjectsTable.sql : Error: 1071 Specified key was too long; max key length is 767 bytes
Open, Needs TriagePublic

Description

When running MySQL/MariaDB with charset utf8mb4, a character is 4 bytes. Hence a key created on a VARCHAR(255) takes 255 characters * 4 bytes/characters = 1020 bytes. However Innodb defaults to a maximum of 767 bytes for an index.

The extension fails to install on Debian Stretch which uses utf8mb4 as the default charset:

Query: CREATE UNIQUE INDEX pap_project_title ON  page_assessments_projects (pap_project_title)

Function: Wikimedia\Rdbms\Database::sourceFile( /workspace/src/extensions/PageAssessments/src/../db/addProjectsTable.sql )
Error: 1071 Specified key was too long; max key length is 767 bytes (localhost:/tmp/quibble-mysql-m3atn8f1/socket)

Event Timeline

hashar created this task.May 1 2018, 7:32 PM
Restricted Application added a project: Community-Tech. · View Herald TranscriptMay 1 2018, 7:32 PM
Restricted Application added a subscriber: Aklapper. · View Herald Transcript

@hashar Can you provide some more context on this ticket?

Please don't take any action yet, while the bug is real, maybe it should be solved on core, not with a schema change.

Vvjjkkii renamed this task from [PageAssessments] db/addProjectsTable.sql : Error: 1071 Specified key was too long; max key length is 767 bytes to xudaaaaaaa.Jul 1 2018, 1:12 AM
Vvjjkkii triaged this task as High priority.
Vvjjkkii updated the task description. (Show Details)
Vvjjkkii removed a subscriber: Aklapper.
Mainframe98 renamed this task from xudaaaaaaa to [PageAssessments] db/addProjectsTable.sql : Error: 1071 Specified key was too long; max key length is 767 bytes.Jul 1 2018, 11:45 AM
Mainframe98 raised the priority of this task from High to Needs Triage.
Mainframe98 updated the task description. (Show Details)
Mainframe98 added a subscriber: Aklapper.