QuerySet evaluation docs are out of date
    
    
    
      
      
      
        
The docs for QuerySet contain a reference to partial evaluation of queryset and a warning that explicitly calling list(qs) requires more memory than just iterating over a queryset.
As far as I can see, anytime a QuerySet is evaluated, all results are pulled from the database at once, stored in _result_cache and most list-like operations are simply proxied to this cache. This means that there is no partial evaluation going on anymore, and list(qs) simply creates a shallow copy of qs._result_cache.
       
     
   
 
      
        
        
          Change History
          (7)
        
          
          
  
  
  
    
      | Triage Stage: | Unreviewed → Accepted | 
    
      | Type: | Uncategorized → Bug | 
  
 
           
          
          
  
  
  
    
      | Triage Stage: | Accepted → Ready for checkin | 
  
 
           
          
  
  
  
    
      | Resolution: | → fixed | 
    
      | Status: | new → closed | 
  
 
           
          
          
          
         
       
     
        
    
    
I created a simple pull request (https://github.com/django/django/pull/3507) as well and while I was in there, I also added a note regarding #22503. If anyone wants to suggest a different wording, no problem.