id,summary,reporter,owner,description,type,status,component,version,severity,resolution,keywords,cc,stage,has_patch,needs_docs,needs_tests,needs_better_patch,easy,ui_ux 7056,Query.as_sql() has side effects for select_related queries,Erin Kelly,nobody,"Each time Query.as_sql() is called on a select_related query, the list of select columns grows again. Presumably Query.pre_sql_setup() should only get called once? For example: {{{ In [39]: qs = Species.objects.all().select_related(depth=1) In [40]: qs.query.as_sql() Out[40]: ('SELECT ""TEST_SPECIES"".""ID"", ""TEST_SPECIES"".""NAME"", ""TEST_SPECIES"".""GENUS_ID"", ""TEST_GENUS"".""ID"", ""TEST_GENUS"".""NAME"", ""TEST_GENUS"".""FAMILY_ID"" FROM ""TEST_SPECIES"" INNER JOIN ""TEST_GENUS"" ON (""TEST_SPECIES"".""GENUS_ID"" = ""TEST_GENUS"".""ID"")', ()) In [41]: qs.query.as_sql() Out[41]: ('SELECT ""TEST_SPECIES"".""ID"", ""TEST_SPECIES"".""NAME"", ""TEST_SPECIES"".""GENUS_ID"", ""TEST_GENUS"".""ID"", ""TEST_GENUS"".""NAME"", ""TEST_GENUS"".""FAMILY_ID"", ""TEST_SPECIES"".""ID"", ""TEST_SPECIES"".""NAME"", ""TEST_SPECIES"".""GENUS_ID"", ""TEST_GENUS"".""ID"", ""TEST_GENUS"".""NAME"", ""TEST_GENUS"".""FAMILY_ID"" FROM ""TEST_SPECIES"" INNER JOIN ""TEST_GENUS"" ON (""TEST_SPECIES"".""GENUS_ID"" = ""TEST_GENUS"".""ID"")', ()) }}}",,closed,"Database layer (models, ORM)",queryset-refactor,,fixed,qs-rf,,Accepted,0,0,0,0,0,0