Page MenuHomePhabricator

Detect MySQL when ONLY_FULL_GROUP_BY is enabled
Closed, ResolvedPublic

Description

I've seen at least three tickets over on GitHub where people are having issues installing Phabricator due to a rare? Mysql setting. Maybe it can be detected and warned upon.

https://github.com/phacility/phabricator/issues/689
https://github.com/phacility/phabricator/issues/727
https://github.com/phacility/phabricator/issues/505#issuecomment-44231362

Event Timeline

chad raised the priority of this task from to Low.
chad updated the task description. (Show Details)
chad added subscribers: chad, epriestley.

It's not very rare, it's just that MySQL (by default) will allow non-standard behavior for the GROUP BY clause.

The query from github issue 689 groups on the p.id column, but it's impossible (from the database's point of view) to tell which values to pick for all non-grouped columns. With ONLY_FULL_GROUP_BY turned off, you can basically get any value that it in a grouped set of rows.

Practically speaking, this probably isn't a big issue. However, it can lead to very strange (and difficult to find) bugs.

Yeah, we might want the opposite, to always have it on and fix our queries. I'll leave that question to @epriestley

Support Impact We interact with this option badly, in a way that prevents installation or breaks installs with no clear path forward.