Important: Remaining unordered queries now order by uid
Description
The sweep that ordered the unordered profile queries (see Important: Unordered profile queries now order by uid) missed five query paths, which kept returning rows in whatever order the database yielded:
Contract, which builds every contract select item in the backend (TCARepository:: find All () itemsand FlexForm)Proc Func Contract, which resolves the contracts of the "selected contracts" pluginRepository:: find By Uids () Profile, which resolves the profiles of the "selected profiles" pluginRepository:: find By Uids () Profile, which resolves the profiles of a frontend user for the frontend editing ofRepository:: find By Frontend User () academic_persons_ edit Profilewith a non-empty demanded ordering — the list plugin's Sort by — which carried no tiebreaker, so profiles equal in it (two people sharing a last name) had no defined relative orderRepository:: find By Demand ()
The first four now order by
uid
ascending; the demanded ordering keeps
winning and gets
uid
ascending appended as a tiebreaker.
Three further methods ordered by
sorting
alone:
Address,
Email and
Phone, which list the
contact records of a contract for the frontend editing. Records an editor
never reordered share a
sorting
value, and their relative order was
whatever the database yielded. All three now append
uid
ascending as
the tiebreaker.
Impact
No visible change is expected:
uid
ascending is the order every
supported database returned in practice, it is simply guaranteed now rather
than coincidental.
For the two uid selection methods the order of the editor's selection is
deliberately not reproduced —
in does not preserve it, and it was
never delivered before. Honouring the selection order would be a behaviour
change beyond making the lists reproducible.
Affected Installations
Every installation of this extension.