You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
produces an ordering on (LeftCol1, LeftCol2, LeftId), which is acceptable. However, the fact that the query needs to be constructed in this manner is very non-obvious.
in the past, the consolidator needs the query results to be ordered. this constrait was dropped in #1743 but the behaviour has not changed. removing the default order by is a break I want to avoid, but I agree users should be given the preference if they want to override the ordering
That makes sense. I think just calling attention in documentation to the fact that find_with_related introduces an ordering would be valuable for now, since the current behavior is very surprising.
The workaround I noted (placing the order_by calls beforefind_by_related) isn't terrible or anything—it's just not very intuitive—so maybe even a small note explaining it as an option would probably cover most ordering use cases for the time being.
Description
find_with_related
implicitly adds anorder by
on the left table's id. This is extremely unintuitive; for instance:generates a query that is ordered by
(LeftId, LeftCol1, LeftCol2)
rather than(LeftCol1, LeftCol2)
, as might be expected.Steps to Reproduce
find_with_related
that includes anorder_by
after thefind_with_related
.build(..).to_string()
itorder by left.id asc
prepended to itExpected Behavior
In the example case from the description, I would expect the ordering to be
(LeftCol1, LeftCol2)
.Actual Behavior
In the example case from the description, the actual ordering is
(LeftId, LeftCol1, LeftCol2)
.Reproduces How Often
Deterministically.
Workarounds
Placing the
order_by
before thefind_with_related
, like so:produces an ordering on
(LeftCol1, LeftCol2, LeftId)
, which is acceptable. However, the fact that the query needs to be constructed in this manner is very non-obvious.Reproducible Example
See description
Versions
The text was updated successfully, but these errors were encountered: