public class org.h2.expression.aggregate.Aggregate extends org.h2.expression.aggregate.AbstractAggregate
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.expression.aggregate.Aggregate
  super_class: org.h2.expression.aggregate.AbstractAggregate
{
  private static final java.util.HashMap<java.lang.String, org.h2.expression.aggregate.AggregateType> AGGREGATES;
    descriptor: Ljava/util/HashMap;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/HashMap<Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;>;

  private final org.h2.expression.aggregate.AggregateType aggregateType;
    descriptor: Lorg/h2/expression/aggregate/AggregateType;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.util.ArrayList<org.h2.command.dml.SelectOrderBy> orderByList;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/ArrayList<Lorg/h2/command/dml/SelectOrderBy;>;

  private org.h2.result.SortOrder orderBySort;
    descriptor: Lorg/h2/result/SortOrder;
    flags: (0x0002) ACC_PRIVATE

  private static volatile int[] $SWITCH_TABLE$org$h2$expression$aggregate$AggregateType;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 55
            new java.util.HashMap
            dup
            bipush 64
            invokespecial java.util.HashMap.<init>:(I)V
            putstatic org.h2.expression.aggregate.Aggregate.AGGREGATES:Ljava/util/HashMap;
         1: .line 86
            ldc "COUNT"
            getstatic org.h2.expression.aggregate.AggregateType.COUNT:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
         2: .line 87
            ldc "SUM"
            getstatic org.h2.expression.aggregate.AggregateType.SUM:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
         3: .line 88
            ldc "MIN"
            getstatic org.h2.expression.aggregate.AggregateType.MIN:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
         4: .line 89
            ldc "MAX"
            getstatic org.h2.expression.aggregate.AggregateType.MAX:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
         5: .line 90
            ldc "AVG"
            getstatic org.h2.expression.aggregate.AggregateType.AVG:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
         6: .line 91
            ldc "LISTAGG"
            getstatic org.h2.expression.aggregate.AggregateType.LISTAGG:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
         7: .line 93
            ldc "GROUP_CONCAT"
            getstatic org.h2.expression.aggregate.AggregateType.LISTAGG:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
         8: .line 95
            ldc "STRING_AGG"
            getstatic org.h2.expression.aggregate.AggregateType.LISTAGG:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
         9: .line 96
            ldc "STDDEV_SAMP"
            getstatic org.h2.expression.aggregate.AggregateType.STDDEV_SAMP:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        10: .line 97
            ldc "STDDEV"
            getstatic org.h2.expression.aggregate.AggregateType.STDDEV_SAMP:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        11: .line 98
            ldc "STDDEV_POP"
            getstatic org.h2.expression.aggregate.AggregateType.STDDEV_POP:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        12: .line 99
            ldc "STDDEVP"
            getstatic org.h2.expression.aggregate.AggregateType.STDDEV_POP:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        13: .line 100
            ldc "VAR_POP"
            getstatic org.h2.expression.aggregate.AggregateType.VAR_POP:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        14: .line 101
            ldc "VARP"
            getstatic org.h2.expression.aggregate.AggregateType.VAR_POP:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        15: .line 102
            ldc "VAR_SAMP"
            getstatic org.h2.expression.aggregate.AggregateType.VAR_SAMP:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        16: .line 103
            ldc "VAR"
            getstatic org.h2.expression.aggregate.AggregateType.VAR_SAMP:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        17: .line 104
            ldc "VARIANCE"
            getstatic org.h2.expression.aggregate.AggregateType.VAR_SAMP:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        18: .line 105
            ldc "ANY"
            getstatic org.h2.expression.aggregate.AggregateType.ANY:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        19: .line 106
            ldc "SOME"
            getstatic org.h2.expression.aggregate.AggregateType.ANY:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        20: .line 108
            ldc "BOOL_OR"
            getstatic org.h2.expression.aggregate.AggregateType.ANY:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        21: .line 109
            ldc "EVERY"
            getstatic org.h2.expression.aggregate.AggregateType.EVERY:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        22: .line 111
            ldc "BOOL_AND"
            getstatic org.h2.expression.aggregate.AggregateType.EVERY:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        23: .line 112
            ldc "SELECTIVITY"
            getstatic org.h2.expression.aggregate.AggregateType.SELECTIVITY:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        24: .line 113
            ldc "HISTOGRAM"
            getstatic org.h2.expression.aggregate.AggregateType.HISTOGRAM:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        25: .line 114
            ldc "BIT_OR"
            getstatic org.h2.expression.aggregate.AggregateType.BIT_OR:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        26: .line 115
            ldc "BIT_AND"
            getstatic org.h2.expression.aggregate.AggregateType.BIT_AND:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        27: .line 117
            ldc "RANK"
            getstatic org.h2.expression.aggregate.AggregateType.RANK:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        28: .line 118
            ldc "DENSE_RANK"
            getstatic org.h2.expression.aggregate.AggregateType.DENSE_RANK:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        29: .line 119
            ldc "PERCENT_RANK"
            getstatic org.h2.expression.aggregate.AggregateType.PERCENT_RANK:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        30: .line 120
            ldc "CUME_DIST"
            getstatic org.h2.expression.aggregate.AggregateType.CUME_DIST:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        31: .line 122
            ldc "PERCENTILE_CONT"
            getstatic org.h2.expression.aggregate.AggregateType.PERCENTILE_CONT:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        32: .line 123
            ldc "PERCENTILE_DISC"
            getstatic org.h2.expression.aggregate.AggregateType.PERCENTILE_DISC:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        33: .line 124
            ldc "MEDIAN"
            getstatic org.h2.expression.aggregate.AggregateType.MEDIAN:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        34: .line 126
            ldc "ARRAY_AGG"
            getstatic org.h2.expression.aggregate.AggregateType.ARRAY_AGG:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        35: .line 127
            ldc "MODE"
            getstatic org.h2.expression.aggregate.AggregateType.MODE:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        36: .line 129
            ldc "STATS_MODE"
            getstatic org.h2.expression.aggregate.AggregateType.MODE:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        37: .line 130
            ldc "ENVELOPE"
            getstatic org.h2.expression.aggregate.AggregateType.ENVELOPE:Lorg/h2/expression/aggregate/AggregateType;
            invokestatic org.h2.expression.aggregate.Aggregate.addAggregate:(Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
        38: .line 131
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.h2.expression.aggregate.AggregateType, org.h2.expression.Expression[], org.h2.command.dml.Select, boolean);
    descriptor: (Lorg/h2/expression/aggregate/AggregateType;[Lorg/h2/expression/Expression;Lorg/h2/command/dml/Select;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // org.h2.expression.aggregate.Aggregate this
        start local 1 // org.h2.expression.aggregate.AggregateType aggregateType
        start local 2 // org.h2.expression.Expression[] args
        start local 3 // org.h2.command.dml.Select select
        start local 4 // boolean distinct
         0: .line 75
            aload 0 /* this */
            aload 3 /* select */
            aload 2 /* args */
            iload 4 /* distinct */
            invokespecial org.h2.expression.aggregate.AbstractAggregate.<init>:(Lorg/h2/command/dml/Select;[Lorg/h2/expression/Expression;Z)V
         1: .line 76
            iload 4 /* distinct */
            ifeq 3
            aload 1 /* aggregateType */
            getstatic org.h2.expression.aggregate.AggregateType.COUNT_ALL:Lorg/h2/expression/aggregate/AggregateType;
            if_acmpne 3
         2: .line 77
            invokestatic org.h2.message.DbException.throwInternalError:()Ljava/lang/RuntimeException;
            athrow
         3: .line 79
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.expression.aggregate.AggregateType org.h2.expression.Expression[] org.h2.command.dml.Select int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* aggregateType */
            putfield org.h2.expression.aggregate.Aggregate.aggregateType:Lorg/h2/expression/aggregate/AggregateType;
         4: .line 80
            return
        end local 4 // boolean distinct
        end local 3 // org.h2.command.dml.Select select
        end local 2 // org.h2.expression.Expression[] args
        end local 1 // org.h2.expression.aggregate.AggregateType aggregateType
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lorg/h2/expression/aggregate/Aggregate;
            0    5     1  aggregateType  Lorg/h2/expression/aggregate/AggregateType;
            0    5     2           args  [Lorg/h2/expression/Expression;
            0    5     3         select  Lorg/h2/command/dml/Select;
            0    5     4       distinct  Z
    MethodParameters:
               Name  Flags
      aggregateType  
      args           
      select         
      distinct       

  private static void addAggregate(java.lang.String, org.h2.expression.aggregate.AggregateType);
    descriptor: (Ljava/lang/String;Lorg/h2/expression/aggregate/AggregateType;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String name
        start local 1 // org.h2.expression.aggregate.AggregateType type
         0: .line 134
            getstatic org.h2.expression.aggregate.Aggregate.AGGREGATES:Ljava/util/HashMap;
            aload 0 /* name */
            aload 1 /* type */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 135
            return
        end local 1 // org.h2.expression.aggregate.AggregateType type
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  name  Ljava/lang/String;
            0    2     1  type  Lorg/h2/expression/aggregate/AggregateType;
    MethodParameters:
      Name  Flags
      name  
      type  

  public static org.h2.expression.aggregate.AggregateType getAggregateType(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/h2/expression/aggregate/AggregateType;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String name
         0: .line 147
            getstatic org.h2.expression.aggregate.Aggregate.AGGREGATES:Ljava/util/HashMap;
            aload 0 /* name */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.expression.aggregate.AggregateType
            areturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public void setOrderByList(java.util.ArrayList<org.h2.command.dml.SelectOrderBy>);
    descriptor: (Ljava/util/ArrayList;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.expression.aggregate.Aggregate this
        start local 1 // java.util.ArrayList orderByList
         0: .line 157
            aload 0 /* this */
            aload 1 /* orderByList */
            putfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
         1: .line 158
            return
        end local 1 // java.util.ArrayList orderByList
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/h2/expression/aggregate/Aggregate;
            0    2     1  orderByList  Ljava/util/ArrayList<Lorg/h2/command/dml/SelectOrderBy;>;
    Signature: (Ljava/util/ArrayList<Lorg/h2/command/dml/SelectOrderBy;>;)V
    MethodParameters:
             Name  Flags
      orderByList  

  public org.h2.expression.aggregate.AggregateType getAggregateType();
    descriptor: ()Lorg/h2/expression/aggregate/AggregateType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.expression.aggregate.Aggregate this
         0: .line 166
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.aggregateType:Lorg/h2/expression/aggregate/AggregateType;
            areturn
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/expression/aggregate/Aggregate;

  private void sortWithOrderBy(org.h2.value.Value[]);
    descriptor: ([Lorg/h2/value/Value;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.h2.expression.aggregate.Aggregate this
        start local 1 // org.h2.value.Value[] array
         0: .line 170
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderBySort:Lorg/h2/result/SortOrder;
            astore 2 /* sortOrder */
        start local 2 // org.h2.result.SortOrder sortOrder
         1: .line 171
            aload 2 /* sortOrder */
            ifnull 4
         2: .line 172
            aload 1 /* array */
            new org.h2.expression.aggregate.Aggregate$1
            dup
            aload 0 /* this */
            aload 2 /* sortOrder */
            invokespecial org.h2.expression.aggregate.Aggregate$1.<init>:(Lorg/h2/expression/aggregate/Aggregate;Lorg/h2/result/SortOrder;)V
            invokestatic java.util.Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V
         3: .line 178
            goto 5
         4: .line 179
      StackMap locals: org.h2.result.SortOrder
      StackMap stack:
            aload 1 /* array */
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.select:Lorg/h2/command/dml/Select;
            invokevirtual org.h2.command.dml.Select.getSession:()Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getCompareMode:()Lorg/h2/value/CompareMode;
            invokestatic java.util.Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V
         5: .line 181
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.h2.result.SortOrder sortOrder
        end local 1 // org.h2.value.Value[] array
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/h2/expression/aggregate/Aggregate;
            0    6     1      array  [Lorg/h2/value/Value;
            1    6     2  sortOrder  Lorg/h2/result/SortOrder;
    MethodParameters:
       Name  Flags
      array  

  protected void updateAggregate(org.h2.engine.Session, java.lang.Object);
    descriptor: (Lorg/h2/engine/Session;Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.h2.expression.aggregate.Aggregate this
        start local 1 // org.h2.engine.Session session
        start local 2 // java.lang.Object aggregateData
         0: .line 185
            aload 2 /* aggregateData */
            checkcast org.h2.expression.aggregate.AggregateData
            astore 3 /* data */
        start local 3 // org.h2.expression.aggregate.AggregateData data
         1: .line 186
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            arraylength
            ifne 2
            aconst_null
            goto 3
      StackMap locals: org.h2.expression.aggregate.AggregateData
      StackMap stack:
         2: aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            iconst_0
            aaload
            aload 1 /* session */
            invokevirtual org.h2.expression.Expression.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
      StackMap locals:
      StackMap stack: org.h2.value.Value
         3: astore 4 /* v */
        start local 4 // org.h2.value.Value v
         4: .line 187
            aload 0 /* this */
            aload 1 /* session */
            aload 3 /* data */
            aload 4 /* v */
            aconst_null
            invokevirtual org.h2.expression.aggregate.Aggregate.updateData:(Lorg/h2/engine/Session;Lorg/h2/expression/aggregate/AggregateData;Lorg/h2/value/Value;[Lorg/h2/value/Value;)V
         5: .line 188
            return
        end local 4 // org.h2.value.Value v
        end local 3 // org.h2.expression.aggregate.AggregateData data
        end local 2 // java.lang.Object aggregateData
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lorg/h2/expression/aggregate/Aggregate;
            0    6     1        session  Lorg/h2/engine/Session;
            0    6     2  aggregateData  Ljava/lang/Object;
            1    6     3           data  Lorg/h2/expression/aggregate/AggregateData;
            4    6     4              v  Lorg/h2/value/Value;
    MethodParameters:
               Name  Flags
      session        
      aggregateData  

  private void updateData(org.h2.engine.Session, org.h2.expression.aggregate.AggregateData, org.h2.value.Value, org.h2.value.Value[]);
    descriptor: (Lorg/h2/engine/Session;Lorg/h2/expression/aggregate/AggregateData;Lorg/h2/value/Value;[Lorg/h2/value/Value;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // org.h2.expression.aggregate.Aggregate this
        start local 1 // org.h2.engine.Session session
        start local 2 // org.h2.expression.aggregate.AggregateData data
        start local 3 // org.h2.value.Value v
        start local 4 // org.h2.value.Value[] remembered
         0: .line 191
            invokestatic org.h2.expression.aggregate.Aggregate.$SWITCH_TABLE$org$h2$expression$aggregate$AggregateType:()[I
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.aggregateType:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            iaload
            tableswitch { // 17 - 26
                   17: 12
                   18: 12
                   19: 12
                   20: 12
                   21: 32
                   22: 32
                   23: 40
                   24: 1
                   25: 9
                   26: 37
              default: 40
          }
         1: .line 193
      StackMap locals:
      StackMap stack:
            aload 3 /* v */
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            if_acmpeq 3
         2: .line 194
            aload 0 /* this */
            aload 1 /* session */
            aload 3 /* v */
            bipush 13
            invokevirtual org.h2.value.Value.convertTo:(I)Lorg/h2/value/Value;
            aload 4 /* remembered */
            invokevirtual org.h2.expression.aggregate.Aggregate.updateCollecting:(Lorg/h2/engine/Session;Lorg/h2/value/Value;[Lorg/h2/value/Value;)Lorg/h2/value/Value;
            astore 3 /* v */
         3: .line 196
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            arraylength
            iconst_2
            if_icmplt 40
         4: .line 197
            aload 2 /* data */
            checkcast org.h2.expression.aggregate.AggregateDataCollecting
         5: .line 198
            aload 4 /* remembered */
            ifnull 6
            aload 4 /* remembered */
            iconst_1
            aaload
            goto 7
      StackMap locals:
      StackMap stack: org.h2.expression.aggregate.AggregateDataCollecting
         6: aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            iconst_1
            aaload
            aload 1 /* session */
            invokevirtual org.h2.expression.Expression.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
         7: .line 197
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session org.h2.expression.aggregate.AggregateData org.h2.value.Value org.h2.value.Value[]
      StackMap stack: org.h2.expression.aggregate.AggregateDataCollecting org.h2.value.Value
            invokevirtual org.h2.expression.aggregate.AggregateDataCollecting.setSharedArgument:(Lorg/h2/value/Value;)V
         8: .line 200
            goto 40
         9: .line 202
      StackMap locals:
      StackMap stack:
            aload 3 /* v */
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            if_acmpeq 40
        10: .line 203
            aload 0 /* this */
            aload 1 /* session */
            aload 3 /* v */
            aload 4 /* remembered */
            invokevirtual org.h2.expression.aggregate.Aggregate.updateCollecting:(Lorg/h2/engine/Session;Lorg/h2/value/Value;[Lorg/h2/value/Value;)Lorg/h2/value/Value;
            astore 3 /* v */
        11: .line 205
            goto 40
        12: .line 210
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            arraylength
            istore 5 /* count */
        start local 5 // int count
        13: .line 211
            iload 5 /* count */
            anewarray org.h2.value.Value
            astore 6 /* a */
        start local 6 // org.h2.value.Value[] a
        14: .line 212
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        15: goto 20
        16: .line 213
      StackMap locals: int org.h2.value.Value[] int
      StackMap stack:
            aload 6 /* a */
            iload 7 /* i */
            aload 4 /* remembered */
            ifnull 17
            aload 4 /* remembered */
            iload 7 /* i */
            aaload
            goto 18
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session org.h2.expression.aggregate.AggregateData org.h2.value.Value org.h2.value.Value[] int org.h2.value.Value[] int
      StackMap stack: org.h2.value.Value[] int
        17: aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            iload 7 /* i */
            aaload
            aload 1 /* session */
            invokevirtual org.h2.expression.Expression.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session org.h2.expression.aggregate.AggregateData org.h2.value.Value org.h2.value.Value[] int org.h2.value.Value[] int
      StackMap stack: org.h2.value.Value[] int org.h2.value.Value
        18: aastore
        19: .line 212
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 7 /* i */
            iload 5 /* count */
            if_icmplt 16
        end local 7 // int i
        21: .line 215
            aload 2 /* data */
            checkcast org.h2.expression.aggregate.AggregateDataCollecting
            aload 6 /* a */
            invokestatic org.h2.value.ValueRow.get:([Lorg/h2/value/Value;)Lorg/h2/value/ValueRow;
            invokevirtual org.h2.expression.aggregate.AggregateDataCollecting.setSharedArgument:(Lorg/h2/value/Value;)V
        22: .line 216
            iload 5 /* count */
            anewarray org.h2.value.Value
            astore 6 /* a */
        23: .line 217
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        24: goto 29
        25: .line 218
      StackMap locals:
      StackMap stack:
            aload 6 /* a */
            iload 7 /* i */
            aload 4 /* remembered */
            ifnull 26
            aload 4 /* remembered */
            iload 5 /* count */
            iload 7 /* i */
            iadd
            aaload
            goto 27
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session org.h2.expression.aggregate.AggregateData org.h2.value.Value org.h2.value.Value[] int org.h2.value.Value[] int
      StackMap stack: org.h2.value.Value[] int
        26: aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            iload 7 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.command.dml.SelectOrderBy
            getfield org.h2.command.dml.SelectOrderBy.expression:Lorg/h2/expression/Expression;
            aload 1 /* session */
            invokevirtual org.h2.expression.Expression.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session org.h2.expression.aggregate.AggregateData org.h2.value.Value org.h2.value.Value[] int org.h2.value.Value[] int
      StackMap stack: org.h2.value.Value[] int org.h2.value.Value
        27: aastore
        28: .line 217
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 7 /* i */
            iload 5 /* count */
            if_icmplt 25
        end local 7 // int i
        30: .line 220
            aload 6 /* a */
            invokestatic org.h2.value.ValueRow.get:([Lorg/h2/value/Value;)Lorg/h2/value/ValueRow;
            astore 3 /* v */
        31: .line 221
            goto 40
        end local 6 // org.h2.value.Value[] a
        end local 5 // int count
        32: .line 225
      StackMap locals:
      StackMap stack:
            aload 2 /* data */
            checkcast org.h2.expression.aggregate.AggregateDataCollecting
            aload 3 /* v */
            invokevirtual org.h2.expression.aggregate.AggregateDataCollecting.setSharedArgument:(Lorg/h2/value/Value;)V
        33: .line 226
            aload 4 /* remembered */
            ifnull 34
            aload 4 /* remembered */
            iconst_1
            aaload
            goto 35
      StackMap locals:
      StackMap stack:
        34: aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            iconst_0
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.command.dml.SelectOrderBy
            getfield org.h2.command.dml.SelectOrderBy.expression:Lorg/h2/expression/Expression;
            aload 1 /* session */
            invokevirtual org.h2.expression.Expression.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
      StackMap locals:
      StackMap stack: org.h2.value.Value
        35: astore 3 /* v */
        36: .line 227
            goto 40
        37: .line 229
      StackMap locals:
      StackMap stack:
            aload 4 /* remembered */
            ifnull 38
            aload 4 /* remembered */
            iconst_0
            aaload
            goto 39
      StackMap locals:
      StackMap stack:
        38: aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            iconst_0
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.command.dml.SelectOrderBy
            getfield org.h2.command.dml.SelectOrderBy.expression:Lorg/h2/expression/Expression;
            aload 1 /* session */
            invokevirtual org.h2.expression.Expression.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
      StackMap locals:
      StackMap stack: org.h2.value.Value
        39: astore 3 /* v */
        40: .line 234
      StackMap locals:
      StackMap stack:
            aload 2 /* data */
            aload 1 /* session */
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            aload 3 /* v */
            invokevirtual org.h2.expression.aggregate.AggregateData.add:(Lorg/h2/engine/Database;Lorg/h2/value/Value;)V
        41: .line 235
            return
        end local 4 // org.h2.value.Value[] remembered
        end local 3 // org.h2.value.Value v
        end local 2 // org.h2.expression.aggregate.AggregateData data
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   42     0        this  Lorg/h2/expression/aggregate/Aggregate;
            0   42     1     session  Lorg/h2/engine/Session;
            0   42     2        data  Lorg/h2/expression/aggregate/AggregateData;
            0   42     3           v  Lorg/h2/value/Value;
            0   42     4  remembered  [Lorg/h2/value/Value;
           13   32     5       count  I
           14   32     6           a  [Lorg/h2/value/Value;
           15   21     7           i  I
           24   30     7           i  I
    MethodParameters:
            Name  Flags
      session     
      data        
      v           
      remembered  

  protected void updateGroupAggregates(org.h2.engine.Session, int);
    descriptor: (Lorg/h2/engine/Session;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.h2.expression.aggregate.Aggregate this
        start local 1 // org.h2.engine.Session session
        start local 2 // int stage
         0: .line 239
            aload 0 /* this */
            aload 1 /* session */
            iload 2 /* stage */
            invokespecial org.h2.expression.aggregate.AbstractAggregate.updateGroupAggregates:(Lorg/h2/engine/Session;I)V
         1: .line 240
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 5
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session int top int int org.h2.expression.Expression[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* arg */
        start local 3 // org.h2.expression.Expression arg
         3: .line 241
            aload 3 /* arg */
            aload 1 /* session */
            iload 2 /* stage */
            invokevirtual org.h2.expression.Expression.updateAggregate:(Lorg/h2/engine/Session;I)V
        end local 3 // org.h2.expression.Expression arg
         4: .line 240
            iinc 4 1
      StackMap locals:
      StackMap stack:
         5: iload 4
            iload 5
            if_icmplt 2
         6: .line 243
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            ifnull 11
         7: .line 244
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 10
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session int top java.util.Iterator
      StackMap stack:
         8: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.command.dml.SelectOrderBy
            astore 3 /* orderBy */
        start local 3 // org.h2.command.dml.SelectOrderBy orderBy
         9: .line 245
            aload 3 /* orderBy */
            getfield org.h2.command.dml.SelectOrderBy.expression:Lorg/h2/expression/Expression;
            aload 1 /* session */
            iload 2 /* stage */
            invokevirtual org.h2.expression.Expression.updateAggregate:(Lorg/h2/engine/Session;I)V
        end local 3 // org.h2.command.dml.SelectOrderBy orderBy
        10: .line 244
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        11: .line 248
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session int
      StackMap stack:
            return
        end local 2 // int stage
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lorg/h2/expression/aggregate/Aggregate;
            0   12     1  session  Lorg/h2/engine/Session;
            0   12     2    stage  I
            3    4     3      arg  Lorg/h2/expression/Expression;
            9   10     3  orderBy  Lorg/h2/command/dml/SelectOrderBy;
    MethodParameters:
         Name  Flags
      session  
      stage    

  private org.h2.value.Value updateCollecting(org.h2.engine.Session, org.h2.value.Value, org.h2.value.Value[]);
    descriptor: (Lorg/h2/engine/Session;Lorg/h2/value/Value;[Lorg/h2/value/Value;)Lorg/h2/value/Value;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.h2.expression.aggregate.Aggregate this
        start local 1 // org.h2.engine.Session session
        start local 2 // org.h2.value.Value v
        start local 3 // org.h2.value.Value[] remembered
         0: .line 251
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            ifnull 14
         1: .line 252
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            istore 4 /* size */
        start local 4 // int size
         2: .line 253
            iconst_1
            iload 4 /* size */
            iadd
            anewarray org.h2.value.Value
            astore 5 /* array */
        start local 5 // org.h2.value.Value[] array
         3: .line 254
            aload 5 /* array */
            iconst_0
            aload 2 /* v */
            aastore
         4: .line 255
            aload 3 /* remembered */
            ifnonnull 12
         5: .line 256
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         6: goto 10
         7: .line 257
      StackMap locals: int org.h2.value.Value[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            iload 6 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.command.dml.SelectOrderBy
            astore 7 /* o */
        start local 7 // org.h2.command.dml.SelectOrderBy o
         8: .line 258
            aload 5 /* array */
            iload 6 /* i */
            iconst_1
            iadd
            aload 7 /* o */
            getfield org.h2.command.dml.SelectOrderBy.expression:Lorg/h2/expression/Expression;
            aload 1 /* session */
            invokevirtual org.h2.expression.Expression.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
            aastore
        end local 7 // org.h2.command.dml.SelectOrderBy o
         9: .line 256
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 6 /* i */
            iload 4 /* size */
            if_icmplt 7
        end local 6 // int i
        11: .line 260
            goto 13
        12: .line 261
      StackMap locals:
      StackMap stack:
            aload 3 /* remembered */
            iconst_1
            aload 5 /* array */
            iconst_1
            iload 4 /* size */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        13: .line 263
      StackMap locals:
      StackMap stack:
            aload 5 /* array */
            invokestatic org.h2.value.ValueArray.get:([Lorg/h2/value/Value;)Lorg/h2/value/ValueArray;
            astore 2 /* v */
        end local 5 // org.h2.value.Value[] array
        end local 4 // int size
        14: .line 265
      StackMap locals:
      StackMap stack:
            aload 2 /* v */
            areturn
        end local 3 // org.h2.value.Value[] remembered
        end local 2 // org.h2.value.Value v
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0        this  Lorg/h2/expression/aggregate/Aggregate;
            0   15     1     session  Lorg/h2/engine/Session;
            0   15     2           v  Lorg/h2/value/Value;
            0   15     3  remembered  [Lorg/h2/value/Value;
            2   14     4        size  I
            3   14     5       array  [Lorg/h2/value/Value;
            6   11     6           i  I
            8    9     7           o  Lorg/h2/command/dml/SelectOrderBy;
    MethodParameters:
            Name  Flags
      session     
      v           
      remembered  

  protected int getNumExpressions();
    descriptor: ()I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.h2.expression.aggregate.Aggregate this
         0: .line 270
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            arraylength
            istore 1 /* n */
        start local 1 // int n
         1: .line 271
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            ifnull 3
         2: .line 272
            iload 1 /* n */
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iadd
            istore 1 /* n */
         3: .line 274
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.filterCondition:Lorg/h2/expression/Expression;
            ifnull 5
         4: .line 275
            iinc 1 /* n */ 1
         5: .line 277
      StackMap locals:
      StackMap stack:
            iload 1 /* n */
            ireturn
        end local 1 // int n
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/h2/expression/aggregate/Aggregate;
            1    6     1     n  I

  protected void rememberExpressions(org.h2.engine.Session, org.h2.value.Value[]);
    descriptor: (Lorg/h2/engine/Session;[Lorg/h2/value/Value;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // org.h2.expression.aggregate.Aggregate this
        start local 1 // org.h2.engine.Session session
        start local 2 // org.h2.value.Value[] array
         0: .line 282
            iconst_0
            istore 3 /* offset */
        start local 3 // int offset
         1: .line 283
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 5
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session org.h2.value.Value[] int top int int org.h2.expression.Expression[]
      StackMap stack:
         2: aload 7
            iload 5
            aaload
            astore 4 /* arg */
        start local 4 // org.h2.expression.Expression arg
         3: .line 284
            aload 2 /* array */
            iload 3 /* offset */
            iinc 3 /* offset */ 1
            aload 4 /* arg */
            aload 1 /* session */
            invokevirtual org.h2.expression.Expression.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
            aastore
        end local 4 // org.h2.expression.Expression arg
         4: .line 283
            iinc 5 1
      StackMap locals:
      StackMap stack:
         5: iload 5
            iload 6
            if_icmplt 2
         6: .line 286
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            ifnull 11
         7: .line 287
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 5
            goto 10
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session org.h2.value.Value[] int top java.util.Iterator
      StackMap stack:
         8: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.command.dml.SelectOrderBy
            astore 4 /* o */
        start local 4 // org.h2.command.dml.SelectOrderBy o
         9: .line 288
            aload 2 /* array */
            iload 3 /* offset */
            iinc 3 /* offset */ 1
            aload 4 /* o */
            getfield org.h2.command.dml.SelectOrderBy.expression:Lorg/h2/expression/Expression;
            aload 1 /* session */
            invokevirtual org.h2.expression.Expression.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
            aastore
        end local 4 // org.h2.command.dml.SelectOrderBy o
        10: .line 287
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        11: .line 291
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session org.h2.value.Value[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.filterCondition:Lorg/h2/expression/Expression;
            ifnull 13
        12: .line 292
            aload 2 /* array */
            iload 3 /* offset */
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.filterCondition:Lorg/h2/expression/Expression;
            aload 1 /* session */
            invokevirtual org.h2.expression.Expression.getBooleanValue:(Lorg/h2/engine/Session;)Z
            invokestatic org.h2.value.ValueBoolean.get:(Z)Lorg/h2/value/ValueBoolean;
            aastore
        13: .line 294
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int offset
        end local 2 // org.h2.value.Value[] array
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Lorg/h2/expression/aggregate/Aggregate;
            0   14     1  session  Lorg/h2/engine/Session;
            0   14     2    array  [Lorg/h2/value/Value;
            1   14     3   offset  I
            3    4     4      arg  Lorg/h2/expression/Expression;
            9   10     4        o  Lorg/h2/command/dml/SelectOrderBy;
    MethodParameters:
         Name  Flags
      session  
      array    

  protected void updateFromExpressions(org.h2.engine.Session, java.lang.Object, org.h2.value.Value[]);
    descriptor: (Lorg/h2/engine/Session;Ljava/lang/Object;[Lorg/h2/value/Value;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // org.h2.expression.aggregate.Aggregate this
        start local 1 // org.h2.engine.Session session
        start local 2 // java.lang.Object aggregateData
        start local 3 // org.h2.value.Value[] array
         0: .line 298
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.filterCondition:Lorg/h2/expression/Expression;
            ifnull 1
            aload 3 /* array */
            aload 0 /* this */
            invokevirtual org.h2.expression.aggregate.Aggregate.getNumExpressions:()I
            iconst_1
            isub
            aaload
            invokevirtual org.h2.value.Value.getBoolean:()Z
            ifeq 6
         1: .line 299
      StackMap locals:
      StackMap stack:
            aload 2 /* aggregateData */
            checkcast org.h2.expression.aggregate.AggregateData
            astore 4 /* data */
        start local 4 // org.h2.expression.aggregate.AggregateData data
         2: .line 300
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            arraylength
            ifne 3
            aconst_null
            goto 4
      StackMap locals: org.h2.expression.aggregate.AggregateData
      StackMap stack:
         3: aload 3 /* array */
            iconst_0
            aaload
      StackMap locals:
      StackMap stack: org.h2.value.Value
         4: astore 5 /* v */
        start local 5 // org.h2.value.Value v
         5: .line 301
            aload 0 /* this */
            aload 1 /* session */
            aload 4 /* data */
            aload 5 /* v */
            aload 3 /* array */
            invokevirtual org.h2.expression.aggregate.Aggregate.updateData:(Lorg/h2/engine/Session;Lorg/h2/expression/aggregate/AggregateData;Lorg/h2/value/Value;[Lorg/h2/value/Value;)V
        end local 5 // org.h2.value.Value v
        end local 4 // org.h2.expression.aggregate.AggregateData data
         6: .line 303
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.h2.value.Value[] array
        end local 2 // java.lang.Object aggregateData
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lorg/h2/expression/aggregate/Aggregate;
            0    7     1        session  Lorg/h2/engine/Session;
            0    7     2  aggregateData  Ljava/lang/Object;
            0    7     3          array  [Lorg/h2/value/Value;
            2    6     4           data  Lorg/h2/expression/aggregate/AggregateData;
            5    6     5              v  Lorg/h2/value/Value;
    MethodParameters:
               Name  Flags
      session        
      aggregateData  
      array          

  protected java.lang.Object createAggregateData();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.h2.expression.aggregate.Aggregate this
         0: .line 307
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.aggregateType:Lorg/h2/expression/aggregate/AggregateType;
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.distinct:Z
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
            invokevirtual org.h2.value.TypeInfo.getValueType:()I
            invokestatic org.h2.expression.aggregate.AggregateData.create:(Lorg/h2/expression/aggregate/AggregateType;ZI)Lorg/h2/expression/aggregate/AggregateData;
            areturn
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/expression/aggregate/Aggregate;

  public org.h2.value.Value getValue(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)Lorg/h2/value/Value;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.expression.aggregate.Aggregate this
        start local 1 // org.h2.engine.Session session
         0: .line 312
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.select:Lorg/h2/command/dml/Select;
            invokevirtual org.h2.command.dml.Select.isQuickAggregateQuery:()Z
            ifeq 1
            aload 0 /* this */
            aload 1 /* session */
            invokevirtual org.h2.expression.aggregate.Aggregate.getValueQuick:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            aload 1 /* session */
            invokespecial org.h2.expression.aggregate.AbstractAggregate.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
      StackMap locals:
      StackMap stack: org.h2.value.Value
         2: areturn
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/h2/expression/aggregate/Aggregate;
            0    3     1  session  Lorg/h2/engine/Session;
    MethodParameters:
         Name  Flags
      session  

  private org.h2.value.Value getValueQuick(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)Lorg/h2/value/Value;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=9, args_size=2
        start local 0 // org.h2.expression.aggregate.Aggregate this
        start local 1 // org.h2.engine.Session session
         0: .line 316
            invokestatic org.h2.expression.aggregate.Aggregate.$SWITCH_TABLE$org$h2$expression$aggregate$AggregateType:()[I
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.aggregateType:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            iaload
            lookupswitch { // 8
                    1: 1
                    2: 1
                    4: 3
                    5: 3
                   21: 19
                   22: 19
                   23: 33
                   27: 34
              default: 35
          }
         1: .line 319
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.select:Lorg/h2/command/dml/Select;
            invokevirtual org.h2.command.dml.Select.getTopTableFilter:()Lorg/h2/table/TableFilter;
            invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
            astore 2 /* table */
        start local 2 // org.h2.table.Table table
         2: .line 320
            aload 2 /* table */
            aload 1 /* session */
            invokevirtual org.h2.table.Table.getRowCount:(Lorg/h2/engine/Session;)J
            invokestatic org.h2.value.ValueLong.get:(J)Lorg/h2/value/ValueLong;
            areturn
        end local 2 // org.h2.table.Table table
         3: .line 323
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.aggregateType:Lorg/h2/expression/aggregate/AggregateType;
            getstatic org.h2.expression.aggregate.AggregateType.MIN:Lorg/h2/expression/aggregate/AggregateType;
            if_acmpne 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 3 /* first */
        start local 3 // boolean first
         6: .line 324
            aload 0 /* this */
            invokevirtual org.h2.expression.aggregate.Aggregate.getMinMaxColumnIndex:()Lorg/h2/index/Index;
            astore 4 /* index */
        start local 4 // org.h2.index.Index index
         7: .line 325
            aload 4 /* index */
            invokeinterface org.h2.index.Index.getIndexColumns:()[Lorg/h2/table/IndexColumn;
            iconst_0
            aaload
            getfield org.h2.table.IndexColumn.sortType:I
            istore 5 /* sortType */
        start local 5 // int sortType
         8: .line 326
            iload 5 /* sortType */
            iconst_1
            iand
            ifeq 12
         9: .line 327
            iload 3 /* first */
            ifeq 10
            iconst_0
            goto 11
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session top int org.h2.index.Index int
      StackMap stack:
        10: iconst_1
      StackMap locals:
      StackMap stack: int
        11: istore 3 /* first */
        12: .line 329
      StackMap locals:
      StackMap stack:
            aload 4 /* index */
            aload 1 /* session */
            iload 3 /* first */
            invokeinterface org.h2.index.Index.findFirstOrLast:(Lorg/h2/engine/Session;Z)Lorg/h2/index/Cursor;
            astore 6 /* cursor */
        start local 6 // org.h2.index.Cursor cursor
        13: .line 330
            aload 6 /* cursor */
            invokeinterface org.h2.index.Cursor.getSearchRow:()Lorg/h2/result/SearchRow;
            astore 7 /* row */
        start local 7 // org.h2.result.SearchRow row
        14: .line 332
            aload 7 /* row */
            ifnonnull 17
        15: .line 333
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            astore 8 /* v */
        start local 8 // org.h2.value.Value v
        16: .line 334
            goto 18
        end local 8 // org.h2.value.Value v
        17: .line 335
      StackMap locals: org.h2.index.Cursor org.h2.result.SearchRow
      StackMap stack:
            aload 7 /* row */
            aload 4 /* index */
            invokeinterface org.h2.index.Index.getColumns:()[Lorg/h2/table/Column;
            iconst_0
            aaload
            invokevirtual org.h2.table.Column.getColumnId:()I
            invokeinterface org.h2.result.SearchRow.getValue:(I)Lorg/h2/value/Value;
            astore 8 /* v */
        start local 8 // org.h2.value.Value v
        18: .line 337
      StackMap locals: org.h2.value.Value
      StackMap stack:
            aload 8 /* v */
            areturn
        end local 8 // org.h2.value.Value v
        end local 7 // org.h2.result.SearchRow row
        end local 6 // org.h2.index.Cursor cursor
        end local 5 // int sortType
        end local 4 // org.h2.index.Index index
        end local 3 // boolean first
        19: .line 341
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            iconst_0
            aaload
            aload 1 /* session */
            invokevirtual org.h2.expression.Expression.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
            astore 3 /* v */
        start local 3 // org.h2.value.Value v
        20: .line 342
            aload 3 /* v */
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            if_acmpne 22
        21: .line 343
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            areturn
        22: .line 345
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session top org.h2.value.Value
      StackMap stack:
            aload 3 /* v */
            invokevirtual org.h2.value.Value.getBigDecimal:()Ljava/math/BigDecimal;
            astore 4 /* arg */
        start local 4 // java.math.BigDecimal arg
        23: .line 346
            aload 4 /* arg */
            invokevirtual java.math.BigDecimal.signum:()I
            iflt 28
            aload 4 /* arg */
            getstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            ifgt 28
        24: .line 347
            aload 1 /* session */
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            iconst_0
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.command.dml.SelectOrderBy
            getfield org.h2.command.dml.SelectOrderBy.expression:Lorg/h2/expression/Expression;
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
            invokevirtual org.h2.value.TypeInfo.getValueType:()I
        25: .line 348
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            aload 4 /* arg */
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.aggregateType:Lorg/h2/expression/aggregate/AggregateType;
            getstatic org.h2.expression.aggregate.AggregateType.PERCENTILE_CONT:Lorg/h2/expression/aggregate/AggregateType;
            if_acmpne 26
            iconst_1
            goto 27
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session top org.h2.value.Value java.math.BigDecimal
      StackMap stack: org.h2.engine.Session org.h2.expression.Expression int java.util.ArrayList java.math.BigDecimal
        26: iconst_0
        27: .line 347
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session top org.h2.value.Value java.math.BigDecimal
      StackMap stack: org.h2.engine.Session org.h2.expression.Expression int java.util.ArrayList java.math.BigDecimal int
            invokestatic org.h2.expression.aggregate.Percentile.getFromIndex:(Lorg/h2/engine/Session;Lorg/h2/expression/Expression;ILjava/util/ArrayList;Ljava/math/BigDecimal;Z)Lorg/h2/value/Value;
            areturn
        28: .line 350
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.aggregateType:Lorg/h2/expression/aggregate/AggregateType;
            getstatic org.h2.expression.aggregate.AggregateType.PERCENTILE_CONT:Lorg/h2/expression/aggregate/AggregateType;
            if_acmpne 30
        29: .line 351
            ldc "PERCENTILE_CONT argument"
            goto 31
      StackMap locals:
      StackMap stack:
        30: ldc "PERCENTILE_DISC argument"
      StackMap locals:
      StackMap stack: java.lang.String
        31: aload 4 /* arg */
        32: .line 350
            invokestatic org.h2.message.DbException.getInvalidValueException:(Ljava/lang/String;Ljava/lang/Object;)Lorg/h2/message/DbException;
            athrow
        end local 4 // java.math.BigDecimal arg
        end local 3 // org.h2.value.Value v
        33: .line 355
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session
      StackMap stack:
            aload 1 /* session */
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            iconst_0
            aaload
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
            invokevirtual org.h2.value.TypeInfo.getValueType:()I
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            getstatic org.h2.expression.aggregate.Percentile.HALF:Ljava/math/BigDecimal;
            iconst_1
            invokestatic org.h2.expression.aggregate.Percentile.getFromIndex:(Lorg/h2/engine/Session;Lorg/h2/expression/Expression;ILjava/util/ArrayList;Ljava/math/BigDecimal;Z)Lorg/h2/value/Value;
            areturn
        34: .line 357
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            iconst_0
            aaload
            invokestatic org.h2.expression.aggregate.AggregateDataEnvelope.getGeometryColumnIndex:(Lorg/h2/expression/Expression;)Lorg/h2/index/Index;
            checkcast org.h2.mvstore.db.MVSpatialIndex
            aload 1 /* session */
            invokevirtual org.h2.mvstore.db.MVSpatialIndex.getBounds:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
            areturn
        35: .line 359
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "type="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.aggregateType:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   36     0      this  Lorg/h2/expression/aggregate/Aggregate;
            0   36     1   session  Lorg/h2/engine/Session;
            2    3     2     table  Lorg/h2/table/Table;
            6   19     3     first  Z
            7   19     4     index  Lorg/h2/index/Index;
            8   19     5  sortType  I
           13   19     6    cursor  Lorg/h2/index/Cursor;
           14   19     7       row  Lorg/h2/result/SearchRow;
           16   17     8         v  Lorg/h2/value/Value;
           18   19     8         v  Lorg/h2/value/Value;
           20   33     3         v  Lorg/h2/value/Value;
           23   33     4       arg  Ljava/math/BigDecimal;
    MethodParameters:
         Name  Flags
      session  

  public org.h2.value.Value getAggregatedValue(org.h2.engine.Session, java.lang.Object);
    descriptor: (Lorg/h2/engine/Session;Ljava/lang/Object;)Lorg/h2/value/Value;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=10, args_size=3
        start local 0 // org.h2.expression.aggregate.Aggregate this
        start local 1 // org.h2.engine.Session session
        start local 2 // java.lang.Object aggregateData
         0: .line 365
            aload 2 /* aggregateData */
            checkcast org.h2.expression.aggregate.AggregateData
            astore 3 /* data */
        start local 3 // org.h2.expression.aggregate.AggregateData data
         1: .line 366
            aload 3 /* data */
            ifnonnull 3
         2: .line 367
            aload 0 /* this */
            invokevirtual org.h2.expression.aggregate.Aggregate.createAggregateData:()Ljava/lang/Object;
            checkcast org.h2.expression.aggregate.AggregateData
            astore 3 /* data */
         3: .line 369
      StackMap locals: org.h2.expression.aggregate.AggregateData
      StackMap stack:
            invokestatic org.h2.expression.aggregate.Aggregate.$SWITCH_TABLE$org$h2$expression$aggregate$AggregateType:()[I
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.aggregateType:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            iaload
            tableswitch { // 2 - 26
                    2: 4
                    3: 6
                    4: 58
                    5: 58
                    6: 6
                    7: 6
                    8: 6
                    9: 6
                   10: 6
                   11: 58
                   12: 58
                   13: 58
                   14: 58
                   15: 58
                   16: 18
                   17: 32
                   18: 32
                   19: 32
                   20: 32
                   21: 33
                   22: 33
                   23: 51
                   24: 19
                   25: 20
                   26: 57
              default: 58
          }
         4: .line 371
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.distinct:Z
            ifeq 58
         5: .line 372
            aload 3 /* data */
            checkcast org.h2.expression.aggregate.AggregateDataCollecting
            invokevirtual org.h2.expression.aggregate.AggregateDataCollecting.getCount:()I
            i2l
            invokestatic org.h2.value.ValueLong.get:(J)Lorg/h2/value/ValueLong;
            areturn
         6: .line 381
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.distinct:Z
            ifeq 58
         7: .line 382
            aload 3 /* data */
            checkcast org.h2.expression.aggregate.AggregateDataCollecting
            astore 4 /* c */
        start local 4 // org.h2.expression.aggregate.AggregateDataCollecting c
         8: .line 383
            aload 4 /* c */
            invokevirtual org.h2.expression.aggregate.AggregateDataCollecting.getCount:()I
            ifne 10
         9: .line 384
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            areturn
        10: .line 386
      StackMap locals: org.h2.expression.aggregate.AggregateDataCollecting
      StackMap stack:
            new org.h2.expression.aggregate.AggregateDataDefault
            dup
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.aggregateType:Lorg/h2/expression/aggregate/AggregateType;
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
            invokevirtual org.h2.value.TypeInfo.getValueType:()I
            invokespecial org.h2.expression.aggregate.AggregateDataDefault.<init>:(Lorg/h2/expression/aggregate/AggregateType;I)V
            astore 5 /* d */
        start local 5 // org.h2.expression.aggregate.AggregateDataDefault d
        11: .line 387
            aload 1 /* session */
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            astore 6 /* db */
        start local 6 // org.h2.engine.Database db
        12: .line 388
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
            invokevirtual org.h2.value.TypeInfo.getValueType:()I
            istore 7 /* dataType */
        start local 7 // int dataType
        13: .line 389
            aload 4 /* c */
            invokevirtual org.h2.expression.aggregate.AggregateDataCollecting.iterator:()Ljava/util/Iterator;
            astore 9
            goto 16
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session java.lang.Object org.h2.expression.aggregate.AggregateData org.h2.expression.aggregate.AggregateDataCollecting org.h2.expression.aggregate.AggregateDataDefault org.h2.engine.Database int top java.util.Iterator
      StackMap stack:
        14: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.value.Value
            astore 8 /* v */
        start local 8 // org.h2.value.Value v
        15: .line 390
            aload 5 /* d */
            aload 6 /* db */
            aload 8 /* v */
            invokevirtual org.h2.expression.aggregate.AggregateDataDefault.add:(Lorg/h2/engine/Database;Lorg/h2/value/Value;)V
        end local 8 // org.h2.value.Value v
        16: .line 389
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        17: .line 392
            aload 5 /* d */
            aload 6 /* db */
            iload 7 /* dataType */
            invokevirtual org.h2.expression.aggregate.AggregateDataDefault.getValue:(Lorg/h2/engine/Database;I)Lorg/h2/value/Value;
            areturn
        end local 7 // int dataType
        end local 6 // org.h2.engine.Database db
        end local 5 // org.h2.expression.aggregate.AggregateDataDefault d
        end local 4 // org.h2.expression.aggregate.AggregateDataCollecting c
        18: .line 396
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session java.lang.Object org.h2.expression.aggregate.AggregateData
      StackMap stack:
            aload 0 /* this */
            aload 1 /* session */
            aload 3 /* data */
            invokevirtual org.h2.expression.aggregate.Aggregate.getHistogram:(Lorg/h2/engine/Session;Lorg/h2/expression/aggregate/AggregateData;)Lorg/h2/value/Value;
            areturn
        19: .line 398
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* session */
            aload 3 /* data */
            invokevirtual org.h2.expression.aggregate.Aggregate.getListagg:(Lorg/h2/engine/Session;Lorg/h2/expression/aggregate/AggregateData;)Lorg/h2/value/Value;
            areturn
        20: .line 400
      StackMap locals:
      StackMap stack:
            aload 3 /* data */
            checkcast org.h2.expression.aggregate.AggregateDataCollecting
            invokevirtual org.h2.expression.aggregate.AggregateDataCollecting.getArray:()[Lorg/h2/value/Value;
            astore 4 /* array */
        start local 4 // org.h2.value.Value[] array
        21: .line 401
            aload 4 /* array */
            ifnonnull 23
        22: .line 402
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            areturn
        23: .line 404
      StackMap locals: org.h2.value.Value[]
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            ifnonnull 24
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.distinct:Z
            ifeq 25
        24: .line 405
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* array */
            invokevirtual org.h2.expression.aggregate.Aggregate.sortWithOrderBy:([Lorg/h2/value/Value;)V
        25: .line 407
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            ifnull 31
        26: .line 408
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        27: goto 30
        28: .line 409
      StackMap locals: int
      StackMap stack:
            aload 4 /* array */
            iload 5 /* i */
            aload 4 /* array */
            iload 5 /* i */
            aaload
            checkcast org.h2.value.ValueArray
            invokevirtual org.h2.value.ValueArray.getList:()[Lorg/h2/value/Value;
            iconst_0
            aaload
            aastore
        29: .line 408
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        30: iload 5 /* i */
            aload 4 /* array */
            arraylength
            if_icmplt 28
        end local 5 // int i
        31: .line 412
      StackMap locals:
      StackMap stack:
            aload 4 /* array */
            invokestatic org.h2.value.ValueArray.get:([Lorg/h2/value/Value;)Lorg/h2/value/ValueArray;
            areturn
        end local 4 // org.h2.value.Value[] array
        32: .line 418
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* session */
            aload 3 /* data */
            invokevirtual org.h2.expression.aggregate.Aggregate.getHypotheticalSet:(Lorg/h2/engine/Session;Lorg/h2/expression/aggregate/AggregateData;)Lorg/h2/value/Value;
            areturn
        33: .line 421
      StackMap locals:
      StackMap stack:
            aload 3 /* data */
            checkcast org.h2.expression.aggregate.AggregateDataCollecting
            astore 4 /* collectingData */
        start local 4 // org.h2.expression.aggregate.AggregateDataCollecting collectingData
        34: .line 422
            aload 4 /* collectingData */
            invokevirtual org.h2.expression.aggregate.AggregateDataCollecting.getArray:()[Lorg/h2/value/Value;
            astore 5 /* array */
        start local 5 // org.h2.value.Value[] array
        35: .line 423
            aload 5 /* array */
            ifnonnull 37
        36: .line 424
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            areturn
        37: .line 426
      StackMap locals: org.h2.expression.aggregate.AggregateDataCollecting org.h2.value.Value[]
      StackMap stack:
            aload 4 /* collectingData */
            invokevirtual org.h2.expression.aggregate.AggregateDataCollecting.getSharedArgument:()Lorg/h2/value/Value;
            astore 6 /* v */
        start local 6 // org.h2.value.Value v
        38: .line 427
            aload 6 /* v */
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            if_acmpne 40
        39: .line 428
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            areturn
        40: .line 430
      StackMap locals: org.h2.value.Value
      StackMap stack:
            aload 6 /* v */
            invokevirtual org.h2.value.Value.getBigDecimal:()Ljava/math/BigDecimal;
            astore 7 /* arg */
        start local 7 // java.math.BigDecimal arg
        41: .line 431
            aload 7 /* arg */
            invokevirtual java.math.BigDecimal.signum:()I
            iflt 46
            aload 7 /* arg */
            getstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            ifgt 46
        42: .line 432
            aload 1 /* session */
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            aload 5 /* array */
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
            invokevirtual org.h2.value.TypeInfo.getValueType:()I
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            aload 7 /* arg */
        43: .line 433
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.aggregateType:Lorg/h2/expression/aggregate/AggregateType;
            getstatic org.h2.expression.aggregate.AggregateType.PERCENTILE_CONT:Lorg/h2/expression/aggregate/AggregateType;
            if_acmpne 44
            iconst_1
            goto 45
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session java.lang.Object org.h2.expression.aggregate.AggregateData org.h2.expression.aggregate.AggregateDataCollecting org.h2.value.Value[] org.h2.value.Value java.math.BigDecimal
      StackMap stack: org.h2.engine.Database org.h2.value.Value[] int java.util.ArrayList java.math.BigDecimal
        44: iconst_0
        45: .line 432
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session java.lang.Object org.h2.expression.aggregate.AggregateData org.h2.expression.aggregate.AggregateDataCollecting org.h2.value.Value[] org.h2.value.Value java.math.BigDecimal
      StackMap stack: org.h2.engine.Database org.h2.value.Value[] int java.util.ArrayList java.math.BigDecimal int
            invokestatic org.h2.expression.aggregate.Percentile.getValue:(Lorg/h2/engine/Database;[Lorg/h2/value/Value;ILjava/util/ArrayList;Ljava/math/BigDecimal;Z)Lorg/h2/value/Value;
            areturn
        46: .line 435
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.aggregateType:Lorg/h2/expression/aggregate/AggregateType;
            getstatic org.h2.expression.aggregate.AggregateType.PERCENTILE_CONT:Lorg/h2/expression/aggregate/AggregateType;
            if_acmpne 48
        47: .line 436
            ldc "PERCENTILE_CONT argument"
            goto 49
      StackMap locals:
      StackMap stack:
        48: ldc "PERCENTILE_DISC argument"
      StackMap locals:
      StackMap stack: java.lang.String
        49: aload 7 /* arg */
        50: .line 435
            invokestatic org.h2.message.DbException.getInvalidValueException:(Ljava/lang/String;Ljava/lang/Object;)Lorg/h2/message/DbException;
            athrow
        end local 7 // java.math.BigDecimal arg
        end local 6 // org.h2.value.Value v
        end local 5 // org.h2.value.Value[] array
        end local 4 // org.h2.expression.aggregate.AggregateDataCollecting collectingData
        51: .line 440
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session java.lang.Object org.h2.expression.aggregate.AggregateData
      StackMap stack:
            aload 3 /* data */
            checkcast org.h2.expression.aggregate.AggregateDataCollecting
            invokevirtual org.h2.expression.aggregate.AggregateDataCollecting.getArray:()[Lorg/h2/value/Value;
            astore 4 /* array */
        start local 4 // org.h2.value.Value[] array
        52: .line 441
            aload 4 /* array */
            ifnonnull 54
        53: .line 442
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            areturn
        54: .line 444
      StackMap locals: org.h2.value.Value[]
      StackMap stack:
            aload 1 /* session */
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            aload 4 /* array */
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
            invokevirtual org.h2.value.TypeInfo.getValueType:()I
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            getstatic org.h2.expression.aggregate.Percentile.HALF:Ljava/math/BigDecimal;
        55: .line 445
            iconst_1
        56: .line 444
            invokestatic org.h2.expression.aggregate.Percentile.getValue:(Lorg/h2/engine/Database;[Lorg/h2/value/Value;ILjava/util/ArrayList;Ljava/math/BigDecimal;Z)Lorg/h2/value/Value;
            areturn
        end local 4 // org.h2.value.Value[] array
        57: .line 448
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* session */
            aload 3 /* data */
            invokevirtual org.h2.expression.aggregate.Aggregate.getMode:(Lorg/h2/engine/Session;Lorg/h2/expression/aggregate/AggregateData;)Lorg/h2/value/Value;
            areturn
        58: .line 452
      StackMap locals:
      StackMap stack:
            aload 3 /* data */
            aload 1 /* session */
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
            invokevirtual org.h2.value.TypeInfo.getValueType:()I
            invokevirtual org.h2.expression.aggregate.AggregateData.getValue:(Lorg/h2/engine/Database;I)Lorg/h2/value/Value;
            areturn
        end local 3 // org.h2.expression.aggregate.AggregateData data
        end local 2 // java.lang.Object aggregateData
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   59     0            this  Lorg/h2/expression/aggregate/Aggregate;
            0   59     1         session  Lorg/h2/engine/Session;
            0   59     2   aggregateData  Ljava/lang/Object;
            1   59     3            data  Lorg/h2/expression/aggregate/AggregateData;
            8   18     4               c  Lorg/h2/expression/aggregate/AggregateDataCollecting;
           11   18     5               d  Lorg/h2/expression/aggregate/AggregateDataDefault;
           12   18     6              db  Lorg/h2/engine/Database;
           13   18     7        dataType  I
           15   16     8               v  Lorg/h2/value/Value;
           21   32     4           array  [Lorg/h2/value/Value;
           27   31     5               i  I
           34   51     4  collectingData  Lorg/h2/expression/aggregate/AggregateDataCollecting;
           35   51     5           array  [Lorg/h2/value/Value;
           38   51     6               v  Lorg/h2/value/Value;
           41   51     7             arg  Ljava/math/BigDecimal;
           52   57     4           array  [Lorg/h2/value/Value;
    MethodParameters:
               Name  Flags
      session        
      aggregateData  

  private org.h2.value.Value getHypotheticalSet(org.h2.engine.Session, org.h2.expression.aggregate.AggregateData);
    descriptor: (Lorg/h2/engine/Session;Lorg/h2/expression/aggregate/AggregateData;)Lorg/h2/value/Value;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.h2.expression.aggregate.Aggregate this
        start local 1 // org.h2.engine.Session session
        start local 2 // org.h2.expression.aggregate.AggregateData data
         0: .line 456
            aload 2 /* data */
            checkcast org.h2.expression.aggregate.AggregateDataCollecting
            astore 3 /* collectingData */
        start local 3 // org.h2.expression.aggregate.AggregateDataCollecting collectingData
         1: .line 457
            aload 3 /* collectingData */
            invokevirtual org.h2.expression.aggregate.AggregateDataCollecting.getSharedArgument:()Lorg/h2/value/Value;
            astore 4 /* arg */
        start local 4 // org.h2.value.Value arg
         2: .line 458
            aload 4 /* arg */
            ifnonnull 8
         3: .line 459
            invokestatic org.h2.expression.aggregate.Aggregate.$SWITCH_TABLE$org$h2$expression$aggregate$AggregateType:()[I
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.aggregateType:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            iaload
            tableswitch { // 17 - 20
                   17: 4
                   18: 4
                   19: 5
                   20: 6
              default: 7
          }
         4: .line 462
      StackMap locals: org.h2.expression.aggregate.AggregateDataCollecting org.h2.value.Value
      StackMap stack:
            iconst_1
            invokestatic org.h2.value.ValueInt.get:(I)Lorg/h2/value/ValueInt;
            areturn
         5: .line 464
      StackMap locals:
      StackMap stack:
            getstatic org.h2.value.ValueDouble.ZERO:Lorg/h2/value/ValueDouble;
            areturn
         6: .line 466
      StackMap locals:
      StackMap stack:
            getstatic org.h2.value.ValueDouble.ONE:Lorg/h2/value/ValueDouble;
            areturn
         7: .line 468
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "aggregateType="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.aggregateType:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.h2.message.DbException.getUnsupportedException:(Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
         8: .line 471
      StackMap locals:
      StackMap stack:
            aload 3 /* collectingData */
            aload 1 /* session */
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            aload 4 /* arg */
            invokevirtual org.h2.expression.aggregate.AggregateDataCollecting.add:(Lorg/h2/engine/Database;Lorg/h2/value/Value;)V
         9: .line 472
            aload 3 /* collectingData */
            invokevirtual org.h2.expression.aggregate.AggregateDataCollecting.getArray:()[Lorg/h2/value/Value;
            astore 5 /* array */
        start local 5 // org.h2.value.Value[] array
        10: .line 473
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderBySort:Lorg/h2/result/SortOrder;
            invokevirtual org.h2.result.SortOrder.getRowValueComparator:()Ljava/util/Comparator;
            astore 6 /* sort */
        start local 6 // java.util.Comparator sort
        11: .line 474
            aload 5 /* array */
            aload 6 /* sort */
            invokestatic java.util.Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V
        12: .line 475
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.aggregateType:Lorg/h2/expression/aggregate/AggregateType;
            getstatic org.h2.expression.aggregate.AggregateType.CUME_DIST:Lorg/h2/expression/aggregate/AggregateType;
            if_acmpne 13
            aload 5 /* array */
            aload 4 /* arg */
            aload 6 /* sort */
            invokestatic org.h2.expression.aggregate.Aggregate.getCumeDist:([Lorg/h2/value/Value;Lorg/h2/value/Value;Ljava/util/Comparator;)Lorg/h2/value/Value;
            goto 14
      StackMap locals: org.h2.value.Value[] java.util.Comparator
      StackMap stack:
        13: aload 0 /* this */
            aload 5 /* array */
            aload 4 /* arg */
            aload 6 /* sort */
            invokevirtual org.h2.expression.aggregate.Aggregate.getRank:([Lorg/h2/value/Value;Lorg/h2/value/Value;Ljava/util/Comparator;)Lorg/h2/value/Value;
      StackMap locals:
      StackMap stack: org.h2.value.Value
        14: areturn
        end local 6 // java.util.Comparator sort
        end local 5 // org.h2.value.Value[] array
        end local 4 // org.h2.value.Value arg
        end local 3 // org.h2.expression.aggregate.AggregateDataCollecting collectingData
        end local 2 // org.h2.expression.aggregate.AggregateData data
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Lorg/h2/expression/aggregate/Aggregate;
            0   15     1         session  Lorg/h2/engine/Session;
            0   15     2            data  Lorg/h2/expression/aggregate/AggregateData;
            1   15     3  collectingData  Lorg/h2/expression/aggregate/AggregateDataCollecting;
            2   15     4             arg  Lorg/h2/value/Value;
           10   15     5           array  [Lorg/h2/value/Value;
           11   15     6            sort  Ljava/util/Comparator<Lorg/h2/value/Value;>;
    MethodParameters:
         Name  Flags
      session  
      data     

  private org.h2.value.Value getRank(org.h2.value.Value[], org.h2.value.Value, java.util.Comparator<org.h2.value.Value>);
    descriptor: ([Lorg/h2/value/Value;Lorg/h2/value/Value;Ljava/util/Comparator;)Lorg/h2/value/Value;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=4
        start local 0 // org.h2.expression.aggregate.Aggregate this
        start local 1 // org.h2.value.Value[] ordered
        start local 2 // org.h2.value.Value arg
        start local 3 // java.util.Comparator sort
         0: .line 479
            aload 1 /* ordered */
            arraylength
            istore 4 /* size */
        start local 4 // int size
         1: .line 480
            iconst_0
            istore 5 /* number */
        start local 5 // int number
         2: .line 481
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         3: goto 23
         4: .line 482
      StackMap locals: int int int
      StackMap stack:
            aload 1 /* ordered */
            iload 6 /* i */
            aaload
            astore 7 /* row */
        start local 7 // org.h2.value.Value row
         5: .line 483
            iload 6 /* i */
            ifne 8
         6: .line 484
            iconst_1
            istore 5 /* number */
         7: .line 485
            goto 13
      StackMap locals: org.h2.value.Value
      StackMap stack:
         8: aload 3 /* sort */
            aload 1 /* ordered */
            iload 6 /* i */
            iconst_1
            isub
            aaload
            aload 7 /* row */
            invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            ifeq 13
         9: .line 486
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.aggregateType:Lorg/h2/expression/aggregate/AggregateType;
            getstatic org.h2.expression.aggregate.AggregateType.DENSE_RANK:Lorg/h2/expression/aggregate/AggregateType;
            if_acmpne 12
        10: .line 487
            iinc 5 /* number */ 1
        11: .line 488
            goto 13
        12: .line 489
      StackMap locals:
      StackMap stack:
            iload 6 /* i */
            iconst_1
            iadd
            istore 5 /* number */
        13: .line 493
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.aggregateType:Lorg/h2/expression/aggregate/AggregateType;
            getstatic org.h2.expression.aggregate.AggregateType.PERCENT_RANK:Lorg/h2/expression/aggregate/AggregateType;
            if_acmpne 19
        14: .line 494
            iload 5 /* number */
            iconst_1
            isub
            istore 9 /* nm */
        start local 9 // int nm
        15: .line 495
            iload 9 /* nm */
            ifne 16
            getstatic org.h2.value.ValueDouble.ZERO:Lorg/h2/value/ValueDouble;
            goto 17
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.value.Value[] org.h2.value.Value java.util.Comparator int int int org.h2.value.Value top int
      StackMap stack:
        16: iload 9 /* nm */
            i2d
            iload 4 /* size */
            iconst_1
            isub
            i2d
            ddiv
            invokestatic org.h2.value.ValueDouble.get:(D)Lorg/h2/value/ValueDouble;
      StackMap locals:
      StackMap stack: org.h2.value.ValueDouble
        17: astore 8 /* v */
        end local 9 // int nm
        start local 8 // org.h2.value.Value v
        18: .line 496
            goto 20
        end local 8 // org.h2.value.Value v
        19: .line 497
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.value.Value[] org.h2.value.Value java.util.Comparator int int int org.h2.value.Value
      StackMap stack:
            iload 5 /* number */
            i2l
            invokestatic org.h2.value.ValueLong.get:(J)Lorg/h2/value/ValueLong;
            astore 8 /* v */
        start local 8 // org.h2.value.Value v
        20: .line 499
      StackMap locals: org.h2.value.Value
      StackMap stack:
            aload 3 /* sort */
            aload 7 /* row */
            aload 2 /* arg */
            invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            ifne 22
        21: .line 500
            aload 8 /* v */
            areturn
        end local 8 // org.h2.value.Value v
        end local 7 // org.h2.value.Value row
        22: .line 481
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 6 /* i */
            iload 4 /* size */
            if_icmplt 4
        end local 6 // int i
        24: .line 503
            invokestatic org.h2.message.DbException.throwInternalError:()Ljava/lang/RuntimeException;
            athrow
        end local 5 // int number
        end local 4 // int size
        end local 3 // java.util.Comparator sort
        end local 2 // org.h2.value.Value arg
        end local 1 // org.h2.value.Value[] ordered
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   25     0     this  Lorg/h2/expression/aggregate/Aggregate;
            0   25     1  ordered  [Lorg/h2/value/Value;
            0   25     2      arg  Lorg/h2/value/Value;
            0   25     3     sort  Ljava/util/Comparator<Lorg/h2/value/Value;>;
            1   25     4     size  I
            2   25     5   number  I
            3   24     6        i  I
            5   22     7      row  Lorg/h2/value/Value;
           18   19     8        v  Lorg/h2/value/Value;
           20   22     8        v  Lorg/h2/value/Value;
           15   18     9       nm  I
    Signature: ([Lorg/h2/value/Value;Lorg/h2/value/Value;Ljava/util/Comparator<Lorg/h2/value/Value;>;)Lorg/h2/value/Value;
    MethodParameters:
         Name  Flags
      ordered  
      arg      
      sort     

  private static org.h2.value.Value getCumeDist(org.h2.value.Value[], org.h2.value.Value, java.util.Comparator<org.h2.value.Value>);
    descriptor: ([Lorg/h2/value/Value;Lorg/h2/value/Value;Ljava/util/Comparator;)Lorg/h2/value/Value;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // org.h2.value.Value[] ordered
        start local 1 // org.h2.value.Value arg
        start local 2 // java.util.Comparator sort
         0: .line 507
            aload 0 /* ordered */
            arraylength
            istore 3 /* size */
        start local 3 // int size
         1: .line 508
            iconst_0
            istore 4 /* start */
        start local 4 // int start
         2: goto 16
         3: .line 509
      StackMap locals: int int
      StackMap stack:
            aload 0 /* ordered */
            iload 4 /* start */
            aaload
            astore 5 /* array */
        start local 5 // org.h2.value.Value array
         4: .line 510
            iload 4 /* start */
            iconst_1
            iadd
            istore 6 /* end */
        start local 6 // int end
         5: .line 511
            goto 7
         6: .line 512
      StackMap locals: org.h2.value.Value int
      StackMap stack:
            iinc 6 /* end */ 1
         7: .line 511
      StackMap locals:
      StackMap stack:
            iload 6 /* end */
            iload 3 /* size */
            if_icmpge 8
            aload 2 /* sort */
            aload 5 /* array */
            aload 0 /* ordered */
            iload 6 /* end */
            aaload
            invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            ifeq 6
         8: .line 514
      StackMap locals:
      StackMap stack:
            iload 6 /* end */
            i2d
            iload 3 /* size */
            i2d
            ddiv
            invokestatic org.h2.value.ValueDouble.get:(D)Lorg/h2/value/ValueDouble;
            astore 7 /* v */
        start local 7 // org.h2.value.ValueDouble v
         9: .line 515
            iload 4 /* start */
            istore 8 /* i */
        start local 8 // int i
        10: goto 14
        11: .line 516
      StackMap locals: org.h2.value.ValueDouble int
      StackMap stack:
            aload 2 /* sort */
            aload 0 /* ordered */
            iload 8 /* i */
            aaload
            aload 1 /* arg */
            invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            ifne 13
        12: .line 517
            aload 7 /* v */
            areturn
        13: .line 515
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 8 /* i */
            iload 6 /* end */
            if_icmplt 11
        end local 8 // int i
        15: .line 520
            iload 6 /* end */
            istore 4 /* start */
        end local 7 // org.h2.value.ValueDouble v
        end local 6 // int end
        end local 5 // org.h2.value.Value array
        16: .line 508
      StackMap locals: org.h2.value.Value[] org.h2.value.Value java.util.Comparator int int
      StackMap stack:
            iload 4 /* start */
            iload 3 /* size */
            if_icmplt 3
        end local 4 // int start
        17: .line 522
            invokestatic org.h2.message.DbException.throwInternalError:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // int size
        end local 2 // java.util.Comparator sort
        end local 1 // org.h2.value.Value arg
        end local 0 // org.h2.value.Value[] ordered
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0  ordered  [Lorg/h2/value/Value;
            0   18     1      arg  Lorg/h2/value/Value;
            0   18     2     sort  Ljava/util/Comparator<Lorg/h2/value/Value;>;
            1   18     3     size  I
            2   17     4    start  I
            4   16     5    array  Lorg/h2/value/Value;
            5   16     6      end  I
            9   16     7        v  Lorg/h2/value/ValueDouble;
           10   15     8        i  I
    Signature: ([Lorg/h2/value/Value;Lorg/h2/value/Value;Ljava/util/Comparator<Lorg/h2/value/Value;>;)Lorg/h2/value/Value;
    MethodParameters:
         Name  Flags
      ordered  
      arg      
      sort     

  private org.h2.value.Value getListagg(org.h2.engine.Session, org.h2.expression.aggregate.AggregateData);
    descriptor: (Lorg/h2/engine/Session;Lorg/h2/expression/aggregate/AggregateData;)Lorg/h2/value/Value;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=11, args_size=3
        start local 0 // org.h2.expression.aggregate.Aggregate this
        start local 1 // org.h2.engine.Session session
        start local 2 // org.h2.expression.aggregate.AggregateData data
         0: .line 526
            aload 2 /* data */
            checkcast org.h2.expression.aggregate.AggregateDataCollecting
            astore 3 /* collectingData */
        start local 3 // org.h2.expression.aggregate.AggregateDataCollecting collectingData
         1: .line 527
            aload 3 /* collectingData */
            invokevirtual org.h2.expression.aggregate.AggregateDataCollecting.getArray:()[Lorg/h2/value/Value;
            astore 4 /* array */
        start local 4 // org.h2.value.Value[] array
         2: .line 528
            aload 4 /* array */
            ifnonnull 4
         3: .line 529
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            areturn
         4: .line 531
      StackMap locals: org.h2.expression.aggregate.AggregateDataCollecting org.h2.value.Value[]
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            ifnonnull 5
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.distinct:Z
            ifeq 6
         5: .line 532
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* array */
            invokevirtual org.h2.expression.aggregate.Aggregate.sortWithOrderBy:([Lorg/h2/value/Value;)V
         6: .line 534
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 5 /* builder */
        start local 5 // java.lang.StringBuilder builder
         7: .line 535
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            arraylength
            iconst_2
            if_icmpge 8
            ldc ","
            goto 9
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
         8: aload 3 /* collectingData */
            invokevirtual org.h2.expression.aggregate.AggregateDataCollecting.getSharedArgument:()Lorg/h2/value/Value;
            invokevirtual org.h2.value.Value.getString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         9: astore 6 /* sep */
        start local 6 // java.lang.String sep
        10: .line 536
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        11: aload 4 /* array */
            arraylength
            istore 8 /* length */
        start local 8 // int length
        12: goto 22
        13: .line 537
      StackMap locals: java.lang.String int int
      StackMap stack:
            aload 4 /* array */
            iload 7 /* i */
            aaload
            astore 9 /* val */
        start local 9 // org.h2.value.Value val
        14: .line 539
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            ifnull 17
        15: .line 540
            aload 9 /* val */
            checkcast org.h2.value.ValueArray
            invokevirtual org.h2.value.ValueArray.getList:()[Lorg/h2/value/Value;
            iconst_0
            aaload
            invokevirtual org.h2.value.Value.getString:()Ljava/lang/String;
            astore 10 /* s */
        start local 10 // java.lang.String s
        16: .line 541
            goto 18
        end local 10 // java.lang.String s
        17: .line 542
      StackMap locals: org.h2.value.Value
      StackMap stack:
            aload 9 /* val */
            invokevirtual org.h2.value.Value.getString:()Ljava/lang/String;
            astore 10 /* s */
        start local 10 // java.lang.String s
        18: .line 544
      StackMap locals: java.lang.String
      StackMap stack:
            aload 6 /* sep */
            ifnull 20
            iload 7 /* i */
            ifle 20
        19: .line 545
            aload 5 /* builder */
            aload 6 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        20: .line 547
      StackMap locals:
      StackMap stack:
            aload 5 /* builder */
            aload 10 /* s */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 10 // java.lang.String s
        end local 9 // org.h2.value.Value val
        21: .line 536
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 7 /* i */
            iload 8 /* length */
            if_icmplt 13
        end local 8 // int length
        end local 7 // int i
        23: .line 549
            aload 5 /* builder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.h2.value.ValueString.get:(Ljava/lang/String;)Lorg/h2/value/Value;
            areturn
        end local 6 // java.lang.String sep
        end local 5 // java.lang.StringBuilder builder
        end local 4 // org.h2.value.Value[] array
        end local 3 // org.h2.expression.aggregate.AggregateDataCollecting collectingData
        end local 2 // org.h2.expression.aggregate.AggregateData data
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   24     0            this  Lorg/h2/expression/aggregate/Aggregate;
            0   24     1         session  Lorg/h2/engine/Session;
            0   24     2            data  Lorg/h2/expression/aggregate/AggregateData;
            1   24     3  collectingData  Lorg/h2/expression/aggregate/AggregateDataCollecting;
            2   24     4           array  [Lorg/h2/value/Value;
            7   24     5         builder  Ljava/lang/StringBuilder;
           10   24     6             sep  Ljava/lang/String;
           11   23     7               i  I
           12   23     8          length  I
           14   21     9             val  Lorg/h2/value/Value;
           16   17    10               s  Ljava/lang/String;
           18   21    10               s  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      session  
      data     

  private org.h2.value.Value getHistogram(org.h2.engine.Session, org.h2.expression.aggregate.AggregateData);
    descriptor: (Lorg/h2/engine/Session;Lorg/h2/expression/aggregate/AggregateData;)Lorg/h2/value/Value;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // org.h2.expression.aggregate.Aggregate this
        start local 1 // org.h2.engine.Session session
        start local 2 // org.h2.expression.aggregate.AggregateData data
         0: .line 553
            aload 2 /* data */
            checkcast org.h2.expression.aggregate.AggregateDataDistinctWithCounts
            invokevirtual org.h2.expression.aggregate.AggregateDataDistinctWithCounts.getValues:()Ljava/util/TreeMap;
            astore 3 /* distinctValues */
        start local 3 // java.util.TreeMap distinctValues
         1: .line 554
            aload 3 /* distinctValues */
            ifnonnull 3
         2: .line 555
            invokestatic org.h2.value.ValueArray.getEmpty:()Lorg/h2/value/ValueArray;
            areturn
         3: .line 557
      StackMap locals: java.util.TreeMap
      StackMap stack:
            aload 3 /* distinctValues */
            invokevirtual java.util.TreeMap.size:()I
            anewarray org.h2.value.ValueArray
            astore 4 /* values */
        start local 4 // org.h2.value.ValueArray[] values
         4: .line 558
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         5: .line 559
            aload 3 /* distinctValues */
            invokevirtual java.util.TreeMap.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 12
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session org.h2.expression.aggregate.AggregateData java.util.TreeMap org.h2.value.ValueArray[] int top java.util.Iterator
      StackMap stack:
         6: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 6 /* entry */
        start local 6 // java.util.Map$Entry entry
         7: .line 560
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.h2.expression.aggregate.LongDataCounter
            astore 8 /* d */
        start local 8 // org.h2.expression.aggregate.LongDataCounter d
         8: .line 561
            aload 4 /* values */
            iload 5 /* i */
            iconst_2
            anewarray org.h2.value.Value
            dup
            iconst_0
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.h2.value.Value
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.distinct:Z
            ifeq 9
            lconst_1
            goto 10
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session org.h2.expression.aggregate.AggregateData java.util.TreeMap org.h2.value.ValueArray[] int java.util.Map$Entry java.util.Iterator org.h2.expression.aggregate.LongDataCounter
      StackMap stack: org.h2.value.ValueArray[] int org.h2.value.Value[] org.h2.value.Value[] int
         9: aload 8 /* d */
            getfield org.h2.expression.aggregate.LongDataCounter.count:J
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session org.h2.expression.aggregate.AggregateData java.util.TreeMap org.h2.value.ValueArray[] int java.util.Map$Entry java.util.Iterator org.h2.expression.aggregate.LongDataCounter
      StackMap stack: org.h2.value.ValueArray[] int org.h2.value.Value[] org.h2.value.Value[] int long
        10: invokestatic org.h2.value.ValueLong.get:(J)Lorg/h2/value/ValueLong;
            aastore
            invokestatic org.h2.value.ValueArray.get:([Lorg/h2/value/Value;)Lorg/h2/value/ValueArray;
            aastore
        11: .line 562
            iinc 5 /* i */ 1
        end local 8 // org.h2.expression.aggregate.LongDataCounter d
        end local 6 // java.util.Map$Entry entry
        12: .line 559
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session org.h2.expression.aggregate.AggregateData java.util.TreeMap org.h2.value.ValueArray[] int top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        13: .line 564
            aload 1 /* session */
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            astore 6 /* db */
        start local 6 // org.h2.engine.Database db
        14: .line 565
            aload 6 /* db */
            invokevirtual org.h2.engine.Database.getMode:()Lorg/h2/engine/Mode;
            astore 7 /* mode */
        start local 7 // org.h2.engine.Mode mode
        15: .line 566
            aload 6 /* db */
            invokevirtual org.h2.engine.Database.getCompareMode:()Lorg/h2/value/CompareMode;
            astore 8 /* compareMode */
        start local 8 // org.h2.value.CompareMode compareMode
        16: .line 567
            aload 4 /* values */
            new org.h2.expression.aggregate.Aggregate$2
            dup
            aload 0 /* this */
            aload 7 /* mode */
            aload 8 /* compareMode */
            invokespecial org.h2.expression.aggregate.Aggregate$2.<init>:(Lorg/h2/expression/aggregate/Aggregate;Lorg/h2/engine/Mode;Lorg/h2/value/CompareMode;)V
            invokestatic java.util.Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V
        17: .line 575
            aload 4 /* values */
            invokestatic org.h2.value.ValueArray.get:([Lorg/h2/value/Value;)Lorg/h2/value/ValueArray;
            areturn
        end local 8 // org.h2.value.CompareMode compareMode
        end local 7 // org.h2.engine.Mode mode
        end local 6 // org.h2.engine.Database db
        end local 5 // int i
        end local 4 // org.h2.value.ValueArray[] values
        end local 3 // java.util.TreeMap distinctValues
        end local 2 // org.h2.expression.aggregate.AggregateData data
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   18     0            this  Lorg/h2/expression/aggregate/Aggregate;
            0   18     1         session  Lorg/h2/engine/Session;
            0   18     2            data  Lorg/h2/expression/aggregate/AggregateData;
            1   18     3  distinctValues  Ljava/util/TreeMap<Lorg/h2/value/Value;Lorg/h2/expression/aggregate/LongDataCounter;>;
            4   18     4          values  [Lorg/h2/value/ValueArray;
            5   18     5               i  I
            7   12     6           entry  Ljava/util/Map$Entry<Lorg/h2/value/Value;Lorg/h2/expression/aggregate/LongDataCounter;>;
            8   12     8               d  Lorg/h2/expression/aggregate/LongDataCounter;
           14   18     6              db  Lorg/h2/engine/Database;
           15   18     7            mode  Lorg/h2/engine/Mode;
           16   18     8     compareMode  Lorg/h2/value/CompareMode;
    MethodParameters:
         Name  Flags
      session  
      data     

  private org.h2.value.Value getMode(org.h2.engine.Session, org.h2.expression.aggregate.AggregateData);
    descriptor: (Lorg/h2/engine/Session;Lorg/h2/expression/aggregate/AggregateData;)Lorg/h2/value/Value;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=14, args_size=3
        start local 0 // org.h2.expression.aggregate.Aggregate this
        start local 1 // org.h2.engine.Session session
        start local 2 // org.h2.expression.aggregate.AggregateData data
         0: .line 579
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            astore 3 /* v */
        start local 3 // org.h2.value.Value v
         1: .line 580
            aload 2 /* data */
            checkcast org.h2.expression.aggregate.AggregateDataDistinctWithCounts
            invokevirtual org.h2.expression.aggregate.AggregateDataDistinctWithCounts.getValues:()Ljava/util/TreeMap;
            astore 4 /* distinctValues */
        start local 4 // java.util.TreeMap distinctValues
         2: .line 581
            aload 4 /* distinctValues */
            ifnonnull 4
         3: .line 582
            aload 3 /* v */
            areturn
         4: .line 584
      StackMap locals: org.h2.value.Value java.util.TreeMap
      StackMap stack:
            lconst_0
            lstore 5 /* count */
        start local 5 // long count
         5: .line 585
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            ifnull 27
         6: .line 586
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            iconst_0
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.command.dml.SelectOrderBy
            getfield org.h2.command.dml.SelectOrderBy.sortType:I
            iconst_1
            iand
            ifeq 7
            iconst_1
            goto 8
      StackMap locals: long
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 7 /* desc */
        start local 7 // boolean desc
         9: .line 587
            aload 4 /* distinctValues */
            invokevirtual java.util.TreeMap.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 25
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session org.h2.expression.aggregate.AggregateData org.h2.value.Value java.util.TreeMap long int top java.util.Iterator
      StackMap stack:
        10: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 8 /* entry */
        start local 8 // java.util.Map$Entry entry
        11: .line 588
            aload 8 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.h2.expression.aggregate.LongDataCounter
            getfield org.h2.expression.aggregate.LongDataCounter.count:J
            lstore 10 /* c */
        start local 10 // long c
        12: .line 589
            lload 10 /* c */
            lload 5 /* count */
            lcmp
            ifle 16
        13: .line 590
            aload 8 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.h2.value.Value
            astore 3 /* v */
        14: .line 591
            lload 10 /* c */
            lstore 5 /* count */
        15: .line 592
            goto 25
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session org.h2.expression.aggregate.AggregateData org.h2.value.Value java.util.TreeMap long int java.util.Map$Entry java.util.Iterator long
      StackMap stack:
        16: lload 10 /* c */
            lload 5 /* count */
            lcmp
            ifne 25
        17: .line 593
            aload 8 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.h2.value.Value
            astore 12 /* v2 */
        start local 12 // org.h2.value.Value v2
        18: .line 594
            aload 1 /* session */
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            aload 3 /* v */
            aload 12 /* v2 */
            invokevirtual org.h2.engine.Database.compareTypeSafe:(Lorg/h2/value/Value;Lorg/h2/value/Value;)I
            istore 13 /* cmp */
        start local 13 // int cmp
        19: .line 595
            iload 7 /* desc */
            ifeq 22
        20: .line 596
            iload 13 /* cmp */
            iflt 24
        21: .line 597
            goto 25
        22: .line 599
      StackMap locals: org.h2.value.Value int
      StackMap stack:
            iload 13 /* cmp */
            ifgt 24
        23: .line 600
            goto 25
        24: .line 602
      StackMap locals:
      StackMap stack:
            aload 12 /* v2 */
            astore 3 /* v */
        end local 13 // int cmp
        end local 12 // org.h2.value.Value v2
        end local 10 // long c
        end local 8 // java.util.Map$Entry entry
        25: .line 587
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session org.h2.expression.aggregate.AggregateData org.h2.value.Value java.util.TreeMap long int top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        end local 7 // boolean desc
        26: .line 605
            goto 34
        27: .line 606
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session org.h2.expression.aggregate.AggregateData org.h2.value.Value java.util.TreeMap long
      StackMap stack:
            aload 4 /* distinctValues */
            invokevirtual java.util.TreeMap.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 33
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session org.h2.expression.aggregate.AggregateData org.h2.value.Value java.util.TreeMap long top java.util.Iterator
      StackMap stack:
        28: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 7 /* entry */
        start local 7 // java.util.Map$Entry entry
        29: .line 607
            aload 7 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.h2.expression.aggregate.LongDataCounter
            getfield org.h2.expression.aggregate.LongDataCounter.count:J
            lstore 9 /* c */
        start local 9 // long c
        30: .line 608
            lload 9 /* c */
            lload 5 /* count */
            lcmp
            ifle 33
        31: .line 609
            aload 7 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.h2.value.Value
            astore 3 /* v */
        32: .line 610
            lload 9 /* c */
            lstore 5 /* count */
        end local 9 // long c
        end local 7 // java.util.Map$Entry entry
        33: .line 606
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 28
        34: .line 614
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session org.h2.expression.aggregate.AggregateData org.h2.value.Value java.util.TreeMap long
      StackMap stack:
            aload 3 /* v */
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
            invokevirtual org.h2.value.TypeInfo.getValueType:()I
            invokevirtual org.h2.value.Value.convertTo:(I)Lorg/h2/value/Value;
            areturn
        end local 5 // long count
        end local 4 // java.util.TreeMap distinctValues
        end local 3 // org.h2.value.Value v
        end local 2 // org.h2.expression.aggregate.AggregateData data
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   35     0            this  Lorg/h2/expression/aggregate/Aggregate;
            0   35     1         session  Lorg/h2/engine/Session;
            0   35     2            data  Lorg/h2/expression/aggregate/AggregateData;
            1   35     3               v  Lorg/h2/value/Value;
            2   35     4  distinctValues  Ljava/util/TreeMap<Lorg/h2/value/Value;Lorg/h2/expression/aggregate/LongDataCounter;>;
            5   35     5           count  J
            9   26     7            desc  Z
           11   25     8           entry  Ljava/util/Map$Entry<Lorg/h2/value/Value;Lorg/h2/expression/aggregate/LongDataCounter;>;
           12   25    10               c  J
           18   25    12              v2  Lorg/h2/value/Value;
           19   25    13             cmp  I
           29   33     7           entry  Ljava/util/Map$Entry<Lorg/h2/value/Value;Lorg/h2/expression/aggregate/LongDataCounter;>;
           30   33     9               c  J
    MethodParameters:
         Name  Flags
      session  
      data     

  public void mapColumnsAnalysis(org.h2.table.ColumnResolver, int, int);
    descriptor: (Lorg/h2/table/ColumnResolver;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.h2.expression.aggregate.Aggregate this
        start local 1 // org.h2.table.ColumnResolver resolver
        start local 2 // int level
        start local 3 // int innerState
         0: .line 619
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            ifnull 5
         1: .line 620
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 5
            goto 4
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.table.ColumnResolver int int top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.command.dml.SelectOrderBy
            astore 4 /* o */
        start local 4 // org.h2.command.dml.SelectOrderBy o
         3: .line 621
            aload 4 /* o */
            getfield org.h2.command.dml.SelectOrderBy.expression:Lorg/h2/expression/Expression;
            aload 1 /* resolver */
            iload 2 /* level */
            iload 3 /* innerState */
            invokevirtual org.h2.expression.Expression.mapColumns:(Lorg/h2/table/ColumnResolver;II)V
        end local 4 // org.h2.command.dml.SelectOrderBy o
         4: .line 620
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 624
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.table.ColumnResolver int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* resolver */
            iload 2 /* level */
            iload 3 /* innerState */
            invokespecial org.h2.expression.aggregate.AbstractAggregate.mapColumnsAnalysis:(Lorg/h2/table/ColumnResolver;II)V
         6: .line 625
            return
        end local 3 // int innerState
        end local 2 // int level
        end local 1 // org.h2.table.ColumnResolver resolver
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lorg/h2/expression/aggregate/Aggregate;
            0    7     1    resolver  Lorg/h2/table/ColumnResolver;
            0    7     2       level  I
            0    7     3  innerState  I
            3    4     4           o  Lorg/h2/command/dml/SelectOrderBy;
    MethodParameters:
            Name  Flags
      resolver    
      level       
      innerState  

  public org.h2.expression.Expression optimize(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)Lorg/h2/expression/Expression;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.h2.expression.aggregate.Aggregate this
        start local 1 // org.h2.engine.Session session
         0: .line 629
            aload 0 /* this */
            aload 1 /* session */
            invokespecial org.h2.expression.aggregate.AbstractAggregate.optimize:(Lorg/h2/engine/Session;)Lorg/h2/expression/Expression;
            pop
         1: .line 630
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            arraylength
            iconst_1
            if_icmpne 3
         2: .line 631
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            iconst_0
            aaload
            invokevirtual org.h2.expression.Expression.getType:()Lorg/h2/value/TypeInfo;
            putfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
         3: .line 633
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            ifnull 13
         4: .line 634
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 7
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session top java.util.Iterator
      StackMap stack:
         5: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.command.dml.SelectOrderBy
            astore 2 /* o */
        start local 2 // org.h2.command.dml.SelectOrderBy o
         6: .line 635
            aload 2 /* o */
            aload 2 /* o */
            getfield org.h2.command.dml.SelectOrderBy.expression:Lorg/h2/expression/Expression;
            aload 1 /* session */
            invokevirtual org.h2.expression.Expression.optimize:(Lorg/h2/engine/Session;)Lorg/h2/expression/Expression;
            putfield org.h2.command.dml.SelectOrderBy.expression:Lorg/h2/expression/Expression;
        end local 2 // org.h2.command.dml.SelectOrderBy o
         7: .line 634
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 638
            invokestatic org.h2.expression.aggregate.Aggregate.$SWITCH_TABLE$org$h2$expression$aggregate$AggregateType:()[I
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.aggregateType:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            iaload
            tableswitch { // 24 - 25
                   24: 9
                   25: 9
              default: 11
          }
         9: .line 641
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.engine.Session
      StackMap stack:
            iconst_1
            istore 2 /* offset */
        start local 2 // int offset
        10: .line 642
            goto 12
        end local 2 // int offset
        11: .line 644
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* offset */
        start local 2 // int offset
        12: .line 646
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* session */
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            iload 2 /* offset */
            invokestatic org.h2.expression.aggregate.Aggregate.createOrder:(Lorg/h2/engine/Session;Ljava/util/ArrayList;I)Lorg/h2/result/SortOrder;
            putfield org.h2.expression.aggregate.Aggregate.orderBySort:Lorg/h2/result/SortOrder;
        end local 2 // int offset
        13: .line 648
      StackMap locals:
      StackMap stack:
            invokestatic org.h2.expression.aggregate.Aggregate.$SWITCH_TABLE$org$h2$expression$aggregate$AggregateType:()[I
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.aggregateType:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            iaload
            tableswitch { // 1 - 27
                    1: 16
                    2: 16
                    3: 22
                    4: 32
                    5: 32
                    6: 30
                    7: 43
                    8: 43
                    9: 43
                   10: 43
                   11: 45
                   12: 45
                   13: 47
                   14: 47
                   15: 18
                   16: 20
                   17: 33
                   18: 33
                   19: 35
                   20: 35
                   21: 37
                   22: 41
                   23: 38
                   24: 14
                   25: 49
                   26: 41
                   27: 51
              default: 53
          }
        14: .line 650
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.h2.value.TypeInfo.TYPE_STRING:Lorg/h2/value/TypeInfo;
            putfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
        15: .line 651
            goto 54
        16: .line 654
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.h2.value.TypeInfo.TYPE_LONG:Lorg/h2/value/TypeInfo;
            putfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
        17: .line 655
            goto 54
        18: .line 657
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.h2.value.TypeInfo.TYPE_INT:Lorg/h2/value/TypeInfo;
            putfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
        19: .line 658
            goto 54
        20: .line 660
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.h2.value.TypeInfo.TYPE_ARRAY:Lorg/h2/value/TypeInfo;
            putfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
        21: .line 661
            goto 54
        22: .line 663
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
            invokevirtual org.h2.value.TypeInfo.getValueType:()I
            istore 2 /* dataType */
        start local 2 // int dataType
        23: .line 664
            iload 2 /* dataType */
            iconst_1
            if_icmpne 26
        24: .line 666
            aload 0 /* this */
            getstatic org.h2.value.TypeInfo.TYPE_LONG:Lorg/h2/value/TypeInfo;
            putfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
        25: .line 667
            goto 54
      StackMap locals: int
      StackMap stack:
        26: iload 2 /* dataType */
            invokestatic org.h2.value.DataType.supportsAdd:(I)Z
            ifne 28
        27: .line 668
            ldc 90015
            aload 0 /* this */
            iconst_0
            invokevirtual org.h2.expression.aggregate.Aggregate.getSQL:(Z)Ljava/lang/String;
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
        28: .line 670
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* dataType */
            invokestatic org.h2.value.DataType.getAddProofType:(I)I
            invokestatic org.h2.value.TypeInfo.getTypeInfo:(I)Lorg/h2/value/TypeInfo;
            putfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
        29: .line 672
            goto 54
        end local 2 // int dataType
        30: .line 675
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
            invokevirtual org.h2.value.TypeInfo.getValueType:()I
            invokestatic org.h2.value.DataType.supportsAdd:(I)Z
            ifne 54
        31: .line 676
            ldc 90015
            aload 0 /* this */
            iconst_0
            invokevirtual org.h2.expression.aggregate.Aggregate.getSQL:(Z)Ljava/lang/String;
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
        32: .line 681
      StackMap locals:
      StackMap stack:
            goto 54
        33: .line 684
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.h2.value.TypeInfo.TYPE_LONG:Lorg/h2/value/TypeInfo;
            putfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
        34: .line 685
            goto 54
        35: .line 688
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.h2.value.TypeInfo.TYPE_DOUBLE:Lorg/h2/value/TypeInfo;
            putfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
        36: .line 689
            goto 54
        37: .line 691
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            iconst_0
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.command.dml.SelectOrderBy
            getfield org.h2.command.dml.SelectOrderBy.expression:Lorg/h2/expression/Expression;
            invokevirtual org.h2.expression.Expression.getType:()Lorg/h2/value/TypeInfo;
            putfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
        38: .line 694
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
            invokevirtual org.h2.value.TypeInfo.getValueType:()I
            tableswitch { // 2 - 8
                    2: 39
                    3: 39
                    4: 39
                    5: 39
                    6: 39
                    7: 39
                    8: 39
              default: 40
          }
        39: .line 702
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.h2.value.TypeInfo.TYPE_DECIMAL_DEFAULT:Lorg/h2/value/TypeInfo;
            putfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
        40: .line 705
      StackMap locals:
      StackMap stack:
            goto 54
        41: .line 708
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            iconst_0
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.command.dml.SelectOrderBy
            getfield org.h2.command.dml.SelectOrderBy.expression:Lorg/h2/expression/Expression;
            invokevirtual org.h2.expression.Expression.getType:()Lorg/h2/value/TypeInfo;
            putfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
        42: .line 709
            goto 54
        43: .line 714
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.h2.value.TypeInfo.TYPE_DOUBLE:Lorg/h2/value/TypeInfo;
            putfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
        44: .line 715
            goto 54
        45: .line 718
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.h2.value.TypeInfo.TYPE_BOOLEAN:Lorg/h2/value/TypeInfo;
            putfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
        46: .line 719
            goto 54
        47: .line 722
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
            invokevirtual org.h2.value.TypeInfo.getValueType:()I
            invokestatic org.h2.value.DataType.supportsAdd:(I)Z
            ifne 54
        48: .line 723
            ldc 90015
            aload 0 /* this */
            iconst_0
            invokevirtual org.h2.expression.aggregate.Aggregate.getSQL:(Z)Ljava/lang/String;
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
        49: .line 727
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.h2.value.TypeInfo.TYPE_ARRAY:Lorg/h2/value/TypeInfo;
            putfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
        50: .line 728
            goto 54
        51: .line 730
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.h2.value.TypeInfo.TYPE_GEOMETRY:Lorg/h2/value/TypeInfo;
            putfield org.h2.expression.aggregate.Aggregate.type:Lorg/h2/value/TypeInfo;
        52: .line 731
            goto 54
        53: .line 733
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "type="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.aggregateType:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            pop
        54: .line 735
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   55     0      this  Lorg/h2/expression/aggregate/Aggregate;
            0   55     1   session  Lorg/h2/engine/Session;
            6    7     2         o  Lorg/h2/command/dml/SelectOrderBy;
           10   11     2    offset  I
           12   13     2    offset  I
           23   30     2  dataType  I
    MethodParameters:
         Name  Flags
      session  

  public void setEvaluatable(org.h2.table.TableFilter, boolean);
    descriptor: (Lorg/h2/table/TableFilter;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.h2.expression.aggregate.Aggregate this
        start local 1 // org.h2.table.TableFilter tableFilter
        start local 2 // boolean b
         0: .line 740
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            ifnull 5
         1: .line 741
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.table.TableFilter int top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.command.dml.SelectOrderBy
            astore 3 /* o */
        start local 3 // org.h2.command.dml.SelectOrderBy o
         3: .line 742
            aload 3 /* o */
            getfield org.h2.command.dml.SelectOrderBy.expression:Lorg/h2/expression/Expression;
            aload 1 /* tableFilter */
            iload 2 /* b */
            invokevirtual org.h2.expression.Expression.setEvaluatable:(Lorg/h2/table/TableFilter;Z)V
        end local 3 // org.h2.command.dml.SelectOrderBy o
         4: .line 741
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 745
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.table.TableFilter int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* tableFilter */
            iload 2 /* b */
            invokespecial org.h2.expression.aggregate.AbstractAggregate.setEvaluatable:(Lorg/h2/table/TableFilter;Z)V
         6: .line 746
            return
        end local 2 // boolean b
        end local 1 // org.h2.table.TableFilter tableFilter
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lorg/h2/expression/aggregate/Aggregate;
            0    7     1  tableFilter  Lorg/h2/table/TableFilter;
            0    7     2            b  Z
            3    4     3            o  Lorg/h2/command/dml/SelectOrderBy;
    MethodParameters:
             Name  Flags
      tableFilter  
      b            

  private java.lang.StringBuilder getSQLArrayAggregate(java.lang.StringBuilder, boolean);
    descriptor: (Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.h2.expression.aggregate.Aggregate this
        start local 1 // java.lang.StringBuilder builder
        start local 2 // boolean alwaysQuote
         0: .line 749
            aload 1 /* builder */
            ldc "ARRAY_AGG("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         1: .line 750
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.distinct:Z
            ifeq 3
         2: .line 751
            aload 1 /* builder */
            ldc "DISTINCT "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 753
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            iconst_0
            aaload
            aload 1 /* builder */
            iload 2 /* alwaysQuote */
            invokevirtual org.h2.expression.Expression.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            pop
         4: .line 754
            aload 1 /* builder */
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            iload 2 /* alwaysQuote */
            invokestatic org.h2.expression.analysis.Window.appendOrderBy:(Ljava/lang/StringBuilder;Ljava/util/ArrayList;Z)V
         5: .line 755
            aload 1 /* builder */
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         6: .line 756
            aload 0 /* this */
            aload 1 /* builder */
            iload 2 /* alwaysQuote */
            invokevirtual org.h2.expression.aggregate.Aggregate.appendTailConditions:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            areturn
        end local 2 // boolean alwaysQuote
        end local 1 // java.lang.StringBuilder builder
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lorg/h2/expression/aggregate/Aggregate;
            0    7     1      builder  Ljava/lang/StringBuilder;
            0    7     2  alwaysQuote  Z
    MethodParameters:
             Name  Flags
      builder      
      alwaysQuote  

  public java.lang.StringBuilder getSQL(java.lang.StringBuilder, boolean);
    descriptor: (Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.h2.expression.aggregate.Aggregate this
        start local 1 // java.lang.StringBuilder builder
        start local 2 // boolean alwaysQuote
         0: .line 762
            invokestatic org.h2.expression.aggregate.Aggregate.$SWITCH_TABLE$org$h2$expression$aggregate$AggregateType:()[I
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.aggregateType:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            iaload
            tableswitch { // 1 - 27
                    1: 1
                    2: 2
                    3: 8
                    4: 10
                    5: 12
                    6: 14
                    7: 16
                    8: 18
                    9: 20
                   10: 22
                   11: 26
                   12: 24
                   13: 30
                   14: 28
                   15: 4
                   16: 6
                   17: 32
                   18: 34
                   19: 36
                   20: 38
                   21: 40
                   22: 42
                   23: 44
                   24: 46
                   25: 48
                   26: 49
                   27: 51
              default: 53
          }
         1: .line 764
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* builder */
            ldc "COUNT(*)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* alwaysQuote */
            invokevirtual org.h2.expression.aggregate.Aggregate.appendTailConditions:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            areturn
         2: .line 766
      StackMap locals:
      StackMap stack:
            ldc "COUNT"
            astore 3 /* text */
        start local 3 // java.lang.String text
         3: .line 767
            goto 54
        end local 3 // java.lang.String text
         4: .line 769
      StackMap locals:
      StackMap stack:
            ldc "SELECTIVITY"
            astore 3 /* text */
        start local 3 // java.lang.String text
         5: .line 770
            goto 54
        end local 3 // java.lang.String text
         6: .line 772
      StackMap locals:
      StackMap stack:
            ldc "HISTOGRAM"
            astore 3 /* text */
        start local 3 // java.lang.String text
         7: .line 773
            goto 54
        end local 3 // java.lang.String text
         8: .line 775
      StackMap locals:
      StackMap stack:
            ldc "SUM"
            astore 3 /* text */
        start local 3 // java.lang.String text
         9: .line 776
            goto 54
        end local 3 // java.lang.String text
        10: .line 778
      StackMap locals:
      StackMap stack:
            ldc "MIN"
            astore 3 /* text */
        start local 3 // java.lang.String text
        11: .line 779
            goto 54
        end local 3 // java.lang.String text
        12: .line 781
      StackMap locals:
      StackMap stack:
            ldc "MAX"
            astore 3 /* text */
        start local 3 // java.lang.String text
        13: .line 782
            goto 54
        end local 3 // java.lang.String text
        14: .line 784
      StackMap locals:
      StackMap stack:
            ldc "AVG"
            astore 3 /* text */
        start local 3 // java.lang.String text
        15: .line 785
            goto 54
        end local 3 // java.lang.String text
        16: .line 787
      StackMap locals:
      StackMap stack:
            ldc "STDDEV_POP"
            astore 3 /* text */
        start local 3 // java.lang.String text
        17: .line 788
            goto 54
        end local 3 // java.lang.String text
        18: .line 790
      StackMap locals:
      StackMap stack:
            ldc "STDDEV_SAMP"
            astore 3 /* text */
        start local 3 // java.lang.String text
        19: .line 791
            goto 54
        end local 3 // java.lang.String text
        20: .line 793
      StackMap locals:
      StackMap stack:
            ldc "VAR_POP"
            astore 3 /* text */
        start local 3 // java.lang.String text
        21: .line 794
            goto 54
        end local 3 // java.lang.String text
        22: .line 796
      StackMap locals:
      StackMap stack:
            ldc "VAR_SAMP"
            astore 3 /* text */
        start local 3 // java.lang.String text
        23: .line 797
            goto 54
        end local 3 // java.lang.String text
        24: .line 799
      StackMap locals:
      StackMap stack:
            ldc "EVERY"
            astore 3 /* text */
        start local 3 // java.lang.String text
        25: .line 800
            goto 54
        end local 3 // java.lang.String text
        26: .line 802
      StackMap locals:
      StackMap stack:
            ldc "ANY"
            astore 3 /* text */
        start local 3 // java.lang.String text
        27: .line 803
            goto 54
        end local 3 // java.lang.String text
        28: .line 805
      StackMap locals:
      StackMap stack:
            ldc "BIT_AND"
            astore 3 /* text */
        start local 3 // java.lang.String text
        29: .line 806
            goto 54
        end local 3 // java.lang.String text
        30: .line 808
      StackMap locals:
      StackMap stack:
            ldc "BIT_OR"
            astore 3 /* text */
        start local 3 // java.lang.String text
        31: .line 809
            goto 54
        end local 3 // java.lang.String text
        32: .line 811
      StackMap locals:
      StackMap stack:
            ldc "RANK"
            astore 3 /* text */
        start local 3 // java.lang.String text
        33: .line 812
            goto 54
        end local 3 // java.lang.String text
        34: .line 814
      StackMap locals:
      StackMap stack:
            ldc "DENSE_RANK"
            astore 3 /* text */
        start local 3 // java.lang.String text
        35: .line 815
            goto 54
        end local 3 // java.lang.String text
        36: .line 817
      StackMap locals:
      StackMap stack:
            ldc "PERCENT_RANK"
            astore 3 /* text */
        start local 3 // java.lang.String text
        37: .line 818
            goto 54
        end local 3 // java.lang.String text
        38: .line 820
      StackMap locals:
      StackMap stack:
            ldc "CUME_DIST"
            astore 3 /* text */
        start local 3 // java.lang.String text
        39: .line 821
            goto 54
        end local 3 // java.lang.String text
        40: .line 823
      StackMap locals:
      StackMap stack:
            ldc "PERCENTILE_CONT"
            astore 3 /* text */
        start local 3 // java.lang.String text
        41: .line 824
            goto 54
        end local 3 // java.lang.String text
        42: .line 826
      StackMap locals:
      StackMap stack:
            ldc "PERCENTILE_DISC"
            astore 3 /* text */
        start local 3 // java.lang.String text
        43: .line 827
            goto 54
        end local 3 // java.lang.String text
        44: .line 829
      StackMap locals:
      StackMap stack:
            ldc "MEDIAN"
            astore 3 /* text */
        start local 3 // java.lang.String text
        45: .line 830
            goto 54
        end local 3 // java.lang.String text
        46: .line 832
      StackMap locals:
      StackMap stack:
            ldc "LISTAGG"
            astore 3 /* text */
        start local 3 // java.lang.String text
        47: .line 833
            goto 54
        end local 3 // java.lang.String text
        48: .line 835
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* builder */
            iload 2 /* alwaysQuote */
            invokevirtual org.h2.expression.aggregate.Aggregate.getSQLArrayAggregate:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            areturn
        49: .line 837
      StackMap locals:
      StackMap stack:
            ldc "MODE"
            astore 3 /* text */
        start local 3 // java.lang.String text
        50: .line 838
            goto 54
        end local 3 // java.lang.String text
        51: .line 840
      StackMap locals:
      StackMap stack:
            ldc "ENVELOPE"
            astore 3 /* text */
        start local 3 // java.lang.String text
        52: .line 841
            goto 54
        end local 3 // java.lang.String text
        53: .line 843
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "type="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.aggregateType:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        start local 3 // java.lang.String text
        54: .line 845
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* builder */
            aload 3 /* text */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        55: .line 846
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.distinct:Z
            ifeq 58
        56: .line 847
            aload 1 /* builder */
            ldc "(DISTINCT "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        57: .line 848
            goto 59
        58: .line 849
      StackMap locals:
      StackMap stack:
            aload 1 /* builder */
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        59: .line 851
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        60: goto 69
        61: .line 852
      StackMap locals: int
      StackMap stack:
            iload 4 /* i */
            ifle 63
        62: .line 853
            aload 1 /* builder */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        63: .line 855
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            iload 4 /* i */
            aaload
            astore 5 /* arg */
        start local 5 // org.h2.expression.Expression arg
        64: .line 856
            aload 5 /* arg */
            instanceof org.h2.expression.Subquery
            ifeq 67
        65: .line 857
            aload 5 /* arg */
            aload 1 /* builder */
            iload 2 /* alwaysQuote */
            invokevirtual org.h2.expression.Expression.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            pop
        66: .line 858
            goto 68
        67: .line 859
      StackMap locals: org.h2.expression.Expression
      StackMap stack:
            aload 5 /* arg */
            aload 1 /* builder */
            iload 2 /* alwaysQuote */
            invokevirtual org.h2.expression.Expression.getUnenclosedSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            pop
        end local 5 // org.h2.expression.Expression arg
        68: .line 851
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        69: iload 4 /* i */
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            arraylength
            if_icmplt 61
        end local 4 // int i
        70: .line 862
            aload 1 /* builder */
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        71: .line 863
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            ifnull 75
        72: .line 864
            aload 1 /* builder */
            ldc " WITHIN GROUP ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        73: .line 865
            aload 1 /* builder */
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            iload 2 /* alwaysQuote */
            invokestatic org.h2.expression.analysis.Window.appendOrderBy:(Ljava/lang/StringBuilder;Ljava/util/ArrayList;Z)V
        74: .line 866
            aload 1 /* builder */
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        75: .line 868
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* builder */
            iload 2 /* alwaysQuote */
            invokevirtual org.h2.expression.aggregate.Aggregate.appendTailConditions:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            areturn
        end local 3 // java.lang.String text
        end local 2 // boolean alwaysQuote
        end local 1 // java.lang.StringBuilder builder
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   76     0         this  Lorg/h2/expression/aggregate/Aggregate;
            0   76     1      builder  Ljava/lang/StringBuilder;
            0   76     2  alwaysQuote  Z
            3    4     3         text  Ljava/lang/String;
            5    6     3         text  Ljava/lang/String;
            7    8     3         text  Ljava/lang/String;
            9   10     3         text  Ljava/lang/String;
           11   12     3         text  Ljava/lang/String;
           13   14     3         text  Ljava/lang/String;
           15   16     3         text  Ljava/lang/String;
           17   18     3         text  Ljava/lang/String;
           19   20     3         text  Ljava/lang/String;
           21   22     3         text  Ljava/lang/String;
           23   24     3         text  Ljava/lang/String;
           25   26     3         text  Ljava/lang/String;
           27   28     3         text  Ljava/lang/String;
           29   30     3         text  Ljava/lang/String;
           31   32     3         text  Ljava/lang/String;
           33   34     3         text  Ljava/lang/String;
           35   36     3         text  Ljava/lang/String;
           37   38     3         text  Ljava/lang/String;
           39   40     3         text  Ljava/lang/String;
           41   42     3         text  Ljava/lang/String;
           43   44     3         text  Ljava/lang/String;
           45   46     3         text  Ljava/lang/String;
           47   48     3         text  Ljava/lang/String;
           50   51     3         text  Ljava/lang/String;
           52   53     3         text  Ljava/lang/String;
           54   76     3         text  Ljava/lang/String;
           60   70     4            i  I
           64   68     5          arg  Lorg/h2/expression/Expression;
    MethodParameters:
             Name  Flags
      builder      
      alwaysQuote  

  private org.h2.index.Index getMinMaxColumnIndex();
    descriptor: ()Lorg/h2/index/Index;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // org.h2.expression.aggregate.Aggregate this
         0: .line 872
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            iconst_0
            aaload
            astore 1 /* arg */
        start local 1 // org.h2.expression.Expression arg
         1: .line 873
            aload 1 /* arg */
            instanceof org.h2.expression.ExpressionColumn
            ifeq 8
         2: .line 874
            aload 1 /* arg */
            checkcast org.h2.expression.ExpressionColumn
            astore 2 /* col */
        start local 2 // org.h2.expression.ExpressionColumn col
         3: .line 875
            aload 2 /* col */
            invokevirtual org.h2.expression.ExpressionColumn.getColumn:()Lorg/h2/table/Column;
            astore 3 /* column */
        start local 3 // org.h2.table.Column column
         4: .line 876
            aload 2 /* col */
            invokevirtual org.h2.expression.ExpressionColumn.getTableFilter:()Lorg/h2/table/TableFilter;
            astore 4 /* filter */
        start local 4 // org.h2.table.TableFilter filter
         5: .line 877
            aload 4 /* filter */
            ifnull 8
         6: .line 878
            aload 4 /* filter */
            invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
            astore 5 /* table */
        start local 5 // org.h2.table.Table table
         7: .line 879
            aload 5 /* table */
            aload 3 /* column */
            iconst_1
            iconst_0
            invokevirtual org.h2.table.Table.getIndexForColumn:(Lorg/h2/table/Column;ZZ)Lorg/h2/index/Index;
            areturn
        end local 5 // org.h2.table.Table table
        end local 4 // org.h2.table.TableFilter filter
        end local 3 // org.h2.table.Column column
        end local 2 // org.h2.expression.ExpressionColumn col
         8: .line 882
      StackMap locals: org.h2.expression.Expression
      StackMap stack:
            aconst_null
            areturn
        end local 1 // org.h2.expression.Expression arg
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lorg/h2/expression/aggregate/Aggregate;
            1    9     1     arg  Lorg/h2/expression/Expression;
            3    8     2     col  Lorg/h2/expression/ExpressionColumn;
            4    8     3  column  Lorg/h2/table/Column;
            5    8     4  filter  Lorg/h2/table/TableFilter;
            7    8     5   table  Lorg/h2/table/Table;

  public boolean isEverything(org.h2.expression.ExpressionVisitor);
    descriptor: (Lorg/h2/expression/ExpressionVisitor;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.h2.expression.aggregate.Aggregate this
        start local 1 // org.h2.expression.ExpressionVisitor visitor
         0: .line 887
            aload 0 /* this */
            aload 1 /* visitor */
            invokespecial org.h2.expression.aggregate.AbstractAggregate.isEverything:(Lorg/h2/expression/ExpressionVisitor;)Z
            ifne 2
         1: .line 888
            iconst_0
            ireturn
         2: .line 890
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.filterCondition:Lorg/h2/expression/Expression;
            ifnull 4
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.filterCondition:Lorg/h2/expression/Expression;
            aload 1 /* visitor */
            invokevirtual org.h2.expression.Expression.isEverything:(Lorg/h2/expression/ExpressionVisitor;)Z
            ifne 4
         3: .line 891
            iconst_0
            ireturn
         4: .line 893
      StackMap locals:
      StackMap stack:
            aload 1 /* visitor */
            invokevirtual org.h2.expression.ExpressionVisitor.getType:()I
            iconst_1
            if_icmpne 22
         5: .line 894
            invokestatic org.h2.expression.aggregate.Aggregate.$SWITCH_TABLE$org$h2$expression$aggregate$AggregateType:()[I
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.aggregateType:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            iaload
            lookupswitch { // 8
                    1: 9
                    2: 6
                    4: 10
                    5: 10
                   21: 13
                   22: 13
                   23: 15
                   27: 19
              default: 21
          }
         6: .line 896
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.distinct:Z
            ifne 8
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            iconst_0
            aaload
            invokevirtual org.h2.expression.Expression.getNullable:()I
            ifne 8
         7: .line 897
            aload 1 /* visitor */
            invokevirtual org.h2.expression.ExpressionVisitor.getTable:()Lorg/h2/table/Table;
            invokevirtual org.h2.table.Table.canGetRowCount:()Z
            ireturn
         8: .line 899
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         9: .line 901
      StackMap locals:
      StackMap stack:
            aload 1 /* visitor */
            invokevirtual org.h2.expression.ExpressionVisitor.getTable:()Lorg/h2/table/Table;
            invokevirtual org.h2.table.Table.canGetRowCount:()Z
            ireturn
        10: .line 904
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.expression.aggregate.Aggregate.getMinMaxColumnIndex:()Lorg/h2/index/Index;
            astore 2 /* index */
        start local 2 // org.h2.index.Index index
        11: .line 905
            aload 2 /* index */
            ifnull 12
            iconst_1
            ireturn
      StackMap locals: org.h2.index.Index
      StackMap stack:
        12: iconst_0
            ireturn
        end local 2 // org.h2.index.Index index
        13: .line 908
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            iconst_0
            aaload
            invokevirtual org.h2.expression.Expression.isConstant:()Z
            ifeq 14
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            iconst_0
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.command.dml.SelectOrderBy
            getfield org.h2.command.dml.SelectOrderBy.expression:Lorg/h2/expression/Expression;
            invokestatic org.h2.expression.aggregate.Percentile.getColumnIndex:(Lorg/h2/expression/Expression;)Lorg/h2/index/Index;
            ifnull 14
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        14: iconst_0
            ireturn
        15: .line 910
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.distinct:Z
            ifeq 17
        16: .line 911
            iconst_0
            ireturn
        17: .line 913
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            iconst_0
            aaload
            invokestatic org.h2.expression.aggregate.Percentile.getColumnIndex:(Lorg/h2/expression/Expression;)Lorg/h2/index/Index;
            ifnull 18
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        18: iconst_0
            ireturn
        19: .line 915
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            iconst_0
            aaload
            invokestatic org.h2.expression.aggregate.AggregateDataEnvelope.getGeometryColumnIndex:(Lorg/h2/expression/Expression;)Lorg/h2/index/Index;
            ifnull 20
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        20: iconst_0
            ireturn
        21: .line 917
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        22: .line 920
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 27
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.expression.ExpressionVisitor top int int org.h2.expression.Expression[]
      StackMap stack:
        23: aload 5
            iload 3
            aaload
            astore 2 /* arg */
        start local 2 // org.h2.expression.Expression arg
        24: .line 921
            aload 2 /* arg */
            aload 1 /* visitor */
            invokevirtual org.h2.expression.Expression.isEverything:(Lorg/h2/expression/ExpressionVisitor;)Z
            ifne 26
        25: .line 922
            iconst_0
            ireturn
        end local 2 // org.h2.expression.Expression arg
        26: .line 920
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
        27: iload 3
            iload 4
            if_icmplt 23
        28: .line 925
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            ifnull 34
        29: .line 926
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 33
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.expression.ExpressionVisitor top java.util.Iterator
      StackMap stack:
        30: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.command.dml.SelectOrderBy
            astore 2 /* o */
        start local 2 // org.h2.command.dml.SelectOrderBy o
        31: .line 927
            aload 2 /* o */
            getfield org.h2.command.dml.SelectOrderBy.expression:Lorg/h2/expression/Expression;
            aload 1 /* visitor */
            invokevirtual org.h2.expression.Expression.isEverything:(Lorg/h2/expression/ExpressionVisitor;)Z
            ifne 33
        32: .line 928
            iconst_0
            ireturn
        end local 2 // org.h2.command.dml.SelectOrderBy o
        33: .line 926
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 30
        34: .line 932
      StackMap locals: org.h2.expression.aggregate.Aggregate org.h2.expression.ExpressionVisitor
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // org.h2.expression.ExpressionVisitor visitor
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   35     0     this  Lorg/h2/expression/aggregate/Aggregate;
            0   35     1  visitor  Lorg/h2/expression/ExpressionVisitor;
           11   13     2    index  Lorg/h2/index/Index;
           24   26     2      arg  Lorg/h2/expression/Expression;
           31   33     2        o  Lorg/h2/command/dml/SelectOrderBy;
    MethodParameters:
         Name  Flags
      visitor  

  public int getCost();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // org.h2.expression.aggregate.Aggregate this
         0: .line 937
            iconst_1
            istore 1 /* cost */
        start local 1 // int cost
         1: .line 938
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.args:[Lorg/h2/expression/Expression;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: org.h2.expression.aggregate.Aggregate int top int int org.h2.expression.Expression[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* arg */
        start local 2 // org.h2.expression.Expression arg
         3: .line 939
            iload 1 /* cost */
            aload 2 /* arg */
            invokevirtual org.h2.expression.Expression.getCost:()I
            iadd
            istore 1 /* cost */
        end local 2 // org.h2.expression.Expression arg
         4: .line 938
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 2
         6: .line 941
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            ifnull 11
         7: .line 942
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.orderByList:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 10
      StackMap locals: org.h2.expression.aggregate.Aggregate int top java.util.Iterator
      StackMap stack:
         8: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.command.dml.SelectOrderBy
            astore 2 /* o */
        start local 2 // org.h2.command.dml.SelectOrderBy o
         9: .line 943
            iload 1 /* cost */
            aload 2 /* o */
            getfield org.h2.command.dml.SelectOrderBy.expression:Lorg/h2/expression/Expression;
            invokevirtual org.h2.expression.Expression.getCost:()I
            iadd
            istore 1 /* cost */
        end local 2 // org.h2.command.dml.SelectOrderBy o
        10: .line 942
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        11: .line 946
      StackMap locals: org.h2.expression.aggregate.Aggregate int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.filterCondition:Lorg/h2/expression/Expression;
            ifnull 13
        12: .line 947
            iload 1 /* cost */
            aload 0 /* this */
            getfield org.h2.expression.aggregate.Aggregate.filterCondition:Lorg/h2/expression/Expression;
            invokevirtual org.h2.expression.Expression.getCost:()I
            iadd
            istore 1 /* cost */
        13: .line 949
      StackMap locals:
      StackMap stack:
            iload 1 /* cost */
            ireturn
        end local 1 // int cost
        end local 0 // org.h2.expression.aggregate.Aggregate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lorg/h2/expression/aggregate/Aggregate;
            1   14     1  cost  I
            3    4     2   arg  Lorg/h2/expression/Expression;
            9   10     2     o  Lorg/h2/command/dml/SelectOrderBy;

  static int[] $SWITCH_TABLE$org$h2$expression$aggregate$AggregateType();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 53
            getstatic org.h2.expression.aggregate.Aggregate.$SWITCH_TABLE$org$h2$expression$aggregate$AggregateType:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.h2.expression.aggregate.AggregateType.values:()[Lorg/h2/expression/aggregate/AggregateType;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.ANY:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            bipush 11
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.ARRAY_AGG:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            bipush 25
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.AVG:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            bipush 6
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.BIT_AND:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            bipush 14
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.BIT_OR:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            bipush 13
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.COUNT:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            iconst_2
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.COUNT_ALL:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            iconst_1
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.CUME_DIST:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            bipush 20
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.DENSE_RANK:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            bipush 18
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.ENVELOPE:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            bipush 27
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.EVERY:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            bipush 12
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.HISTOGRAM:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            bipush 16
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.LISTAGG:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            bipush 24
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.MAX:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            iconst_5
            iastore
        42: goto 44
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        43: pop
      StackMap locals:
      StackMap stack:
        44: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.MEDIAN:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            bipush 23
            iastore
        45: goto 47
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        46: pop
      StackMap locals:
      StackMap stack:
        47: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.MIN:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            iconst_4
            iastore
        48: goto 50
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        49: pop
      StackMap locals:
      StackMap stack:
        50: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.MODE:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            bipush 26
            iastore
        51: goto 53
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        52: pop
      StackMap locals:
      StackMap stack:
        53: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.PERCENTILE_CONT:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            bipush 21
            iastore
        54: goto 56
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        55: pop
      StackMap locals:
      StackMap stack:
        56: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.PERCENTILE_DISC:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            bipush 22
            iastore
        57: goto 59
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        58: pop
      StackMap locals:
      StackMap stack:
        59: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.PERCENT_RANK:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            bipush 19
            iastore
        60: goto 62
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        61: pop
      StackMap locals:
      StackMap stack:
        62: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.RANK:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            bipush 17
            iastore
        63: goto 65
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        64: pop
      StackMap locals:
      StackMap stack:
        65: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.SELECTIVITY:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            bipush 15
            iastore
        66: goto 68
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        67: pop
      StackMap locals:
      StackMap stack:
        68: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.STDDEV_POP:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            bipush 7
            iastore
        69: goto 71
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        70: pop
      StackMap locals:
      StackMap stack:
        71: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.STDDEV_SAMP:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            bipush 8
            iastore
        72: goto 74
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        73: pop
      StackMap locals:
      StackMap stack:
        74: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.SUM:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            iconst_3
            iastore
        75: goto 77
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        76: pop
      StackMap locals:
      StackMap stack:
        77: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.VAR_POP:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            bipush 9
            iastore
        78: goto 80
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        79: pop
      StackMap locals:
      StackMap stack:
        80: aload 0
            getstatic org.h2.expression.aggregate.AggregateType.VAR_SAMP:Lorg/h2/expression/aggregate/AggregateType;
            invokevirtual org.h2.expression.aggregate.AggregateType.ordinal:()I
            bipush 10
            iastore
        81: goto 83
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        82: pop
      StackMap locals:
      StackMap stack:
        83: aload 0
            dup
            putstatic org.h2.expression.aggregate.Aggregate.$SWITCH_TABLE$org$h2$expression$aggregate$AggregateType:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
          38    39      40  Class java.lang.NoSuchFieldError
          41    42      43  Class java.lang.NoSuchFieldError
          44    45      46  Class java.lang.NoSuchFieldError
          47    48      49  Class java.lang.NoSuchFieldError
          50    51      52  Class java.lang.NoSuchFieldError
          53    54      55  Class java.lang.NoSuchFieldError
          56    57      58  Class java.lang.NoSuchFieldError
          59    60      61  Class java.lang.NoSuchFieldError
          62    63      64  Class java.lang.NoSuchFieldError
          65    66      67  Class java.lang.NoSuchFieldError
          68    69      70  Class java.lang.NoSuchFieldError
          71    72      73  Class java.lang.NoSuchFieldError
          74    75      76  Class java.lang.NoSuchFieldError
          77    78      79  Class java.lang.NoSuchFieldError
          80    81      82  Class java.lang.NoSuchFieldError
}
SourceFile: "Aggregate.java"
NestMembers:
  org.h2.expression.aggregate.Aggregate$1  org.h2.expression.aggregate.Aggregate$2
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  org.h2.expression.aggregate.Aggregate$1
  org.h2.expression.aggregate.Aggregate$2