 
        org.apache.spark.sql.catalyst.analysis.Analyzer
 
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
       
      
    
      Name for this rule, automatically inferred based on class name.
Name for this rule, automatically inferred based on class name.
 
      
    
       
      
    
       
      
    
       
      
    
       
      
    
      
Extracts WindowExpressions from the projectList of a Project operator and aggregateExpressions of an Aggregate operator and creates individual Window operators for every distinct WindowSpecDefinition.
This rule handles three cases:
For every case, the transformation works as follows: 1. For a list of Expressions (a projectList or an aggregateExpressions), partitions it two lists of Expressions, one for all WindowExpressions and another for all regular expressions. 2. For all WindowExpressions, groups them based on their WindowSpecDefinitions. 3. For every distinct WindowSpecDefinition, creates a Window operator and inserts it into the plan tree.