Important: Unordered profile queries now order by uid
Description
Five query paths of this extension executed without any ordering, so the order of their result was whatever the database happened to yield:
ProfileRepository:: find All () Profilewhenever the demand yields no ordering — which is what the list plugin's Sort by option none meansRepository:: find By Demand () Location,Repository:: find All () FunctionandType Repository:: find All () Organisational, which fill the location, function type and organisational unit selects of the contract form inUnit Repository:: find All () academic_persons_ edit
All five now order by
uid
ascending when nothing else asks for an
order.
Impact
No visible change is expected. Every supported database returned insertion
order for these queries in practice, and
uid
ascending is that same
order — the assertions of the affected functional tests are unchanged, they
are simply guaranteed now rather than coincidental.
What changes is that the order is reproducible. It previously depended on the
database, its version and which indexes existed, and could therefore change
under an installation without any content change. That is not hypothetical:
making the person tables workspace aware in the same release added an index
over
t3ver_, which gave the PostgreSQL planner a way to satisfy the
t3ver_ constraint Extbase adds for a workspace aware table, and
reversed the result of exactly these queries.
The TCA
default_ of the location, function type and organisational
unit tables still does not apply to their
find. That was never
the case and is not changed here — it orders the record lists of the backend,
not the selects of the frontend edit form.
Affected Installations
Every installation of this extension. An installation that already sets a sorting on the list plugin is unaffected either way, because an explicit ordering always won.