Opened 3 years ago

Last modified 3 years ago

#33435 closed Cleanup/optimization

Since django 3.0 Subquery.as_sql() generates invalid SQL — at Initial Version

Reported by: M1ha Shvn Owned by: nobody
Component: Database layer (models, ORM) Version: dev
Severity: Normal Keywords: subquery, as_sql
Cc: Simon Charette Triage Stage: Ready for checkin
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: yes UI/UX: no

Description

Since this commit Subquery.as_sql(...) method returns incorrect SQL removing first and last symbols instead of absent breakets:

from django.db import connection
from apps.models import App

q = Subquery(App.objects.all())

print(str(q.query))

# Output SQL is valid:
#  'SELECT "apps_app"."id", "apps_app"."name" FROM "apps_app"'

print(q.as_sql(q.query.get_compiler('default'), connection))

# Outptut SQL is invalid (no S letter at the beggining and " symbol at the end):
# ('(ELECT "apps_app"."id", "apps_app"."name" FROM "apps_app)', ())

Change History (0)

Note: See TracTickets for help on using tickets.
Back to Top