Ref T11404. Depends on D16351. Currently, both differential.query and differential.revision.search issue 2N queries to fetch:
- dependencies for each revision; and
- projects for each revision.
Fix this:
- Take these custom fields out of Conduit so they don't load this data by default.
- For differential.query, put this data back in by hard coding it.
- For differential.revision.search, just leave it out. You can already optionally get projects efficiently, and this endpoint is a work in progress. I would tentatively be inclined to expose graph data as a "graph" extension once we need it.
This makes both methods execute in O(1) time (which is still 20-30 queries, but at least it's not 320 queries anymore).