Page MenuHomePhabricator

Require rows passed to "loadAllFromArray()" have unique keys
ClosedPublic

Authored by epriestley on Jul 9 2020, 5:56 PM.
Tags
None
Referenced Files
F19929897: D21400.id50940.diff
Wed, Apr 8, 6:45 PM
F19924845: D21400.diff
Tue, Apr 7, 8:23 AM
F19845975: D21400.diff
Mar 12 2026, 9:12 AM
F19823796: D21400.id51039.diff
Mar 7 2026, 3:26 PM
F19822964: D21400.id51039.diff
Mar 7 2026, 9:36 AM
F19822198: D21400.id51039.diff
Mar 7 2026, 3:36 AM
F19822197: D21400.id51039.diff
Mar 7 2026, 3:35 AM
F19822195: D21400.id51039.diff
Mar 7 2026, 3:35 AM
Subscribers
None

Details

Summary

See PHI1809, which identified a bug in Project search where queries with a large number of slugs could paginate improperly.

This change detects problems in this category: cases where multiple rows with the same ID are passed to "loadAllFromArray()". It's likely that all cases it detects are cases where a GROUP BY is missing.

Since this might have some false positives or detect some things which aren't fundamentally problematic, I'm planning to hold it until the next release.

Test Plan
  • Reverted D21399, then created a project with multiple slugs and queried for one of them via "project.search". Hit this new exeception.
  • Browsed around a bit, didn't immediately catch any collateral damage.

Diff Detail

Repository
rP Phabricator
Branch
unique1
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 24759
Build 34145: Run Core Tests
Build 34144: arc lint + arc unit