53.2. pg_aggregate
  The catalog
  
   pg_aggregate
  
  stores information about
   aggregate functions.  An aggregate function is a function that
   operates on a set of values (typically one column from each row
   that matches a query condition) and returns a single value computed
   from all these values.  Typical aggregate functions are
  
   sum
  
  ,
  
   count
  
  , and
  
   max
  
  .  Each entry in
  
   pg_aggregate
  
  is an extension of an entry
   in
  
   
    pg_proc
   
  
  .
   The
  
   pg_proc
  
  entry carries the aggregate's name,
   input and output data types, and other information that is similar to
   ordinary functions.
 
   
    Table 53.2. 
    
     pg_aggregate
    
    Columns
   
  
| 
        Column Type Description  | 
     
|---|
| 
        
         
          | 
     
| 
        
         
        Aggregate kind:
          | 
     
| 
        
         
        Number of direct (non-aggregated) arguments of an ordered-set or
       hypothetical-set aggregate, counting a variadic array as one argument.
       If equal to
          | 
     
| 
        
         Transition function  | 
     
| 
        
         Final function (zero if none)  | 
     
| 
        
         Combine function (zero if none)  | 
     
| 
        
         Serialization function (zero if none)  | 
     
| 
        
         Deserialization function (zero if none)  | 
     
| 
        
         Forward transition function for moving-aggregate mode (zero if none)  | 
     
| 
        
         Inverse transition function for moving-aggregate mode (zero if none)  | 
     
| 
        
         Final function for moving-aggregate mode (zero if none)  | 
     
| 
        
         
        True to pass extra dummy arguments to
          | 
     
| 
        
         
        True to pass extra dummy arguments to
          | 
     
| 
        
         
        Whether
          | 
     
| 
        
         
        Like
          | 
     
| 
        
         Associated sort operator (zero if none)  | 
     
| 
        
         Data type of the aggregate function's internal transition (state) data  | 
     
| 
        
         Approximate average size (in bytes) of the transition state data, or zero to use a default estimate  | 
     
| 
        
         Data type of the aggregate function's internal transition (state) data for moving-aggregate mode (zero if none)  | 
     
| 
        
         Approximate average size (in bytes) of the transition state data for moving-aggregate mode, or zero to use a default estimate  | 
     
| 
        
         The initial value of the transition state. This is a text field containing the initial value in its external string representation. If this field is null, the transition state value starts out null.  | 
     
| 
        
         The initial value of the transition state for moving-aggregate mode. This is a text field containing the initial value in its external string representation. If this field is null, the transition state value starts out null.  | 
     
  New aggregate functions are registered with the
  
   
    CREATE AGGREGATE
   
  
  command.  See
  
   Section 38.12
  
  for more information about
   writing aggregate functions and the meaning of the transition
   functions, etc.