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
F18974631: D21400.diff
Sat, Nov 15, 10:39 PM
F18905898: D21400.id51039.diff
Sat, Nov 8, 4:03 PM
F18864994: D21400.id50940.diff
Mon, Nov 3, 9:38 AM
F18817721: D21400.id.diff
Oct 21 2025, 5:46 PM
F18809501: D21400.id.diff
Oct 19 2025, 2:36 PM
F18804364: D21400.diff
Oct 18 2025, 7:43 AM
F18767069: D21400.id.diff
Oct 7 2025, 8:28 PM
F18763330: D21400.id51039.diff
Oct 6 2025, 11:49 PM
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
Lint
Lint Not Applicable
Unit
Tests Not Applicable