public class org.h2.command.dml.Select extends org.h2.command.dml.Query
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.command.dml.Select
  super_class: org.h2.command.dml.Query
{
  org.h2.table.TableFilter topTableFilter;
    descriptor: Lorg/h2/table/TableFilter;
    flags: (0x0000) 

  private final java.util.ArrayList<org.h2.table.TableFilter> filters;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Lorg/h2/table/TableFilter;>;

  private final java.util.ArrayList<org.h2.table.TableFilter> topFilters;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Lorg/h2/table/TableFilter;>;

  private org.h2.command.dml.Select parentSelect;
    descriptor: Lorg/h2/command/dml/Select;
    flags: (0x0002) ACC_PRIVATE

  private org.h2.expression.Expression condition;
    descriptor: Lorg/h2/expression/Expression;
    flags: (0x0002) ACC_PRIVATE

  private org.h2.expression.Expression having;
    descriptor: Lorg/h2/expression/Expression;
    flags: (0x0002) ACC_PRIVATE

  private org.h2.expression.Expression qualify;
    descriptor: Lorg/h2/expression/Expression;
    flags: (0x0002) ACC_PRIVATE

  int visibleColumnCount;
    descriptor: I
    flags: (0x0000) 

  private org.h2.expression.Expression[] distinctExpressions;
    descriptor: [Lorg/h2/expression/Expression;
    flags: (0x0002) ACC_PRIVATE

  private int[] distinctIndexes;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  private int distinctColumnCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.util.ArrayList<org.h2.expression.Expression> group;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/ArrayList<Lorg/h2/expression/Expression;>;

  int[] groupIndex;
    descriptor: [I
    flags: (0x0000) 

  boolean[] groupByExpression;
    descriptor: [Z
    flags: (0x0000) 

  org.h2.command.dml.SelectGroups groupData;
    descriptor: Lorg/h2/command/dml/SelectGroups;
    flags: (0x0000) 

  private int havingIndex;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int qualifyIndex;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int[] groupByCopies;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  boolean isGroupQuery;
    descriptor: Z
    flags: (0x0000) 

  private boolean isGroupSortedQuery;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean isWindowQuery;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean isForUpdate;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean isForUpdateMvcc;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private double cost;
    descriptor: D
    flags: (0x0002) ACC_PRIVATE

  private boolean isQuickAggregateQuery;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean isDistinctQuery;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean isPrepared;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean checkInit;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean sortUsingIndex;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean isGroupWindowStage2;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.util.HashMap<java.lang.String, org.h2.expression.analysis.Window> windows;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Ljava/lang/String;Lorg/h2/expression/analysis/Window;>;

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 70
            ldc Lorg/h2/command/dml/Select;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.h2.command.dml.Select.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.h2.engine.Session, org.h2.command.dml.Select);
    descriptor: (Lorg/h2/engine/Session;Lorg/h2/command/dml/Select;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.h2.command.dml.Select this
        start local 1 // org.h2.engine.Session session
        start local 2 // org.h2.command.dml.Select parentSelect
         0: .line 154
            aload 0 /* this */
            aload 1 /* session */
            invokespecial org.h2.command.dml.Query.<init>:(Lorg/h2/engine/Session;)V
         1: .line 77
            aload 0 /* this */
            invokestatic org.h2.util.Utils.newSmallArrayList:()Ljava/util/ArrayList;
            putfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
         2: .line 78
            aload 0 /* this */
            invokestatic org.h2.util.Utils.newSmallArrayList:()Ljava/util/ArrayList;
            putfield org.h2.command.dml.Select.topFilters:Ljava/util/ArrayList;
         3: .line 155
            aload 0 /* this */
            aload 2 /* parentSelect */
            putfield org.h2.command.dml.Select.parentSelect:Lorg/h2/command/dml/Select;
         4: .line 156
            return
        end local 2 // org.h2.command.dml.Select parentSelect
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lorg/h2/command/dml/Select;
            0    5     1       session  Lorg/h2/engine/Session;
            0    5     2  parentSelect  Lorg/h2/command/dml/Select;
    MethodParameters:
              Name  Flags
      session       
      parentSelect  

  public boolean isUnion();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 160
            iconst_0
            ireturn
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/command/dml/Select;

  public void addTableFilter(org.h2.table.TableFilter, boolean);
    descriptor: (Lorg/h2/table/TableFilter;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.h2.command.dml.Select this
        start local 1 // org.h2.table.TableFilter filter
        start local 2 // boolean isTop
         0: .line 177
            aload 0 /* this */
            getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
            aload 1 /* filter */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         1: .line 178
            iload 2 /* isTop */
            ifeq 3
         2: .line 179
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topFilters:Ljava/util/ArrayList;
            aload 1 /* filter */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         3: .line 181
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean isTop
        end local 1 // org.h2.table.TableFilter filter
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/h2/command/dml/Select;
            0    4     1  filter  Lorg/h2/table/TableFilter;
            0    4     2   isTop  Z
    MethodParameters:
        Name  Flags
      filter  
      isTop   

  public java.util.ArrayList<org.h2.table.TableFilter> getTopFilters();
    descriptor: ()Ljava/util/ArrayList;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 184
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topFilters:Ljava/util/ArrayList;
            areturn
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/command/dml/Select;
    Signature: ()Ljava/util/ArrayList<Lorg/h2/table/TableFilter;>;

  public void setExpressions(java.util.ArrayList<org.h2.expression.Expression>);
    descriptor: (Ljava/util/ArrayList;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.command.dml.Select this
        start local 1 // java.util.ArrayList expressions
         0: .line 188
            aload 0 /* this */
            aload 1 /* expressions */
            putfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
         1: .line 189
            return
        end local 1 // java.util.ArrayList expressions
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/h2/command/dml/Select;
            0    2     1  expressions  Ljava/util/ArrayList<Lorg/h2/expression/Expression;>;
    Signature: (Ljava/util/ArrayList<Lorg/h2/expression/Expression;>;)V
    MethodParameters:
             Name  Flags
      expressions  

  public void setWildcard();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 195
            aload 0 /* this */
            new java.util.ArrayList
            dup
            iconst_1
            invokespecial java.util.ArrayList.<init>:(I)V
            putfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
         1: .line 196
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            new org.h2.expression.Wildcard
            dup
            aconst_null
            aconst_null
            invokespecial org.h2.expression.Wildcard.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         2: .line 197
            return
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/command/dml/Select;

  public void setGroupQuery();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 204
            aload 0 /* this */
            iconst_1
            putfield org.h2.command.dml.Select.isGroupQuery:Z
         1: .line 205
            return
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/command/dml/Select;

  public void setWindowQuery();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 211
            aload 0 /* this */
            iconst_1
            putfield org.h2.command.dml.Select.isWindowQuery:Z
         1: .line 212
            return
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/command/dml/Select;

  public void setGroupBy(java.util.ArrayList<org.h2.expression.Expression>);
    descriptor: (Ljava/util/ArrayList;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.command.dml.Select this
        start local 1 // java.util.ArrayList group
         0: .line 215
            aload 0 /* this */
            aload 1 /* group */
            putfield org.h2.command.dml.Select.group:Ljava/util/ArrayList;
         1: .line 216
            return
        end local 1 // java.util.ArrayList group
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/h2/command/dml/Select;
            0    2     1  group  Ljava/util/ArrayList<Lorg/h2/expression/Expression;>;
    Signature: (Ljava/util/ArrayList<Lorg/h2/expression/Expression;>;)V
    MethodParameters:
       Name  Flags
      group  

  public java.util.ArrayList<org.h2.expression.Expression> getGroupBy();
    descriptor: ()Ljava/util/ArrayList;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 219
            aload 0 /* this */
            getfield org.h2.command.dml.Select.group:Ljava/util/ArrayList;
            areturn
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/command/dml/Select;
    Signature: ()Ljava/util/ArrayList<Lorg/h2/expression/Expression;>;

  public org.h2.command.dml.SelectGroups getGroupDataIfCurrent(boolean);
    descriptor: (Z)Lorg/h2/command/dml/SelectGroups;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.h2.command.dml.Select this
        start local 1 // boolean window
         0: .line 229
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
            ifnull 2
            iload 1 /* window */
            ifne 1
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
            invokevirtual org.h2.command.dml.SelectGroups.isCurrentGroup:()Z
            ifeq 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
            goto 3
      StackMap locals:
      StackMap stack:
         2: aconst_null
      StackMap locals:
      StackMap stack: org.h2.command.dml.SelectGroups
         3: areturn
        end local 1 // boolean window
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/h2/command/dml/Select;
            0    4     1  window  Z
    MethodParameters:
        Name  Flags
      window  

  public void setDistinct();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 234
            aload 0 /* this */
            getfield org.h2.command.dml.Select.distinctExpressions:[Lorg/h2/expression/Expression;
            ifnull 2
         1: .line 235
            ldc "DISTINCT ON together with DISTINCT"
            invokestatic org.h2.message.DbException.getUnsupportedException:(Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
         2: .line 237
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.h2.command.dml.Select.distinct:Z
         3: .line 238
            return
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/h2/command/dml/Select;

  public void setDistinct(org.h2.expression.Expression[]);
    descriptor: ([Lorg/h2/expression/Expression;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.command.dml.Select this
        start local 1 // org.h2.expression.Expression[] distinctExpressions
         0: .line 246
            aload 0 /* this */
            getfield org.h2.command.dml.Select.distinct:Z
            ifeq 2
         1: .line 247
            ldc "DISTINCT ON together with DISTINCT"
            invokestatic org.h2.message.DbException.getUnsupportedException:(Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
         2: .line 249
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* distinctExpressions */
            putfield org.h2.command.dml.Select.distinctExpressions:[Lorg/h2/expression/Expression;
         3: .line 250
            return
        end local 1 // org.h2.expression.Expression[] distinctExpressions
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    4     0                 this  Lorg/h2/command/dml/Select;
            0    4     1  distinctExpressions  [Lorg/h2/expression/Expression;
    MethodParameters:
                     Name  Flags
      distinctExpressions  

  public void setDistinctIfPossible();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 254
            aload 0 /* this */
            invokevirtual org.h2.command.dml.Select.isAnyDistinct:()Z
            ifne 2
            aload 0 /* this */
            getfield org.h2.command.dml.Select.offsetExpr:Lorg/h2/expression/Expression;
            ifnonnull 2
            aload 0 /* this */
            getfield org.h2.command.dml.Select.limitExpr:Lorg/h2/expression/Expression;
            ifnonnull 2
         1: .line 255
            aload 0 /* this */
            iconst_1
            putfield org.h2.command.dml.Select.distinct:Z
         2: .line 257
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/command/dml/Select;

  public boolean isAnyDistinct();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 261
            aload 0 /* this */
            getfield org.h2.command.dml.Select.distinct:Z
            ifne 1
            aload 0 /* this */
            getfield org.h2.command.dml.Select.distinctExpressions:[Lorg/h2/expression/Expression;
            ifnonnull 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/command/dml/Select;

  public boolean addWindow(java.lang.String, org.h2.expression.analysis.Window);
    descriptor: (Ljava/lang/String;Lorg/h2/expression/analysis/Window;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.h2.command.dml.Select this
        start local 1 // java.lang.String name
        start local 2 // org.h2.expression.analysis.Window window
         0: .line 272
            aload 0 /* this */
            getfield org.h2.command.dml.Select.windows:Ljava/util/HashMap;
            ifnonnull 2
         1: .line 273
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.h2.command.dml.Select.windows:Ljava/util/HashMap;
         2: .line 275
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.windows:Ljava/util/HashMap;
            aload 1 /* name */
            aload 2 /* window */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            ifnonnull 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 2 // org.h2.expression.analysis.Window window
        end local 1 // java.lang.String name
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/h2/command/dml/Select;
            0    4     1    name  Ljava/lang/String;
            0    4     2  window  Lorg/h2/expression/analysis/Window;
    MethodParameters:
        Name  Flags
      name    
      window  

  public org.h2.expression.analysis.Window getWindow(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/h2/expression/analysis/Window;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.command.dml.Select this
        start local 1 // java.lang.String name
         0: .line 285
            aload 0 /* this */
            getfield org.h2.command.dml.Select.windows:Ljava/util/HashMap;
            ifnull 1
            aload 0 /* this */
            getfield org.h2.command.dml.Select.windows:Ljava/util/HashMap;
            aload 1 /* name */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.expression.analysis.Window
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: org.h2.expression.analysis.Window
         2: areturn
        end local 1 // java.lang.String name
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/command/dml/Select;
            0    3     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public void addCondition(org.h2.expression.Expression);
    descriptor: (Lorg/h2/expression/Expression;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.h2.command.dml.Select this
        start local 1 // org.h2.expression.Expression cond
         0: .line 294
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            ifnonnull 3
         1: .line 295
            aload 0 /* this */
            aload 1 /* cond */
            putfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
         2: .line 296
            goto 4
         3: .line 297
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new org.h2.expression.condition.ConditionAndOr
            dup
            iconst_0
            aload 1 /* cond */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            invokespecial org.h2.expression.condition.ConditionAndOr.<init>:(ILorg/h2/expression/Expression;Lorg/h2/expression/Expression;)V
            putfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
         4: .line 299
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.h2.expression.Expression cond
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/h2/command/dml/Select;
            0    5     1  cond  Lorg/h2/expression/Expression;
    MethodParameters:
      Name  Flags
      cond  

  public org.h2.expression.Expression getCondition();
    descriptor: ()Lorg/h2/expression/Expression;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 302
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            areturn
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/command/dml/Select;

  private org.h2.result.LazyResult queryGroupSorted(int, org.h2.result.ResultTarget, long, boolean);
    descriptor: (ILorg/h2/result/ResultTarget;JZ)Lorg/h2/result/LazyResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // org.h2.command.dml.Select this
        start local 1 // int columnCount
        start local 2 // org.h2.result.ResultTarget result
        start local 3 // long offset
        start local 5 // boolean quickOffset
         0: .line 306
            new org.h2.command.dml.Select$LazyResultGroupSorted
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressionArray:[Lorg/h2/expression/Expression;
            iload 1 /* columnCount */
            invokespecial org.h2.command.dml.Select$LazyResultGroupSorted.<init>:(Lorg/h2/command/dml/Select;[Lorg/h2/expression/Expression;I)V
            astore 6 /* lazyResult */
        start local 6 // org.h2.command.dml.Select$LazyResultGroupSorted lazyResult
         1: .line 307
            aload 6 /* lazyResult */
            lload 3 /* offset */
            iload 5 /* quickOffset */
            invokestatic org.h2.command.dml.Select.skipOffset:(Lorg/h2/command/dml/Select$LazyResultSelect;JZ)V
         2: .line 308
            aload 2 /* result */
            ifnonnull 5
         3: .line 309
            aload 6 /* lazyResult */
            areturn
         4: .line 312
      StackMap locals: org.h2.command.dml.Select$LazyResultGroupSorted
      StackMap stack:
            aload 2 /* result */
            aload 6 /* lazyResult */
            invokevirtual org.h2.command.dml.Select$LazyResultGroupSorted.currentRow:()[Lorg/h2/value/Value;
            invokeinterface org.h2.result.ResultTarget.addRow:([Lorg/h2/value/Value;)V
         5: .line 311
      StackMap locals:
      StackMap stack:
            aload 6 /* lazyResult */
            invokevirtual org.h2.command.dml.Select$LazyResultGroupSorted.next:()Z
            ifne 4
         6: .line 314
            aconst_null
            areturn
        end local 6 // org.h2.command.dml.Select$LazyResultGroupSorted lazyResult
        end local 5 // boolean quickOffset
        end local 3 // long offset
        end local 2 // org.h2.result.ResultTarget result
        end local 1 // int columnCount
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lorg/h2/command/dml/Select;
            0    7     1  columnCount  I
            0    7     2       result  Lorg/h2/result/ResultTarget;
            0    7     3       offset  J
            0    7     5  quickOffset  Z
            1    7     6   lazyResult  Lorg/h2/command/dml/Select$LazyResultGroupSorted;
    MethodParameters:
             Name  Flags
      columnCount  
      result       
      offset       
      quickOffset  

  org.h2.value.Value[] createGroupSortedRow(org.h2.value.Value[], int);
    descriptor: ([Lorg/h2/value/Value;I)[Lorg/h2/value/Value;
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.h2.command.dml.Select this
        start local 1 // org.h2.value.Value[] keyValues
        start local 2 // int columnCount
         0: .line 325
            iload 2 /* columnCount */
            anewarray org.h2.value.Value
            astore 3 /* row */
        start local 3 // org.h2.value.Value[] row
         1: .line 326
            iconst_0
            istore 4 /* j */
        start local 4 // int j
         2: goto 5
         3: .line 327
      StackMap locals: org.h2.value.Value[] int
      StackMap stack:
            aload 3 /* row */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupIndex:[I
            iload 4 /* j */
            iaload
            aload 1 /* keyValues */
            iload 4 /* j */
            aaload
            aastore
         4: .line 326
            iinc 4 /* j */ 1
      StackMap locals:
      StackMap stack:
         5: aload 0 /* this */
            getfield org.h2.command.dml.Select.groupIndex:[I
            ifnull 6
            iload 4 /* j */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupIndex:[I
            arraylength
            if_icmplt 3
        end local 4 // int j
         6: .line 329
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* j */
        start local 4 // int j
         7: goto 13
         8: .line 330
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupByExpression:[Z
            ifnull 10
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupByExpression:[Z
            iload 4 /* j */
            baload
            ifeq 10
         9: .line 331
            goto 12
        10: .line 333
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            iload 4 /* j */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.expression.Expression
            astore 5 /* expr */
        start local 5 // org.h2.expression.Expression expr
        11: .line 334
            aload 3 /* row */
            iload 4 /* j */
            aload 5 /* expr */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.expression.Expression.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
            aastore
        end local 5 // org.h2.expression.Expression expr
        12: .line 329
      StackMap locals:
      StackMap stack:
            iinc 4 /* j */ 1
      StackMap locals:
      StackMap stack:
        13: iload 4 /* j */
            iload 2 /* columnCount */
            if_icmplt 8
        end local 4 // int j
        14: .line 336
            aload 0 /* this */
            aload 3 /* row */
            invokevirtual org.h2.command.dml.Select.isHavingNullOrFalse:([Lorg/h2/value/Value;)Z
            ifeq 16
        15: .line 337
            aconst_null
            areturn
        16: .line 339
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* row */
            iload 2 /* columnCount */
            invokevirtual org.h2.command.dml.Select.keepOnlyDistinct:([Lorg/h2/value/Value;I)[Lorg/h2/value/Value;
            astore 3 /* row */
        17: .line 340
            aload 3 /* row */
            areturn
        end local 3 // org.h2.value.Value[] row
        end local 2 // int columnCount
        end local 1 // org.h2.value.Value[] keyValues
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   18     0         this  Lorg/h2/command/dml/Select;
            0   18     1    keyValues  [Lorg/h2/value/Value;
            0   18     2  columnCount  I
            1   18     3          row  [Lorg/h2/value/Value;
            2    6     4            j  I
            7   14     4            j  I
           11   12     5         expr  Lorg/h2/expression/Expression;
    MethodParameters:
             Name  Flags
      keyValues    
      columnCount  

  private org.h2.value.Value[] keepOnlyDistinct(org.h2.value.Value[], int);
    descriptor: ([Lorg/h2/value/Value;I)[Lorg/h2/value/Value;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.h2.command.dml.Select this
        start local 1 // org.h2.value.Value[] row
        start local 2 // int columnCount
         0: .line 344
            iload 2 /* columnCount */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.distinctColumnCount:I
            if_icmpne 2
         1: .line 345
            aload 1 /* row */
            areturn
         2: .line 348
      StackMap locals:
      StackMap stack:
            aload 1 /* row */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.distinctColumnCount:I
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
            checkcast org.h2.value.Value[]
            areturn
        end local 2 // int columnCount
        end local 1 // org.h2.value.Value[] row
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lorg/h2/command/dml/Select;
            0    3     1          row  [Lorg/h2/value/Value;
            0    3     2  columnCount  I
    MethodParameters:
             Name  Flags
      row          
      columnCount  

  private boolean isHavingNullOrFalse(org.h2.value.Value[]);
    descriptor: ([Lorg/h2/value/Value;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.command.dml.Select this
        start local 1 // org.h2.value.Value[] row
         0: .line 352
            aload 0 /* this */
            getfield org.h2.command.dml.Select.havingIndex:I
            iflt 1
            aload 1 /* row */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.havingIndex:I
            aaload
            invokevirtual org.h2.value.Value.getBoolean:()Z
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // org.h2.value.Value[] row
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/command/dml/Select;
            0    2     1   row  [Lorg/h2/value/Value;
    MethodParameters:
      Name  Flags
      row   

  private org.h2.index.Index getGroupSortedIndex();
    descriptor: ()Lorg/h2/index/Index;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 356
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupIndex:[I
            ifnull 1
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupByExpression:[Z
            ifnonnull 2
         1: .line 357
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 359
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
            invokevirtual org.h2.table.Table.getIndexes:()Ljava/util/ArrayList;
            astore 1 /* indexes */
        start local 1 // java.util.ArrayList indexes
         3: .line 360
            aload 1 /* indexes */
            ifnull 13
         4: .line 361
            aload 1 /* indexes */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 12
      StackMap locals: org.h2.command.dml.Select java.util.ArrayList top java.util.Iterator
      StackMap stack:
         5: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.index.Index
            astore 2 /* index */
        start local 2 // org.h2.index.Index index
         6: .line 362
            aload 2 /* index */
            invokeinterface org.h2.index.Index.getIndexType:()Lorg/h2/index/IndexType;
            invokevirtual org.h2.index.IndexType.isScan:()Z
            ifeq 8
         7: .line 363
            goto 12
         8: .line 365
      StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.index.Index java.util.Iterator
      StackMap stack:
            aload 2 /* index */
            invokeinterface org.h2.index.Index.getIndexType:()Lorg/h2/index/IndexType;
            invokevirtual org.h2.index.IndexType.isHash:()Z
            ifeq 10
         9: .line 367
            goto 12
        10: .line 369
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            aload 2 /* index */
            invokevirtual org.h2.command.dml.Select.isGroupSortedIndex:(Lorg/h2/table/TableFilter;Lorg/h2/index/Index;)Z
            ifeq 12
        11: .line 370
            aload 2 /* index */
            areturn
        end local 2 // org.h2.index.Index index
        12: .line 361
      StackMap locals: org.h2.command.dml.Select java.util.ArrayList top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        13: .line 374
      StackMap locals: org.h2.command.dml.Select java.util.ArrayList
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.util.ArrayList indexes
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Lorg/h2/command/dml/Select;
            3   14     1  indexes  Ljava/util/ArrayList<Lorg/h2/index/Index;>;
            6   12     2    index  Lorg/h2/index/Index;

  private boolean isGroupSortedIndex(org.h2.table.TableFilter, org.h2.index.Index);
    descriptor: (Lorg/h2/table/TableFilter;Lorg/h2/index/Index;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=10, args_size=3
        start local 0 // org.h2.command.dml.Select this
        start local 1 // org.h2.table.TableFilter tableFilter
        start local 2 // org.h2.index.Index index
         0: .line 379
            aload 2 /* index */
            invokeinterface org.h2.index.Index.getColumns:()[Lorg/h2/table/Column;
            astore 3 /* indexColumns */
        start local 3 // org.h2.table.Column[] indexColumns
         1: .line 381
            aload 3 /* indexColumns */
            arraylength
            newarray 4
            astore 4 /* grouped */
        start local 4 // boolean[] grouped
         2: .line 383
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            istore 6 /* size */
        start local 6 // int size
         4: goto 21
         5: .line 384
      StackMap locals: org.h2.command.dml.Select org.h2.table.TableFilter org.h2.index.Index org.h2.table.Column[] boolean[] int int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupByExpression:[Z
            iload 5 /* i */
            baload
            ifne 7
         6: .line 385
            goto 20
         7: .line 387
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            iload 5 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.expression.Expression
            invokevirtual org.h2.expression.Expression.getNonAliasExpression:()Lorg/h2/expression/Expression;
            astore 7 /* expr */
        start local 7 // org.h2.expression.Expression expr
         8: .line 388
            aload 7 /* expr */
            instanceof org.h2.expression.ExpressionColumn
            ifne 10
         9: .line 389
            iconst_0
            ireturn
        10: .line 391
      StackMap locals: org.h2.expression.Expression
      StackMap stack:
            aload 7 /* expr */
            checkcast org.h2.expression.ExpressionColumn
            astore 8 /* exprCol */
        start local 8 // org.h2.expression.ExpressionColumn exprCol
        11: .line 392
            iconst_0
            istore 9 /* j */
        start local 9 // int j
        12: goto 18
        13: .line 393
      StackMap locals: org.h2.expression.ExpressionColumn int
      StackMap stack:
            aload 1 /* tableFilter */
            aload 8 /* exprCol */
            invokevirtual org.h2.expression.ExpressionColumn.getTableFilter:()Lorg/h2/table/TableFilter;
            if_acmpne 17
        14: .line 394
            aload 3 /* indexColumns */
            iload 9 /* j */
            aaload
            aload 8 /* exprCol */
            invokevirtual org.h2.expression.ExpressionColumn.getColumn:()Lorg/h2/table/Column;
            invokevirtual org.h2.table.Column.equals:(Ljava/lang/Object;)Z
            ifeq 17
        15: .line 395
            aload 4 /* grouped */
            iload 9 /* j */
            iconst_1
            bastore
        16: .line 396
            goto 20
        17: .line 392
      StackMap locals:
      StackMap stack:
            iinc 9 /* j */ 1
      StackMap locals:
      StackMap stack:
        18: iload 9 /* j */
            aload 3 /* indexColumns */
            arraylength
            if_icmplt 13
        end local 9 // int j
        19: .line 402
            iconst_0
            ireturn
        end local 8 // org.h2.expression.ExpressionColumn exprCol
        end local 7 // org.h2.expression.Expression expr
        20: .line 383
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 5 /* i */
            iload 6 /* size */
            if_icmplt 5
        end local 6 // int size
        end local 5 // int i
        22: .line 407
            iconst_1
            istore 5 /* i */
        start local 5 // int i
        23: goto 27
        24: .line 408
      StackMap locals:
      StackMap stack:
            aload 4 /* grouped */
            iload 5 /* i */
            iconst_1
            isub
            baload
            ifne 26
            aload 4 /* grouped */
            iload 5 /* i */
            baload
            ifeq 26
        25: .line 409
            iconst_0
            ireturn
        26: .line 407
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 5 /* i */
            aload 4 /* grouped */
            arraylength
            if_icmplt 24
        end local 5 // int i
        28: .line 412
            iconst_1
            ireturn
        end local 4 // boolean[] grouped
        end local 3 // org.h2.table.Column[] indexColumns
        end local 2 // org.h2.index.Index index
        end local 1 // org.h2.table.TableFilter tableFilter
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   29     0          this  Lorg/h2/command/dml/Select;
            0   29     1   tableFilter  Lorg/h2/table/TableFilter;
            0   29     2         index  Lorg/h2/index/Index;
            1   29     3  indexColumns  [Lorg/h2/table/Column;
            2   29     4       grouped  [Z
            3   22     5             i  I
            4   22     6          size  I
            8   20     7          expr  Lorg/h2/expression/Expression;
           11   20     8       exprCol  Lorg/h2/expression/ExpressionColumn;
           12   19     9             j  I
           23   28     5             i  I
    MethodParameters:
             Name  Flags
      tableFilter  
      index        

  private int getGroupByExpressionCount();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 416
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupByExpression:[Z
            ifnonnull 2
         1: .line 417
            iconst_0
            ireturn
         2: .line 419
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* count */
        start local 1 // int count
         3: .line 420
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupByExpression:[Z
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 8
      StackMap locals: org.h2.command.dml.Select int top int int boolean[]
      StackMap stack:
         4: aload 5
            iload 3
            baload
            istore 2 /* b */
        start local 2 // boolean b
         5: .line 421
            iload 2 /* b */
            ifeq 7
         6: .line 422
            iinc 1 /* count */ 1
        end local 2 // boolean b
         7: .line 420
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         8: iload 3
            iload 4
            if_icmplt 4
         9: .line 425
            iload 1 /* count */
            ireturn
        end local 1 // int count
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lorg/h2/command/dml/Select;
            3   10     1  count  I
            5    7     2      b  Z

  boolean isConditionMetForUpdate();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=3, locals=8, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 429
            aload 0 /* this */
            invokevirtual org.h2.command.dml.Select.isConditionMet:()Z
            ifeq 20
         1: .line 430
            aload 0 /* this */
            getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            istore 1 /* count */
        start local 1 // int count
         2: .line 431
            iconst_1
            istore 2 /* notChanged */
        start local 2 // boolean notChanged
         3: .line 432
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 17
         5: .line 433
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
            iload 3 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.table.TableFilter
            astore 4 /* tableFilter */
        start local 4 // org.h2.table.TableFilter tableFilter
         6: .line 434
            aload 4 /* tableFilter */
            invokevirtual org.h2.table.TableFilter.isJoinOuter:()Z
            ifne 16
            aload 4 /* tableFilter */
            invokevirtual org.h2.table.TableFilter.isJoinOuterIndirect:()Z
            ifne 16
         7: .line 435
            aload 4 /* tableFilter */
            invokevirtual org.h2.table.TableFilter.get:()Lorg/h2/result/Row;
            astore 5 /* row */
        start local 5 // org.h2.result.Row row
         8: .line 436
            aload 4 /* tableFilter */
            invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
            astore 6 /* table */
        start local 6 // org.h2.table.Table table
         9: .line 438
            aload 6 /* table */
            invokevirtual org.h2.table.Table.isMVStore:()Z
            ifeq 16
        10: .line 439
            aload 6 /* table */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            aload 5 /* row */
            invokevirtual org.h2.table.Table.lockRow:(Lorg/h2/engine/Session;Lorg/h2/result/Row;)Lorg/h2/result/Row;
            astore 7 /* lockedRow */
        start local 7 // org.h2.result.Row lockedRow
        11: .line 440
            aload 7 /* lockedRow */
            ifnonnull 13
        12: .line 441
            iconst_0
            ireturn
        13: .line 443
      StackMap locals: org.h2.command.dml.Select int int int org.h2.table.TableFilter org.h2.result.Row org.h2.table.Table org.h2.result.Row
      StackMap stack:
            aload 5 /* row */
            aload 7 /* lockedRow */
            invokeinterface org.h2.result.Row.hasSharedData:(Lorg/h2/result/Row;)Z
            ifne 16
        14: .line 444
            aload 4 /* tableFilter */
            aload 7 /* lockedRow */
            invokevirtual org.h2.table.TableFilter.set:(Lorg/h2/result/Row;)V
        15: .line 445
            iconst_0
            istore 2 /* notChanged */
        end local 7 // org.h2.result.Row lockedRow
        end local 6 // org.h2.table.Table table
        end local 5 // org.h2.result.Row row
        end local 4 // org.h2.table.TableFilter tableFilter
        16: .line 432
      StackMap locals: org.h2.command.dml.Select int int int
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 3 /* i */
            iload 1 /* count */
            if_icmplt 5
        end local 3 // int i
        18: .line 450
            iload 2 /* notChanged */
            ifne 19
            aload 0 /* this */
            invokevirtual org.h2.command.dml.Select.isConditionMet:()Z
            ifne 19
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
        19: iconst_1
            ireturn
        end local 2 // boolean notChanged
        end local 1 // int count
        20: .line 452
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   21     0         this  Lorg/h2/command/dml/Select;
            2   20     1        count  I
            3   20     2   notChanged  Z
            4   18     3            i  I
            6   16     4  tableFilter  Lorg/h2/table/TableFilter;
            8   16     5          row  Lorg/h2/result/Row;
            9   16     6        table  Lorg/h2/table/Table;
           11   16     7    lockedRow  Lorg/h2/result/Row;

  boolean isConditionMet();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 456
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            ifnull 1
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.expression.Expression.getBooleanValue:(Lorg/h2/engine/Session;)Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/command/dml/Select;

  private void queryWindow(int, org.h2.result.LocalResult, long, boolean);
    descriptor: (ILorg/h2/result/LocalResult;JZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, args_size=5
        start local 0 // org.h2.command.dml.Select this
        start local 1 // int columnCount
        start local 2 // org.h2.result.LocalResult result
        start local 3 // long offset
        start local 5 // boolean quickOffset
         0: .line 460
            aload 0 /* this */
            iload 1 /* columnCount */
            invokevirtual org.h2.command.dml.Select.initGroupData:(I)V
         1: .line 462
            aload 0 /* this */
            iload 1 /* columnCount */
            iconst_2
            invokevirtual org.h2.command.dml.Select.gatherGroup:(II)V
         2: .line 463
            aload 0 /* this */
            iload 1 /* columnCount */
            aload 2 /* result */
            lload 3 /* offset */
            iload 5 /* quickOffset */
            iconst_0
            invokevirtual org.h2.command.dml.Select.processGroupResult:(ILorg/h2/result/LocalResult;JZZ)V
         3: .line 464
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 6
         5: .line 465
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
            invokevirtual org.h2.command.dml.SelectGroups.reset:()V
         6: .line 466
            aload 6
            athrow
         7: .line 465
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
            invokevirtual org.h2.command.dml.SelectGroups.reset:()V
         8: .line 467
            return
        end local 5 // boolean quickOffset
        end local 3 // long offset
        end local 2 // org.h2.result.LocalResult result
        end local 1 // int columnCount
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lorg/h2/command/dml/Select;
            0    9     1  columnCount  I
            0    9     2       result  Lorg/h2/result/LocalResult;
            0    9     3       offset  J
            0    9     5  quickOffset  Z
      Exception table:
        from    to  target  type
           1     4       4  any
    MethodParameters:
             Name  Flags
      columnCount  
      result       
      offset       
      quickOffset  

  private void queryGroupWindow(int, org.h2.result.LocalResult, long, boolean);
    descriptor: (ILorg/h2/result/LocalResult;JZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=8, args_size=5
        start local 0 // org.h2.command.dml.Select this
        start local 1 // int columnCount
        start local 2 // org.h2.result.LocalResult result
        start local 3 // long offset
        start local 5 // boolean quickOffset
         0: .line 470
            aload 0 /* this */
            iload 1 /* columnCount */
            invokevirtual org.h2.command.dml.Select.initGroupData:(I)V
         1: .line 472
            aload 0 /* this */
            iload 1 /* columnCount */
            iconst_1
            invokevirtual org.h2.command.dml.Select.gatherGroup:(II)V
         2: .line 474
            aload 0 /* this */
            iconst_1
            putfield org.h2.command.dml.Select.isGroupWindowStage2:Z
         3: .line 475
            goto 8
         4: .line 476
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.havingIndex:I
            iflt 5
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.havingIndex:I
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.expression.Expression
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.expression.Expression.getBooleanValue:(Lorg/h2/engine/Session;)Z
            ifeq 7
         5: .line 477
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* columnCount */
            iconst_2
            invokevirtual org.h2.command.dml.Select.updateAgg:(II)V
         6: .line 478
            goto 8
         7: .line 479
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
            invokevirtual org.h2.command.dml.SelectGroups.remove:()V
         8: .line 475
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
            invokevirtual org.h2.command.dml.SelectGroups.next:()Lorg/h2/value/ValueRow;
            ifnonnull 4
         9: .line 482
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
            invokevirtual org.h2.command.dml.SelectGroups.done:()V
        10: .line 483
            aload 0 /* this */
            iload 1 /* columnCount */
            aload 2 /* result */
            lload 3 /* offset */
            iload 5 /* quickOffset */
            iconst_0
            invokevirtual org.h2.command.dml.Select.processGroupResult:(ILorg/h2/result/LocalResult;JZZ)V
        11: .line 484
            goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 6
        13: .line 485
            aload 0 /* this */
            iconst_0
            putfield org.h2.command.dml.Select.isGroupWindowStage2:Z
        14: .line 486
            aload 6
            athrow
        15: .line 485
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield org.h2.command.dml.Select.isGroupWindowStage2:Z
        16: .line 487
            goto 20
      StackMap locals:
      StackMap stack: java.lang.Throwable
        17: astore 7
        18: .line 488
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
            invokevirtual org.h2.command.dml.SelectGroups.reset:()V
        19: .line 489
            aload 7
            athrow
        20: .line 488
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
            invokevirtual org.h2.command.dml.SelectGroups.reset:()V
        21: .line 490
            return
        end local 5 // boolean quickOffset
        end local 3 // long offset
        end local 2 // org.h2.result.LocalResult result
        end local 1 // int columnCount
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   22     0         this  Lorg/h2/command/dml/Select;
            0   22     1  columnCount  I
            0   22     2       result  Lorg/h2/result/LocalResult;
            0   22     3       offset  J
            0   22     5  quickOffset  Z
      Exception table:
        from    to  target  type
           2    12      12  any
           1    17      17  any
    MethodParameters:
             Name  Flags
      columnCount  
      result       
      offset       
      quickOffset  

  private void queryGroup(int, org.h2.result.LocalResult, long, boolean);
    descriptor: (ILorg/h2/result/LocalResult;JZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, args_size=5
        start local 0 // org.h2.command.dml.Select this
        start local 1 // int columnCount
        start local 2 // org.h2.result.LocalResult result
        start local 3 // long offset
        start local 5 // boolean quickOffset
         0: .line 493
            aload 0 /* this */
            iload 1 /* columnCount */
            invokevirtual org.h2.command.dml.Select.initGroupData:(I)V
         1: .line 495
            aload 0 /* this */
            iload 1 /* columnCount */
            iconst_1
            invokevirtual org.h2.command.dml.Select.gatherGroup:(II)V
         2: .line 496
            aload 0 /* this */
            iload 1 /* columnCount */
            aload 2 /* result */
            lload 3 /* offset */
            iload 5 /* quickOffset */
            iconst_1
            invokevirtual org.h2.command.dml.Select.processGroupResult:(ILorg/h2/result/LocalResult;JZZ)V
         3: .line 497
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 6
         5: .line 498
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
            invokevirtual org.h2.command.dml.SelectGroups.reset:()V
         6: .line 499
            aload 6
            athrow
         7: .line 498
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
            invokevirtual org.h2.command.dml.SelectGroups.reset:()V
         8: .line 500
            return
        end local 5 // boolean quickOffset
        end local 3 // long offset
        end local 2 // org.h2.result.LocalResult result
        end local 1 // int columnCount
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lorg/h2/command/dml/Select;
            0    9     1  columnCount  I
            0    9     2       result  Lorg/h2/result/LocalResult;
            0    9     3       offset  J
            0    9     5  quickOffset  Z
      Exception table:
        from    to  target  type
           1     4       4  any
    MethodParameters:
             Name  Flags
      columnCount  
      result       
      offset       
      quickOffset  

  private void initGroupData(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.h2.command.dml.Select this
        start local 1 // int columnCount
         0: .line 503
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
            ifnonnull 3
         1: .line 504
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isGroupQuery:Z
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupIndex:[I
            invokestatic org.h2.command.dml.SelectGroups.getInstance:(Lorg/h2/engine/Session;Ljava/util/ArrayList;Z[I)Lorg/h2/command/dml/SelectGroups;
            invokevirtual org.h2.command.dml.Select.setGroupData:(Lorg/h2/command/dml/SelectGroups;)V
         2: .line 505
            goto 4
         3: .line 506
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* columnCount */
            iconst_0
            invokevirtual org.h2.command.dml.Select.updateAgg:(II)V
         4: .line 508
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
            invokevirtual org.h2.command.dml.SelectGroups.reset:()V
         5: .line 509
            return
        end local 1 // int columnCount
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lorg/h2/command/dml/Select;
            0    6     1  columnCount  I
    MethodParameters:
             Name  Flags
      columnCount  

  void setGroupData(org.h2.command.dml.SelectGroups);
    descriptor: (Lorg/h2/command/dml/SelectGroups;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.h2.command.dml.Select this
        start local 1 // org.h2.command.dml.SelectGroups groupData
         0: .line 512
            aload 0 /* this */
            aload 1 /* groupData */
            putfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
         1: .line 513
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            new org.h2.command.dml.Select$1
            dup
            aload 0 /* this */
            aload 1 /* groupData */
            invokespecial org.h2.command.dml.Select$1.<init>:(Lorg/h2/command/dml/Select;Lorg/h2/command/dml/SelectGroups;)V
            invokevirtual org.h2.table.TableFilter.visit:(Lorg/h2/table/TableFilter$TableFilterVisitor;)V
         2: .line 522
            return
        end local 1 // org.h2.command.dml.SelectGroups groupData
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/h2/command/dml/Select;
            0    3     1  groupData  Lorg/h2/command/dml/SelectGroups;
    MethodParameters:
           Name  Flags
      groupData  final

  private void gatherGroup(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.h2.command.dml.Select this
        start local 1 // int columnCount
        start local 2 // int stage
         0: .line 525
            lconst_0
            lstore 3 /* rowNumber */
        start local 3 // long rowNumber
         1: .line 526
            aload 0 /* this */
            lconst_0
            invokevirtual org.h2.command.dml.Select.setCurrentRowNumber:(J)V
         2: .line 527
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.command.dml.Select.getSampleSizeValue:(Lorg/h2/engine/Session;)I
            istore 5 /* sampleSize */
        start local 5 // int sampleSize
         3: .line 528
            goto 12
         4: .line 529
      StackMap locals: long int
      StackMap stack:
            aload 0 /* this */
            lload 3 /* rowNumber */
            lconst_1
            ladd
            invokevirtual org.h2.command.dml.Select.setCurrentRowNumber:(J)V
         5: .line 530
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isForUpdateMvcc:Z
            ifeq 6
            aload 0 /* this */
            invokevirtual org.h2.command.dml.Select.isConditionMetForUpdate:()Z
            ifeq 12
            goto 7
      StackMap locals:
      StackMap stack:
         6: aload 0 /* this */
            invokevirtual org.h2.command.dml.Select.isConditionMet:()Z
            ifeq 12
         7: .line 531
      StackMap locals:
      StackMap stack:
            lload 3 /* rowNumber */
            lconst_1
            ladd
            lstore 3 /* rowNumber */
         8: .line 532
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
            invokevirtual org.h2.command.dml.SelectGroups.nextSource:()V
         9: .line 533
            aload 0 /* this */
            iload 1 /* columnCount */
            iload 2 /* stage */
            invokevirtual org.h2.command.dml.Select.updateAgg:(II)V
        10: .line 534
            iload 5 /* sampleSize */
            ifle 12
            lload 3 /* rowNumber */
            iload 5 /* sampleSize */
            i2l
            lcmp
            iflt 12
        11: .line 535
            goto 13
        12: .line 528
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            invokevirtual org.h2.table.TableFilter.next:()Z
            ifne 4
        13: .line 539
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
            invokevirtual org.h2.command.dml.SelectGroups.done:()V
        14: .line 540
            return
        end local 5 // int sampleSize
        end local 3 // long rowNumber
        end local 2 // int stage
        end local 1 // int columnCount
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   15     0         this  Lorg/h2/command/dml/Select;
            0   15     1  columnCount  I
            0   15     2        stage  I
            1   15     3    rowNumber  J
            3   15     5   sampleSize  I
    MethodParameters:
             Name  Flags
      columnCount  
      stage        

  void updateAgg(int, int);
    descriptor: (II)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.h2.command.dml.Select this
        start local 1 // int columnCount
        start local 2 // int stage
         0: .line 549
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         1: goto 7
         2: .line 550
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupByExpression:[Z
            ifnull 3
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupByExpression:[Z
            iload 3 /* i */
            baload
            ifne 6
         3: .line 551
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupByCopies:[I
            ifnull 4
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupByCopies:[I
            iload 3 /* i */
            iaload
            ifge 6
         4: .line 552
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            iload 3 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.expression.Expression
            astore 4 /* expr */
        start local 4 // org.h2.expression.Expression expr
         5: .line 553
            aload 4 /* expr */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            iload 2 /* stage */
            invokevirtual org.h2.expression.Expression.updateAggregate:(Lorg/h2/engine/Session;I)V
        end local 4 // org.h2.expression.Expression expr
         6: .line 549
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            iload 1 /* columnCount */
            if_icmplt 2
        end local 3 // int i
         8: .line 556
            return
        end local 2 // int stage
        end local 1 // int columnCount
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lorg/h2/command/dml/Select;
            0    9     1  columnCount  I
            0    9     2        stage  I
            1    8     3            i  I
            5    6     4         expr  Lorg/h2/expression/Expression;
    MethodParameters:
             Name  Flags
      columnCount  
      stage        

  private void processGroupResult(int, org.h2.result.LocalResult, long, boolean, boolean);
    descriptor: (ILorg/h2/result/LocalResult;JZZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=12, args_size=6
        start local 0 // org.h2.command.dml.Select this
        start local 1 // int columnCount
        start local 2 // org.h2.result.LocalResult result
        start local 3 // long offset
        start local 5 // boolean quickOffset
        start local 6 // boolean withHaving
         0: .line 560
            goto 30
        start local 7 // org.h2.value.ValueRow currentGroupsKey
         1: .line 561
      StackMap locals: org.h2.value.ValueRow
      StackMap stack:
            aload 7 /* currentGroupsKey */
            invokevirtual org.h2.value.ValueRow.getList:()[Lorg/h2/value/Value;
            astore 8 /* keyValues */
        start local 8 // org.h2.value.Value[] keyValues
         2: .line 562
            iload 1 /* columnCount */
            anewarray org.h2.value.Value
            astore 9 /* row */
        start local 9 // org.h2.value.Value[] row
         3: .line 563
            iconst_0
            istore 10 /* j */
        start local 10 // int j
         4: goto 7
         5: .line 564
      StackMap locals: org.h2.value.Value[] org.h2.value.Value[] int
      StackMap stack:
            aload 9 /* row */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupIndex:[I
            iload 10 /* j */
            iaload
            aload 8 /* keyValues */
            iload 10 /* j */
            aaload
            aastore
         6: .line 563
            iinc 10 /* j */ 1
      StackMap locals:
      StackMap stack:
         7: aload 0 /* this */
            getfield org.h2.command.dml.Select.groupIndex:[I
            ifnull 8
            iload 10 /* j */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupIndex:[I
            arraylength
            if_icmplt 5
        end local 10 // int j
         8: .line 566
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 10 /* j */
        start local 10 // int j
         9: goto 20
        10: .line 567
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupByExpression:[Z
            ifnull 12
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupByExpression:[Z
            iload 10 /* j */
            baload
            ifeq 12
        11: .line 568
            goto 19
        12: .line 570
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupByCopies:[I
            ifnull 17
        13: .line 571
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupByCopies:[I
            iload 10 /* j */
            iaload
            istore 11 /* original */
        start local 11 // int original
        14: .line 572
            iload 11 /* original */
            iflt 17
        15: .line 573
            aload 9 /* row */
            iload 10 /* j */
            aload 9 /* row */
            iload 11 /* original */
            aaload
            aastore
        16: .line 574
            goto 19
        end local 11 // int original
        17: .line 577
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            iload 10 /* j */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.expression.Expression
            astore 11 /* expr */
        start local 11 // org.h2.expression.Expression expr
        18: .line 578
            aload 9 /* row */
            iload 10 /* j */
            aload 11 /* expr */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.expression.Expression.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
            aastore
        end local 11 // org.h2.expression.Expression expr
        19: .line 566
      StackMap locals:
      StackMap stack:
            iinc 10 /* j */ 1
      StackMap locals:
      StackMap stack:
        20: iload 10 /* j */
            iload 1 /* columnCount */
            if_icmplt 10
        end local 10 // int j
        21: .line 580
            iload 6 /* withHaving */
            ifeq 23
            aload 0 /* this */
            aload 9 /* row */
            invokevirtual org.h2.command.dml.Select.isHavingNullOrFalse:([Lorg/h2/value/Value;)Z
            ifeq 23
        22: .line 581
            goto 30
        23: .line 583
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.qualifyIndex:I
            iflt 25
            aload 9 /* row */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.qualifyIndex:I
            aaload
            invokevirtual org.h2.value.Value.getBoolean:()Z
            ifne 25
        24: .line 584
            goto 30
        25: .line 586
      StackMap locals:
      StackMap stack:
            iload 5 /* quickOffset */
            ifeq 28
            lload 3 /* offset */
            lconst_0
            lcmp
            ifle 28
        26: .line 587
            lload 3 /* offset */
            lconst_1
            lsub
            lstore 3 /* offset */
        27: .line 588
            goto 30
        28: .line 590
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 9 /* row */
            iload 1 /* columnCount */
            invokevirtual org.h2.command.dml.Select.keepOnlyDistinct:([Lorg/h2/value/Value;I)[Lorg/h2/value/Value;
            astore 9 /* row */
        29: .line 591
            aload 2 /* result */
            aload 9 /* row */
            invokeinterface org.h2.result.LocalResult.addRow:([Lorg/h2/value/Value;)V
        end local 9 // org.h2.value.Value[] row
        end local 8 // org.h2.value.Value[] keyValues
        end local 7 // org.h2.value.ValueRow currentGroupsKey
        30: .line 560
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
            invokevirtual org.h2.command.dml.SelectGroups.next:()Lorg/h2/value/ValueRow;
            dup
            astore 7 /* currentGroupsKey */
        start local 7 // org.h2.value.ValueRow currentGroupsKey
        31: ifnonnull 1
        end local 7 // org.h2.value.ValueRow currentGroupsKey
        32: .line 593
            return
        end local 6 // boolean withHaving
        end local 5 // boolean quickOffset
        end local 3 // long offset
        end local 2 // org.h2.result.LocalResult result
        end local 1 // int columnCount
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   33     0              this  Lorg/h2/command/dml/Select;
            0   33     1       columnCount  I
            0   33     2            result  Lorg/h2/result/LocalResult;
            0   33     3            offset  J
            0   33     5       quickOffset  Z
            0   33     6        withHaving  Z
            1   30     7  currentGroupsKey  Lorg/h2/value/ValueRow;
           31   32     7  currentGroupsKey  Lorg/h2/value/ValueRow;
            2   30     8         keyValues  [Lorg/h2/value/Value;
            3   30     9               row  [Lorg/h2/value/Value;
            4    8    10                 j  I
            9   21    10                 j  I
           14   17    11          original  I
           18   19    11              expr  Lorg/h2/expression/Expression;
    MethodParameters:
             Name  Flags
      columnCount  
      result       
      offset       
      quickOffset  
      withHaving   

  private org.h2.index.Index getSortIndex();
    descriptor: ()Lorg/h2/index/Index;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=12, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 604
            aload 0 /* this */
            getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
            ifnonnull 2
         1: .line 605
            aconst_null
            areturn
         2: .line 607
      StackMap locals:
      StackMap stack:
            invokestatic org.h2.util.Utils.newSmallArrayList:()Ljava/util/ArrayList;
            astore 1 /* sortColumns */
        start local 1 // java.util.ArrayList sortColumns
         3: .line 608
            aload 0 /* this */
            getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
            invokevirtual org.h2.result.SortOrder.getQueryColumnIndexes:()[I
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 18
      StackMap locals: org.h2.command.dml.Select java.util.ArrayList top int int int[]
      StackMap stack:
         4: aload 5
            iload 3
            iaload
            istore 2 /* idx */
        start local 2 // int idx
         5: .line 609
            iload 2 /* idx */
            iflt 6
            iload 2 /* idx */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 7
         6: .line 610
      StackMap locals: org.h2.command.dml.Select java.util.ArrayList int int int int[]
      StackMap stack:
            ldc "ORDER BY"
            iload 2 /* idx */
            iconst_1
            iadd
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic org.h2.message.DbException.getInvalidValueException:(Ljava/lang/String;Ljava/lang/Object;)Lorg/h2/message/DbException;
            athrow
         7: .line 612
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            iload 2 /* idx */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.expression.Expression
            astore 6 /* expr */
        start local 6 // org.h2.expression.Expression expr
         8: .line 613
            aload 6 /* expr */
            invokevirtual org.h2.expression.Expression.getNonAliasExpression:()Lorg/h2/expression/Expression;
            astore 6 /* expr */
         9: .line 614
            aload 6 /* expr */
            invokevirtual org.h2.expression.Expression.isConstant:()Z
            ifeq 11
        10: .line 615
            goto 17
        11: .line 617
      StackMap locals: org.h2.expression.Expression
      StackMap stack:
            aload 6 /* expr */
            instanceof org.h2.expression.ExpressionColumn
            ifne 13
        12: .line 618
            aconst_null
            areturn
        13: .line 620
      StackMap locals:
      StackMap stack:
            aload 6 /* expr */
            checkcast org.h2.expression.ExpressionColumn
            astore 7 /* exprCol */
        start local 7 // org.h2.expression.ExpressionColumn exprCol
        14: .line 621
            aload 7 /* exprCol */
            invokevirtual org.h2.expression.ExpressionColumn.getTableFilter:()Lorg/h2/table/TableFilter;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            if_acmpeq 16
        15: .line 622
            aconst_null
            areturn
        16: .line 624
      StackMap locals: org.h2.expression.ExpressionColumn
      StackMap stack:
            aload 1 /* sortColumns */
            aload 7 /* exprCol */
            invokevirtual org.h2.expression.ExpressionColumn.getColumn:()Lorg/h2/table/Column;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // org.h2.expression.ExpressionColumn exprCol
        end local 6 // org.h2.expression.Expression expr
        end local 2 // int idx
        17: .line 608
      StackMap locals: org.h2.command.dml.Select java.util.ArrayList top int int int[]
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
        18: iload 3
            iload 4
            if_icmplt 4
        19: .line 626
            aload 1 /* sortColumns */
            iconst_0
            anewarray org.h2.table.Column
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.h2.table.Column[]
            astore 2 /* sortCols */
        start local 2 // org.h2.table.Column[] sortCols
        20: .line 627
            aload 2 /* sortCols */
            arraylength
            ifne 22
        21: .line 629
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.table.Table.getScanIndex:(Lorg/h2/engine/Session;)Lorg/h2/index/Index;
            areturn
        22: .line 631
      StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.table.Column[]
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
            invokevirtual org.h2.table.Table.getIndexes:()Ljava/util/ArrayList;
            astore 3 /* list */
        start local 3 // java.util.ArrayList list
        23: .line 632
            aload 3 /* list */
            ifnull 50
        24: .line 633
            aload 0 /* this */
            getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
            invokevirtual org.h2.result.SortOrder.getSortTypesWithNullPosition:()[I
            astore 4 /* sortTypes */
        start local 4 // int[] sortTypes
        25: .line 634
            aload 3 /* list */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 6
            goto 49
      StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.table.Column[] java.util.ArrayList int[] top java.util.Iterator
      StackMap stack:
        26: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.index.Index
            astore 5 /* index */
        start local 5 // org.h2.index.Index index
        27: .line 635
            aload 5 /* index */
            invokeinterface org.h2.index.Index.getCreateSQL:()Ljava/lang/String;
            ifnonnull 29
        28: .line 637
            goto 49
        29: .line 639
      StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.table.Column[] java.util.ArrayList int[] org.h2.index.Index java.util.Iterator
      StackMap stack:
            aload 5 /* index */
            invokeinterface org.h2.index.Index.getIndexType:()Lorg/h2/index/IndexType;
            invokevirtual org.h2.index.IndexType.isHash:()Z
            ifeq 31
        30: .line 640
            goto 49
        31: .line 642
      StackMap locals:
      StackMap stack:
            aload 5 /* index */
            invokeinterface org.h2.index.Index.getIndexColumns:()[Lorg/h2/table/IndexColumn;
            astore 7 /* indexCols */
        start local 7 // org.h2.table.IndexColumn[] indexCols
        32: .line 643
            aload 7 /* indexCols */
            arraylength
            aload 2 /* sortCols */
            arraylength
            if_icmpge 34
        33: .line 644
            goto 49
        34: .line 646
      StackMap locals: org.h2.table.IndexColumn[]
      StackMap stack:
            iconst_1
            istore 8 /* ok */
        start local 8 // boolean ok
        35: .line 647
            iconst_0
            istore 9 /* j */
        start local 9 // int j
        36: goto 46
        37: .line 650
      StackMap locals: int int
      StackMap stack:
            aload 7 /* indexCols */
            iload 9 /* j */
            aaload
            astore 10 /* idxCol */
        start local 10 // org.h2.table.IndexColumn idxCol
        38: .line 651
            aload 2 /* sortCols */
            iload 9 /* j */
            aaload
            astore 11 /* sortCol */
        start local 11 // org.h2.table.Column sortCol
        39: .line 652
            aload 10 /* idxCol */
            getfield org.h2.table.IndexColumn.column:Lorg/h2/table/Column;
            aload 11 /* sortCol */
            if_acmpeq 42
        40: .line 653
            iconst_0
            istore 8 /* ok */
        41: .line 654
            goto 47
        42: .line 656
      StackMap locals: org.h2.table.IndexColumn org.h2.table.Column
      StackMap stack:
            aload 10 /* idxCol */
            getfield org.h2.table.IndexColumn.sortType:I
            invokestatic org.h2.result.SortOrder.addExplicitNullPosition:(I)I
            aload 4 /* sortTypes */
            iload 9 /* j */
            iaload
            if_icmpeq 45
        43: .line 657
            iconst_0
            istore 8 /* ok */
        44: .line 658
            goto 47
        end local 11 // org.h2.table.Column sortCol
        end local 10 // org.h2.table.IndexColumn idxCol
        45: .line 647
      StackMap locals:
      StackMap stack:
            iinc 9 /* j */ 1
      StackMap locals:
      StackMap stack:
        46: iload 9 /* j */
            aload 2 /* sortCols */
            arraylength
            if_icmplt 37
        end local 9 // int j
        47: .line 661
      StackMap locals:
      StackMap stack:
            iload 8 /* ok */
            ifeq 49
        48: .line 662
            aload 5 /* index */
            areturn
        end local 8 // boolean ok
        end local 7 // org.h2.table.IndexColumn[] indexCols
        end local 5 // org.h2.index.Index index
        49: .line 634
      StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.table.Column[] java.util.ArrayList int[] top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 26
        end local 4 // int[] sortTypes
        50: .line 666
      StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.table.Column[] java.util.ArrayList
      StackMap stack:
            aload 2 /* sortCols */
            arraylength
            iconst_1
            if_icmpne 54
            aload 2 /* sortCols */
            iconst_0
            aaload
            invokevirtual org.h2.table.Column.getColumnId:()I
            iconst_m1
            if_icmpne 54
        51: .line 668
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.table.Table.getScanIndex:(Lorg/h2/engine/Session;)Lorg/h2/index/Index;
            astore 4 /* index */
        start local 4 // org.h2.index.Index index
        52: .line 669
            aload 4 /* index */
            invokeinterface org.h2.index.Index.isRowIdIndex:()Z
            ifeq 54
        53: .line 670
            aload 4 /* index */
            areturn
        end local 4 // org.h2.index.Index index
        54: .line 673
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.util.ArrayList list
        end local 2 // org.h2.table.Column[] sortCols
        end local 1 // java.util.ArrayList sortColumns
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   55     0         this  Lorg/h2/command/dml/Select;
            3   55     1  sortColumns  Ljava/util/ArrayList<Lorg/h2/table/Column;>;
            5   17     2          idx  I
            8   17     6         expr  Lorg/h2/expression/Expression;
           14   17     7      exprCol  Lorg/h2/expression/ExpressionColumn;
           20   55     2     sortCols  [Lorg/h2/table/Column;
           23   55     3         list  Ljava/util/ArrayList<Lorg/h2/index/Index;>;
           25   50     4    sortTypes  [I
           27   49     5        index  Lorg/h2/index/Index;
           32   49     7    indexCols  [Lorg/h2/table/IndexColumn;
           35   49     8           ok  Z
           36   47     9            j  I
           38   45    10       idxCol  Lorg/h2/table/IndexColumn;
           39   45    11      sortCol  Lorg/h2/table/Column;
           52   54     4        index  Lorg/h2/index/Index;

  private void queryDistinct(org.h2.result.ResultTarget, long, long, boolean, boolean);
    descriptor: (Lorg/h2/result/ResultTarget;JJZZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=18, args_size=6
        start local 0 // org.h2.command.dml.Select this
        start local 1 // org.h2.result.ResultTarget result
        start local 2 // long offset
        start local 4 // long limitRows
        start local 6 // boolean withTies
        start local 7 // boolean quickOffset
         0: .line 678
            lload 4 /* limitRows */
            lconst_0
            lcmp
            ifle 4
            lload 2 /* offset */
            lconst_0
            lcmp
            ifle 4
         1: .line 679
            lload 4 /* limitRows */
            lload 2 /* offset */
            ladd
            lstore 4 /* limitRows */
         2: .line 680
            lload 4 /* limitRows */
            lconst_0
            lcmp
            ifge 4
         3: .line 682
            ldc 9223372036854775807
            lstore 4 /* limitRows */
         4: .line 685
      StackMap locals:
      StackMap stack:
            lconst_0
            lstore 8 /* rowNumber */
        start local 8 // long rowNumber
         5: .line 686
            aload 0 /* this */
            lconst_0
            invokevirtual org.h2.command.dml.Select.setCurrentRowNumber:(J)V
         6: .line 687
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            invokevirtual org.h2.table.TableFilter.getIndex:()Lorg/h2/index/Index;
            astore 10 /* index */
        start local 10 // org.h2.index.Index index
         7: .line 688
            aconst_null
            astore 11 /* first */
        start local 11 // org.h2.result.SearchRow first
         8: .line 689
            aload 10 /* index */
            invokeinterface org.h2.index.Index.getColumns:()[Lorg/h2/table/Column;
            iconst_0
            aaload
            invokevirtual org.h2.table.Column.getColumnId:()I
            istore 12 /* columnIndex */
        start local 12 // int columnIndex
         9: .line 690
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.command.dml.Select.getSampleSizeValue:(Lorg/h2/engine/Session;)I
            istore 13 /* sampleSize */
        start local 13 // int sampleSize
        10: .line 691
            iload 7 /* quickOffset */
            ifne 12
        11: .line 692
            lconst_0
            lstore 2 /* offset */
        12: .line 695
      StackMap locals: org.h2.command.dml.Select org.h2.result.ResultTarget long long int int long org.h2.index.Index org.h2.result.SearchRow int int
      StackMap stack:
            aload 0 /* this */
            lload 8 /* rowNumber */
            lconst_1
            ladd
            dup2
            lstore 8 /* rowNumber */
            invokevirtual org.h2.command.dml.Select.setCurrentRowNumber:(J)V
        13: .line 696
            aload 10 /* index */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            aload 11 /* first */
            aconst_null
            invokeinterface org.h2.index.Index.findNext:(Lorg/h2/engine/Session;Lorg/h2/result/SearchRow;Lorg/h2/result/SearchRow;)Lorg/h2/index/Cursor;
            astore 14 /* cursor */
        start local 14 // org.h2.index.Cursor cursor
        14: .line 697
            aload 14 /* cursor */
            invokeinterface org.h2.index.Cursor.next:()Z
            ifne 16
        15: .line 698
            goto 31
        16: .line 700
      StackMap locals: org.h2.index.Cursor
      StackMap stack:
            aload 14 /* cursor */
            invokeinterface org.h2.index.Cursor.getSearchRow:()Lorg/h2/result/SearchRow;
            astore 15 /* found */
        start local 15 // org.h2.result.SearchRow found
        17: .line 701
            aload 15 /* found */
            iload 12 /* columnIndex */
            invokeinterface org.h2.result.SearchRow.getValue:(I)Lorg/h2/value/Value;
            astore 16 /* value */
        start local 16 // org.h2.value.Value value
        18: .line 702
            aload 11 /* first */
            ifnonnull 20
        19: .line 703
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
            iconst_1
            invokevirtual org.h2.table.Table.getTemplateSimpleRow:(Z)Lorg/h2/result/SearchRow;
            astore 11 /* first */
        20: .line 705
      StackMap locals: org.h2.result.SearchRow org.h2.value.Value
      StackMap stack:
            aload 11 /* first */
            iload 12 /* columnIndex */
            aload 16 /* value */
            invokeinterface org.h2.result.SearchRow.setValue:(ILorg/h2/value/Value;)V
        21: .line 706
            lload 2 /* offset */
            lconst_0
            lcmp
            ifle 24
        22: .line 707
            lload 2 /* offset */
            lconst_1
            lsub
            lstore 2 /* offset */
        23: .line 708
            goto 12
        24: .line 710
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray org.h2.value.Value
            dup
            iconst_0
            aload 16 /* value */
            aastore
            astore 17 /* row */
        start local 17 // org.h2.value.Value[] row
        25: .line 711
            aload 1 /* result */
            aload 17 /* row */
            invokeinterface org.h2.result.ResultTarget.addRow:([Lorg/h2/value/Value;)V
        26: .line 712
            aload 0 /* this */
            getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
            ifnull 27
            aload 0 /* this */
            getfield org.h2.command.dml.Select.sortUsingIndex:Z
            ifeq 30
      StackMap locals: org.h2.value.Value[]
      StackMap stack:
        27: lload 4 /* limitRows */
            lconst_0
            lcmp
            ifle 30
        28: .line 713
            lload 8 /* rowNumber */
            lload 4 /* limitRows */
            lcmp
            iflt 30
            iload 6 /* withTies */
            ifne 30
        29: .line 714
            goto 31
        30: .line 716
      StackMap locals:
      StackMap stack:
            iload 13 /* sampleSize */
            ifle 12
            lload 8 /* rowNumber */
            iload 13 /* sampleSize */
            i2l
            lcmp
            iflt 12
        end local 17 // org.h2.value.Value[] row
        end local 16 // org.h2.value.Value value
        end local 15 // org.h2.result.SearchRow found
        end local 14 // org.h2.index.Cursor cursor
        31: .line 720
      StackMap locals: org.h2.command.dml.Select org.h2.result.ResultTarget long long int int long org.h2.index.Index org.h2.result.SearchRow int int
      StackMap stack:
            return
        end local 13 // int sampleSize
        end local 12 // int columnIndex
        end local 11 // org.h2.result.SearchRow first
        end local 10 // org.h2.index.Index index
        end local 8 // long rowNumber
        end local 7 // boolean quickOffset
        end local 6 // boolean withTies
        end local 4 // long limitRows
        end local 2 // long offset
        end local 1 // org.h2.result.ResultTarget result
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   32     0         this  Lorg/h2/command/dml/Select;
            0   32     1       result  Lorg/h2/result/ResultTarget;
            0   32     2       offset  J
            0   32     4    limitRows  J
            0   32     6     withTies  Z
            0   32     7  quickOffset  Z
            5   32     8    rowNumber  J
            7   32    10        index  Lorg/h2/index/Index;
            8   32    11        first  Lorg/h2/result/SearchRow;
            9   32    12  columnIndex  I
           10   32    13   sampleSize  I
           14   31    14       cursor  Lorg/h2/index/Cursor;
           17   31    15        found  Lorg/h2/result/SearchRow;
           18   31    16        value  Lorg/h2/value/Value;
           25   31    17          row  [Lorg/h2/value/Value;
    MethodParameters:
             Name  Flags
      result       
      offset       
      limitRows    
      withTies     
      quickOffset  

  private org.h2.result.LazyResult queryFlat(int, org.h2.result.ResultTarget, long, long, boolean, boolean);
    descriptor: (ILorg/h2/result/ResultTarget;JJZZ)Lorg/h2/result/LazyResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=13, args_size=7
        start local 0 // org.h2.command.dml.Select this
        start local 1 // int columnCount
        start local 2 // org.h2.result.ResultTarget result
        start local 3 // long offset
        start local 5 // long limitRows
        start local 7 // boolean withTies
        start local 8 // boolean quickOffset
         0: .line 724
            lload 5 /* limitRows */
            lconst_0
            lcmp
            ifle 4
            lload 3 /* offset */
            lconst_0
            lcmp
            ifle 4
            iload 8 /* quickOffset */
            ifne 4
         1: .line 725
            lload 5 /* limitRows */
            lload 3 /* offset */
            ladd
            lstore 5 /* limitRows */
         2: .line 726
            lload 5 /* limitRows */
            lconst_0
            lcmp
            ifge 4
         3: .line 728
            ldc 9223372036854775807
            lstore 5 /* limitRows */
         4: .line 731
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.command.dml.Select.getSampleSizeValue:(Lorg/h2/engine/Session;)I
            istore 9 /* sampleSize */
        start local 9 // int sampleSize
         5: .line 732
            new org.h2.command.dml.Select$LazyResultQueryFlat
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressionArray:[Lorg/h2/expression/Expression;
            iload 1 /* columnCount */
            iload 9 /* sampleSize */
         6: .line 733
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isForUpdateMvcc:Z
         7: .line 732
            invokespecial org.h2.command.dml.Select$LazyResultQueryFlat.<init>:(Lorg/h2/command/dml/Select;[Lorg/h2/expression/Expression;IIZ)V
            astore 10 /* lazyResult */
        start local 10 // org.h2.command.dml.Select$LazyResultQueryFlat lazyResult
         8: .line 734
            aload 10 /* lazyResult */
            lload 3 /* offset */
            iload 8 /* quickOffset */
            invokestatic org.h2.command.dml.Select.skipOffset:(Lorg/h2/command/dml/Select$LazyResultSelect;JZ)V
         9: .line 735
            aload 2 /* result */
            ifnonnull 11
        10: .line 736
            aload 10 /* lazyResult */
            areturn
        11: .line 738
      StackMap locals: int org.h2.command.dml.Select$LazyResultQueryFlat
      StackMap stack:
            lload 5 /* limitRows */
            lconst_0
            lcmp
            iflt 13
            aload 0 /* this */
            getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
            ifnull 12
            aload 0 /* this */
            getfield org.h2.command.dml.Select.sortUsingIndex:Z
            ifeq 13
      StackMap locals:
      StackMap stack:
        12: iload 7 /* withTies */
            ifeq 14
            iload 8 /* quickOffset */
            ifne 14
        13: .line 739
      StackMap locals:
      StackMap stack:
            ldc 9223372036854775807
            lstore 5 /* limitRows */
        14: .line 741
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 11 /* row */
        start local 11 // org.h2.value.Value[] row
        15: .line 742
            goto 18
        16: .line 743
      StackMap locals: org.h2.value.Value[]
      StackMap stack:
            aload 10 /* lazyResult */
            invokevirtual org.h2.command.dml.Select$LazyResultQueryFlat.currentRow:()[Lorg/h2/value/Value;
            astore 11 /* row */
        17: .line 744
            aload 2 /* result */
            aload 11 /* row */
            invokeinterface org.h2.result.ResultTarget.addRow:([Lorg/h2/value/Value;)V
        18: .line 742
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            invokeinterface org.h2.result.ResultTarget.getRowCount:()I
            i2l
            lload 5 /* limitRows */
            lcmp
            ifge 19
            aload 10 /* lazyResult */
            invokevirtual org.h2.command.dml.Select$LazyResultQueryFlat.next:()Z
            ifne 16
        19: .line 746
      StackMap locals:
      StackMap stack:
            lload 5 /* limitRows */
            ldc 9223372036854775807
            lcmp
            ifeq 28
            iload 7 /* withTies */
            ifeq 28
            aload 0 /* this */
            getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
            ifnull 28
            aload 11 /* row */
            ifnull 28
        20: .line 747
            aload 11 /* row */
            astore 12 /* expected */
        start local 12 // org.h2.value.Value[] expected
        21: .line 748
            goto 26
        22: .line 749
      StackMap locals: org.h2.value.Value[]
      StackMap stack:
            aload 10 /* lazyResult */
            invokevirtual org.h2.command.dml.Select$LazyResultQueryFlat.currentRow:()[Lorg/h2/value/Value;
            astore 11 /* row */
        23: .line 750
            aload 0 /* this */
            getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
            aload 12 /* expected */
            aload 11 /* row */
            invokevirtual org.h2.result.SortOrder.compare:([Lorg/h2/value/Value;[Lorg/h2/value/Value;)I
            ifeq 25
        24: .line 751
            goto 27
        25: .line 753
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            aload 11 /* row */
            invokeinterface org.h2.result.ResultTarget.addRow:([Lorg/h2/value/Value;)V
        26: .line 748
      StackMap locals:
      StackMap stack:
            aload 10 /* lazyResult */
            invokevirtual org.h2.command.dml.Select$LazyResultQueryFlat.next:()Z
            ifne 22
        27: .line 755
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            invokeinterface org.h2.result.ResultTarget.limitsWereApplied:()V
        end local 12 // org.h2.value.Value[] expected
        28: .line 757
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 11 // org.h2.value.Value[] row
        end local 10 // org.h2.command.dml.Select$LazyResultQueryFlat lazyResult
        end local 9 // int sampleSize
        end local 8 // boolean quickOffset
        end local 7 // boolean withTies
        end local 5 // long limitRows
        end local 3 // long offset
        end local 2 // org.h2.result.ResultTarget result
        end local 1 // int columnCount
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   29     0         this  Lorg/h2/command/dml/Select;
            0   29     1  columnCount  I
            0   29     2       result  Lorg/h2/result/ResultTarget;
            0   29     3       offset  J
            0   29     5    limitRows  J
            0   29     7     withTies  Z
            0   29     8  quickOffset  Z
            5   29     9   sampleSize  I
            8   29    10   lazyResult  Lorg/h2/command/dml/Select$LazyResultQueryFlat;
           15   29    11          row  [Lorg/h2/value/Value;
           21   28    12     expected  [Lorg/h2/value/Value;
    MethodParameters:
             Name  Flags
      columnCount  
      result       
      offset       
      limitRows    
      withTies     
      quickOffset  

  private static void skipOffset(org.h2.command.dml.Select$LazyResultSelect, long, boolean);
    descriptor: (Lorg/h2/command/dml/Select$LazyResultSelect;JZ)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.h2.command.dml.Select$LazyResultSelect lazyResult
        start local 1 // long offset
        start local 3 // boolean quickOffset
         0: .line 761
            iload 3 /* quickOffset */
            ifeq 4
         1: .line 762
            goto 3
         2: .line 763
      StackMap locals:
      StackMap stack:
            lload 1 /* offset */
            lconst_1
            lsub
            lstore 1 /* offset */
         3: .line 762
      StackMap locals:
      StackMap stack:
            lload 1 /* offset */
            lconst_0
            lcmp
            ifle 4
            aload 0 /* lazyResult */
            invokevirtual org.h2.command.dml.Select$LazyResultSelect.skip:()Z
            ifne 2
         4: .line 766
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean quickOffset
        end local 1 // long offset
        end local 0 // org.h2.command.dml.Select$LazyResultSelect lazyResult
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0   lazyResult  Lorg/h2/command/dml/Select$LazyResultSelect;
            0    5     1       offset  J
            0    5     3  quickOffset  Z
    MethodParameters:
             Name  Flags
      lazyResult   
      offset       
      quickOffset  

  private void queryQuick(int, org.h2.result.ResultTarget, boolean);
    descriptor: (ILorg/h2/result/ResultTarget;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // org.h2.command.dml.Select this
        start local 1 // int columnCount
        start local 2 // org.h2.result.ResultTarget result
        start local 3 // boolean skipResult
         0: .line 769
            iload 1 /* columnCount */
            anewarray org.h2.value.Value
            astore 4 /* row */
        start local 4 // org.h2.value.Value[] row
         1: .line 770
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         2: goto 6
         3: .line 771
      StackMap locals: org.h2.value.Value[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            iload 5 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.expression.Expression
            astore 6 /* expr */
        start local 6 // org.h2.expression.Expression expr
         4: .line 772
            aload 4 /* row */
            iload 5 /* i */
            aload 6 /* expr */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.expression.Expression.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
            aastore
        end local 6 // org.h2.expression.Expression expr
         5: .line 770
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 5 /* i */
            iload 1 /* columnCount */
            if_icmplt 3
        end local 5 // int i
         7: .line 774
            iload 3 /* skipResult */
            ifne 9
         8: .line 775
            aload 2 /* result */
            aload 4 /* row */
            invokeinterface org.h2.result.ResultTarget.addRow:([Lorg/h2/value/Value;)V
         9: .line 777
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.h2.value.Value[] row
        end local 3 // boolean skipResult
        end local 2 // org.h2.result.ResultTarget result
        end local 1 // int columnCount
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lorg/h2/command/dml/Select;
            0   10     1  columnCount  I
            0   10     2       result  Lorg/h2/result/ResultTarget;
            0   10     3   skipResult  Z
            1   10     4          row  [Lorg/h2/value/Value;
            2    7     5            i  I
            4    5     6         expr  Lorg/h2/expression/Expression;
    MethodParameters:
             Name  Flags
      columnCount  
      result       
      skipResult   

  public org.h2.result.ResultInterface queryMeta();
    descriptor: ()Lorg/h2/result/ResultInterface;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 781
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getResultFactory:()Lorg/h2/result/LocalResultFactory;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressionArray:[Lorg/h2/expression/Expression;
         1: .line 782
            aload 0 /* this */
            getfield org.h2.command.dml.Select.visibleColumnCount:I
         2: .line 781
            invokevirtual org.h2.result.LocalResultFactory.create:(Lorg/h2/engine/Session;[Lorg/h2/expression/Expression;I)Lorg/h2/result/LocalResult;
            astore 1 /* result */
        start local 1 // org.h2.result.LocalResult result
         3: .line 783
            aload 1 /* result */
            invokeinterface org.h2.result.LocalResult.done:()V
         4: .line 784
            aload 1 /* result */
            areturn
        end local 1 // org.h2.result.LocalResult result
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/h2/command/dml/Select;
            3    5     1  result  Lorg/h2/result/LocalResult;

  protected org.h2.result.ResultInterface queryWithoutCache(int, org.h2.result.ResultTarget);
    descriptor: (ILorg/h2/result/ResultTarget;)Lorg/h2/result/ResultInterface;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=9, locals=16, args_size=3
        start local 0 // org.h2.command.dml.Select this
        start local 1 // int maxRows
        start local 2 // org.h2.result.ResultTarget target
         0: .line 789
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            invokevirtual org.h2.command.dml.Select.disableLazyForJoinSubqueries:(Lorg/h2/table/TableFilter;)V
         1: .line 791
            iload 1 /* maxRows */
            ifne 2
            iconst_m1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iload 1 /* maxRows */
      StackMap locals:
      StackMap stack: int
         3: istore 3 /* limitRows */
        start local 3 // int limitRows
         4: .line 792
            aload 0 /* this */
            getfield org.h2.command.dml.Select.limitExpr:Lorg/h2/expression/Expression;
            ifnull 14
         5: .line 793
            aload 0 /* this */
            getfield org.h2.command.dml.Select.limitExpr:Lorg/h2/expression/Expression;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.expression.Expression.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
            astore 4 /* v */
        start local 4 // org.h2.value.Value v
         6: .line 794
            aload 4 /* v */
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            if_acmpne 7
            iconst_m1
            goto 8
      StackMap locals: int org.h2.value.Value
      StackMap stack:
         7: aload 4 /* v */
            invokevirtual org.h2.value.Value.getInt:()I
      StackMap locals:
      StackMap stack: int
         8: istore 5 /* l */
        start local 5 // int l
         9: .line 795
            iload 3 /* limitRows */
            ifge 12
        10: .line 796
            iload 5 /* l */
            istore 3 /* limitRows */
        11: .line 797
            goto 14
      StackMap locals: int
      StackMap stack:
        12: iload 5 /* l */
            iflt 14
        13: .line 798
            iload 5 /* l */
            iload 3 /* limitRows */
            invokestatic java.lang.Math.min:(II)I
            istore 3 /* limitRows */
        end local 5 // int l
        end local 4 // org.h2.value.Value v
        14: .line 801
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.fetchPercent:Z
            istore 4 /* fetchPercent */
        start local 4 // boolean fetchPercent
        15: .line 802
            iload 4 /* fetchPercent */
            ifeq 20
        16: .line 804
            iload 3 /* limitRows */
            iflt 17
            iload 3 /* limitRows */
            bipush 100
            if_icmple 18
        17: .line 805
      StackMap locals: int
      StackMap stack:
            ldc "FETCH PERCENT"
            iload 3 /* limitRows */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic org.h2.message.DbException.getInvalidValueException:(Ljava/lang/String;Ljava/lang/Object;)Lorg/h2/message/DbException;
            athrow
        18: .line 808
      StackMap locals:
      StackMap stack:
            iload 3 /* limitRows */
            ifne 20
        19: .line 809
            iconst_0
            istore 4 /* fetchPercent */
        20: .line 813
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.offsetExpr:Lorg/h2/expression/Expression;
            ifnull 25
        21: .line 814
            aload 0 /* this */
            getfield org.h2.command.dml.Select.offsetExpr:Lorg/h2/expression/Expression;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.expression.Expression.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
            invokevirtual org.h2.value.Value.getLong:()J
            lstore 5 /* offset */
        start local 5 // long offset
        22: .line 815
            lload 5 /* offset */
            lconst_0
            lcmp
            ifge 26
        23: .line 816
            lconst_0
            lstore 5 /* offset */
        24: .line 818
            goto 26
        end local 5 // long offset
        25: .line 819
      StackMap locals:
      StackMap stack:
            lconst_0
            lstore 5 /* offset */
        start local 5 // long offset
        26: .line 821
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.isLazyQueryExecution:()Z
            ifeq 30
        27: .line 822
            aload 2 /* target */
            ifnonnull 30
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isForUpdate:Z
            ifne 30
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isQuickAggregateQuery:Z
            ifne 30
        28: .line 823
            iload 3 /* limitRows */
            ifeq 30
            iload 4 /* fetchPercent */
            ifne 30
            aload 0 /* this */
            getfield org.h2.command.dml.Select.withTies:Z
            ifne 30
            lload 5 /* offset */
            lconst_0
            lcmp
            ifne 30
            aload 0 /* this */
            invokevirtual org.h2.command.dml.Select.isReadOnly:()Z
            ifeq 30
        29: .line 821
            iconst_1
            goto 31
      StackMap locals:
      StackMap stack:
        30: iconst_0
      StackMap locals:
      StackMap stack: int
        31: istore 7 /* lazy */
        start local 7 // boolean lazy
        32: .line 824
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            istore 8 /* columnCount */
        start local 8 // int columnCount
        33: .line 825
            aconst_null
            astore 9 /* result */
        start local 9 // org.h2.result.LocalResult result
        34: .line 826
            iload 7 /* lazy */
            ifne 37
            aload 2 /* target */
            ifnull 36
        35: .line 827
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getSettings:()Lorg/h2/engine/DbSettings;
            getfield org.h2.engine.DbSettings.optimizeInsertFromSelect:Z
            ifne 37
        36: .line 828
      StackMap locals: int int org.h2.result.LocalResult
      StackMap stack:
            aload 0 /* this */
            aload 9 /* result */
            invokevirtual org.h2.command.dml.Select.createLocalResult:(Lorg/h2/result/LocalResult;)Lorg/h2/result/LocalResult;
            astore 9 /* result */
        37: .line 831
      StackMap locals:
      StackMap stack:
            iload 4 /* fetchPercent */
            ifeq 38
            iconst_0
            goto 39
      StackMap locals:
      StackMap stack:
        38: iconst_1
      StackMap locals:
      StackMap stack: int
        39: istore 10 /* quickOffset */
        start local 10 // boolean quickOffset
        40: .line 832
            aload 0 /* this */
            getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
            ifnull 45
            aload 0 /* this */
            getfield org.h2.command.dml.Select.sortUsingIndex:Z
            ifeq 41
            aload 0 /* this */
            invokevirtual org.h2.command.dml.Select.isAnyDistinct:()Z
            ifeq 45
        41: .line 833
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 9 /* result */
            invokevirtual org.h2.command.dml.Select.createLocalResult:(Lorg/h2/result/LocalResult;)Lorg/h2/result/LocalResult;
            astore 9 /* result */
        42: .line 834
            aload 9 /* result */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
            invokeinterface org.h2.result.LocalResult.setSortOrder:(Lorg/h2/result/SortOrder;)V
        43: .line 835
            aload 0 /* this */
            getfield org.h2.command.dml.Select.sortUsingIndex:Z
            ifne 45
        44: .line 836
            iconst_0
            istore 10 /* quickOffset */
        45: .line 839
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.distinct:Z
            ifeq 51
        46: .line 840
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isDistinctQuery:Z
            ifne 55
        47: .line 841
            iconst_0
            istore 10 /* quickOffset */
        48: .line 842
            aload 0 /* this */
            aload 9 /* result */
            invokevirtual org.h2.command.dml.Select.createLocalResult:(Lorg/h2/result/LocalResult;)Lorg/h2/result/LocalResult;
            astore 9 /* result */
        49: .line 843
            aload 9 /* result */
            invokeinterface org.h2.result.LocalResult.setDistinct:()V
        50: .line 845
            goto 55
      StackMap locals:
      StackMap stack:
        51: aload 0 /* this */
            getfield org.h2.command.dml.Select.distinctExpressions:[Lorg/h2/expression/Expression;
            ifnull 55
        52: .line 846
            iconst_0
            istore 10 /* quickOffset */
        53: .line 847
            aload 0 /* this */
            aload 9 /* result */
            invokevirtual org.h2.command.dml.Select.createLocalResult:(Lorg/h2/result/LocalResult;)Lorg/h2/result/LocalResult;
            astore 9 /* result */
        54: .line 848
            aload 9 /* result */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.distinctIndexes:[I
            invokeinterface org.h2.result.LocalResult.setDistinct:([I)V
        55: .line 850
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isWindowQuery:Z
            ifne 56
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isGroupQuery:Z
            ifeq 57
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isGroupSortedQuery:Z
            ifne 57
        56: .line 851
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 9 /* result */
            invokevirtual org.h2.command.dml.Select.createLocalResult:(Lorg/h2/result/LocalResult;)Lorg/h2/result/LocalResult;
            astore 9 /* result */
        57: .line 853
      StackMap locals:
      StackMap stack:
            iload 7 /* lazy */
            ifne 59
            iload 3 /* limitRows */
            ifge 58
            lload 5 /* offset */
            lconst_0
            lcmp
            ifle 59
        58: .line 854
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 9 /* result */
            invokevirtual org.h2.command.dml.Select.createLocalResult:(Lorg/h2/result/LocalResult;)Lorg/h2/result/LocalResult;
            astore 9 /* result */
        59: .line 856
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.table.TableFilter.startQuery:(Lorg/h2/engine/Session;)V
        60: .line 857
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            invokevirtual org.h2.table.TableFilter.reset:()V
        61: .line 858
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isForUpdate:Z
            ifeq 62
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isForUpdateMvcc:Z
            ifne 62
            iconst_1
            goto 63
      StackMap locals:
      StackMap stack:
        62: iconst_0
      StackMap locals:
      StackMap stack: int
        63: istore 11 /* exclusive */
        start local 11 // boolean exclusive
        64: .line 859
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            iload 11 /* exclusive */
            iload 11 /* exclusive */
            invokevirtual org.h2.table.TableFilter.lock:(Lorg/h2/engine/Session;ZZ)V
        65: .line 860
            aload 9 /* result */
            ifnull 66
            aload 9 /* result */
            goto 67
      StackMap locals: int
      StackMap stack:
        66: aload 2 /* target */
      StackMap locals:
      StackMap stack: org.h2.result.ResultTarget
        67: astore 12 /* to */
        start local 12 // org.h2.result.ResultTarget to
        68: .line 861
            iload 7 /* lazy */
            aload 12 /* to */
            ifnonnull 69
            iconst_1
            goto 70
      StackMap locals: org.h2.command.dml.Select int org.h2.result.ResultTarget int int long int int org.h2.result.LocalResult int int org.h2.result.ResultTarget
      StackMap stack: int
        69: iconst_0
      StackMap locals: org.h2.command.dml.Select int org.h2.result.ResultTarget int int long int int org.h2.result.LocalResult int int org.h2.result.ResultTarget
      StackMap stack: int int
        70: iand
            istore 7 /* lazy */
        71: .line 862
            aconst_null
            astore 13 /* lazyResult */
        start local 13 // org.h2.result.LazyResult lazyResult
        72: .line 863
            iload 3 /* limitRows */
            ifeq 106
        73: .line 865
            iload 4 /* fetchPercent */
            ifeq 74
            iconst_m1
            goto 75
      StackMap locals: org.h2.result.LazyResult
      StackMap stack:
        74: iload 3 /* limitRows */
      StackMap locals:
      StackMap stack: int
        75: istore 14 /* limit */
        start local 14 // int limit
        76: .line 867
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isQuickAggregateQuery:Z
            ifeq 81
        77: .line 868
            aload 0 /* this */
            iload 8 /* columnCount */
            aload 12 /* to */
            iload 10 /* quickOffset */
            ifeq 78
            lload 5 /* offset */
            lconst_0
            lcmp
            ifle 78
            iconst_1
            goto 79
      StackMap locals: org.h2.command.dml.Select int org.h2.result.ResultTarget int int long int int org.h2.result.LocalResult int int org.h2.result.ResultTarget org.h2.result.LazyResult int
      StackMap stack: org.h2.command.dml.Select int org.h2.result.ResultTarget
        78: iconst_0
      StackMap locals: org.h2.command.dml.Select int org.h2.result.ResultTarget int int long int int org.h2.result.LocalResult int int org.h2.result.ResultTarget org.h2.result.LazyResult int
      StackMap stack: org.h2.command.dml.Select int org.h2.result.ResultTarget int
        79: invokevirtual org.h2.command.dml.Select.queryQuick:(ILorg/h2/result/ResultTarget;Z)V
        80: .line 869
            goto 97
      StackMap locals:
      StackMap stack:
        81: aload 0 /* this */
            getfield org.h2.command.dml.Select.isWindowQuery:Z
            ifeq 87
        82: .line 870
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isGroupQuery:Z
            ifeq 85
        83: .line 871
            aload 0 /* this */
            iload 8 /* columnCount */
            aload 9 /* result */
            lload 5 /* offset */
            iload 10 /* quickOffset */
            invokevirtual org.h2.command.dml.Select.queryGroupWindow:(ILorg/h2/result/LocalResult;JZ)V
        84: .line 872
            goto 97
        85: .line 873
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 8 /* columnCount */
            aload 9 /* result */
            lload 5 /* offset */
            iload 10 /* quickOffset */
            invokevirtual org.h2.command.dml.Select.queryWindow:(ILorg/h2/result/LocalResult;JZ)V
        86: .line 875
            goto 97
      StackMap locals:
      StackMap stack:
        87: aload 0 /* this */
            getfield org.h2.command.dml.Select.isGroupQuery:Z
            ifeq 93
        88: .line 876
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isGroupSortedQuery:Z
            ifeq 91
        89: .line 877
            aload 0 /* this */
            iload 8 /* columnCount */
            aload 12 /* to */
            lload 5 /* offset */
            iload 10 /* quickOffset */
            invokevirtual org.h2.command.dml.Select.queryGroupSorted:(ILorg/h2/result/ResultTarget;JZ)Lorg/h2/result/LazyResult;
            astore 13 /* lazyResult */
        90: .line 878
            goto 97
        91: .line 879
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 8 /* columnCount */
            aload 9 /* result */
            lload 5 /* offset */
            iload 10 /* quickOffset */
            invokevirtual org.h2.command.dml.Select.queryGroup:(ILorg/h2/result/LocalResult;JZ)V
        92: .line 881
            goto 97
      StackMap locals:
      StackMap stack:
        93: aload 0 /* this */
            getfield org.h2.command.dml.Select.isDistinctQuery:Z
            ifeq 96
        94: .line 882
            aload 0 /* this */
            aload 12 /* to */
            lload 5 /* offset */
            iload 14 /* limit */
            i2l
            aload 0 /* this */
            getfield org.h2.command.dml.Select.withTies:Z
            iload 10 /* quickOffset */
            invokevirtual org.h2.command.dml.Select.queryDistinct:(Lorg/h2/result/ResultTarget;JJZZ)V
        95: .line 883
            goto 97
        96: .line 884
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 8 /* columnCount */
            aload 12 /* to */
            lload 5 /* offset */
            iload 14 /* limit */
            i2l
            aload 0 /* this */
            getfield org.h2.command.dml.Select.withTies:Z
            iload 10 /* quickOffset */
            invokevirtual org.h2.command.dml.Select.queryFlat:(ILorg/h2/result/ResultTarget;JJZZ)Lorg/h2/result/LazyResult;
            astore 13 /* lazyResult */
        97: .line 886
      StackMap locals:
      StackMap stack:
            iload 10 /* quickOffset */
            ifeq 104
        98: .line 887
            lconst_0
            lstore 5 /* offset */
        99: .line 889
            goto 104
      StackMap locals:
      StackMap stack: java.lang.Throwable
       100: astore 15
       101: .line 890
            iload 7 /* lazy */
            ifne 103
       102: .line 891
            aload 0 /* this */
            invokevirtual org.h2.command.dml.Select.resetJoinBatchAfterQuery:()V
       103: .line 893
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 15
            athrow
       104: .line 890
      StackMap locals:
      StackMap stack:
            iload 7 /* lazy */
            ifne 106
       105: .line 891
            aload 0 /* this */
            invokevirtual org.h2.command.dml.Select.resetJoinBatchAfterQuery:()V
        end local 14 // int limit
       106: .line 895
      StackMap locals:
      StackMap stack:
            getstatic org.h2.command.dml.Select.$assertionsDisabled:Z
            ifne 109
            iload 7 /* lazy */
            aload 13 /* lazyResult */
            ifnull 107
            iconst_1
            goto 108
      StackMap locals:
      StackMap stack: int
       107: iconst_0
      StackMap locals: org.h2.command.dml.Select int org.h2.result.ResultTarget int int long int int org.h2.result.LocalResult int int org.h2.result.ResultTarget org.h2.result.LazyResult
      StackMap stack: int int
       108: if_icmpeq 109
            new java.lang.AssertionError
            dup
            iload 7 /* lazy */
            invokespecial java.lang.AssertionError.<init>:(Z)V
            athrow
       109: .line 896
      StackMap locals:
      StackMap stack:
            aload 13 /* lazyResult */
            ifnull 115
       110: .line 897
            iload 3 /* limitRows */
            ifle 112
       111: .line 898
            aload 13 /* lazyResult */
            iload 3 /* limitRows */
            invokevirtual org.h2.result.LazyResult.setLimit:(I)V
       112: .line 900
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.randomAccessResult:Z
            ifeq 114
       113: .line 901
            aload 0 /* this */
            aload 13 /* lazyResult */
            invokevirtual org.h2.command.dml.Select.convertToDistinct:(Lorg/h2/result/ResultInterface;)Lorg/h2/result/LocalResult;
            areturn
       114: .line 903
      StackMap locals:
      StackMap stack:
            aload 13 /* lazyResult */
            areturn
       115: .line 906
      StackMap locals:
      StackMap stack:
            lload 5 /* offset */
            lconst_0
            lcmp
            ifeq 119
       116: .line 907
            lload 5 /* offset */
            ldc 2147483647
            lcmp
            ifle 118
       117: .line 908
            ldc "OFFSET"
            lload 5 /* offset */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokestatic org.h2.message.DbException.getInvalidValueException:(Ljava/lang/String;Ljava/lang/Object;)Lorg/h2/message/DbException;
            athrow
       118: .line 910
      StackMap locals:
      StackMap stack:
            aload 9 /* result */
            lload 5 /* offset */
            l2i
            invokeinterface org.h2.result.LocalResult.setOffset:(I)V
       119: .line 912
      StackMap locals:
      StackMap stack:
            iload 3 /* limitRows */
            iflt 124
       120: .line 913
            aload 9 /* result */
            iload 3 /* limitRows */
            invokeinterface org.h2.result.LocalResult.setLimit:(I)V
       121: .line 914
            aload 9 /* result */
            iload 4 /* fetchPercent */
            invokeinterface org.h2.result.LocalResult.setFetchPercent:(Z)V
       122: .line 915
            aload 0 /* this */
            getfield org.h2.command.dml.Select.withTies:Z
            ifeq 124
       123: .line 916
            aload 9 /* result */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
            invokeinterface org.h2.result.LocalResult.setWithTies:(Lorg/h2/result/SortOrder;)V
       124: .line 919
      StackMap locals:
      StackMap stack:
            aload 9 /* result */
            ifnull 135
       125: .line 920
            aload 9 /* result */
            invokeinterface org.h2.result.LocalResult.done:()V
       126: .line 921
            aload 0 /* this */
            getfield org.h2.command.dml.Select.randomAccessResult:Z
            ifeq 128
            aload 0 /* this */
            getfield org.h2.command.dml.Select.distinct:Z
            ifne 128
       127: .line 922
            aload 0 /* this */
            aload 9 /* result */
            invokevirtual org.h2.command.dml.Select.convertToDistinct:(Lorg/h2/result/ResultInterface;)Lorg/h2/result/LocalResult;
            astore 9 /* result */
       128: .line 924
      StackMap locals:
      StackMap stack:
            aload 2 /* target */
            ifnull 134
       129: .line 925
            goto 131
       130: .line 926
      StackMap locals:
      StackMap stack:
            aload 2 /* target */
            aload 9 /* result */
            invokeinterface org.h2.result.LocalResult.currentRow:()[Lorg/h2/value/Value;
            invokeinterface org.h2.result.ResultTarget.addRow:([Lorg/h2/value/Value;)V
       131: .line 925
      StackMap locals:
      StackMap stack:
            aload 9 /* result */
            invokeinterface org.h2.result.LocalResult.next:()Z
            ifne 130
       132: .line 928
            aload 9 /* result */
            invokeinterface org.h2.result.LocalResult.close:()V
       133: .line 929
            aconst_null
            areturn
       134: .line 931
      StackMap locals:
      StackMap stack:
            aload 9 /* result */
            areturn
       135: .line 933
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 13 // org.h2.result.LazyResult lazyResult
        end local 12 // org.h2.result.ResultTarget to
        end local 11 // boolean exclusive
        end local 10 // boolean quickOffset
        end local 9 // org.h2.result.LocalResult result
        end local 8 // int columnCount
        end local 7 // boolean lazy
        end local 5 // long offset
        end local 4 // boolean fetchPercent
        end local 3 // int limitRows
        end local 2 // org.h2.result.ResultTarget target
        end local 1 // int maxRows
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0  136     0          this  Lorg/h2/command/dml/Select;
            0  136     1       maxRows  I
            0  136     2        target  Lorg/h2/result/ResultTarget;
            4  136     3     limitRows  I
            6   14     4             v  Lorg/h2/value/Value;
            9   14     5             l  I
           15  136     4  fetchPercent  Z
           22   25     5        offset  J
           26  136     5        offset  J
           32  136     7          lazy  Z
           33  136     8   columnCount  I
           34  136     9        result  Lorg/h2/result/LocalResult;
           40  136    10   quickOffset  Z
           64  136    11     exclusive  Z
           68  136    12            to  Lorg/h2/result/ResultTarget;
           72  136    13    lazyResult  Lorg/h2/result/LazyResult;
           76  106    14         limit  I
      Exception table:
        from    to  target  type
          76   100     100  any
    MethodParameters:
         Name  Flags
      maxRows  
      target   

  private void disableLazyForJoinSubqueries(org.h2.table.TableFilter);
    descriptor: (Lorg/h2/table/TableFilter;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.h2.command.dml.Select this
        start local 1 // org.h2.table.TableFilter top
         0: .line 937
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.isLazyQueryExecution:()Z
            ifeq 2
         1: .line 938
            aload 1 /* top */
            new org.h2.command.dml.Select$2
            dup
            aload 0 /* this */
            aload 1 /* top */
            invokespecial org.h2.command.dml.Select$2.<init>:(Lorg/h2/command/dml/Select;Lorg/h2/table/TableFilter;)V
            invokevirtual org.h2.table.TableFilter.visit:(Lorg/h2/table/TableFilter$TableFilterVisitor;)V
         2: .line 950
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.h2.table.TableFilter top
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/command/dml/Select;
            0    3     1   top  Lorg/h2/table/TableFilter;
    MethodParameters:
      Name  Flags
      top   final

  void resetJoinBatchAfterQuery();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 956
            aload 0 /* this */
            invokevirtual org.h2.command.dml.Select.getJoinBatch:()Lorg/h2/table/JoinBatch;
            astore 1 /* jb */
        start local 1 // org.h2.table.JoinBatch jb
         1: .line 957
            aload 1 /* jb */
            ifnull 3
         2: .line 958
            aload 1 /* jb */
            iconst_0
            invokevirtual org.h2.table.JoinBatch.reset:(Z)V
         3: .line 960
      StackMap locals: org.h2.table.JoinBatch
      StackMap stack:
            return
        end local 1 // org.h2.table.JoinBatch jb
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/h2/command/dml/Select;
            1    4     1    jb  Lorg/h2/table/JoinBatch;

  private org.h2.result.LocalResult createLocalResult(org.h2.result.LocalResult);
    descriptor: (Lorg/h2/result/LocalResult;)Lorg/h2/result/LocalResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.h2.command.dml.Select this
        start local 1 // org.h2.result.LocalResult old
         0: .line 963
            aload 1 /* old */
            ifnull 1
            aload 1 /* old */
            goto 4
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getResultFactory:()Lorg/h2/result/LocalResultFactory;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressionArray:[Lorg/h2/expression/Expression;
         2: .line 964
            aload 0 /* this */
            getfield org.h2.command.dml.Select.visibleColumnCount:I
         3: .line 963
            invokevirtual org.h2.result.LocalResultFactory.create:(Lorg/h2/engine/Session;[Lorg/h2/expression/Expression;I)Lorg/h2/result/LocalResult;
      StackMap locals:
      StackMap stack: org.h2.result.LocalResult
         4: areturn
        end local 1 // org.h2.result.LocalResult old
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/h2/command/dml/Select;
            0    5     1   old  Lorg/h2/result/LocalResult;
    MethodParameters:
      Name  Flags
      old   

  private org.h2.result.LocalResult convertToDistinct(org.h2.result.ResultInterface);
    descriptor: (Lorg/h2/result/ResultInterface;)Lorg/h2/result/LocalResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.h2.command.dml.Select this
        start local 1 // org.h2.result.ResultInterface result
         0: .line 968
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getResultFactory:()Lorg/h2/result/LocalResultFactory;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
         1: .line 969
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressionArray:[Lorg/h2/expression/Expression;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.visibleColumnCount:I
         2: .line 968
            invokevirtual org.h2.result.LocalResultFactory.create:(Lorg/h2/engine/Session;[Lorg/h2/expression/Expression;I)Lorg/h2/result/LocalResult;
            astore 2 /* distinctResult */
        start local 2 // org.h2.result.LocalResult distinctResult
         3: .line 970
            aload 2 /* distinctResult */
            invokeinterface org.h2.result.LocalResult.setDistinct:()V
         4: .line 971
            aload 1 /* result */
            invokeinterface org.h2.result.ResultInterface.reset:()V
         5: .line 972
            goto 7
         6: .line 973
      StackMap locals: org.h2.result.LocalResult
      StackMap stack:
            aload 2 /* distinctResult */
            aload 1 /* result */
            invokeinterface org.h2.result.ResultInterface.currentRow:()[Lorg/h2/value/Value;
            invokeinterface org.h2.result.LocalResult.addRow:([Lorg/h2/value/Value;)V
         7: .line 972
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            invokeinterface org.h2.result.ResultInterface.next:()Z
            ifne 6
         8: .line 975
            aload 1 /* result */
            invokeinterface org.h2.result.ResultInterface.close:()V
         9: .line 976
            aload 2 /* distinctResult */
            invokeinterface org.h2.result.LocalResult.done:()V
        10: .line 977
            aload 2 /* distinctResult */
            areturn
        end local 2 // org.h2.result.LocalResult distinctResult
        end local 1 // org.h2.result.ResultInterface result
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lorg/h2/command/dml/Select;
            0   11     1          result  Lorg/h2/result/ResultInterface;
            3   11     2  distinctResult  Lorg/h2/result/LocalResult;
    MethodParameters:
        Name  Flags
      result  

  private void expandColumnList();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=12, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 982
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: goto 41
         2: .line 983
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            iload 1 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.expression.Expression
            astore 2 /* expr */
        start local 2 // org.h2.expression.Expression expr
         3: .line 984
            aload 2 /* expr */
            instanceof org.h2.expression.Wildcard
            ifne 6
         4: .line 985
            iinc 1 /* i */ 1
         5: .line 986
            goto 41
         6: .line 988
      StackMap locals: org.h2.expression.Expression
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            iload 1 /* i */
            invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
            pop
         7: .line 989
            aload 2 /* expr */
            checkcast org.h2.expression.Wildcard
            astore 3 /* w */
        start local 3 // org.h2.expression.Wildcard w
         8: .line 990
            aload 3 /* w */
            invokevirtual org.h2.expression.Wildcard.getTableAlias:()Ljava/lang/String;
            astore 4 /* tableAlias */
        start local 4 // java.lang.String tableAlias
         9: .line 991
            aload 3 /* w */
            invokevirtual org.h2.expression.Wildcard.getExceptColumns:()Ljava/util/ArrayList;
            ifnull 10
            iconst_1
            goto 11
      StackMap locals: org.h2.expression.Wildcard java.lang.String
      StackMap stack:
        10: iconst_0
      StackMap locals:
      StackMap stack: int
        11: istore 5 /* hasExceptColumns */
        start local 5 // boolean hasExceptColumns
        12: .line 992
            aconst_null
            astore 6 /* exceptTableColumns */
        start local 6 // java.util.HashMap exceptTableColumns
        13: .line 993
            aload 4 /* tableAlias */
            ifnonnull 25
        14: .line 994
            iload 5 /* hasExceptColumns */
            ifeq 20
        15: .line 995
            aload 0 /* this */
            getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 8
            goto 18
      StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression org.h2.expression.Wildcard java.lang.String int java.util.HashMap top java.util.Iterator
      StackMap stack:
        16: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.table.TableFilter
            astore 7 /* filter */
        start local 7 // org.h2.table.TableFilter filter
        17: .line 996
            aload 3 /* w */
            aload 7 /* filter */
            iconst_1
            iconst_0
            invokevirtual org.h2.expression.Wildcard.mapColumns:(Lorg/h2/table/ColumnResolver;II)V
        end local 7 // org.h2.table.TableFilter filter
        18: .line 995
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        19: .line 998
            aload 3 /* w */
            invokevirtual org.h2.expression.Wildcard.mapExceptColumns:()Ljava/util/HashMap;
            astore 6 /* exceptTableColumns */
        20: .line 1000
      StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression org.h2.expression.Wildcard java.lang.String int java.util.HashMap
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 8
            goto 23
      StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression org.h2.expression.Wildcard java.lang.String int java.util.HashMap top java.util.Iterator
      StackMap stack:
        21: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.table.TableFilter
            astore 7 /* filter */
        start local 7 // org.h2.table.TableFilter filter
        22: .line 1001
            aload 0 /* this */
            aload 7 /* filter */
            iload 1 /* i */
            aload 6 /* exceptTableColumns */
            invokevirtual org.h2.command.dml.Select.expandColumnList:(Lorg/h2/table/TableFilter;ILjava/util/HashMap;)I
            istore 1 /* i */
        end local 7 // org.h2.table.TableFilter filter
        23: .line 1000
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        24: .line 1003
            goto 41
        25: .line 1004
      StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression org.h2.expression.Wildcard java.lang.String int java.util.HashMap
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            astore 7 /* db */
        start local 7 // org.h2.engine.Database db
        26: .line 1005
            aload 3 /* w */
            invokevirtual org.h2.expression.Wildcard.getSchemaName:()Ljava/lang/String;
            astore 8 /* schemaName */
        start local 8 // java.lang.String schemaName
        27: .line 1006
            aconst_null
            astore 9 /* filter */
        start local 9 // org.h2.table.TableFilter filter
        28: .line 1007
            aload 0 /* this */
            getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 11
            goto 37
      StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression org.h2.expression.Wildcard java.lang.String int java.util.HashMap org.h2.engine.Database java.lang.String org.h2.table.TableFilter top java.util.Iterator
      StackMap stack:
        29: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.table.TableFilter
            astore 10 /* f */
        start local 10 // org.h2.table.TableFilter f
        30: .line 1008
            aload 7 /* db */
            aload 4 /* tableAlias */
            aload 10 /* f */
            invokevirtual org.h2.table.TableFilter.getTableAlias:()Ljava/lang/String;
            invokevirtual org.h2.engine.Database.equalsIdentifiers:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 37
        31: .line 1009
            aload 8 /* schemaName */
            ifnull 32
            aload 7 /* db */
            aload 8 /* schemaName */
            aload 10 /* f */
            invokevirtual org.h2.table.TableFilter.getSchemaName:()Ljava/lang/String;
            invokevirtual org.h2.engine.Database.equalsIdentifiers:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 37
        32: .line 1010
      StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression org.h2.expression.Wildcard java.lang.String int java.util.HashMap org.h2.engine.Database java.lang.String org.h2.table.TableFilter org.h2.table.TableFilter java.util.Iterator
      StackMap stack:
            iload 5 /* hasExceptColumns */
            ifeq 35
        33: .line 1011
            aload 3 /* w */
            aload 10 /* f */
            iconst_1
            iconst_0
            invokevirtual org.h2.expression.Wildcard.mapColumns:(Lorg/h2/table/ColumnResolver;II)V
        34: .line 1012
            aload 3 /* w */
            invokevirtual org.h2.expression.Wildcard.mapExceptColumns:()Ljava/util/HashMap;
            astore 6 /* exceptTableColumns */
        35: .line 1014
      StackMap locals:
      StackMap stack:
            aload 10 /* f */
            astore 9 /* filter */
        36: .line 1015
            goto 38
        end local 10 // org.h2.table.TableFilter f
        37: .line 1007
      StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression org.h2.expression.Wildcard java.lang.String int java.util.HashMap org.h2.engine.Database java.lang.String org.h2.table.TableFilter top java.util.Iterator
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 29
        38: .line 1019
      StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression org.h2.expression.Wildcard java.lang.String int java.util.HashMap org.h2.engine.Database java.lang.String org.h2.table.TableFilter
      StackMap stack:
            aload 9 /* filter */
            ifnonnull 40
        39: .line 1020
            ldc 42102
            aload 4 /* tableAlias */
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
        40: .line 1022
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 9 /* filter */
            iload 1 /* i */
            aload 6 /* exceptTableColumns */
            invokevirtual org.h2.command.dml.Select.expandColumnList:(Lorg/h2/table/TableFilter;ILjava/util/HashMap;)I
            istore 1 /* i */
        end local 9 // org.h2.table.TableFilter filter
        end local 8 // java.lang.String schemaName
        end local 7 // org.h2.engine.Database db
        end local 6 // java.util.HashMap exceptTableColumns
        end local 5 // boolean hasExceptColumns
        end local 4 // java.lang.String tableAlias
        end local 3 // org.h2.expression.Wildcard w
        end local 2 // org.h2.expression.Expression expr
        41: .line 982
      StackMap locals: org.h2.command.dml.Select int
      StackMap stack:
            iload 1 /* i */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 2
        end local 1 // int i
        42: .line 1025
            return
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   43     0                this  Lorg/h2/command/dml/Select;
            1   42     1                   i  I
            3   41     2                expr  Lorg/h2/expression/Expression;
            8   41     3                   w  Lorg/h2/expression/Wildcard;
            9   41     4          tableAlias  Ljava/lang/String;
           12   41     5    hasExceptColumns  Z
           13   41     6  exceptTableColumns  Ljava/util/HashMap<Lorg/h2/table/Column;Lorg/h2/expression/ExpressionColumn;>;
           17   18     7              filter  Lorg/h2/table/TableFilter;
           22   23     7              filter  Lorg/h2/table/TableFilter;
           26   41     7                  db  Lorg/h2/engine/Database;
           27   41     8          schemaName  Ljava/lang/String;
           28   41     9              filter  Lorg/h2/table/TableFilter;
           30   37    10                   f  Lorg/h2/table/TableFilter;

  private int expandColumnList(org.h2.table.TableFilter, int, java.util.HashMap<org.h2.table.Column, org.h2.expression.ExpressionColumn>);
    descriptor: (Lorg/h2/table/TableFilter;ILjava/util/HashMap;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=11, args_size=4
        start local 0 // org.h2.command.dml.Select this
        start local 1 // org.h2.table.TableFilter filter
        start local 2 // int index
        start local 3 // java.util.HashMap except
         0: .line 1028
            aload 1 /* filter */
            invokevirtual org.h2.table.TableFilter.getTableAlias:()Ljava/lang/String;
            astore 4 /* alias */
        start local 4 // java.lang.String alias
         1: .line 1029
            aload 1 /* filter */
            invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
            invokevirtual org.h2.table.Table.getColumns:()[Lorg/h2/table/Column;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 17
      StackMap locals: org.h2.command.dml.Select org.h2.table.TableFilter int java.util.HashMap java.lang.String top int int org.h2.table.Column[]
      StackMap stack:
         2: aload 8
            iload 6
            aaload
            astore 5 /* c */
        start local 5 // org.h2.table.Column c
         3: .line 1030
            aload 3 /* except */
            ifnull 5
            aload 3 /* except */
            aload 5 /* c */
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 5
         4: .line 1031
            goto 16
         5: .line 1033
      StackMap locals: org.h2.command.dml.Select org.h2.table.TableFilter int java.util.HashMap java.lang.String org.h2.table.Column int int org.h2.table.Column[]
      StackMap stack:
            aload 5 /* c */
            invokevirtual org.h2.table.Column.getVisible:()Z
            ifne 7
         6: .line 1034
            goto 16
         7: .line 1036
      StackMap locals:
      StackMap stack:
            aload 1 /* filter */
            aload 5 /* c */
            invokevirtual org.h2.table.TableFilter.isNaturalJoinColumn:(Lorg/h2/table/Column;)Z
            ifeq 9
         8: .line 1037
            goto 16
         9: .line 1039
      StackMap locals:
      StackMap stack:
            aload 1 /* filter */
            aload 5 /* c */
            invokevirtual org.h2.table.TableFilter.getDerivedColumnName:(Lorg/h2/table/Column;)Ljava/lang/String;
            astore 9 /* name */
        start local 9 // java.lang.String name
        10: .line 1040
            new org.h2.expression.ExpressionColumn
            dup
        11: .line 1041
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            aconst_null
            aload 4 /* alias */
            aload 9 /* name */
            ifnull 12
            aload 9 /* name */
            goto 13
      StackMap locals: org.h2.command.dml.Select org.h2.table.TableFilter int java.util.HashMap java.lang.String org.h2.table.Column int int org.h2.table.Column[] java.lang.String
      StackMap stack: new 10 new 10 org.h2.engine.Database null java.lang.String
        12: aload 5 /* c */
            invokevirtual org.h2.table.Column.getName:()Ljava/lang/String;
      StackMap locals: org.h2.command.dml.Select org.h2.table.TableFilter int java.util.HashMap java.lang.String org.h2.table.Column int int org.h2.table.Column[] java.lang.String
      StackMap stack: new 10 new 10 org.h2.engine.Database null java.lang.String java.lang.String
        13: iconst_0
        14: .line 1040
            invokespecial org.h2.expression.ExpressionColumn.<init>:(Lorg/h2/engine/Database;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
            astore 10 /* ec */
        start local 10 // org.h2.expression.ExpressionColumn ec
        15: .line 1042
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            iload 2 /* index */
            iinc 2 /* index */ 1
            aload 10 /* ec */
            invokevirtual java.util.ArrayList.add:(ILjava/lang/Object;)V
        end local 10 // org.h2.expression.ExpressionColumn ec
        end local 9 // java.lang.String name
        end local 5 // org.h2.table.Column c
        16: .line 1029
      StackMap locals: org.h2.command.dml.Select org.h2.table.TableFilter int java.util.HashMap java.lang.String top int int org.h2.table.Column[]
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        17: iload 6
            iload 7
            if_icmplt 2
        18: .line 1044
            iload 2 /* index */
            ireturn
        end local 4 // java.lang.String alias
        end local 3 // java.util.HashMap except
        end local 2 // int index
        end local 1 // org.h2.table.TableFilter filter
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   19     0    this  Lorg/h2/command/dml/Select;
            0   19     1  filter  Lorg/h2/table/TableFilter;
            0   19     2   index  I
            0   19     3  except  Ljava/util/HashMap<Lorg/h2/table/Column;Lorg/h2/expression/ExpressionColumn;>;
            1   19     4   alias  Ljava/lang/String;
            3   16     5       c  Lorg/h2/table/Column;
           10   16     9    name  Ljava/lang/String;
           15   16    10      ec  Lorg/h2/expression/ExpressionColumn;
    Signature: (Lorg/h2/table/TableFilter;ILjava/util/HashMap<Lorg/h2/table/Column;Lorg/h2/expression/ExpressionColumn;>;)I
    MethodParameters:
        Name  Flags
      filter  
      index   
      except  

  public void init();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=11, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 1049
            aload 0 /* this */
            getfield org.h2.command.dml.Select.checkInit:Z
            ifeq 2
         1: .line 1050
            invokestatic org.h2.message.DbException.throwInternalError:()Ljava/lang/RuntimeException;
            pop
         2: .line 1052
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.command.dml.Select.expandColumnList:()V
         3: .line 1053
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            putfield org.h2.command.dml.Select.visibleColumnCount:I
         4: .line 1055
            aload 0 /* this */
            getfield org.h2.command.dml.Select.distinctExpressions:[Lorg/h2/expression/Expression;
            ifnonnull 5
            aload 0 /* this */
            getfield org.h2.command.dml.Select.orderList:Ljava/util/ArrayList;
            ifnonnull 5
            aload 0 /* this */
            getfield org.h2.command.dml.Select.group:Ljava/util/ArrayList;
            ifnull 15
         5: .line 1056
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield org.h2.command.dml.Select.visibleColumnCount:I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 1 /* expressionSQL */
        start local 1 // java.util.ArrayList expressionSQL
         6: .line 1057
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         7: goto 13
         8: .line 1058
      StackMap locals: java.util.ArrayList int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.expression.Expression
            astore 3 /* expr */
        start local 3 // org.h2.expression.Expression expr
         9: .line 1059
            aload 3 /* expr */
            invokevirtual org.h2.expression.Expression.getNonAliasExpression:()Lorg/h2/expression/Expression;
            astore 3 /* expr */
        10: .line 1060
            aload 3 /* expr */
            iconst_1
            invokevirtual org.h2.expression.Expression.getSQL:(Z)Ljava/lang/String;
            astore 4 /* sql */
        start local 4 // java.lang.String sql
        11: .line 1061
            aload 1 /* expressionSQL */
            aload 4 /* sql */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // java.lang.String sql
        end local 3 // org.h2.expression.Expression expr
        12: .line 1057
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 2 /* i */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.visibleColumnCount:I
            if_icmplt 8
        end local 2 // int i
        14: .line 1063
            goto 16
        end local 1 // java.util.ArrayList expressionSQL
        15: .line 1064
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 1 /* expressionSQL */
        start local 1 // java.util.ArrayList expressionSQL
        16: .line 1066
      StackMap locals: java.util.ArrayList
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.distinctExpressions:[Lorg/h2/expression/Expression;
            ifnull 35
        17: .line 1067
            new java.util.BitSet
            dup
            invokespecial java.util.BitSet.<init>:()V
            astore 2 /* set */
        start local 2 // java.util.BitSet set
        18: .line 1068
            aload 0 /* this */
            getfield org.h2.command.dml.Select.distinctExpressions:[Lorg/h2/expression/Expression;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 24
      StackMap locals: org.h2.command.dml.Select java.util.ArrayList java.util.BitSet top int int org.h2.expression.Expression[]
      StackMap stack:
        19: aload 6
            iload 4
            aaload
            astore 3 /* e */
        start local 3 // org.h2.expression.Expression e
        20: .line 1069
            aload 2 /* set */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            aload 1 /* expressionSQL */
            aload 3 /* e */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.visibleColumnCount:I
            iconst_0
        21: .line 1070
            aload 0 /* this */
            getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
        22: .line 1069
            invokestatic org.h2.command.dml.Select.initExpression:(Lorg/h2/engine/Session;Ljava/util/ArrayList;Ljava/util/ArrayList;Lorg/h2/expression/Expression;IZLjava/util/ArrayList;)I
            invokevirtual java.util.BitSet.set:(I)V
        end local 3 // org.h2.expression.Expression e
        23: .line 1068
            iinc 4 1
      StackMap locals:
      StackMap stack:
        24: iload 4
            iload 5
            if_icmplt 19
        25: .line 1072
            iconst_0
            istore 3 /* idx */
        start local 3 // int idx
        26: aload 2 /* set */
            invokevirtual java.util.BitSet.cardinality:()I
            istore 4 /* cnt */
        start local 4 // int cnt
        27: .line 1073
            aload 0 /* this */
            iload 4 /* cnt */
            newarray 10
            putfield org.h2.command.dml.Select.distinctIndexes:[I
        28: .line 1074
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        29: goto 34
        30: .line 1075
      StackMap locals: org.h2.command.dml.Select java.util.ArrayList java.util.BitSet int int int
      StackMap stack:
            aload 2 /* set */
            iload 3 /* idx */
            invokevirtual java.util.BitSet.nextSetBit:(I)I
            istore 3 /* idx */
        31: .line 1076
            aload 0 /* this */
            getfield org.h2.command.dml.Select.distinctIndexes:[I
            iload 5 /* i */
            iload 3 /* idx */
            iastore
        32: .line 1077
            iinc 3 /* idx */ 1
        33: .line 1074
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        34: iload 5 /* i */
            iload 4 /* cnt */
            if_icmplt 30
        end local 5 // int i
        end local 4 // int cnt
        end local 3 // int idx
        end local 2 // java.util.BitSet set
        35: .line 1080
      StackMap locals: org.h2.command.dml.Select java.util.ArrayList
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.orderList:Ljava/util/ArrayList;
            ifnull 39
        36: .line 1081
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            aload 1 /* expressionSQL */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.orderList:Ljava/util/ArrayList;
        37: .line 1082
            aload 0 /* this */
            getfield org.h2.command.dml.Select.visibleColumnCount:I
            aload 0 /* this */
            invokevirtual org.h2.command.dml.Select.isAnyDistinct:()Z
            aload 0 /* this */
            getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
        38: .line 1081
            invokestatic org.h2.command.dml.Select.initOrder:(Lorg/h2/engine/Session;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/List;IZLjava/util/ArrayList;)V
        39: .line 1084
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            putfield org.h2.command.dml.Select.distinctColumnCount:I
        40: .line 1085
            aload 0 /* this */
            getfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
            ifnull 45
        41: .line 1086
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        42: .line 1087
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            putfield org.h2.command.dml.Select.havingIndex:I
        43: .line 1088
            aload 0 /* this */
            aconst_null
            putfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
        44: .line 1089
            goto 46
        45: .line 1090
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            putfield org.h2.command.dml.Select.havingIndex:I
        46: .line 1092
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
            ifnull 51
        47: .line 1093
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        48: .line 1094
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            putfield org.h2.command.dml.Select.qualifyIndex:I
        49: .line 1095
            aload 0 /* this */
            aconst_null
            putfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
        50: .line 1096
            goto 52
        51: .line 1097
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            putfield org.h2.command.dml.Select.qualifyIndex:I
        52: .line 1100
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.withTies:Z
            ifeq 54
            aload 0 /* this */
            invokevirtual org.h2.command.dml.Select.hasOrder:()Z
            ifne 54
        53: .line 1101
            ldc 90122
            invokestatic org.h2.message.DbException.get:(I)Lorg/h2/message/DbException;
            athrow
        54: .line 1104
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            astore 2 /* db */
        start local 2 // org.h2.engine.Database db
        55: .line 1110
            aload 0 /* this */
            getfield org.h2.command.dml.Select.group:Ljava/util/ArrayList;
            ifnull 108
        56: .line 1111
            aload 0 /* this */
            getfield org.h2.command.dml.Select.group:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            istore 3 /* size */
        start local 3 // int size
        57: .line 1112
            aload 1 /* expressionSQL */
            invokevirtual java.util.ArrayList.size:()I
            istore 4 /* expSize */
        start local 4 // int expSize
        58: .line 1113
            aload 0 /* this */
            iload 3 /* size */
            newarray 10
            putfield org.h2.command.dml.Select.groupIndex:[I
        59: .line 1114
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        60: goto 92
        61: .line 1115
      StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.engine.Database int int int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.group:Ljava/util/ArrayList;
            iload 5 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.expression.Expression
            astore 6 /* expr */
        start local 6 // org.h2.expression.Expression expr
        62: .line 1116
            aload 6 /* expr */
            iconst_1
            invokevirtual org.h2.expression.Expression.getSQL:(Z)Ljava/lang/String;
            astore 7 /* sql */
        start local 7 // java.lang.String sql
        63: .line 1117
            iconst_m1
            istore 8 /* found */
        start local 8 // int found
        64: .line 1118
            iconst_0
            istore 9 /* j */
        start local 9 // int j
        65: goto 71
        66: .line 1119
      StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.engine.Database int int int org.h2.expression.Expression java.lang.String int int
      StackMap stack:
            aload 1 /* expressionSQL */
            iload 9 /* j */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            astore 10 /* s2 */
        start local 10 // java.lang.String s2
        67: .line 1120
            aload 2 /* db */
            aload 10 /* s2 */
            aload 7 /* sql */
            invokevirtual org.h2.engine.Database.equalsIdentifiers:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 70
        68: .line 1121
            aload 0 /* this */
            aload 2 /* db */
            iload 9 /* j */
            aload 1 /* expressionSQL */
            iconst_0
            invokevirtual org.h2.command.dml.Select.mergeGroupByExpressions:(Lorg/h2/engine/Database;ILjava/util/ArrayList;Z)I
            istore 8 /* found */
        69: .line 1122
            goto 72
        end local 10 // java.lang.String s2
        70: .line 1118
      StackMap locals:
      StackMap stack:
            iinc 9 /* j */ 1
      StackMap locals:
      StackMap stack:
        71: iload 9 /* j */
            iload 4 /* expSize */
            if_icmplt 66
        end local 9 // int j
        72: .line 1125
      StackMap locals:
      StackMap stack:
            iload 8 /* found */
            ifge 85
        73: .line 1127
            iconst_0
            istore 9 /* j */
        start local 9 // int j
        74: goto 84
        75: .line 1128
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            iload 9 /* j */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.expression.Expression
            astore 10 /* e */
        start local 10 // org.h2.expression.Expression e
        76: .line 1129
            aload 2 /* db */
            aload 7 /* sql */
            aload 10 /* e */
            invokevirtual org.h2.expression.Expression.getAlias:()Ljava/lang/String;
            invokevirtual org.h2.engine.Database.equalsIdentifiers:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 79
        77: .line 1130
            aload 0 /* this */
            aload 2 /* db */
            iload 9 /* j */
            aload 1 /* expressionSQL */
            iconst_1
            invokevirtual org.h2.command.dml.Select.mergeGroupByExpressions:(Lorg/h2/engine/Database;ILjava/util/ArrayList;Z)I
            istore 8 /* found */
        78: .line 1131
            goto 85
        79: .line 1133
      StackMap locals: org.h2.expression.Expression
      StackMap stack:
            aload 6 /* expr */
            invokevirtual org.h2.expression.Expression.getAlias:()Ljava/lang/String;
            astore 7 /* sql */
        80: .line 1134
            aload 2 /* db */
            aload 7 /* sql */
            aload 10 /* e */
            invokevirtual org.h2.expression.Expression.getAlias:()Ljava/lang/String;
            invokevirtual org.h2.engine.Database.equalsIdentifiers:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 83
        81: .line 1135
            aload 0 /* this */
            aload 2 /* db */
            iload 9 /* j */
            aload 1 /* expressionSQL */
            iconst_1
            invokevirtual org.h2.command.dml.Select.mergeGroupByExpressions:(Lorg/h2/engine/Database;ILjava/util/ArrayList;Z)I
            istore 8 /* found */
        82: .line 1136
            goto 85
        end local 10 // org.h2.expression.Expression e
        83: .line 1127
      StackMap locals:
      StackMap stack:
            iinc 9 /* j */ 1
      StackMap locals:
      StackMap stack:
        84: iload 9 /* j */
            iload 4 /* expSize */
            if_icmplt 75
        end local 9 // int j
        85: .line 1140
      StackMap locals:
      StackMap stack:
            iload 8 /* found */
            ifge 90
        86: .line 1141
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            istore 9 /* index */
        start local 9 // int index
        87: .line 1142
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupIndex:[I
            iload 5 /* i */
            iload 9 /* index */
            iastore
        88: .line 1143
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            aload 6 /* expr */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // int index
        89: .line 1144
            goto 91
        90: .line 1145
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupIndex:[I
            iload 5 /* i */
            iload 8 /* found */
            iastore
        end local 8 // int found
        end local 7 // java.lang.String sql
        end local 6 // org.h2.expression.Expression expr
        91: .line 1114
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        92: iload 5 /* i */
            iload 3 /* size */
            if_icmplt 61
        end local 5 // int i
        93: .line 1148
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupByCopies:[I
            ifnull 101
        94: .line 1149
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupByCopies:[I
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 99
      StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.engine.Database int int top int int int[]
      StackMap stack:
        95: aload 8
            iload 6
            iaload
            istore 5 /* i */
        start local 5 // int i
        96: .line 1150
            iload 5 /* i */
            iflt 98
        97: .line 1151
            goto 101
        end local 5 // int i
        98: .line 1149
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        99: iload 6
            iload 7
            if_icmplt 95
       100: .line 1154
            aload 0 /* this */
            aconst_null
            putfield org.h2.command.dml.Select.groupByCopies:[I
       101: .line 1156
      StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.engine.Database int int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            newarray 4
            putfield org.h2.command.dml.Select.groupByExpression:[Z
       102: .line 1157
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupIndex:[I
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 106
      StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.engine.Database int int top int int int[]
      StackMap stack:
       103: aload 8
            iload 6
            iaload
            istore 5 /* gi */
        start local 5 // int gi
       104: .line 1158
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupByExpression:[Z
            iload 5 /* gi */
            iconst_1
            bastore
        end local 5 // int gi
       105: .line 1157
            iinc 6 1
      StackMap locals:
      StackMap stack:
       106: iload 6
            iload 7
            if_icmplt 103
       107: .line 1160
            aload 0 /* this */
            aconst_null
            putfield org.h2.command.dml.Select.group:Ljava/util/ArrayList;
        end local 4 // int expSize
        end local 3 // int size
       108: .line 1163
      StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.engine.Database
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 111
      StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.engine.Database top java.util.Iterator
      StackMap stack:
       109: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.table.TableFilter
            astore 3 /* f */
        start local 3 // org.h2.table.TableFilter f
       110: .line 1164
            aload 0 /* this */
            aload 3 /* f */
            iconst_0
            invokevirtual org.h2.command.dml.Select.mapColumns:(Lorg/h2/table/ColumnResolver;I)V
        end local 3 // org.h2.table.TableFilter f
       111: .line 1163
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 109
       112: .line 1166
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.havingIndex:I
            invokevirtual org.h2.command.dml.Select.mapCondition:(I)V
       113: .line 1167
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.qualifyIndex:I
            invokevirtual org.h2.command.dml.Select.mapCondition:(I)V
       114: .line 1168
            aload 0 /* this */
            iconst_1
            putfield org.h2.command.dml.Select.checkInit:Z
       115: .line 1169
            return
        end local 2 // org.h2.engine.Database db
        end local 1 // java.util.ArrayList expressionSQL
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0  116     0           this  Lorg/h2/command/dml/Select;
            6   15     1  expressionSQL  Ljava/util/ArrayList<Ljava/lang/String;>;
           16  116     1  expressionSQL  Ljava/util/ArrayList<Ljava/lang/String;>;
            7   14     2              i  I
            9   12     3           expr  Lorg/h2/expression/Expression;
           11   12     4            sql  Ljava/lang/String;
           18   35     2            set  Ljava/util/BitSet;
           20   23     3              e  Lorg/h2/expression/Expression;
           26   35     3            idx  I
           27   35     4            cnt  I
           29   35     5              i  I
           55  116     2             db  Lorg/h2/engine/Database;
           57  108     3           size  I
           58  108     4        expSize  I
           60   93     5              i  I
           62   91     6           expr  Lorg/h2/expression/Expression;
           63   91     7            sql  Ljava/lang/String;
           64   91     8          found  I
           65   72     9              j  I
           67   70    10             s2  Ljava/lang/String;
           74   85     9              j  I
           76   83    10              e  Lorg/h2/expression/Expression;
           87   89     9          index  I
           96   98     5              i  I
          104  105     5             gi  I
          110  111     3              f  Lorg/h2/table/TableFilter;

  private void mapCondition(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.h2.command.dml.Select this
        start local 1 // int index
         0: .line 1172
            iload 1 /* index */
            iflt 4
         1: .line 1173
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            iload 1 /* index */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.expression.Expression
            astore 2 /* expr */
        start local 2 // org.h2.expression.Expression expr
         2: .line 1174
            new org.h2.command.dml.SelectListColumnResolver
            dup
            aload 0 /* this */
            invokespecial org.h2.command.dml.SelectListColumnResolver.<init>:(Lorg/h2/command/dml/Select;)V
            astore 3 /* res */
        start local 3 // org.h2.command.dml.SelectListColumnResolver res
         3: .line 1175
            aload 2 /* expr */
            aload 3 /* res */
            iconst_0
            iconst_0
            invokevirtual org.h2.expression.Expression.mapColumns:(Lorg/h2/table/ColumnResolver;II)V
        end local 3 // org.h2.command.dml.SelectListColumnResolver res
        end local 2 // org.h2.expression.Expression expr
         4: .line 1177
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int index
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lorg/h2/command/dml/Select;
            0    5     1  index  I
            2    4     2   expr  Lorg/h2/expression/Expression;
            3    4     3    res  Lorg/h2/command/dml/SelectListColumnResolver;
    MethodParameters:
       Name  Flags
      index  

  private int mergeGroupByExpressions(org.h2.engine.Database, int, java.util.ArrayList<java.lang.String>, );
    descriptor: (Lorg/h2/engine/Database;ILjava/util/ArrayList;Z)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=5
        start local 0 // org.h2.command.dml.Select this
        start local 1 // org.h2.engine.Database db
        start local 2 // int index
        start local 3 // java.util.ArrayList expressionSQL
        start local 4 // boolean scanPrevious
         0: .line 1189
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupByCopies:[I
            ifnull 6
         1: .line 1190
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupByCopies:[I
            iload 2 /* index */
            iaload
            istore 5 /* c */
        start local 5 // int c
         2: .line 1191
            iload 5 /* c */
            iflt 4
         3: .line 1192
            iload 5 /* c */
            ireturn
         4: .line 1193
      StackMap locals: int
      StackMap stack:
            iload 5 /* c */
            bipush -2
            if_icmpne 8
         5: .line 1194
            iload 2 /* index */
            ireturn
        end local 5 // int c
         6: .line 1197
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* expressionSQL */
            invokevirtual java.util.ArrayList.size:()I
            newarray 10
            putfield org.h2.command.dml.Select.groupByCopies:[I
         7: .line 1198
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupByCopies:[I
            iconst_m1
            invokestatic java.util.Arrays.fill:([II)V
         8: .line 1200
      StackMap locals:
      StackMap stack:
            aload 3 /* expressionSQL */
            iload 2 /* index */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* sql */
        start local 5 // java.lang.String sql
         9: .line 1201
            iload 4 /* scanPrevious */
            ifeq 17
        10: .line 1206
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        11: goto 16
        12: .line 1207
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 1 /* db */
            aload 5 /* sql */
            aload 3 /* expressionSQL */
            iload 6 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual org.h2.engine.Database.equalsIdentifiers:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 15
        13: .line 1208
            iload 6 /* i */
            istore 2 /* index */
        14: .line 1209
            goto 17
        15: .line 1206
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 6 /* i */
            iload 2 /* index */
            if_icmplt 12
        end local 6 // int i
        17: .line 1213
      StackMap locals:
      StackMap stack:
            aload 3 /* expressionSQL */
            invokevirtual java.util.ArrayList.size:()I
            istore 6 /* l */
        start local 6 // int l
        18: .line 1214
            iload 2 /* index */
            iconst_1
            iadd
            istore 7 /* i */
        start local 7 // int i
        19: goto 23
        20: .line 1215
      StackMap locals: int int
      StackMap stack:
            aload 1 /* db */
            aload 5 /* sql */
            aload 3 /* expressionSQL */
            iload 7 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual org.h2.engine.Database.equalsIdentifiers:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 22
        21: .line 1216
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupByCopies:[I
            iload 7 /* i */
            iload 2 /* index */
            iastore
        22: .line 1214
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 7 /* i */
            iload 6 /* l */
            if_icmplt 20
        end local 7 // int i
        24: .line 1219
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupByCopies:[I
            iload 2 /* index */
            bipush -2
            iastore
        25: .line 1220
            iload 2 /* index */
            ireturn
        end local 6 // int l
        end local 5 // java.lang.String sql
        end local 4 // boolean scanPrevious
        end local 3 // java.util.ArrayList expressionSQL
        end local 2 // int index
        end local 1 // org.h2.engine.Database db
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   26     0           this  Lorg/h2/command/dml/Select;
            0   26     1             db  Lorg/h2/engine/Database;
            0   26     2          index  I
            0   26     3  expressionSQL  Ljava/util/ArrayList<Ljava/lang/String;>;
            0   26     4   scanPrevious  Z
            2    6     5              c  I
            9   26     5            sql  Ljava/lang/String;
           11   17     6              i  I
           18   26     6              l  I
           19   24     7              i  I
    Signature: (Lorg/h2/engine/Database;ILjava/util/ArrayList<Ljava/lang/String;>;Z)I
    MethodParameters:
               Name  Flags
      db             
      index          
      expressionSQL  
      scanPrevious   

  public void prepare();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 1225
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isPrepared:Z
            ifeq 2
         1: .line 1227
            return
         2: .line 1229
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.checkInit:Z
            ifne 4
         3: .line 1230
            ldc "not initialized"
            invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            pop
         4: .line 1232
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.orderList:Ljava/util/ArrayList;
            ifnull 7
         5: .line 1233
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.orderList:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            invokevirtual org.h2.command.dml.Select.prepareOrder:(Ljava/util/ArrayList;I)Lorg/h2/result/SortOrder;
            putfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
         6: .line 1234
            aload 0 /* this */
            aconst_null
            putfield org.h2.command.dml.Select.orderList:Ljava/util/ArrayList;
         7: .line 1236
      StackMap locals:
      StackMap stack:
            new org.h2.util.ColumnNamer
            dup
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokespecial org.h2.util.ColumnNamer.<init>:(Lorg/h2/engine/Session;)V
            astore 1 /* columnNamer */
        start local 1 // org.h2.util.ColumnNamer columnNamer
         8: .line 1237
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         9: goto 17
        10: .line 1238
      StackMap locals: org.h2.util.ColumnNamer int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.expression.Expression
            astore 3 /* e */
        start local 3 // org.h2.expression.Expression e
        11: .line 1239
            aload 3 /* e */
            invokevirtual org.h2.expression.Expression.getAlias:()Ljava/lang/String;
            astore 4 /* proposedColumnName */
        start local 4 // java.lang.String proposedColumnName
        12: .line 1240
            aload 1 /* columnNamer */
            aload 3 /* e */
            iload 2 /* i */
            aload 4 /* proposedColumnName */
            invokevirtual org.h2.util.ColumnNamer.getColumnName:(Lorg/h2/expression/Expression;ILjava/lang/String;)Ljava/lang/String;
            astore 5 /* columnName */
        start local 5 // java.lang.String columnName
        13: .line 1242
            aload 5 /* columnName */
            aload 4 /* proposedColumnName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 15
        14: .line 1243
            new org.h2.expression.Alias
            dup
            aload 3 /* e */
            aload 5 /* columnName */
            iconst_1
            invokespecial org.h2.expression.Alias.<init>:(Lorg/h2/expression/Expression;Ljava/lang/String;Z)V
            astore 3 /* e */
        15: .line 1245
      StackMap locals: org.h2.expression.Expression java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            iload 2 /* i */
            aload 3 /* e */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.expression.Expression.optimize:(Lorg/h2/engine/Session;)Lorg/h2/expression/Expression;
            invokevirtual java.util.ArrayList.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // java.lang.String columnName
        end local 4 // java.lang.String proposedColumnName
        end local 3 // org.h2.expression.Expression e
        16: .line 1237
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 2 /* i */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 10
        end local 2 // int i
        18: .line 1247
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            ifnull 25
        19: .line 1248
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.expression.Expression.optimize:(Lorg/h2/engine/Session;)Lorg/h2/expression/Expression;
            putfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
        20: .line 1249
            aload 0 /* this */
            getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 24
      StackMap locals: org.h2.command.dml.Select org.h2.util.ColumnNamer top java.util.Iterator
      StackMap stack:
        21: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.table.TableFilter
            astore 2 /* f */
        start local 2 // org.h2.table.TableFilter f
        22: .line 1257
            aload 2 /* f */
            invokevirtual org.h2.table.TableFilter.isJoinOuter:()Z
            ifne 24
            aload 2 /* f */
            invokevirtual org.h2.table.TableFilter.isJoinOuterIndirect:()Z
            ifne 24
        23: .line 1258
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            aload 2 /* f */
            invokevirtual org.h2.expression.Expression.createIndexConditions:(Lorg/h2/engine/Session;Lorg/h2/table/TableFilter;)V
        end local 2 // org.h2.table.TableFilter f
        24: .line 1249
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        25: .line 1262
      StackMap locals: org.h2.command.dml.Select org.h2.util.ColumnNamer
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isGroupQuery:Z
            ifeq 28
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupIndex:[I
            ifnonnull 28
            aload 0 /* this */
            getfield org.h2.command.dml.Select.havingIndex:I
            ifge 28
            aload 0 /* this */
            getfield org.h2.command.dml.Select.qualifyIndex:I
            ifge 28
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            ifnonnull 28
        26: .line 1263
            aload 0 /* this */
            getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            if_icmpne 28
        27: .line 1264
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
            iconst_0
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.table.TableFilter
            invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
            invokestatic org.h2.expression.ExpressionVisitor.getOptimizableVisitor:(Lorg/h2/table/Table;)Lorg/h2/expression/ExpressionVisitor;
            invokevirtual org.h2.command.dml.Select.isEverything:(Lorg/h2/expression/ExpressionVisitor;)Z
            putfield org.h2.command.dml.Select.isQuickAggregateQuery:Z
        28: .line 1266
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.isParsingCreateView:()Z
            invokevirtual org.h2.command.dml.Select.preparePlan:(Z)D
            putfield org.h2.command.dml.Select.cost:D
        29: .line 1267
            aload 0 /* this */
            getfield org.h2.command.dml.Select.distinct:Z
            ifeq 60
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getSettings:()Lorg/h2/engine/DbSettings;
            getfield org.h2.engine.DbSettings.optimizeDistinct:Z
            ifeq 60
        30: .line 1268
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isGroupQuery:Z
            ifne 60
            aload 0 /* this */
            getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            if_icmpne 60
        31: .line 1269
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            if_icmpne 60
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            ifnonnull 60
        32: .line 1270
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            iconst_0
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.expression.Expression
            astore 2 /* expr */
        start local 2 // org.h2.expression.Expression expr
        33: .line 1271
            aload 2 /* expr */
            invokevirtual org.h2.expression.Expression.getNonAliasExpression:()Lorg/h2/expression/Expression;
            astore 2 /* expr */
        34: .line 1272
            aload 2 /* expr */
            instanceof org.h2.expression.ExpressionColumn
            ifeq 60
        35: .line 1273
            aload 2 /* expr */
            checkcast org.h2.expression.ExpressionColumn
            invokevirtual org.h2.expression.ExpressionColumn.getColumn:()Lorg/h2/table/Column;
            astore 3 /* column */
        start local 3 // org.h2.table.Column column
        36: .line 1274
            aload 3 /* column */
            invokevirtual org.h2.table.Column.getSelectivity:()I
            istore 4 /* selectivity */
        start local 4 // int selectivity
        37: .line 1275
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
        38: .line 1276
            aload 3 /* column */
            iconst_0
            iconst_1
            invokevirtual org.h2.table.Table.getIndexForColumn:(Lorg/h2/table/Column;ZZ)Lorg/h2/index/Index;
        39: .line 1275
            astore 5 /* columnIndex */
        start local 5 // org.h2.index.Index columnIndex
        40: .line 1277
            aload 5 /* columnIndex */
            ifnull 60
        41: .line 1278
            iload 4 /* selectivity */
            bipush 50
            if_icmpeq 60
        42: .line 1279
            iload 4 /* selectivity */
            bipush 20
            if_icmpge 60
        43: .line 1281
            aload 5 /* columnIndex */
        44: .line 1282
            invokeinterface org.h2.index.Index.getIndexColumns:()[Lorg/h2/table/IndexColumn;
            iconst_0
        45: .line 1281
            aaload
        46: .line 1282
            getfield org.h2.table.IndexColumn.sortType:I
        47: .line 1281
            ifne 48
            iconst_1
            goto 49
      StackMap locals: org.h2.command.dml.Select org.h2.util.ColumnNamer org.h2.expression.Expression org.h2.table.Column int org.h2.index.Index
      StackMap stack:
        48: iconst_0
      StackMap locals:
      StackMap stack: int
        49: istore 6 /* ascending */
        start local 6 // boolean ascending
        50: .line 1283
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            invokevirtual org.h2.table.TableFilter.getIndex:()Lorg/h2/index/Index;
            astore 7 /* current */
        start local 7 // org.h2.index.Index current
        51: .line 1285
            aload 5 /* columnIndex */
            invokeinterface org.h2.index.Index.canFindNext:()Z
            ifeq 60
            iload 6 /* ascending */
            ifeq 60
        52: .line 1286
            aload 7 /* current */
            ifnull 55
        53: .line 1287
            aload 7 /* current */
            invokeinterface org.h2.index.Index.getIndexType:()Lorg/h2/index/IndexType;
            invokevirtual org.h2.index.IndexType.isScan:()Z
            ifne 55
        54: .line 1288
            aload 5 /* columnIndex */
            aload 7 /* current */
            if_acmpne 60
        55: .line 1289
      StackMap locals: int org.h2.index.Index
      StackMap stack:
            aload 5 /* columnIndex */
            invokeinterface org.h2.index.Index.getIndexType:()Lorg/h2/index/IndexType;
            astore 8 /* type */
        start local 8 // org.h2.index.IndexType type
        56: .line 1292
            aload 8 /* type */
            invokevirtual org.h2.index.IndexType.isHash:()Z
            ifne 60
            aload 8 /* type */
            invokevirtual org.h2.index.IndexType.isUnique:()Z
            ifeq 58
        57: .line 1293
            aload 5 /* columnIndex */
            invokeinterface org.h2.index.Index.getColumns:()[Lorg/h2/table/Column;
            arraylength
            iconst_1
            if_icmple 60
        58: .line 1294
      StackMap locals: org.h2.index.IndexType
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            aload 5 /* columnIndex */
            invokevirtual org.h2.table.TableFilter.setIndex:(Lorg/h2/index/Index;)V
        59: .line 1295
            aload 0 /* this */
            iconst_1
            putfield org.h2.command.dml.Select.isDistinctQuery:Z
        end local 8 // org.h2.index.IndexType type
        end local 7 // org.h2.index.Index current
        end local 6 // boolean ascending
        end local 5 // org.h2.index.Index columnIndex
        end local 4 // int selectivity
        end local 3 // org.h2.table.Column column
        end local 2 // org.h2.expression.Expression expr
        60: .line 1301
      StackMap locals: org.h2.command.dml.Select org.h2.util.ColumnNamer
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
            ifnull 89
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isQuickAggregateQuery:Z
            ifne 89
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isGroupQuery:Z
            ifne 89
        61: .line 1302
            aload 0 /* this */
            invokevirtual org.h2.command.dml.Select.getSortIndex:()Lorg/h2/index/Index;
            astore 2 /* index */
        start local 2 // org.h2.index.Index index
        62: .line 1303
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            invokevirtual org.h2.table.TableFilter.getIndex:()Lorg/h2/index/Index;
            astore 3 /* current */
        start local 3 // org.h2.index.Index current
        63: .line 1304
            aload 2 /* index */
            ifnull 87
            aload 3 /* current */
            ifnull 87
        64: .line 1305
            aload 3 /* current */
            invokeinterface org.h2.index.Index.getIndexType:()Lorg/h2/index/IndexType;
            invokevirtual org.h2.index.IndexType.isScan:()Z
            ifne 65
            aload 3 /* current */
            aload 2 /* index */
            if_acmpne 69
        65: .line 1306
      StackMap locals: org.h2.index.Index org.h2.index.Index
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            aload 2 /* index */
            invokevirtual org.h2.table.TableFilter.setIndex:(Lorg/h2/index/Index;)V
        66: .line 1307
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            invokevirtual org.h2.table.TableFilter.hasInComparisons:()Z
            ifne 87
        67: .line 1310
            aload 0 /* this */
            iconst_1
            putfield org.h2.command.dml.Select.sortUsingIndex:Z
        68: .line 1312
            goto 87
      StackMap locals:
      StackMap stack:
        69: aload 2 /* index */
            invokeinterface org.h2.index.Index.getIndexColumns:()[Lorg/h2/table/IndexColumn;
            ifnull 87
        70: .line 1313
            aload 2 /* index */
            invokeinterface org.h2.index.Index.getIndexColumns:()[Lorg/h2/table/IndexColumn;
            arraylength
            aload 3 /* current */
        71: .line 1314
            invokeinterface org.h2.index.Index.getIndexColumns:()[Lorg/h2/table/IndexColumn;
            arraylength
            if_icmplt 87
        72: .line 1315
            aload 2 /* index */
            invokeinterface org.h2.index.Index.getIndexColumns:()[Lorg/h2/table/IndexColumn;
            astore 4 /* sortColumns */
        start local 4 // org.h2.table.IndexColumn[] sortColumns
        73: .line 1316
            aload 3 /* current */
            invokeinterface org.h2.index.Index.getIndexColumns:()[Lorg/h2/table/IndexColumn;
            astore 5 /* currentColumns */
        start local 5 // org.h2.table.IndexColumn[] currentColumns
        74: .line 1317
            iconst_0
            istore 6 /* swapIndex */
        start local 6 // boolean swapIndex
        75: .line 1318
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        76: goto 83
        77: .line 1319
      StackMap locals: org.h2.command.dml.Select org.h2.util.ColumnNamer org.h2.index.Index org.h2.index.Index org.h2.table.IndexColumn[] org.h2.table.IndexColumn[] int int
      StackMap stack:
            aload 4 /* sortColumns */
            iload 7 /* i */
            aaload
            getfield org.h2.table.IndexColumn.column:Lorg/h2/table/Column;
            aload 5 /* currentColumns */
            iload 7 /* i */
            aaload
            getfield org.h2.table.IndexColumn.column:Lorg/h2/table/Column;
            if_acmpeq 80
        78: .line 1320
            iconst_0
            istore 6 /* swapIndex */
        79: .line 1321
            goto 84
        80: .line 1323
      StackMap locals:
      StackMap stack:
            aload 4 /* sortColumns */
            iload 7 /* i */
            aaload
            getfield org.h2.table.IndexColumn.sortType:I
            aload 5 /* currentColumns */
            iload 7 /* i */
            aaload
            getfield org.h2.table.IndexColumn.sortType:I
            if_icmpeq 82
        81: .line 1324
            iconst_1
            istore 6 /* swapIndex */
        82: .line 1318
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        83: iload 7 /* i */
            aload 5 /* currentColumns */
            arraylength
            if_icmplt 77
        end local 7 // int i
        84: .line 1327
      StackMap locals:
      StackMap stack:
            iload 6 /* swapIndex */
            ifeq 87
        85: .line 1328
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            aload 2 /* index */
            invokevirtual org.h2.table.TableFilter.setIndex:(Lorg/h2/index/Index;)V
        86: .line 1329
            aload 0 /* this */
            iconst_1
            putfield org.h2.command.dml.Select.sortUsingIndex:Z
        end local 6 // boolean swapIndex
        end local 5 // org.h2.table.IndexColumn[] currentColumns
        end local 4 // org.h2.table.IndexColumn[] sortColumns
        87: .line 1333
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.sortUsingIndex:Z
            ifeq 89
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isForUpdateMvcc:Z
            ifeq 89
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            invokevirtual org.h2.table.TableFilter.getIndex:()Lorg/h2/index/Index;
            invokeinterface org.h2.index.Index.isRowIdIndex:()Z
            ifne 89
        88: .line 1334
            aload 0 /* this */
            iconst_0
            putfield org.h2.command.dml.Select.sortUsingIndex:Z
        end local 3 // org.h2.index.Index current
        end local 2 // org.h2.index.Index index
        89: .line 1337
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isQuickAggregateQuery:Z
            ifne 97
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isGroupQuery:Z
            ifeq 97
        90: .line 1338
            aload 0 /* this */
            invokevirtual org.h2.command.dml.Select.getGroupByExpressionCount:()I
            ifle 97
        91: .line 1339
            aload 0 /* this */
            invokevirtual org.h2.command.dml.Select.getGroupSortedIndex:()Lorg/h2/index/Index;
            astore 2 /* index */
        start local 2 // org.h2.index.Index index
        92: .line 1340
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            invokevirtual org.h2.table.TableFilter.getIndex:()Lorg/h2/index/Index;
            astore 3 /* current */
        start local 3 // org.h2.index.Index current
        93: .line 1341
            aload 2 /* index */
            ifnull 97
            aload 3 /* current */
            ifnull 97
            aload 3 /* current */
            invokeinterface org.h2.index.Index.getIndexType:()Lorg/h2/index/IndexType;
            invokevirtual org.h2.index.IndexType.isScan:()Z
            ifne 95
        94: .line 1342
            aload 3 /* current */
            aload 2 /* index */
            if_acmpne 97
        95: .line 1343
      StackMap locals: org.h2.index.Index org.h2.index.Index
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            aload 2 /* index */
            invokevirtual org.h2.table.TableFilter.setIndex:(Lorg/h2/index/Index;)V
        96: .line 1344
            aload 0 /* this */
            iconst_1
            putfield org.h2.command.dml.Select.isGroupSortedQuery:Z
        end local 3 // org.h2.index.Index current
        end local 2 // org.h2.index.Index index
        97: .line 1347
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            iconst_0
            anewarray org.h2.expression.Expression
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.h2.expression.Expression[]
            putfield org.h2.command.dml.Select.expressionArray:[Lorg/h2/expression/Expression;
        98: .line 1348
            aload 0 /* this */
            iconst_1
            putfield org.h2.command.dml.Select.isPrepared:Z
        99: .line 1349
            return
        end local 1 // org.h2.util.ColumnNamer columnNamer
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0  100     0                this  Lorg/h2/command/dml/Select;
            8  100     1         columnNamer  Lorg/h2/util/ColumnNamer;
            9   18     2                   i  I
           11   16     3                   e  Lorg/h2/expression/Expression;
           12   16     4  proposedColumnName  Ljava/lang/String;
           13   16     5          columnName  Ljava/lang/String;
           22   24     2                   f  Lorg/h2/table/TableFilter;
           33   60     2                expr  Lorg/h2/expression/Expression;
           36   60     3              column  Lorg/h2/table/Column;
           37   60     4         selectivity  I
           40   60     5         columnIndex  Lorg/h2/index/Index;
           50   60     6           ascending  Z
           51   60     7             current  Lorg/h2/index/Index;
           56   60     8                type  Lorg/h2/index/IndexType;
           62   89     2               index  Lorg/h2/index/Index;
           63   89     3             current  Lorg/h2/index/Index;
           73   87     4         sortColumns  [Lorg/h2/table/IndexColumn;
           74   87     5      currentColumns  [Lorg/h2/table/IndexColumn;
           75   87     6           swapIndex  Z
           76   84     7                   i  I
           92   97     2               index  Lorg/h2/index/Index;
           93   97     3             current  Lorg/h2/index/Index;

  public void prepareJoinBatch();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 1353
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* list */
        start local 1 // java.util.ArrayList list
         1: .line 1354
            aload 0 /* this */
            invokevirtual org.h2.command.dml.Select.getTopTableFilter:()Lorg/h2/table/TableFilter;
            astore 2 /* f */
        start local 2 // org.h2.table.TableFilter f
         2: .line 1356
      StackMap locals: java.util.ArrayList org.h2.table.TableFilter
      StackMap stack:
            aload 2 /* f */
            invokevirtual org.h2.table.TableFilter.getNestedJoin:()Lorg/h2/table/TableFilter;
            ifnull 4
         3: .line 1358
            return
         4: .line 1360
      StackMap locals:
      StackMap stack:
            aload 1 /* list */
            aload 2 /* f */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         5: .line 1361
            aload 2 /* f */
            invokevirtual org.h2.table.TableFilter.getJoin:()Lorg/h2/table/TableFilter;
            astore 2 /* f */
         6: .line 1362
            aload 2 /* f */
            ifnonnull 2
         7: .line 1363
            aload 1 /* list */
            iconst_0
            anewarray org.h2.table.TableFilter
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.h2.table.TableFilter[]
            astore 3 /* fs */
        start local 3 // org.h2.table.TableFilter[] fs
         8: .line 1365
            aconst_null
            astore 4 /* jb */
        start local 4 // org.h2.table.JoinBatch jb
         9: .line 1366
            aload 3 /* fs */
            arraylength
            iconst_1
            isub
            istore 5 /* i */
        start local 5 // int i
        10: goto 13
        11: .line 1367
      StackMap locals: org.h2.table.TableFilter[] org.h2.table.JoinBatch int
      StackMap stack:
            aload 3 /* fs */
            iload 5 /* i */
            aaload
            aload 4 /* jb */
            aload 3 /* fs */
            iload 5 /* i */
            invokevirtual org.h2.table.TableFilter.prepareJoinBatch:(Lorg/h2/table/JoinBatch;[Lorg/h2/table/TableFilter;I)Lorg/h2/table/JoinBatch;
            astore 4 /* jb */
        12: .line 1366
            iinc 5 /* i */ -1
      StackMap locals:
      StackMap stack:
        13: iload 5 /* i */
            ifge 11
        end local 5 // int i
        14: .line 1369
            return
        end local 4 // org.h2.table.JoinBatch jb
        end local 3 // org.h2.table.TableFilter[] fs
        end local 2 // org.h2.table.TableFilter f
        end local 1 // java.util.ArrayList list
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lorg/h2/command/dml/Select;
            1   15     1  list  Ljava/util/ArrayList<Lorg/h2/table/TableFilter;>;
            2   15     2     f  Lorg/h2/table/TableFilter;
            8   15     3    fs  [Lorg/h2/table/TableFilter;
            9   15     4    jb  Lorg/h2/table/JoinBatch;
           10   14     5     i  I

  public org.h2.table.JoinBatch getJoinBatch();
    descriptor: ()Lorg/h2/table/JoinBatch;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 1372
            aload 0 /* this */
            invokevirtual org.h2.command.dml.Select.getTopTableFilter:()Lorg/h2/table/TableFilter;
            invokevirtual org.h2.table.TableFilter.getJoinBatch:()Lorg/h2/table/JoinBatch;
            areturn
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/command/dml/Select;

  public double getCost();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 1377
            aload 0 /* this */
            getfield org.h2.command.dml.Select.cost:D
            dreturn
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/command/dml/Select;

  public java.util.HashSet<org.h2.table.Table> getTables();
    descriptor: ()Ljava/util/HashSet;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 1382
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* set */
        start local 1 // java.util.HashSet set
         1: .line 1383
            aload 0 /* this */
            getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.h2.command.dml.Select java.util.HashSet top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.table.TableFilter
            astore 2 /* filter */
        start local 2 // org.h2.table.TableFilter filter
         3: .line 1384
            aload 1 /* set */
            aload 2 /* filter */
            invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // org.h2.table.TableFilter filter
         4: .line 1383
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 1386
            aload 1 /* set */
            areturn
        end local 1 // java.util.HashSet set
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/h2/command/dml/Select;
            1    6     1     set  Ljava/util/HashSet<Lorg/h2/table/Table;>;
            3    4     2  filter  Lorg/h2/table/TableFilter;
    Signature: ()Ljava/util/HashSet<Lorg/h2/table/Table;>;

  public void fireBeforeSelectTriggers();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 1391
            aload 0 /* this */
            getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 2
            goto 3
      StackMap locals: org.h2.command.dml.Select top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.table.TableFilter
            astore 1 /* filter */
        start local 1 // org.h2.table.TableFilter filter
         2: .line 1392
            aload 1 /* filter */
            invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            bipush 8
            iconst_1
            invokevirtual org.h2.table.Table.fire:(Lorg/h2/engine/Session;IZ)V
        end local 1 // org.h2.table.TableFilter filter
         3: .line 1391
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 1394
            return
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/h2/command/dml/Select;
            2    3     1  filter  Lorg/h2/table/TableFilter;

  private double preparePlan(boolean);
    descriptor: (Z)D
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // org.h2.command.dml.Select this
        start local 1 // boolean parse
         0: .line 1397
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topFilters:Ljava/util/ArrayList;
            iconst_0
            anewarray org.h2.table.TableFilter
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.h2.table.TableFilter[]
            astore 2 /* topArray */
        start local 2 // org.h2.table.TableFilter[] topArray
         1: .line 1398
            aload 2 /* topArray */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 6
      StackMap locals: org.h2.command.dml.Select int org.h2.table.TableFilter[] top int int org.h2.table.TableFilter[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* t */
        start local 3 // org.h2.table.TableFilter t
         3: .line 1399
            aload 3 /* t */
            invokevirtual org.h2.table.TableFilter.createIndexConditions:()V
         4: .line 1400
            aload 3 /* t */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            invokevirtual org.h2.table.TableFilter.setFullCondition:(Lorg/h2/expression/Expression;)V
        end local 3 // org.h2.table.TableFilter t
         5: .line 1398
            iinc 4 1
      StackMap locals:
      StackMap stack:
         6: iload 4
            iload 5
            if_icmplt 2
         7: .line 1403
            new org.h2.command.dml.Optimizer
            dup
            aload 2 /* topArray */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokespecial org.h2.command.dml.Optimizer.<init>:([Lorg/h2/table/TableFilter;Lorg/h2/expression/Expression;Lorg/h2/engine/Session;)V
            astore 3 /* optimizer */
        start local 3 // org.h2.command.dml.Optimizer optimizer
         8: .line 1404
            aload 3 /* optimizer */
            iload 1 /* parse */
            invokevirtual org.h2.command.dml.Optimizer.optimize:(Z)V
         9: .line 1405
            aload 0 /* this */
            aload 3 /* optimizer */
            invokevirtual org.h2.command.dml.Optimizer.getTopFilter:()Lorg/h2/table/TableFilter;
            putfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
        10: .line 1406
            aload 3 /* optimizer */
            invokevirtual org.h2.command.dml.Optimizer.getCost:()D
            dstore 4 /* planCost */
        start local 4 // double planCost
        11: .line 1408
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            invokevirtual org.h2.command.dml.Select.setEvaluatableRecursive:(Lorg/h2/table/TableFilter;)V
        12: .line 1410
            iload 1 /* parse */
            ifne 14
        13: .line 1411
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            invokevirtual org.h2.table.TableFilter.prepare:()V
        14: .line 1413
      StackMap locals: org.h2.command.dml.Select int org.h2.table.TableFilter[] org.h2.command.dml.Optimizer double
      StackMap stack:
            dload 4 /* planCost */
            dreturn
        end local 4 // double planCost
        end local 3 // org.h2.command.dml.Optimizer optimizer
        end local 2 // org.h2.table.TableFilter[] topArray
        end local 1 // boolean parse
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0       this  Lorg/h2/command/dml/Select;
            0   15     1      parse  Z
            1   15     2   topArray  [Lorg/h2/table/TableFilter;
            3    5     3          t  Lorg/h2/table/TableFilter;
            8   15     3  optimizer  Lorg/h2/command/dml/Optimizer;
           11   15     4   planCost  D
    MethodParameters:
       Name  Flags
      parse  

  private void setEvaluatableRecursive(org.h2.table.TableFilter);
    descriptor: (Lorg/h2/table/TableFilter;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.h2.command.dml.Select this
        start local 1 // org.h2.table.TableFilter f
         0: .line 1417
            goto 24
         1: .line 1418
      StackMap locals:
      StackMap stack:
            aload 1 /* f */
            aload 1 /* f */
            iconst_1
            invokevirtual org.h2.table.TableFilter.setEvaluatable:(Lorg/h2/table/TableFilter;Z)V
         2: .line 1419
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            ifnull 4
         3: .line 1420
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            aload 1 /* f */
            iconst_1
            invokevirtual org.h2.expression.Expression.setEvaluatable:(Lorg/h2/table/TableFilter;Z)V
         4: .line 1422
      StackMap locals:
      StackMap stack:
            aload 1 /* f */
            invokevirtual org.h2.table.TableFilter.getNestedJoin:()Lorg/h2/table/TableFilter;
            astore 2 /* n */
        start local 2 // org.h2.table.TableFilter n
         5: .line 1423
            aload 2 /* n */
            ifnull 7
         6: .line 1424
            aload 0 /* this */
            aload 2 /* n */
            invokevirtual org.h2.command.dml.Select.setEvaluatableRecursive:(Lorg/h2/table/TableFilter;)V
         7: .line 1426
      StackMap locals: org.h2.table.TableFilter
      StackMap stack:
            aload 1 /* f */
            invokevirtual org.h2.table.TableFilter.getJoinCondition:()Lorg/h2/expression/Expression;
            astore 3 /* on */
        start local 3 // org.h2.expression.Expression on
         8: .line 1427
            aload 3 /* on */
            ifnull 14
         9: .line 1428
            aload 3 /* on */
            getstatic org.h2.expression.ExpressionVisitor.EVALUATABLE_VISITOR:Lorg/h2/expression/ExpressionVisitor;
            invokevirtual org.h2.expression.Expression.isEverything:(Lorg/h2/expression/ExpressionVisitor;)Z
            ifne 14
        10: .line 1430
            aload 3 /* on */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.expression.Expression.optimize:(Lorg/h2/engine/Session;)Lorg/h2/expression/Expression;
            astore 3 /* on */
        11: .line 1431
            aload 1 /* f */
            invokevirtual org.h2.table.TableFilter.isJoinOuter:()Z
            ifne 14
            aload 1 /* f */
            invokevirtual org.h2.table.TableFilter.isJoinOuterIndirect:()Z
            ifne 14
        12: .line 1432
            aload 1 /* f */
            invokevirtual org.h2.table.TableFilter.removeJoinCondition:()V
        13: .line 1433
            aload 0 /* this */
            aload 3 /* on */
            invokevirtual org.h2.command.dml.Select.addCondition:(Lorg/h2/expression/Expression;)V
        14: .line 1437
      StackMap locals: org.h2.expression.Expression
      StackMap stack:
            aload 1 /* f */
            invokevirtual org.h2.table.TableFilter.getFilterCondition:()Lorg/h2/expression/Expression;
            astore 3 /* on */
        15: .line 1438
            aload 3 /* on */
            ifnull 19
        16: .line 1439
            aload 3 /* on */
            getstatic org.h2.expression.ExpressionVisitor.EVALUATABLE_VISITOR:Lorg/h2/expression/ExpressionVisitor;
            invokevirtual org.h2.expression.Expression.isEverything:(Lorg/h2/expression/ExpressionVisitor;)Z
            ifne 19
        17: .line 1440
            aload 1 /* f */
            invokevirtual org.h2.table.TableFilter.removeFilterCondition:()V
        18: .line 1441
            aload 0 /* this */
            aload 3 /* on */
            invokevirtual org.h2.command.dml.Select.addCondition:(Lorg/h2/expression/Expression;)V
        19: .line 1446
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 5
            goto 22
      StackMap locals: org.h2.command.dml.Select org.h2.table.TableFilter org.h2.table.TableFilter org.h2.expression.Expression top java.util.Iterator
      StackMap stack:
        20: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.expression.Expression
            astore 4 /* e */
        start local 4 // org.h2.expression.Expression e
        21: .line 1447
            aload 4 /* e */
            aload 1 /* f */
            iconst_1
            invokevirtual org.h2.expression.Expression.setEvaluatable:(Lorg/h2/table/TableFilter;Z)V
        end local 4 // org.h2.expression.Expression e
        22: .line 1446
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        end local 3 // org.h2.expression.Expression on
        end local 2 // org.h2.table.TableFilter n
        23: .line 1417
            aload 1 /* f */
            invokevirtual org.h2.table.TableFilter.getJoin:()Lorg/h2/table/TableFilter;
            astore 1 /* f */
      StackMap locals: org.h2.command.dml.Select org.h2.table.TableFilter
      StackMap stack:
        24: aload 1 /* f */
            ifnonnull 1
        25: .line 1450
            return
        end local 1 // org.h2.table.TableFilter f
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   26     0  this  Lorg/h2/command/dml/Select;
            0   26     1     f  Lorg/h2/table/TableFilter;
            5   23     2     n  Lorg/h2/table/TableFilter;
            8   23     3    on  Lorg/h2/expression/Expression;
           21   22     4     e  Lorg/h2/expression/Expression;
    MethodParameters:
      Name  Flags
      f     

  public java.lang.String getPlanSQL(boolean);
    descriptor: (Z)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // org.h2.command.dml.Select this
        start local 1 // boolean alwaysQuote
         0: .line 1457
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            iconst_0
            anewarray org.h2.expression.Expression
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.h2.expression.Expression[]
            astore 2 /* exprList */
        start local 2 // org.h2.expression.Expression[] exprList
         1: .line 1458
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* builder */
        start local 3 // java.lang.StringBuilder builder
         2: .line 1459
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topFilters:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 5
            goto 16
      StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.table.TableFilter
            astore 4 /* f */
        start local 4 // org.h2.table.TableFilter f
         4: .line 1460
            aload 4 /* f */
            invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
            astore 6 /* t */
        start local 6 // org.h2.table.Table t
         5: .line 1461
            aload 6 /* t */
            invokevirtual org.h2.table.Table.isView:()Z
            ifeq 6
            aload 6 /* t */
            checkcast org.h2.table.TableView
            goto 7
      StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder org.h2.table.TableFilter java.util.Iterator org.h2.table.Table
      StackMap stack:
         6: aconst_null
      StackMap locals:
      StackMap stack: org.h2.table.TableView
         7: astore 7 /* tableView */
        start local 7 // org.h2.table.TableView tableView
         8: .line 1462
            aload 7 /* tableView */
            ifnull 16
            aload 7 /* tableView */
            invokevirtual org.h2.table.TableView.isRecursive:()Z
            ifeq 16
            aload 7 /* tableView */
            invokevirtual org.h2.table.TableView.isTableExpression:()Z
            ifeq 16
         9: .line 1464
            aload 7 /* tableView */
            invokevirtual org.h2.table.TableView.isTemporary:()Z
            ifeq 16
        10: .line 1469
            aload 3 /* builder */
            ldc "WITH RECURSIVE "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 1470
            aload 6 /* t */
            invokevirtual org.h2.table.Table.getSchema:()Lorg/h2/schema/Schema;
            aload 3 /* builder */
            iload 1 /* alwaysQuote */
            invokevirtual org.h2.schema.Schema.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        12: .line 1471
            aload 3 /* builder */
            aload 6 /* t */
            invokevirtual org.h2.table.Table.getName:()Ljava/lang/String;
            iload 1 /* alwaysQuote */
            invokestatic org.h2.command.Parser.quoteIdentifier:(Ljava/lang/StringBuilder;Ljava/lang/String;Z)Ljava/lang/StringBuilder;
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        13: .line 1472
            aload 3 /* builder */
            aload 6 /* t */
            invokevirtual org.h2.table.Table.getColumns:()[Lorg/h2/table/Column;
            iload 1 /* alwaysQuote */
            invokestatic org.h2.table.Column.writeColumns:(Ljava/lang/StringBuilder;[Lorg/h2/table/Column;Z)Ljava/lang/StringBuilder;
            pop
        14: .line 1473
            aload 3 /* builder */
            ldc ") AS "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 1474
            aload 6 /* t */
            aload 3 /* builder */
            iload 1 /* alwaysQuote */
            invokevirtual org.h2.table.Table.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 7 // org.h2.table.TableView tableView
        end local 6 // org.h2.table.Table t
        end local 4 // org.h2.table.TableFilter f
        16: .line 1459
      StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        17: .line 1478
            aload 3 /* builder */
            ldc "SELECT"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        18: .line 1479
            aload 0 /* this */
            invokevirtual org.h2.command.dml.Select.isAnyDistinct:()Z
            ifeq 24
        19: .line 1480
            aload 3 /* builder */
            ldc " DISTINCT"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        20: .line 1481
            aload 0 /* this */
            getfield org.h2.command.dml.Select.distinctExpressions:[Lorg/h2/expression/Expression;
            ifnull 24
        21: .line 1482
            aload 3 /* builder */
            ldc " ON("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        22: .line 1483
            aload 3 /* builder */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.distinctExpressions:[Lorg/h2/expression/Expression;
            iload 1 /* alwaysQuote */
            invokestatic org.h2.expression.Expression.writeExpressions:(Ljava/lang/StringBuilder;[Lorg/h2/expression/Expression;Z)V
        23: .line 1484
            aload 3 /* builder */
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        24: .line 1487
      StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        25: goto 31
        26: .line 1488
      StackMap locals: int
      StackMap stack:
            iload 4 /* i */
            ifle 28
        27: .line 1489
            aload 3 /* builder */
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        28: .line 1491
      StackMap locals:
      StackMap stack:
            aload 3 /* builder */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        29: .line 1492
            aload 3 /* builder */
            aload 2 /* exprList */
            iload 4 /* i */
            aaload
            iload 1 /* alwaysQuote */
            invokevirtual org.h2.expression.Expression.getSQL:(Z)Ljava/lang/String;
            iconst_4
            iconst_0
            invokestatic org.h2.util.StringUtils.indent:(Ljava/lang/StringBuilder;Ljava/lang/String;IZ)Ljava/lang/StringBuilder;
            pop
        30: .line 1487
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        31: iload 4 /* i */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.visibleColumnCount:I
            if_icmplt 26
        end local 4 // int i
        32: .line 1494
            aload 3 /* builder */
            ldc "\nFROM "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        33: .line 1495
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            astore 4 /* filter */
        start local 4 // org.h2.table.TableFilter filter
        34: .line 1496
            aload 4 /* filter */
            ifnull 44
        35: .line 1497
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        36: .line 1499
      StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder org.h2.table.TableFilter int
      StackMap stack:
            iload 5 /* i */
            ifle 38
        37: .line 1500
            aload 3 /* builder */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        38: .line 1502
      StackMap locals:
      StackMap stack:
            aload 4 /* filter */
            aload 3 /* builder */
            iload 5 /* i */
            iinc 5 /* i */ 1
            ifle 39
            iconst_1
            goto 40
      StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder org.h2.table.TableFilter int
      StackMap stack: org.h2.table.TableFilter java.lang.StringBuilder
        39: iconst_0
      StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder org.h2.table.TableFilter int
      StackMap stack: org.h2.table.TableFilter java.lang.StringBuilder int
        40: iload 1 /* alwaysQuote */
            invokevirtual org.h2.table.TableFilter.getPlanSQL:(Ljava/lang/StringBuilder;ZZ)Ljava/lang/StringBuilder;
            pop
        41: .line 1503
            aload 4 /* filter */
            invokevirtual org.h2.table.TableFilter.getJoin:()Lorg/h2/table/TableFilter;
            astore 4 /* filter */
        42: .line 1504
            aload 4 /* filter */
            ifnonnull 36
        end local 5 // int i
        43: .line 1505
            goto 55
        44: .line 1506
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        45: .line 1507
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topFilters:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 7
            goto 54
      StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder org.h2.table.TableFilter int top java.util.Iterator
      StackMap stack:
        46: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.table.TableFilter
            astore 6 /* f */
        start local 6 // org.h2.table.TableFilter f
        47: .line 1509
      StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder org.h2.table.TableFilter int org.h2.table.TableFilter java.util.Iterator
      StackMap stack:
            iload 5 /* i */
            ifle 49
        48: .line 1510
            aload 3 /* builder */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        49: .line 1512
      StackMap locals:
      StackMap stack:
            aload 6 /* f */
            aload 3 /* builder */
            iload 5 /* i */
            iinc 5 /* i */ 1
            ifle 50
            iconst_1
            goto 51
      StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder org.h2.table.TableFilter int org.h2.table.TableFilter java.util.Iterator
      StackMap stack: org.h2.table.TableFilter java.lang.StringBuilder
        50: iconst_0
      StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder org.h2.table.TableFilter int org.h2.table.TableFilter java.util.Iterator
      StackMap stack: org.h2.table.TableFilter java.lang.StringBuilder int
        51: iload 1 /* alwaysQuote */
            invokevirtual org.h2.table.TableFilter.getPlanSQL:(Ljava/lang/StringBuilder;ZZ)Ljava/lang/StringBuilder;
            pop
        52: .line 1513
            aload 6 /* f */
            invokevirtual org.h2.table.TableFilter.getJoin:()Lorg/h2/table/TableFilter;
            astore 6 /* f */
        53: .line 1514
            aload 6 /* f */
            ifnonnull 47
        end local 6 // org.h2.table.TableFilter f
        54: .line 1507
      StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder org.h2.table.TableFilter int top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 46
        end local 5 // int i
        55: .line 1517
      StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder org.h2.table.TableFilter
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            ifnull 58
        56: .line 1518
            aload 3 /* builder */
            ldc "\nWHERE "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        57: .line 1519
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            aload 3 /* builder */
            iload 1 /* alwaysQuote */
            invokevirtual org.h2.expression.Expression.getUnenclosedSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            pop
        58: .line 1521
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupIndex:[I
            ifnull 69
        59: .line 1522
            aload 3 /* builder */
            ldc "\nGROUP BY "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        60: .line 1523
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        61: aload 0 /* this */
            getfield org.h2.command.dml.Select.groupIndex:[I
            arraylength
            istore 6 /* l */
        start local 6 // int l
        62: goto 67
        63: .line 1524
      StackMap locals: int int
      StackMap stack:
            iload 5 /* i */
            ifle 65
        64: .line 1525
            aload 3 /* builder */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        65: .line 1527
      StackMap locals:
      StackMap stack:
            aload 2 /* exprList */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupIndex:[I
            iload 5 /* i */
            iaload
            aaload
            invokevirtual org.h2.expression.Expression.getNonAliasExpression:()Lorg/h2/expression/Expression;
            aload 3 /* builder */
            iload 1 /* alwaysQuote */
            invokevirtual org.h2.expression.Expression.getUnenclosedSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            pop
        66: .line 1523
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        67: iload 5 /* i */
            iload 6 /* l */
            if_icmplt 63
        end local 6 // int l
        end local 5 // int i
        68: .line 1529
            goto 79
      StackMap locals:
      StackMap stack:
        69: aload 0 /* this */
            getfield org.h2.command.dml.Select.group:Ljava/util/ArrayList;
            ifnull 79
        70: .line 1530
            aload 3 /* builder */
            ldc "\nGROUP BY "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        71: .line 1531
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        72: aload 0 /* this */
            getfield org.h2.command.dml.Select.group:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            istore 6 /* l */
        start local 6 // int l
        73: goto 78
        74: .line 1532
      StackMap locals: int int
      StackMap stack:
            iload 5 /* i */
            ifle 76
        75: .line 1533
            aload 3 /* builder */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        76: .line 1535
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.group:Ljava/util/ArrayList;
            iload 5 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.expression.Expression
            aload 3 /* builder */
            iload 1 /* alwaysQuote */
            invokevirtual org.h2.expression.Expression.getUnenclosedSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            pop
        77: .line 1531
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        78: iload 5 /* i */
            iload 6 /* l */
            if_icmplt 74
        end local 6 // int l
        end local 5 // int i
        79: .line 1538
      StackMap locals:
      StackMap stack:
            aload 3 /* builder */
            ldc "\nHAVING "
            aload 2 /* exprList */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.havingIndex:I
            invokestatic org.h2.command.dml.Select.getFilterSQL:(Ljava/lang/StringBuilder;Ljava/lang/String;[Lorg/h2/expression/Expression;Lorg/h2/expression/Expression;I)V
        80: .line 1539
            aload 3 /* builder */
            ldc "\nQUALIFY "
            aload 2 /* exprList */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.qualifyIndex:I
            invokestatic org.h2.command.dml.Select.getFilterSQL:(Ljava/lang/StringBuilder;Ljava/lang/String;[Lorg/h2/expression/Expression;Lorg/h2/expression/Expression;I)V
        81: .line 1540
            aload 0 /* this */
            getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
            ifnull 85
        82: .line 1541
            aload 3 /* builder */
            ldc "\nORDER BY "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        83: .line 1542
            aload 0 /* this */
            getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
            aload 2 /* exprList */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.visibleColumnCount:I
            iload 1 /* alwaysQuote */
            invokevirtual org.h2.result.SortOrder.getSQL:([Lorg/h2/expression/Expression;IZ)Ljava/lang/String;
        84: .line 1541
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        85: .line 1544
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.orderList:Ljava/util/ArrayList;
            ifnull 95
        86: .line 1545
            aload 3 /* builder */
            ldc "\nORDER BY "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        87: .line 1546
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        88: aload 0 /* this */
            getfield org.h2.command.dml.Select.orderList:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            istore 6 /* l */
        start local 6 // int l
        89: goto 94
        90: .line 1547
      StackMap locals: int int
      StackMap stack:
            iload 5 /* i */
            ifle 92
        91: .line 1548
            aload 3 /* builder */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        92: .line 1550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.orderList:Ljava/util/ArrayList;
            iload 5 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.command.dml.SelectOrderBy
            aload 3 /* builder */
            iload 1 /* alwaysQuote */
            invokevirtual org.h2.command.dml.SelectOrderBy.getSQL:(Ljava/lang/StringBuilder;Z)V
        93: .line 1546
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        94: iload 5 /* i */
            iload 6 /* l */
            if_icmplt 90
        end local 6 // int l
        end local 5 // int i
        95: .line 1553
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* builder */
            iload 1 /* alwaysQuote */
            invokevirtual org.h2.command.dml.Select.appendLimitToSQL:(Ljava/lang/StringBuilder;Z)V
        96: .line 1554
            aload 0 /* this */
            getfield org.h2.command.dml.Select.sampleSizeExpr:Lorg/h2/expression/Expression;
            ifnull 99
        97: .line 1555
            aload 3 /* builder */
            ldc "\nSAMPLE_SIZE "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        98: .line 1556
            aload 0 /* this */
            getfield org.h2.command.dml.Select.sampleSizeExpr:Lorg/h2/expression/Expression;
            aload 3 /* builder */
            iload 1 /* alwaysQuote */
            invokevirtual org.h2.expression.Expression.getUnenclosedSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            pop
        99: .line 1558
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isForUpdate:Z
            ifeq 101
       100: .line 1559
            aload 3 /* builder */
            ldc "\nFOR UPDATE"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
       101: .line 1561
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isQuickAggregateQuery:Z
            ifeq 103
       102: .line 1562
            aload 3 /* builder */
            ldc "\n/* direct lookup */"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
       103: .line 1564
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isDistinctQuery:Z
            ifeq 105
       104: .line 1565
            aload 3 /* builder */
            ldc "\n/* distinct */"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
       105: .line 1567
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.sortUsingIndex:Z
            ifeq 107
       106: .line 1568
            aload 3 /* builder */
            ldc "\n/* index sorted */"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
       107: .line 1570
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isGroupQuery:Z
            ifeq 110
       108: .line 1571
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isGroupSortedQuery:Z
            ifeq 110
       109: .line 1572
            aload 3 /* builder */
            ldc "\n/* group sorted */"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
       110: .line 1576
      StackMap locals:
      StackMap stack:
            aload 3 /* builder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 4 // org.h2.table.TableFilter filter
        end local 3 // java.lang.StringBuilder builder
        end local 2 // org.h2.expression.Expression[] exprList
        end local 1 // boolean alwaysQuote
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0  111     0         this  Lorg/h2/command/dml/Select;
            0  111     1  alwaysQuote  Z
            1  111     2     exprList  [Lorg/h2/expression/Expression;
            2  111     3      builder  Ljava/lang/StringBuilder;
            4   16     4            f  Lorg/h2/table/TableFilter;
            5   16     6            t  Lorg/h2/table/Table;
            8   16     7    tableView  Lorg/h2/table/TableView;
           25   32     4            i  I
           34  111     4       filter  Lorg/h2/table/TableFilter;
           36   43     5            i  I
           45   55     5            i  I
           47   54     6            f  Lorg/h2/table/TableFilter;
           61   68     5            i  I
           62   68     6            l  I
           72   79     5            i  I
           73   79     6            l  I
           88   95     5            i  I
           89   95     6            l  I
    MethodParameters:
             Name  Flags
      alwaysQuote  

  private static void getFilterSQL(java.lang.StringBuilder, java.lang.String, org.h2.expression.Expression[], org.h2.expression.Expression, int);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;[Lorg/h2/expression/Expression;Lorg/h2/expression/Expression;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // java.lang.StringBuilder builder
        start local 1 // java.lang.String sql
        start local 2 // org.h2.expression.Expression[] exprList
        start local 3 // org.h2.expression.Expression condition
        start local 4 // int conditionIndex
         0: .line 1581
            aload 3 /* condition */
            ifnull 4
         1: .line 1582
            aload 0 /* builder */
            aload 1 /* sql */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 1583
            aload 3 /* condition */
            aload 0 /* builder */
            iconst_1
            invokevirtual org.h2.expression.Expression.getUnenclosedSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            pop
         3: .line 1584
            goto 7
      StackMap locals:
      StackMap stack:
         4: iload 4 /* conditionIndex */
            iflt 7
         5: .line 1585
            aload 0 /* builder */
            aload 1 /* sql */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 1586
            aload 2 /* exprList */
            iload 4 /* conditionIndex */
            aaload
            aload 0 /* builder */
            iconst_1
            invokevirtual org.h2.expression.Expression.getUnenclosedSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            pop
         7: .line 1588
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int conditionIndex
        end local 3 // org.h2.expression.Expression condition
        end local 2 // org.h2.expression.Expression[] exprList
        end local 1 // java.lang.String sql
        end local 0 // java.lang.StringBuilder builder
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0         builder  Ljava/lang/StringBuilder;
            0    8     1             sql  Ljava/lang/String;
            0    8     2        exprList  [Lorg/h2/expression/Expression;
            0    8     3       condition  Lorg/h2/expression/Expression;
            0    8     4  conditionIndex  I
    MethodParameters:
                Name  Flags
      builder         
      sql             
      exprList        
      condition       
      conditionIndex  

  public void setHaving(org.h2.expression.Expression);
    descriptor: (Lorg/h2/expression/Expression;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.command.dml.Select this
        start local 1 // org.h2.expression.Expression having
         0: .line 1591
            aload 0 /* this */
            aload 1 /* having */
            putfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
         1: .line 1592
            return
        end local 1 // org.h2.expression.Expression having
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/h2/command/dml/Select;
            0    2     1  having  Lorg/h2/expression/Expression;
    MethodParameters:
        Name  Flags
      having  

  public org.h2.expression.Expression getHaving();
    descriptor: ()Lorg/h2/expression/Expression;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 1595
            aload 0 /* this */
            getfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
            areturn
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/command/dml/Select;

  public void setQualify(org.h2.expression.Expression);
    descriptor: (Lorg/h2/expression/Expression;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.command.dml.Select this
        start local 1 // org.h2.expression.Expression qualify
         0: .line 1599
            aload 0 /* this */
            aload 1 /* qualify */
            putfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
         1: .line 1600
            return
        end local 1 // org.h2.expression.Expression qualify
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/h2/command/dml/Select;
            0    2     1  qualify  Lorg/h2/expression/Expression;
    MethodParameters:
         Name  Flags
      qualify  

  public org.h2.expression.Expression getQualify();
    descriptor: ()Lorg/h2/expression/Expression;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 1603
            aload 0 /* this */
            getfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
            areturn
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/command/dml/Select;

  public int getColumnCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 1608
            aload 0 /* this */
            getfield org.h2.command.dml.Select.visibleColumnCount:I
            ireturn
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/command/dml/Select;

  public org.h2.table.TableFilter getTopTableFilter();
    descriptor: ()Lorg/h2/table/TableFilter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 1612
            aload 0 /* this */
            getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
            areturn
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/command/dml/Select;

  public void setForUpdate(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.command.dml.Select this
        start local 1 // boolean b
         0: .line 1617
            iload 1 /* b */
            ifeq 2
            aload 0 /* this */
            invokevirtual org.h2.command.dml.Select.isAnyDistinct:()Z
            ifne 1
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isGroupQuery:Z
            ifeq 2
         1: .line 1618
      StackMap locals:
      StackMap stack:
            ldc 90145
            invokestatic org.h2.message.DbException.get:(I)Lorg/h2/message/DbException;
            athrow
         2: .line 1620
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* b */
            putfield org.h2.command.dml.Select.isForUpdate:Z
         3: .line 1621
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.isMVStore:()Z
            ifeq 5
         4: .line 1622
            aload 0 /* this */
            iload 1 /* b */
            putfield org.h2.command.dml.Select.isForUpdateMvcc:Z
         5: .line 1624
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean b
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/h2/command/dml/Select;
            0    6     1     b  Z
    MethodParameters:
      Name  Flags
      b     

  public void mapColumns(org.h2.table.ColumnResolver, int);
    descriptor: (Lorg/h2/table/ColumnResolver;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.h2.command.dml.Select this
        start local 1 // org.h2.table.ColumnResolver resolver
        start local 2 // int level
         0: .line 1628
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 3
      StackMap locals: org.h2.command.dml.Select org.h2.table.ColumnResolver int top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.expression.Expression
            astore 3 /* e */
        start local 3 // org.h2.expression.Expression e
         2: .line 1629
            aload 3 /* e */
            aload 1 /* resolver */
            iload 2 /* level */
            iconst_0
            invokevirtual org.h2.expression.Expression.mapColumns:(Lorg/h2/table/ColumnResolver;II)V
        end local 3 // org.h2.expression.Expression e
         3: .line 1628
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 1631
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            ifnull 6
         5: .line 1632
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            aload 1 /* resolver */
            iload 2 /* level */
            iconst_0
            invokevirtual org.h2.expression.Expression.mapColumns:(Lorg/h2/table/ColumnResolver;II)V
         6: .line 1634
      StackMap locals: org.h2.command.dml.Select org.h2.table.ColumnResolver int
      StackMap stack:
            return
        end local 2 // int level
        end local 1 // org.h2.table.ColumnResolver resolver
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/h2/command/dml/Select;
            0    7     1  resolver  Lorg/h2/table/ColumnResolver;
            0    7     2     level  I
            2    3     3         e  Lorg/h2/expression/Expression;
    MethodParameters:
          Name  Flags
      resolver  
      level     

  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.command.dml.Select this
        start local 1 // org.h2.table.TableFilter tableFilter
        start local 2 // boolean b
         0: .line 1638
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 3
      StackMap locals: org.h2.command.dml.Select org.h2.table.TableFilter int top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.expression.Expression
            astore 3 /* e */
        start local 3 // org.h2.expression.Expression e
         2: .line 1639
            aload 3 /* e */
            aload 1 /* tableFilter */
            iload 2 /* b */
            invokevirtual org.h2.expression.Expression.setEvaluatable:(Lorg/h2/table/TableFilter;Z)V
        end local 3 // org.h2.expression.Expression e
         3: .line 1638
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 1641
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            ifnull 6
         5: .line 1642
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            aload 1 /* tableFilter */
            iload 2 /* b */
            invokevirtual org.h2.expression.Expression.setEvaluatable:(Lorg/h2/table/TableFilter;Z)V
         6: .line 1644
      StackMap locals: org.h2.command.dml.Select org.h2.table.TableFilter int
      StackMap stack:
            return
        end local 2 // boolean b
        end local 1 // org.h2.table.TableFilter tableFilter
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lorg/h2/command/dml/Select;
            0    7     1  tableFilter  Lorg/h2/table/TableFilter;
            0    7     2            b  Z
            2    3     3            e  Lorg/h2/expression/Expression;
    MethodParameters:
             Name  Flags
      tableFilter  
      b            

  public boolean isQuickAggregateQuery();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 1654
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isQuickAggregateQuery:Z
            ireturn
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/command/dml/Select;

  public boolean isGroupQuery();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 1663
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isGroupQuery:Z
            ireturn
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/command/dml/Select;

  public boolean isWindowQuery();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 1672
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isWindowQuery:Z
            ireturn
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/command/dml/Select;

  public boolean isGroupWindowStage2();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 1682
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isGroupWindowStage2:Z
            ireturn
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/command/dml/Select;

  public void addGlobalCondition(org.h2.expression.Parameter, int, int);
    descriptor: (Lorg/h2/expression/Parameter;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=4
        start local 0 // org.h2.command.dml.Select this
        start local 1 // org.h2.expression.Parameter param
        start local 2 // int columnId
        start local 3 // int comparisonType
         0: .line 1688
            aload 0 /* this */
            aload 1 /* param */
            invokevirtual org.h2.command.dml.Select.addParameter:(Lorg/h2/expression/Parameter;)V
         1: .line 1690
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            iload 2 /* columnId */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.expression.Expression
            astore 5 /* col */
        start local 5 // org.h2.expression.Expression col
         2: .line 1691
            aload 5 /* col */
            invokevirtual org.h2.expression.Expression.getNonAliasExpression:()Lorg/h2/expression/Expression;
            astore 5 /* col */
         3: .line 1692
            aload 5 /* col */
            getstatic org.h2.expression.ExpressionVisitor.QUERY_COMPARABLE_VISITOR:Lorg/h2/expression/ExpressionVisitor;
            invokevirtual org.h2.expression.Expression.isEverything:(Lorg/h2/expression/ExpressionVisitor;)Z
            ifeq 6
         4: .line 1693
            new org.h2.expression.condition.Comparison
            dup
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            iload 3 /* comparisonType */
            aload 5 /* col */
            aload 1 /* param */
            invokespecial org.h2.expression.condition.Comparison.<init>:(Lorg/h2/engine/Session;ILorg/h2/expression/Expression;Lorg/h2/expression/Expression;)V
            astore 4 /* comp */
        start local 4 // org.h2.expression.Expression comp
         5: .line 1694
            goto 7
        end local 4 // org.h2.expression.Expression comp
         6: .line 1697
      StackMap locals: org.h2.command.dml.Select org.h2.expression.Parameter int int top org.h2.expression.Expression
      StackMap stack:
            new org.h2.expression.condition.Comparison
            dup
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            bipush 16
            aload 1 /* param */
            aload 1 /* param */
            invokespecial org.h2.expression.condition.Comparison.<init>:(Lorg/h2/engine/Session;ILorg/h2/expression/Expression;Lorg/h2/expression/Expression;)V
            astore 4 /* comp */
        start local 4 // org.h2.expression.Expression comp
         7: .line 1699
      StackMap locals: org.h2.command.dml.Select org.h2.expression.Parameter int int org.h2.expression.Expression org.h2.expression.Expression
      StackMap stack:
            aload 4 /* comp */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.expression.Expression.optimize:(Lorg/h2/engine/Session;)Lorg/h2/expression/Expression;
            astore 4 /* comp */
         8: .line 1700
            iconst_1
            istore 6 /* addToCondition */
        start local 6 // boolean addToCondition
         9: .line 1701
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isWindowQuery:Z
            ifeq 15
        10: .line 1702
            aload 0 /* this */
            getfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
            ifnonnull 13
        11: .line 1703
            aload 0 /* this */
            aload 4 /* comp */
            putfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
        12: .line 1704
            goto 14
        13: .line 1705
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            new org.h2.expression.condition.ConditionAndOr
            dup
            iconst_0
            aload 4 /* comp */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
            invokespecial org.h2.expression.condition.ConditionAndOr.<init>:(ILorg/h2/expression/Expression;Lorg/h2/expression/Expression;)V
            putfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
        14: .line 1707
      StackMap locals:
      StackMap stack:
            return
        15: .line 1709
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isGroupQuery:Z
            ifeq 31
        16: .line 1710
            iconst_0
            istore 6 /* addToCondition */
        17: .line 1711
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        18: goto 23
        19: .line 1712
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupIndex:[I
            iload 7 /* i */
            iaload
            iload 2 /* columnId */
            if_icmpne 22
        20: .line 1713
            iconst_1
            istore 6 /* addToCondition */
        21: .line 1714
            goto 24
        22: .line 1711
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: aload 0 /* this */
            getfield org.h2.command.dml.Select.groupIndex:[I
            ifnull 24
            iload 7 /* i */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.groupIndex:[I
            arraylength
            if_icmplt 19
        end local 7 // int i
        24: .line 1717
      StackMap locals:
      StackMap stack:
            iload 6 /* addToCondition */
            ifne 31
        25: .line 1718
            aload 0 /* this */
            getfield org.h2.command.dml.Select.havingIndex:I
            iflt 27
        26: .line 1719
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield org.h2.command.dml.Select.havingIndex:I
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.h2.expression.Expression
            putfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
        27: .line 1721
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
            ifnonnull 30
        28: .line 1722
            aload 0 /* this */
            aload 4 /* comp */
            putfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
        29: .line 1723
            goto 31
        30: .line 1724
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new org.h2.expression.condition.ConditionAndOr
            dup
            iconst_0
            aload 0 /* this */
            getfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
            aload 4 /* comp */
            invokespecial org.h2.expression.condition.ConditionAndOr.<init>:(ILorg/h2/expression/Expression;Lorg/h2/expression/Expression;)V
            putfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
        31: .line 1728
      StackMap locals:
      StackMap stack:
            iload 6 /* addToCondition */
            ifeq 36
        32: .line 1729
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            ifnonnull 35
        33: .line 1730
            aload 0 /* this */
            aload 4 /* comp */
            putfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
        34: .line 1731
            goto 36
        35: .line 1732
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new org.h2.expression.condition.ConditionAndOr
            dup
            iconst_0
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            aload 4 /* comp */
            invokespecial org.h2.expression.condition.ConditionAndOr.<init>:(ILorg/h2/expression/Expression;Lorg/h2/expression/Expression;)V
            putfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
        36: .line 1735
      StackMap locals:
      StackMap stack:
            return
        end local 6 // boolean addToCondition
        end local 5 // org.h2.expression.Expression col
        end local 4 // org.h2.expression.Expression comp
        end local 3 // int comparisonType
        end local 2 // int columnId
        end local 1 // org.h2.expression.Parameter param
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   37     0            this  Lorg/h2/command/dml/Select;
            0   37     1           param  Lorg/h2/expression/Parameter;
            0   37     2        columnId  I
            0   37     3  comparisonType  I
            5    6     4            comp  Lorg/h2/expression/Expression;
            7   37     4            comp  Lorg/h2/expression/Expression;
            2   37     5             col  Lorg/h2/expression/Expression;
            9   37     6  addToCondition  Z
           18   24     7               i  I
    MethodParameters:
                Name  Flags
      param           
      columnId        
      comparisonType  

  public void updateAggregate(org.h2.engine.Session, int);
    descriptor: (Lorg/h2/engine/Session;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.h2.command.dml.Select this
        start local 1 // org.h2.engine.Session s
        start local 2 // int stage
         0: .line 1739
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 3
      StackMap locals: org.h2.command.dml.Select org.h2.engine.Session int top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.expression.Expression
            astore 3 /* e */
        start local 3 // org.h2.expression.Expression e
         2: .line 1740
            aload 3 /* e */
            aload 1 /* s */
            iload 2 /* stage */
            invokevirtual org.h2.expression.Expression.updateAggregate:(Lorg/h2/engine/Session;I)V
        end local 3 // org.h2.expression.Expression e
         3: .line 1739
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 1742
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            ifnull 6
         5: .line 1743
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            aload 1 /* s */
            iload 2 /* stage */
            invokevirtual org.h2.expression.Expression.updateAggregate:(Lorg/h2/engine/Session;I)V
         6: .line 1745
      StackMap locals: org.h2.command.dml.Select org.h2.engine.Session int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
            ifnull 8
         7: .line 1746
            aload 0 /* this */
            getfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
            aload 1 /* s */
            iload 2 /* stage */
            invokevirtual org.h2.expression.Expression.updateAggregate:(Lorg/h2/engine/Session;I)V
         8: .line 1748
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
            ifnull 10
         9: .line 1749
            aload 0 /* this */
            getfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
            aload 1 /* s */
            iload 2 /* stage */
            invokevirtual org.h2.expression.Expression.updateAggregate:(Lorg/h2/engine/Session;I)V
        10: .line 1751
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int stage
        end local 1 // org.h2.engine.Session s
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lorg/h2/command/dml/Select;
            0   11     1      s  Lorg/h2/engine/Session;
            0   11     2  stage  I
            2    3     3      e  Lorg/h2/expression/Expression;
    MethodParameters:
       Name  Flags
      s      
      stage  

  public boolean isEverything(org.h2.expression.ExpressionVisitor);
    descriptor: (Lorg/h2/expression/ExpressionVisitor;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.h2.command.dml.Select this
        start local 1 // org.h2.expression.ExpressionVisitor visitor
         0: .line 1755
            aload 1 /* visitor */
            invokevirtual org.h2.expression.ExpressionVisitor.getType:()I
            tableswitch { // 2 - 7
                    2: 1
                    3: 15
                    4: 9
                    5: 23
                    6: 23
                    7: 17
              default: 23
          }
         1: .line 1757
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isForUpdate:Z
            ifeq 3
         2: .line 1758
            iconst_0
            ireturn
         3: .line 1760
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 7
      StackMap locals: org.h2.command.dml.Select org.h2.expression.ExpressionVisitor top java.util.Iterator
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.table.TableFilter
            astore 2 /* f */
        start local 2 // org.h2.table.TableFilter f
         5: .line 1761
            aload 2 /* f */
            invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
            invokevirtual org.h2.table.Table.isDeterministic:()Z
            ifne 7
         6: .line 1762
            iconst_0
            ireturn
        end local 2 // org.h2.table.TableFilter f
         7: .line 1760
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         8: .line 1765
            goto 23
         9: .line 1768
      StackMap locals: org.h2.command.dml.Select org.h2.expression.ExpressionVisitor
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 13
      StackMap locals: org.h2.command.dml.Select org.h2.expression.ExpressionVisitor top java.util.Iterator
      StackMap stack:
        10: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.table.TableFilter
            astore 2 /* f */
        start local 2 // org.h2.table.TableFilter f
        11: .line 1769
            aload 2 /* f */
            invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
            invokevirtual org.h2.table.Table.getMaxDataModificationId:()J
            lstore 4 /* m */
        start local 4 // long m
        12: .line 1770
            aload 1 /* visitor */
            lload 4 /* m */
            invokevirtual org.h2.expression.ExpressionVisitor.addDataModificationId:(J)V
        end local 4 // long m
        end local 2 // org.h2.table.TableFilter f
        13: .line 1768
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        14: .line 1772
            goto 23
        15: .line 1775
      StackMap locals: org.h2.command.dml.Select org.h2.expression.ExpressionVisitor
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getSettings:()Lorg/h2/engine/DbSettings;
            getfield org.h2.engine.DbSettings.optimizeEvaluatableSubqueries:Z
            ifne 23
        16: .line 1776
            iconst_0
            ireturn
        17: .line 1781
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 22
      StackMap locals: org.h2.command.dml.Select org.h2.expression.ExpressionVisitor top java.util.Iterator
      StackMap stack:
        18: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.table.TableFilter
            astore 2 /* f */
        start local 2 // org.h2.table.TableFilter f
        19: .line 1782
            aload 2 /* f */
            invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
            astore 4 /* table */
        start local 4 // org.h2.table.Table table
        20: .line 1783
            aload 1 /* visitor */
            aload 4 /* table */
            invokevirtual org.h2.expression.ExpressionVisitor.addDependency:(Lorg/h2/engine/DbObject;)V
        21: .line 1784
            aload 4 /* table */
            aload 1 /* visitor */
            invokevirtual org.h2.expression.ExpressionVisitor.getDependencies:()Ljava/util/HashSet;
            invokevirtual org.h2.table.Table.addDependencies:(Ljava/util/HashSet;)V
        end local 4 // org.h2.table.Table table
        end local 2 // org.h2.table.TableFilter f
        22: .line 1781
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        23: .line 1790
      StackMap locals: org.h2.command.dml.Select org.h2.expression.ExpressionVisitor
      StackMap stack:
            aload 1 /* visitor */
            iconst_1
            invokevirtual org.h2.expression.ExpressionVisitor.incrementQueryLevel:(I)Lorg/h2/expression/ExpressionVisitor;
            astore 2 /* v2 */
        start local 2 // org.h2.expression.ExpressionVisitor v2
        24: .line 1791
            aload 0 /* this */
            getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 28
      StackMap locals: org.h2.command.dml.Select org.h2.expression.ExpressionVisitor org.h2.expression.ExpressionVisitor top java.util.Iterator
      StackMap stack:
        25: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.expression.Expression
            astore 3 /* e */
        start local 3 // org.h2.expression.Expression e
        26: .line 1792
            aload 3 /* e */
            aload 2 /* v2 */
            invokevirtual org.h2.expression.Expression.isEverything:(Lorg/h2/expression/ExpressionVisitor;)Z
            ifne 28
        27: .line 1793
            iconst_0
            ireturn
        end local 3 // org.h2.expression.Expression e
        28: .line 1791
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 25
        29: .line 1796
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            ifnull 31
            aload 0 /* this */
            getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
            aload 2 /* v2 */
            invokevirtual org.h2.expression.Expression.isEverything:(Lorg/h2/expression/ExpressionVisitor;)Z
            ifne 31
        30: .line 1797
            iconst_0
            ireturn
        31: .line 1799
      StackMap locals: org.h2.command.dml.Select org.h2.expression.ExpressionVisitor org.h2.expression.ExpressionVisitor
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
            ifnull 33
            aload 0 /* this */
            getfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
            aload 2 /* v2 */
            invokevirtual org.h2.expression.Expression.isEverything:(Lorg/h2/expression/ExpressionVisitor;)Z
            ifne 33
        32: .line 1800
            iconst_0
            ireturn
        33: .line 1802
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
            ifnull 35
            aload 0 /* this */
            getfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
            aload 2 /* v2 */
            invokevirtual org.h2.expression.Expression.isEverything:(Lorg/h2/expression/ExpressionVisitor;)Z
            ifne 35
        34: .line 1803
            iconst_0
            ireturn
        35: .line 1805
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // org.h2.expression.ExpressionVisitor v2
        end local 1 // org.h2.expression.ExpressionVisitor visitor
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   36     0     this  Lorg/h2/command/dml/Select;
            0   36     1  visitor  Lorg/h2/expression/ExpressionVisitor;
            5    7     2        f  Lorg/h2/table/TableFilter;
           11   13     2        f  Lorg/h2/table/TableFilter;
           12   13     4        m  J
           19   22     2        f  Lorg/h2/table/TableFilter;
           20   22     4    table  Lorg/h2/table/Table;
           24   36     2       v2  Lorg/h2/expression/ExpressionVisitor;
           26   28     3        e  Lorg/h2/expression/Expression;
    MethodParameters:
         Name  Flags
      visitor  

  public boolean isReadOnly();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 1810
            aload 0 /* this */
            getstatic org.h2.expression.ExpressionVisitor.READONLY_VISITOR:Lorg/h2/expression/ExpressionVisitor;
            invokevirtual org.h2.command.dml.Select.isEverything:(Lorg/h2/expression/ExpressionVisitor;)Z
            ireturn
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/command/dml/Select;

  public boolean isCacheable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 1816
            aload 0 /* this */
            getfield org.h2.command.dml.Select.isForUpdate:Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/command/dml/Select;

  public boolean allowGlobalConditions();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 1821
            aload 0 /* this */
            getfield org.h2.command.dml.Select.offsetExpr:Lorg/h2/expression/Expression;
            ifnonnull 3
            aload 0 /* this */
            getfield org.h2.command.dml.Select.limitExpr:Lorg/h2/expression/Expression;
            ifnonnull 1
            aload 0 /* this */
            getfield org.h2.command.dml.Select.distinctExpressions:[Lorg/h2/expression/Expression;
            ifnull 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
            ifnonnull 3
      StackMap locals:
      StackMap stack:
         2: iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/h2/command/dml/Select;

  public org.h2.result.SortOrder getSortOrder();
    descriptor: ()Lorg/h2/result/SortOrder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 1825
            aload 0 /* this */
            getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
            areturn
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/command/dml/Select;

  public org.h2.command.dml.Select getParentSelect();
    descriptor: ()Lorg/h2/command/dml/Select;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.command.dml.Select this
         0: .line 1984
            aload 0 /* this */
            getfield org.h2.command.dml.Select.parentSelect:Lorg/h2/command/dml/Select;
            areturn
        end local 0 // org.h2.command.dml.Select this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/command/dml/Select;
}
SourceFile: "Select.java"
NestMembers:
  org.h2.command.dml.Select$1  org.h2.command.dml.Select$2  org.h2.command.dml.Select$LazyResultGroupSorted  org.h2.command.dml.Select$LazyResultQueryFlat  org.h2.command.dml.Select$LazyResultSelect
InnerClasses:
  org.h2.command.dml.Select$1
  org.h2.command.dml.Select$2
  private final LazyResultGroupSorted = org.h2.command.dml.Select$LazyResultGroupSorted of org.h2.command.dml.Select
  private final LazyResultQueryFlat = org.h2.command.dml.Select$LazyResultQueryFlat of org.h2.command.dml.Select
  private abstract LazyResultSelect = org.h2.command.dml.Select$LazyResultSelect of org.h2.command.dml.Select
  public abstract TableFilterVisitor = org.h2.table.TableFilter$TableFilterVisitor of org.h2.table.TableFilter