Fixed #35294 -- Fixed TEXT format of QuerySet.explain() for long plans.

co-authored-by: Gordon <gordon.wrigley@gmail.com>
co-authored-by: Simon Charette <charette.s@gmail.com>
This commit is contained in:
Adam Johnson 2024-03-13 18:10:54 +00:00 committed by Mariusz Felisiak
parent 593067a8ee
commit cbf1e87398
2 changed files with 15 additions and 5 deletions

View file

@ -96,6 +96,15 @@ class ExplainTests(TestCase):
option = "{} {}".format(name.upper(), "true" if value else "false")
self.assertIn(option, captured_queries[0]["sql"])
def test_multi_page_text_explain(self):
if "TEXT" not in connection.features.supported_explain_formats:
self.skipTest("This backend does not support TEXT format.")
base_qs = Tag.objects.order_by()
qs = base_qs.filter(name="test").union(*[base_qs for _ in range(100)])
result = qs.explain(format="text")
self.assertGreaterEqual(result.count("\n"), 100)
def test_option_sql_injection(self):
qs = Tag.objects.filter(name="test")
options = {"SUMMARY true) SELECT 1; --": True}