#20507 closed Bug (fixed)
SubqueryConstraint doesn't relabel aliases correctly
Reported by: | Anssi Kääriäinen | Owned by: | nobody |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | dev |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Accepted | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
SubqueryConstraint (added in #19385) doesn't correctly handle relabeling of aliases. The problem is that SubqueryConstraint defines relabeled_clone(), but due to SubqueryConstraint being added directly to wherenode as children, not part of a children, the relabeled_clone() isn't ever called.
To trigger this bug one needs to do for example a double __in
lookup (that is, lookup with __in=qs
where the qs has a __in=qs2
lookup itself), or __in=qs
+ combine of query.
This can be fixed by adding clone() and relabel_aliases() methods to SubqueryConstraint.
This bug is present in 1.6-alpha-1.
In d467e117856a7fa6da5e90471144aaa82d822065: