Fix an issue where a GROUP BY was missing when a query matched a revision using multi...
commit2a83df578604cf5229ff95e8108985c2e0b0e97c
authorepriestley <git@epriestley.com>
Wed, 16 Sep 2020 00:13:21 +0000 (15 17:13 -0700)
committerepriestley <git@epriestley.com>
Wed, 16 Sep 2020 00:36:42 +0000 (15 17:36 -0700)
tree2b065732ed5efa047aa607436b47b37288d9ca87
parent6f78e2a91c88657dbc6956a86a8a1db1b126e0de
Fix an issue where a GROUP BY was missing when a query matched a revision using multiple hashes

Summary:
Ref T13581. If you query for revisions by hash and provide multiple hashes (A, B) which match a single revision (e.g., older and newer diffs for that revision), the query omits a GROUP BY clause but should contain one.

Add a GROUP BY clause in this case.

Test Plan:
With a working copy that has multiple hashes corresponding to a single revision, ran `arc branches` before and after the change. Before, got this error:

```
[2020-09-15 17:02:07] EXCEPTION: (ConduitClientException) ERR-CONDUIT-CORE: Rows passed to "loadAllFromArray(...)" include two or more rows with the same ID ("130"). Rows must have unique IDs. An underlying query may be missing a GROUP BY. at [<arcanist>/src/conduit/ConduitFuture.php:65]
```

After, clean execution.

Maniphest Tasks: T13581

Differential Revision: https://secure.phabricator.com/D21462
src/applications/differential/query/DifferentialRevisionQuery.php