Update query catching and comparison for Django 4.2.
Review Request #13453 — Created Dec. 7, 2023 and submitted — Latest diff uploaded
The new query catching and comparison code introduced in Djblets 3.4
wasn't quite compatible with Django 4.2, due to some changes in how some
queries and Q-expressions are built.
COUNT(*)
queries are now generated slightly differently, with
different internals, affecting query expectations. This has been
updated in Djblets's tests, but this will impact consumers of query
comparison code outside of Djblets as well.SQLite query syntax has changed for some operations, affecting Djblets
unit tests.
~Q(...)
negated expressions are now represented differently
internally, using aNegatedExpression
(a subclass of
ExpressionWrapper
). These are now supported, serialized, represented,
and compared correctly.
Unit tests pass.