public final class org.hsqldb.SortAndSlice
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.hsqldb.SortAndSlice
  super_class: java.lang.Object
{
  static final org.hsqldb.SortAndSlice noSort;
    descriptor: Lorg/hsqldb/SortAndSlice;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final int[] defaultLimits;
    descriptor: [I
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  public int[] sortOrder;
    descriptor: [I
    flags: (0x0001) ACC_PUBLIC

  public boolean[] sortDescending;
    descriptor: [Z
    flags: (0x0001) ACC_PUBLIC

  public boolean[] sortNullsLast;
    descriptor: [Z
    flags: (0x0001) ACC_PUBLIC

  public org.hsqldb.types.Collation[] collations;
    descriptor: [Lorg/hsqldb/types/Collation;
    flags: (0x0001) ACC_PUBLIC

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

  org.hsqldb.lib.HsqlArrayList exprList;
    descriptor: Lorg/hsqldb/lib/HsqlArrayList;
    flags: (0x0000) 

  org.hsqldb.ExpressionOp limitCondition;
    descriptor: Lorg/hsqldb/ExpressionOp;
    flags: (0x0000) 

  public int columnCount;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

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

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

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

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

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

  public boolean skipSort;
    descriptor: Z
    flags: (0x0001) ACC_PUBLIC

  public boolean skipFullResult;
    descriptor: Z
    flags: (0x0001) ACC_PUBLIC

  public org.hsqldb.index.Index index;
    descriptor: Lorg/hsqldb/index/Index;
    flags: (0x0001) ACC_PUBLIC

  public org.hsqldb.Table primaryTable;
    descriptor: Lorg/hsqldb/Table;
    flags: (0x0001) ACC_PUBLIC

  public org.hsqldb.index.Index primaryTableIndex;
    descriptor: Lorg/hsqldb/index/Index;
    flags: (0x0001) ACC_PUBLIC

  public int[] colIndexes;
    descriptor: [I
    flags: (0x0001) ACC_PUBLIC

  public boolean isGenerated;
    descriptor: Z
    flags: (0x0001) ACC_PUBLIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 51
            new org.hsqldb.SortAndSlice
            dup
            invokespecial org.hsqldb.SortAndSlice.<init>:()V
            putstatic org.hsqldb.SortAndSlice.noSort:Lorg/hsqldb/SortAndSlice;
         1: .line 52
            iconst_3
            newarray 10
            dup
            iconst_1
         2: .line 53
            ldc 2147483647
            iastore
            dup
            iconst_2
            ldc 2147483647
            iastore
         3: .line 52
            putstatic org.hsqldb.SortAndSlice.defaultLimits:[I
         4: .line 54
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hsqldb.SortAndSlice this
         0: .line 78
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 62
            aload 0 /* this */
            new org.hsqldb.lib.HsqlArrayList
            dup
            invokespecial org.hsqldb.lib.HsqlArrayList.<init>:()V
            putfield org.hsqldb.SortAndSlice.exprList:Lorg/hsqldb/lib/HsqlArrayList;
         2: .line 70
            aload 0 /* this */
            iconst_0
            putfield org.hsqldb.SortAndSlice.skipSort:Z
         3: .line 71
            aload 0 /* this */
            iconst_0
            putfield org.hsqldb.SortAndSlice.skipFullResult:Z
         4: .line 78
            return
        end local 0 // org.hsqldb.SortAndSlice this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/hsqldb/SortAndSlice;

  public org.hsqldb.lib.HsqlArrayList getExpressionList();
    descriptor: ()Lorg/hsqldb/lib/HsqlArrayList;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hsqldb.SortAndSlice this
         0: .line 81
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.exprList:Lorg/hsqldb/lib/HsqlArrayList;
            areturn
        end local 0 // org.hsqldb.SortAndSlice this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hsqldb/SortAndSlice;

  public boolean hasOrder();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hsqldb.SortAndSlice this
         0: .line 85
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.exprList:Lorg/hsqldb/lib/HsqlArrayList;
            invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.hsqldb.SortAndSlice this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hsqldb/SortAndSlice;

  public boolean hasLimit();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hsqldb.SortAndSlice this
         0: .line 89
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.limitCondition:Lorg/hsqldb/ExpressionOp;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.hsqldb.SortAndSlice this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hsqldb/SortAndSlice;

  public int getOrderLength();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hsqldb.SortAndSlice this
         0: .line 93
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.exprList:Lorg/hsqldb/lib/HsqlArrayList;
            invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
            ireturn
        end local 0 // org.hsqldb.SortAndSlice this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hsqldb/SortAndSlice;

  public void addOrderExpression(org.hsqldb.Expression);
    descriptor: (Lorg/hsqldb/Expression;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hsqldb.SortAndSlice this
        start local 1 // org.hsqldb.Expression e
         0: .line 97
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.exprList:Lorg/hsqldb/lib/HsqlArrayList;
            aload 1 /* e */
            invokevirtual org.hsqldb.lib.HsqlArrayList.add:(Ljava/lang/Object;)Z
            pop
         1: .line 98
            return
        end local 1 // org.hsqldb.Expression e
        end local 0 // org.hsqldb.SortAndSlice this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hsqldb/SortAndSlice;
            0    2     1     e  Lorg/hsqldb/Expression;
    MethodParameters:
      Name  Flags
      e     

  public void addLimitCondition(org.hsqldb.ExpressionOp);
    descriptor: (Lorg/hsqldb/ExpressionOp;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hsqldb.SortAndSlice this
        start local 1 // org.hsqldb.ExpressionOp expression
         0: .line 101
            aload 0 /* this */
            aload 1 /* expression */
            putfield org.hsqldb.SortAndSlice.limitCondition:Lorg/hsqldb/ExpressionOp;
         1: .line 102
            return
        end local 1 // org.hsqldb.ExpressionOp expression
        end local 0 // org.hsqldb.SortAndSlice this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/hsqldb/SortAndSlice;
            0    2     1  expression  Lorg/hsqldb/ExpressionOp;
    MethodParameters:
            Name  Flags
      expression  

  public void setStrictLimit();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hsqldb.SortAndSlice this
         0: .line 105
            aload 0 /* this */
            iconst_1
            putfield org.hsqldb.SortAndSlice.strictLimit:Z
         1: .line 106
            return
        end local 0 // org.hsqldb.SortAndSlice this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hsqldb/SortAndSlice;

  public void setZeroLimit();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hsqldb.SortAndSlice this
         0: .line 109
            aload 0 /* this */
            iconst_1
            putfield org.hsqldb.SortAndSlice.zeroLimit:Z
         1: .line 110
            return
        end local 0 // org.hsqldb.SortAndSlice this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hsqldb/SortAndSlice;

  public void setUsingIndex();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hsqldb.SortAndSlice this
         0: .line 113
            aload 0 /* this */
            iconst_1
            putfield org.hsqldb.SortAndSlice.usingIndex:Z
         1: .line 114
            return
        end local 0 // org.hsqldb.SortAndSlice this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hsqldb/SortAndSlice;

  public void prepareSingleColumn(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hsqldb.SortAndSlice this
        start local 1 // int colIndex
         0: .line 118
            aload 0 /* this */
            iconst_1
            newarray 10
            putfield org.hsqldb.SortAndSlice.sortOrder:[I
         1: .line 119
            aload 0 /* this */
            iconst_1
            newarray 4
            putfield org.hsqldb.SortAndSlice.sortDescending:[Z
         2: .line 120
            aload 0 /* this */
            iconst_1
            newarray 4
            putfield org.hsqldb.SortAndSlice.sortNullsLast:[Z
         3: .line 121
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.sortOrder:[I
            iconst_0
            iload 1 /* colIndex */
            iastore
         4: .line 122
            aload 0 /* this */
            iconst_1
            putfield org.hsqldb.SortAndSlice.columnCount:I
         5: .line 123
            return
        end local 1 // int colIndex
        end local 0 // org.hsqldb.SortAndSlice this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/hsqldb/SortAndSlice;
            0    6     1  colIndex  I
    MethodParameters:
          Name  Flags
      colIndex  

  public void prepareMultiColumn(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.hsqldb.SortAndSlice this
        start local 1 // int count
         0: .line 127
            aload 0 /* this */
            iload 1 /* count */
            newarray 10
            putfield org.hsqldb.SortAndSlice.sortOrder:[I
         1: .line 128
            aload 0 /* this */
            iload 1 /* count */
            newarray 4
            putfield org.hsqldb.SortAndSlice.sortDescending:[Z
         2: .line 129
            aload 0 /* this */
            iload 1 /* count */
            newarray 4
            putfield org.hsqldb.SortAndSlice.sortNullsLast:[Z
         3: .line 130
            aload 0 /* this */
            iload 1 /* count */
            putfield org.hsqldb.SortAndSlice.columnCount:I
         4: .line 132
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         5: goto 8
         6: .line 133
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.sortOrder:[I
            iload 2 /* i */
            iload 2 /* i */
            iastore
         7: .line 132
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 2 /* i */
            iload 1 /* count */
            if_icmplt 6
        end local 2 // int i
         9: .line 135
            return
        end local 1 // int count
        end local 0 // org.hsqldb.SortAndSlice this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lorg/hsqldb/SortAndSlice;
            0   10     1  count  I
            5    9     2      i  I
    MethodParameters:
       Name  Flags
      count  

  public void prepareExtraColumn(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.hsqldb.SortAndSlice this
        start local 1 // int degree
         0: .line 139
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.exprList:Lorg/hsqldb/lib/HsqlArrayList;
            invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
            putfield org.hsqldb.SortAndSlice.columnCount:I
         1: .line 141
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.columnCount:I
            ifne 3
         2: .line 142
            return
         3: .line 145
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.columnCount:I
            iload 1 /* degree */
            iadd
            newarray 10
            putfield org.hsqldb.SortAndSlice.sortOrder:[I
         4: .line 146
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.columnCount:I
            iload 1 /* degree */
            iadd
            newarray 4
            putfield org.hsqldb.SortAndSlice.sortDescending:[Z
         5: .line 147
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.columnCount:I
            iload 1 /* degree */
            iadd
            newarray 4
            putfield org.hsqldb.SortAndSlice.sortNullsLast:[Z
         6: .line 149
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.sortOrder:[I
            invokestatic org.hsqldb.lib.ArrayUtil.fillSequence:([I)V
         7: .line 151
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         8: goto 14
         9: .line 152
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.exprList:Lorg/hsqldb/lib/HsqlArrayList;
            iload 2 /* i */
            invokevirtual org.hsqldb.lib.HsqlArrayList.get:(I)Ljava/lang/Object;
            checkcast org.hsqldb.ExpressionOrderBy
            astore 3 /* sort */
        start local 3 // org.hsqldb.ExpressionOrderBy sort
        10: .line 154
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.sortDescending:[Z
            iload 2 /* i */
            aload 3 /* sort */
            invokevirtual org.hsqldb.ExpressionOrderBy.isDescending:()Z
            bastore
        11: .line 155
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.sortNullsLast:[Z
            iload 2 /* i */
            aload 3 /* sort */
            invokevirtual org.hsqldb.ExpressionOrderBy.isNullsLast:()Z
            bastore
        12: .line 156
            aload 0 /* this */
            dup
            getfield org.hsqldb.SortAndSlice.hasNullsLast:Z
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.sortNullsLast:[Z
            iload 2 /* i */
            baload
            ior
            putfield org.hsqldb.SortAndSlice.hasNullsLast:Z
        end local 3 // org.hsqldb.ExpressionOrderBy sort
        13: .line 151
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 2 /* i */
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.columnCount:I
            if_icmplt 9
        end local 2 // int i
        15: .line 158
            return
        end local 1 // int degree
        end local 0 // org.hsqldb.SortAndSlice this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0    this  Lorg/hsqldb/SortAndSlice;
            0   16     1  degree  I
            8   15     2       i  I
           10   13     3    sort  Lorg/hsqldb/ExpressionOrderBy;
    MethodParameters:
        Name  Flags
      degree  

  public void prepare(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.hsqldb.SortAndSlice this
        start local 1 // int startColumn
         0: .line 162
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.exprList:Lorg/hsqldb/lib/HsqlArrayList;
            invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
            putfield org.hsqldb.SortAndSlice.columnCount:I
         1: .line 164
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.columnCount:I
            ifne 3
         2: .line 165
            return
         3: .line 168
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.columnCount:I
            newarray 10
            putfield org.hsqldb.SortAndSlice.sortOrder:[I
         4: .line 169
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.columnCount:I
            newarray 4
            putfield org.hsqldb.SortAndSlice.sortDescending:[Z
         5: .line 170
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.columnCount:I
            newarray 4
            putfield org.hsqldb.SortAndSlice.sortNullsLast:[Z
         6: .line 172
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         7: goto 21
         8: .line 173
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.exprList:Lorg/hsqldb/lib/HsqlArrayList;
            iload 2 /* i */
            invokevirtual org.hsqldb.lib.HsqlArrayList.get:(I)Ljava/lang/Object;
            checkcast org.hsqldb.ExpressionOrderBy
            astore 3 /* sort */
        start local 3 // org.hsqldb.ExpressionOrderBy sort
         9: .line 175
            aload 3 /* sort */
            invokevirtual org.hsqldb.ExpressionOrderBy.getLeftNode:()Lorg/hsqldb/Expression;
            getfield org.hsqldb.Expression.queryTableColumnIndex:I
            iconst_m1
            if_icmpne 12
        10: .line 176
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.sortOrder:[I
            iload 2 /* i */
            iload 1 /* startColumn */
            iload 2 /* i */
            iadd
            iastore
        11: .line 177
            goto 13
        12: .line 178
      StackMap locals: org.hsqldb.ExpressionOrderBy
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.sortOrder:[I
            iload 2 /* i */
            aload 3 /* sort */
            invokevirtual org.hsqldb.ExpressionOrderBy.getLeftNode:()Lorg/hsqldb/Expression;
            getfield org.hsqldb.Expression.queryTableColumnIndex:I
            iastore
        13: .line 181
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.sortDescending:[Z
            iload 2 /* i */
            aload 3 /* sort */
            invokevirtual org.hsqldb.ExpressionOrderBy.isDescending:()Z
            bastore
        14: .line 182
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.sortNullsLast:[Z
            iload 2 /* i */
            aload 3 /* sort */
            invokevirtual org.hsqldb.ExpressionOrderBy.isNullsLast:()Z
            bastore
        15: .line 183
            aload 0 /* this */
            dup
            getfield org.hsqldb.SortAndSlice.hasNullsLast:Z
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.sortNullsLast:[Z
            iload 2 /* i */
            baload
            ior
            putfield org.hsqldb.SortAndSlice.hasNullsLast:Z
        16: .line 185
            aload 3 /* sort */
            getfield org.hsqldb.ExpressionOrderBy.collation:Lorg/hsqldb/types/Collation;
            ifnull 20
        17: .line 186
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.collations:[Lorg/hsqldb/types/Collation;
            ifnonnull 19
        18: .line 187
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.columnCount:I
            anewarray org.hsqldb.types.Collation
            putfield org.hsqldb.SortAndSlice.collations:[Lorg/hsqldb/types/Collation;
        19: .line 190
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.collations:[Lorg/hsqldb/types/Collation;
            iload 2 /* i */
            aload 3 /* sort */
            getfield org.hsqldb.ExpressionOrderBy.collation:Lorg/hsqldb/types/Collation;
            aastore
        end local 3 // org.hsqldb.ExpressionOrderBy sort
        20: .line 172
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 2 /* i */
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.columnCount:I
            if_icmplt 8
        end local 2 // int i
        22: .line 193
            return
        end local 1 // int startColumn
        end local 0 // org.hsqldb.SortAndSlice this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   23     0         this  Lorg/hsqldb/SortAndSlice;
            0   23     1  startColumn  I
            7   22     2            i  I
            9   20     3         sort  Lorg/hsqldb/ExpressionOrderBy;
    MethodParameters:
             Name  Flags
      startColumn  

  void setSortIndex(org.hsqldb.QuerySpecification);
    descriptor: (Lorg/hsqldb/QuerySpecification;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.hsqldb.SortAndSlice this
        start local 1 // org.hsqldb.QuerySpecification select
         0: .line 197
            aload 0 /* this */
            getstatic org.hsqldb.SortAndSlice.noSort:Lorg/hsqldb/SortAndSlice;
            if_acmpne 2
         1: .line 198
            return
         2: .line 201
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.isGenerated:Z
            ifeq 4
         3: .line 202
            return
         4: .line 205
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         5: goto 11
         6: .line 206
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.exprList:Lorg/hsqldb/lib/HsqlArrayList;
            iload 2 /* i */
            invokevirtual org.hsqldb.lib.HsqlArrayList.get:(I)Ljava/lang/Object;
            checkcast org.hsqldb.ExpressionOrderBy
            astore 3 /* sort */
        start local 3 // org.hsqldb.ExpressionOrderBy sort
         7: .line 207
            aload 3 /* sort */
            invokevirtual org.hsqldb.ExpressionOrderBy.getLeftNode:()Lorg/hsqldb/Expression;
            invokevirtual org.hsqldb.Expression.getDataType:()Lorg/hsqldb/types/Type;
            astore 4 /* dataType */
        start local 4 // org.hsqldb.types.Type dataType
         8: .line 209
            aload 4 /* dataType */
            invokevirtual org.hsqldb.types.Type.isArrayType:()Z
            ifne 9
            aload 4 /* dataType */
            invokevirtual org.hsqldb.types.Type.isLobType:()Z
            ifeq 10
         9: .line 210
      StackMap locals: org.hsqldb.ExpressionOrderBy org.hsqldb.types.Type
      StackMap stack:
            sipush 5534
            invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
            athrow
        end local 4 // org.hsqldb.types.Type dataType
        end local 3 // org.hsqldb.ExpressionOrderBy sort
        10: .line 205
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 2 /* i */
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.columnCount:I
            if_icmplt 6
        end local 2 // int i
        12: .line 214
            aload 1 /* select */
            ifnonnull 14
        13: .line 215
            return
        14: .line 218
      StackMap locals:
      StackMap stack:
            aload 1 /* select */
            getfield org.hsqldb.QuerySpecification.isDistinctSelect:Z
            ifne 16
            aload 1 /* select */
            getfield org.hsqldb.QuerySpecification.isGrouped:Z
            ifne 16
        15: .line 219
            aload 1 /* select */
            getfield org.hsqldb.QuerySpecification.isAggregated:Z
            ifeq 18
        16: .line 220
      StackMap locals:
      StackMap stack:
            aload 1 /* select */
            getfield org.hsqldb.QuerySpecification.isSimpleDistinct:Z
            ifne 18
        17: .line 221
            return
        18: .line 225
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.columnCount:I
            ifne 23
        19: .line 226
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.limitCondition:Lorg/hsqldb/ExpressionOp;
            ifnonnull 21
        20: .line 227
            return
        21: .line 230
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.hsqldb.SortAndSlice.skipFullResult:Z
        22: .line 232
            return
        23: .line 235
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.collations:[Lorg/hsqldb/types/Collation;
            ifnull 25
        24: .line 236
            return
        25: .line 239
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.columnCount:I
            newarray 10
            putfield org.hsqldb.SortAndSlice.colIndexes:[I
        26: .line 241
            iconst_0
            istore 2 /* isNullable */
        start local 2 // boolean isNullable
        27: .line 243
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        28: goto 38
        29: .line 244
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.exprList:Lorg/hsqldb/lib/HsqlArrayList;
            iload 3 /* i */
            invokevirtual org.hsqldb.lib.HsqlArrayList.get:(I)Ljava/lang/Object;
            checkcast org.hsqldb.Expression
            invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
            astore 4 /* e */
        start local 4 // org.hsqldb.Expression e
        30: .line 246
            aload 4 /* e */
            invokevirtual org.hsqldb.Expression.getType:()I
            iconst_2
            if_icmpeq 32
        31: .line 247
            return
        32: .line 250
      StackMap locals: org.hsqldb.Expression
      StackMap stack:
            aload 4 /* e */
            invokevirtual org.hsqldb.Expression.getRangeVariable:()Lorg/hsqldb/RangeVariable;
            aload 1 /* select */
            getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
            iconst_0
            aaload
            if_acmpeq 34
        33: .line 251
            return
        34: .line 254
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.colIndexes:[I
            iload 3 /* i */
            aload 4 /* e */
            getfield org.hsqldb.Expression.columnIndex:I
            iastore
        35: .line 256
            aload 4 /* e */
            invokevirtual org.hsqldb.Expression.getColumn:()Lorg/hsqldb/ColumnSchema;
            invokevirtual org.hsqldb.ColumnSchema.getNullability:()B
            ifeq 37
        36: .line 258
            iconst_1
            istore 2 /* isNullable */
        end local 4 // org.hsqldb.Expression e
        37: .line 243
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        38: iload 3 /* i */
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.columnCount:I
            if_icmplt 29
        end local 3 // int i
        39: .line 262
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.hasNullsLast:Z
            ifeq 41
            iload 2 /* isNullable */
            ifeq 41
        40: .line 263
            return
        41: .line 266
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.sortDescending:[Z
            invokestatic org.hsqldb.lib.ArrayUtil.countTrueElements:([Z)I
            istore 3 /* count */
        start local 3 // int count
        42: .line 268
            aload 0 /* this */
            iload 3 /* count */
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.columnCount:I
            if_icmpne 43
            iconst_1
            goto 44
      StackMap locals: org.hsqldb.SortAndSlice org.hsqldb.QuerySpecification int int
      StackMap stack: org.hsqldb.SortAndSlice
        43: iconst_0
      StackMap locals: org.hsqldb.SortAndSlice org.hsqldb.QuerySpecification int int
      StackMap stack: org.hsqldb.SortAndSlice int
        44: putfield org.hsqldb.SortAndSlice.allDescending:Z
        45: .line 270
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.allDescending:Z
            ifne 47
            iload 3 /* count */
            ifle 47
        46: .line 271
            return
        47: .line 274
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* select */
            getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
            iconst_0
            aaload
            invokevirtual org.hsqldb.RangeVariable.getTable:()Lorg/hsqldb/Table;
            putfield org.hsqldb.SortAndSlice.primaryTable:Lorg/hsqldb/Table;
        48: .line 275
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.primaryTable:Lorg/hsqldb/Table;
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.colIndexes:[I
            invokevirtual org.hsqldb.Table.getFullIndexForColumns:([I)Lorg/hsqldb/index/Index;
            putfield org.hsqldb.SortAndSlice.primaryTableIndex:Lorg/hsqldb/index/Index;
        49: .line 276
            return
        end local 3 // int count
        end local 2 // boolean isNullable
        end local 1 // org.hsqldb.QuerySpecification select
        end local 0 // org.hsqldb.SortAndSlice this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   50     0        this  Lorg/hsqldb/SortAndSlice;
            0   50     1      select  Lorg/hsqldb/QuerySpecification;
            5   12     2           i  I
            7   10     3        sort  Lorg/hsqldb/ExpressionOrderBy;
            8   10     4    dataType  Lorg/hsqldb/types/Type;
           27   50     2  isNullable  Z
           28   39     3           i  I
           30   37     4           e  Lorg/hsqldb/Expression;
           42   50     3       count  I
    MethodParameters:
        Name  Flags
      select  

  void setSortRange(org.hsqldb.QuerySpecification);
    descriptor: (Lorg/hsqldb/QuerySpecification;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.hsqldb.SortAndSlice this
        start local 1 // org.hsqldb.QuerySpecification select
         0: .line 280
            aload 0 /* this */
            getstatic org.hsqldb.SortAndSlice.noSort:Lorg/hsqldb/SortAndSlice;
            if_acmpne 2
         1: .line 281
            return
         2: .line 284
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.primaryTableIndex:Lorg/hsqldb/index/Index;
            ifnonnull 7
         3: .line 285
            aload 1 /* select */
            getfield org.hsqldb.QuerySpecification.isSimpleDistinct:Z
            ifeq 5
         4: .line 286
            aload 0 /* this */
            aload 1 /* select */
            invokevirtual org.hsqldb.SortAndSlice.setSortIndex:(Lorg/hsqldb/QuerySpecification;)V
         5: .line 289
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.primaryTableIndex:Lorg/hsqldb/index/Index;
            ifnonnull 7
         6: .line 290
            return
         7: .line 294
      StackMap locals:
      StackMap stack:
            aload 1 /* select */
            getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
            iconst_0
            aaload
            invokevirtual org.hsqldb.RangeVariable.getSortIndex:()Lorg/hsqldb/index/Index;
            astore 2 /* rangeIndex */
        start local 2 // org.hsqldb.index.Index rangeIndex
         8: .line 296
            aload 2 /* rangeIndex */
            ifnonnull 10
         9: .line 299
            return
        10: .line 302
      StackMap locals: org.hsqldb.index.Index
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.primaryTable:Lorg/hsqldb/Table;
            aload 1 /* select */
            getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
            iconst_0
            aaload
            getfield org.hsqldb.RangeVariable.rangeTable:Lorg/hsqldb/Table;
            if_acmpeq 12
        11: .line 303
            return
        12: .line 306
      StackMap locals:
      StackMap stack:
            aload 2 /* rangeIndex */
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.primaryTableIndex:Lorg/hsqldb/index/Index;
            if_acmpne 20
        13: .line 307
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.allDescending:Z
            ifeq 17
        14: .line 308
            aload 1 /* select */
            getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
            iconst_0
            aaload
            invokevirtual org.hsqldb.RangeVariable.reverseOrder:()Z
            istore 3 /* reversed */
        start local 3 // boolean reversed
        15: .line 310
            iload 3 /* reversed */
            ifne 17
        16: .line 311
            return
        end local 3 // boolean reversed
        17: .line 315
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.hsqldb.SortAndSlice.skipSort:Z
        18: .line 316
            aload 0 /* this */
            iconst_1
            putfield org.hsqldb.SortAndSlice.skipFullResult:Z
        19: .line 317
            goto 28
      StackMap locals:
      StackMap stack:
        20: aload 1 /* select */
            getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
            iconst_0
            aaload
            getfield org.hsqldb.RangeVariable.joinConditions:[Lorg/hsqldb/RangeVariable$RangeVariableConditions;
            iconst_0
            aaload
        21: .line 318
            invokevirtual org.hsqldb.RangeVariable$RangeVariableConditions.hasIndexCondition:()Z
            ifne 28
        22: .line 319
            aload 1 /* select */
            getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
            iconst_0
            aaload
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.primaryTableIndex:Lorg/hsqldb/index/Index;
        23: .line 320
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.allDescending:Z
        24: .line 319
            invokevirtual org.hsqldb.RangeVariable.setSortIndex:(Lorg/hsqldb/index/Index;Z)Z
        25: .line 320
            ifeq 28
        26: .line 321
            aload 0 /* this */
            iconst_1
            putfield org.hsqldb.SortAndSlice.skipSort:Z
        27: .line 322
            aload 0 /* this */
            iconst_1
            putfield org.hsqldb.SortAndSlice.skipFullResult:Z
        28: .line 325
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.hsqldb.index.Index rangeIndex
        end local 1 // org.hsqldb.QuerySpecification select
        end local 0 // org.hsqldb.SortAndSlice this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   29     0        this  Lorg/hsqldb/SortAndSlice;
            0   29     1      select  Lorg/hsqldb/QuerySpecification;
            8   29     2  rangeIndex  Lorg/hsqldb/index/Index;
           15   17     3    reversed  Z
    MethodParameters:
        Name  Flags
      select  

  public boolean prepareSpecial(org.hsqldb.Session, org.hsqldb.QuerySpecification);
    descriptor: (Lorg/hsqldb/Session;Lorg/hsqldb/QuerySpecification;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // org.hsqldb.SortAndSlice this
        start local 1 // org.hsqldb.Session session
        start local 2 // org.hsqldb.QuerySpecification select
         0: .line 329
            aload 2 /* select */
            getfield org.hsqldb.QuerySpecification.exprColumns:[Lorg/hsqldb/Expression;
            aload 2 /* select */
            getfield org.hsqldb.QuerySpecification.indexStartAggregates:I
            aaload
            astore 3 /* e */
        start local 3 // org.hsqldb.Expression e
         1: .line 330
            aload 3 /* e */
            invokevirtual org.hsqldb.Expression.getType:()I
            istore 4 /* opType */
        start local 4 // int opType
         2: .line 332
            aload 3 /* e */
            invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
            astore 3 /* e */
         3: .line 334
            aload 3 /* e */
            invokevirtual org.hsqldb.Expression.getType:()I
            iconst_2
            if_icmpeq 5
         4: .line 335
            iconst_0
            ireturn
         5: .line 338
      StackMap locals: org.hsqldb.Expression int
      StackMap stack:
            aload 3 /* e */
            invokevirtual org.hsqldb.Expression.getRangeVariable:()Lorg/hsqldb/RangeVariable;
            aload 2 /* select */
            getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
            iconst_0
            aaload
            if_acmpeq 7
         6: .line 339
            iconst_0
            ireturn
         7: .line 342
      StackMap locals:
      StackMap stack:
            aload 2 /* select */
            getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
            iconst_0
            aaload
            invokevirtual org.hsqldb.RangeVariable.getSortIndex:()Lorg/hsqldb/index/Index;
            astore 5 /* rangeIndex */
        start local 5 // org.hsqldb.index.Index rangeIndex
         8: .line 344
            aload 5 /* rangeIndex */
            ifnonnull 10
         9: .line 345
            iconst_0
            ireturn
        10: .line 348
      StackMap locals: org.hsqldb.index.Index
      StackMap stack:
            aload 2 /* select */
            getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
            iconst_0
            aaload
            invokevirtual org.hsqldb.RangeVariable.hasAnyTerminalCondition:()Z
            ifeq 12
        11: .line 349
            iconst_0
            ireturn
        12: .line 352
      StackMap locals:
      StackMap stack:
            aload 2 /* select */
            getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
            iconst_0
            aaload
            invokevirtual org.hsqldb.RangeVariable.hasSingleIndexCondition:()Z
            ifeq 19
        13: .line 353
            aload 5 /* rangeIndex */
            invokeinterface org.hsqldb.index.Index.getColumns:()[I
            astore 6 /* colIndexes */
        start local 6 // int[] colIndexes
        14: .line 355
            aload 6 /* colIndexes */
            iconst_0
            iaload
            aload 3 /* e */
            invokevirtual org.hsqldb.Expression.getColumnIndex:()I
            if_icmpeq 16
        15: .line 356
            iconst_0
            ireturn
        16: .line 359
      StackMap locals: int[]
      StackMap stack:
            iload 4 /* opType */
            bipush 77
            if_icmpne 33
        17: .line 360
            aload 2 /* select */
            getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
            iconst_0
            aaload
            invokevirtual org.hsqldb.RangeVariable.reverseOrder:()Z
            pop
        end local 6 // int[] colIndexes
        18: .line 362
            goto 33
      StackMap locals:
      StackMap stack:
        19: aload 2 /* select */
            getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
            iconst_0
            aaload
            invokevirtual org.hsqldb.RangeVariable.hasAnyIndexCondition:()Z
            ifeq 21
        20: .line 363
            iconst_0
            ireturn
        21: .line 365
      StackMap locals:
      StackMap stack:
            aload 2 /* select */
            getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
            iconst_0
            aaload
            invokevirtual org.hsqldb.RangeVariable.getTable:()Lorg/hsqldb/Table;
            astore 6 /* table */
        start local 6 // org.hsqldb.Table table
        22: .line 366
            aload 6 /* table */
            aload 1 /* session */
            aload 3 /* e */
            invokevirtual org.hsqldb.Expression.getColumnIndex:()I
            invokevirtual org.hsqldb.Table.getIndexForColumn:(Lorg/hsqldb/Session;I)Lorg/hsqldb/index/Index;
            astore 7 /* index */
        start local 7 // org.hsqldb.index.Index index
        23: .line 368
            aload 7 /* index */
            ifnonnull 25
        24: .line 369
            iconst_0
            ireturn
        25: .line 372
      StackMap locals: org.hsqldb.Table org.hsqldb.index.Index
      StackMap stack:
            iconst_1
            anewarray org.hsqldb.Expression
            dup
            iconst_0
        26: .line 373
            aload 3 /* e */
            invokestatic org.hsqldb.ExpressionLogical.newNotNullCondition:(Lorg/hsqldb/Expression;)Lorg/hsqldb/ExpressionLogical;
            aastore
        27: .line 372
            astore 8 /* conditions */
        start local 8 // org.hsqldb.Expression[] conditions
        28: .line 375
            aload 2 /* select */
            getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
            iconst_0
            aaload
            getfield org.hsqldb.RangeVariable.joinConditions:[Lorg/hsqldb/RangeVariable$RangeVariableConditions;
            iconst_0
            aaload
        29: .line 376
            aload 8 /* conditions */
            aload 7 /* index */
            iconst_1
        30: .line 375
            invokevirtual org.hsqldb.RangeVariable$RangeVariableConditions.addIndexCondition:([Lorg/hsqldb/Expression;Lorg/hsqldb/index/Index;I)V
        31: .line 378
            iload 4 /* opType */
            bipush 77
            if_icmpne 33
        32: .line 379
            aload 2 /* select */
            getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
            iconst_0
            aaload
            invokevirtual org.hsqldb.RangeVariable.reverseOrder:()Z
            pop
        end local 8 // org.hsqldb.Expression[] conditions
        end local 7 // org.hsqldb.index.Index index
        end local 6 // org.hsqldb.Table table
        33: .line 383
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.hsqldb.SortAndSlice.columnCount:I
        34: .line 384
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.columnCount:I
            newarray 10
            putfield org.hsqldb.SortAndSlice.sortOrder:[I
        35: .line 385
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.columnCount:I
            newarray 4
            putfield org.hsqldb.SortAndSlice.sortDescending:[Z
        36: .line 386
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.columnCount:I
            newarray 4
            putfield org.hsqldb.SortAndSlice.sortNullsLast:[Z
        37: .line 387
            aload 0 /* this */
            iconst_1
            putfield org.hsqldb.SortAndSlice.skipSort:Z
        38: .line 388
            aload 0 /* this */
            iconst_1
            putfield org.hsqldb.SortAndSlice.skipFullResult:Z
        39: .line 390
            iconst_1
            ireturn
        end local 5 // org.hsqldb.index.Index rangeIndex
        end local 4 // int opType
        end local 3 // org.hsqldb.Expression e
        end local 2 // org.hsqldb.QuerySpecification select
        end local 1 // org.hsqldb.Session session
        end local 0 // org.hsqldb.SortAndSlice this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   40     0        this  Lorg/hsqldb/SortAndSlice;
            0   40     1     session  Lorg/hsqldb/Session;
            0   40     2      select  Lorg/hsqldb/QuerySpecification;
            1   40     3           e  Lorg/hsqldb/Expression;
            2   40     4      opType  I
            8   40     5  rangeIndex  Lorg/hsqldb/index/Index;
           14   18     6  colIndexes  [I
           22   33     6       table  Lorg/hsqldb/Table;
           23   33     7       index  Lorg/hsqldb/index/Index;
           28   33     8  conditions  [Lorg/hsqldb/Expression;
    MethodParameters:
         Name  Flags
      session  
      select   

  int[] getLimits(org.hsqldb.Session, org.hsqldb.QueryExpression, int);
    descriptor: (Lorg/hsqldb/Session;Lorg/hsqldb/QueryExpression;I)[I
    flags: (0x0000) 
    Code:
      stack=4, locals=10, args_size=4
        start local 0 // org.hsqldb.SortAndSlice this
        start local 1 // org.hsqldb.Session session
        start local 2 // org.hsqldb.QueryExpression qe
        start local 3 // int maxRows
         0: .line 395
            aload 0 /* this */
            getstatic org.hsqldb.SortAndSlice.noSort:Lorg/hsqldb/SortAndSlice;
            if_acmpne 2
            iload 3 /* maxRows */
            ifne 2
         1: .line 396
            getstatic org.hsqldb.SortAndSlice.defaultLimits:[I
            areturn
         2: .line 399
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* skipRows */
        start local 4 // int skipRows
         3: .line 400
            ldc 2147483647
            istore 5 /* limitRows */
        start local 5 // int limitRows
         4: .line 401
            ldc 2147483647
            istore 6 /* limitFetch */
        start local 6 // int limitFetch
         5: .line 402
            iconst_0
            istore 7 /* hasLimits */
        start local 7 // boolean hasLimits
         6: .line 404
            aload 0 /* this */
            invokevirtual org.hsqldb.SortAndSlice.hasLimit:()Z
            ifeq 26
         7: .line 406
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.limitCondition:Lorg/hsqldb/ExpressionOp;
            invokevirtual org.hsqldb.ExpressionOp.getLeftNode:()Lorg/hsqldb/Expression;
            aload 1 /* session */
            invokevirtual org.hsqldb.Expression.getValue:(Lorg/hsqldb/Session;)Ljava/lang/Object;
            checkcast java.lang.Integer
         8: .line 405
            astore 8 /* value */
        start local 8 // java.lang.Integer value
         9: .line 408
            aload 8 /* value */
            ifnull 10
            aload 8 /* value */
            invokevirtual java.lang.Integer.intValue:()I
            ifge 11
        10: .line 409
      StackMap locals: org.hsqldb.SortAndSlice org.hsqldb.Session org.hsqldb.QueryExpression int int int int int java.lang.Integer
      StackMap stack:
            sipush 3453
            invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
            athrow
        11: .line 412
      StackMap locals:
      StackMap stack:
            aload 8 /* value */
            invokevirtual java.lang.Integer.intValue:()I
            istore 4 /* skipRows */
        12: .line 413
            iload 4 /* skipRows */
            ifeq 13
            iconst_1
            goto 14
      StackMap locals:
      StackMap stack:
        13: iconst_0
      StackMap locals:
      StackMap stack: int
        14: istore 7 /* hasLimits */
        15: .line 415
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.limitCondition:Lorg/hsqldb/ExpressionOp;
            invokevirtual org.hsqldb.ExpressionOp.getRightNode:()Lorg/hsqldb/Expression;
            ifnull 26
        16: .line 417
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.limitCondition:Lorg/hsqldb/ExpressionOp;
            invokevirtual org.hsqldb.ExpressionOp.getRightNode:()Lorg/hsqldb/Expression;
            aload 1 /* session */
            invokevirtual org.hsqldb.Expression.getValue:(Lorg/hsqldb/Session;)Ljava/lang/Object;
            checkcast java.lang.Integer
        17: .line 416
            astore 8 /* value */
        18: .line 419
            aload 8 /* value */
            ifnull 20
            aload 8 /* value */
            invokevirtual java.lang.Integer.intValue:()I
            iflt 20
        19: .line 420
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.strictLimit:Z
            ifeq 21
            aload 8 /* value */
            invokevirtual java.lang.Integer.intValue:()I
            ifne 21
        20: .line 421
      StackMap locals:
      StackMap stack:
            sipush 3452
            invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
            athrow
        21: .line 424
      StackMap locals:
      StackMap stack:
            aload 8 /* value */
            invokevirtual java.lang.Integer.intValue:()I
            ifne 24
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.zeroLimit:Z
            ifne 24
        22: .line 425
            ldc 2147483647
            istore 5 /* limitRows */
        23: .line 426
            goto 26
        24: .line 427
      StackMap locals:
      StackMap stack:
            aload 8 /* value */
            invokevirtual java.lang.Integer.intValue:()I
            istore 5 /* limitRows */
        25: .line 428
            iconst_1
            istore 7 /* hasLimits */
        end local 8 // java.lang.Integer value
        26: .line 433
      StackMap locals:
      StackMap stack:
            iload 3 /* maxRows */
            ifeq 30
        27: .line 434
            iload 3 /* maxRows */
            iload 5 /* limitRows */
            if_icmpge 29
        28: .line 435
            iload 3 /* maxRows */
            istore 5 /* limitRows */
        29: .line 438
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 7 /* hasLimits */
        30: .line 441
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 8 /* simpleLimit */
        start local 8 // boolean simpleLimit
        31: .line 443
            aload 2 /* qe */
            instanceof org.hsqldb.QuerySpecification
            ifeq 37
        32: .line 444
            aload 2 /* qe */
            checkcast org.hsqldb.QuerySpecification
            astore 9 /* select */
        start local 9 // org.hsqldb.QuerySpecification select
        33: .line 446
            aload 9 /* select */
            getfield org.hsqldb.QuerySpecification.isDistinctSelect:Z
            ifne 35
            aload 9 /* select */
            getfield org.hsqldb.QuerySpecification.isGrouped:Z
            ifne 35
        34: .line 447
            iconst_1
            istore 8 /* simpleLimit */
        35: .line 450
      StackMap locals: int org.hsqldb.QuerySpecification
      StackMap stack:
            aload 9 /* select */
            getfield org.hsqldb.QuerySpecification.isSimpleDistinct:Z
            ifeq 37
        36: .line 451
            iconst_1
            istore 8 /* simpleLimit */
        end local 9 // org.hsqldb.QuerySpecification select
        37: .line 455
      StackMap locals:
      StackMap stack:
            iload 7 /* hasLimits */
            ifeq 45
        38: .line 456
            iload 8 /* simpleLimit */
            ifeq 42
            aload 0 /* this */
            invokevirtual org.hsqldb.SortAndSlice.hasOrder:()Z
            ifeq 39
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.skipSort:Z
            ifeq 42
        39: .line 457
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hsqldb.SortAndSlice.hasLimit:()Z
            ifeq 40
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.skipFullResult:Z
            ifeq 42
        40: .line 458
      StackMap locals:
      StackMap stack:
            iload 6 /* limitFetch */
            iload 4 /* skipRows */
            isub
            iload 5 /* limitRows */
            if_icmple 42
        41: .line 459
            iload 4 /* skipRows */
            iload 5 /* limitRows */
            iadd
            istore 6 /* limitFetch */
        42: .line 463
      StackMap locals:
      StackMap stack:
            iconst_3
            newarray 10
            dup
            iconst_0
        43: .line 464
            iload 4 /* skipRows */
            iastore
            dup
            iconst_1
            iload 5 /* limitRows */
            iastore
            dup
            iconst_2
            iload 6 /* limitFetch */
            iastore
        44: .line 463
            areturn
        45: .line 468
      StackMap locals:
      StackMap stack:
            getstatic org.hsqldb.SortAndSlice.defaultLimits:[I
            areturn
        end local 8 // boolean simpleLimit
        end local 7 // boolean hasLimits
        end local 6 // int limitFetch
        end local 5 // int limitRows
        end local 4 // int skipRows
        end local 3 // int maxRows
        end local 2 // org.hsqldb.QueryExpression qe
        end local 1 // org.hsqldb.Session session
        end local 0 // org.hsqldb.SortAndSlice this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   46     0         this  Lorg/hsqldb/SortAndSlice;
            0   46     1      session  Lorg/hsqldb/Session;
            0   46     2           qe  Lorg/hsqldb/QueryExpression;
            0   46     3      maxRows  I
            3   46     4     skipRows  I
            4   46     5    limitRows  I
            5   46     6   limitFetch  I
            6   46     7    hasLimits  Z
            9   26     8        value  Ljava/lang/Integer;
           31   46     8  simpleLimit  Z
           33   37     9       select  Lorg/hsqldb/QuerySpecification;
    MethodParameters:
         Name  Flags
      session  
      qe       
      maxRows  

  public void setIndex(org.hsqldb.Session, org.hsqldb.TableBase);
    descriptor: (Lorg/hsqldb/Session;Lorg/hsqldb/TableBase;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.hsqldb.SortAndSlice this
        start local 1 // org.hsqldb.Session session
        start local 2 // org.hsqldb.TableBase table
         0: .line 472
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* session */
            aload 2 /* table */
            invokevirtual org.hsqldb.SortAndSlice.getNewIndex:(Lorg/hsqldb/Session;Lorg/hsqldb/TableBase;)Lorg/hsqldb/index/Index;
            putfield org.hsqldb.SortAndSlice.index:Lorg/hsqldb/index/Index;
         1: .line 473
            return
        end local 2 // org.hsqldb.TableBase table
        end local 1 // org.hsqldb.Session session
        end local 0 // org.hsqldb.SortAndSlice this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/hsqldb/SortAndSlice;
            0    2     1  session  Lorg/hsqldb/Session;
            0    2     2    table  Lorg/hsqldb/TableBase;
    MethodParameters:
         Name  Flags
      session  
      table    

  public org.hsqldb.index.Index getNewIndex(org.hsqldb.Session, org.hsqldb.TableBase);
    descriptor: (Lorg/hsqldb/Session;Lorg/hsqldb/TableBase;)Lorg/hsqldb/index/Index;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=6, args_size=3
        start local 0 // org.hsqldb.SortAndSlice this
        start local 1 // org.hsqldb.Session session
        start local 2 // org.hsqldb.TableBase table
         0: .line 477
            aload 0 /* this */
            invokevirtual org.hsqldb.SortAndSlice.hasOrder:()Z
            ifeq 18
         1: .line 478
            aload 2 /* table */
            aload 1 /* session */
            aconst_null
         2: .line 479
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.sortOrder:[I
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.sortDescending:[Z
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.sortNullsLast:[Z
            iconst_0
            iconst_0
            iconst_0
         3: .line 478
            invokevirtual org.hsqldb.TableBase.createAndAddIndexStructure:(Lorg/hsqldb/Session;Lorg/hsqldb/HsqlNameManager$HsqlName;[I[Z[ZZZZ)Lorg/hsqldb/index/Index;
            astore 3 /* orderIndex */
        start local 3 // org.hsqldb.index.Index orderIndex
         4: .line 481
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.collations:[Lorg/hsqldb/types/Collation;
            ifnull 17
         5: .line 482
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: goto 16
         7: .line 483
      StackMap locals: org.hsqldb.index.Index int
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.collations:[Lorg/hsqldb/types/Collation;
            iload 4 /* i */
            aaload
            ifnull 15
         8: .line 484
            aload 3 /* orderIndex */
            invokeinterface org.hsqldb.index.Index.getColumnTypes:()[Lorg/hsqldb/types/Type;
            iload 4 /* i */
            aaload
            astore 5 /* type */
        start local 5 // org.hsqldb.types.Type type
         9: .line 486
            aload 5 /* type */
            getfield org.hsqldb.types.Type.typeCode:I
        10: .line 487
            aload 5 /* type */
            invokevirtual org.hsqldb.types.Type.getCharacterSet:()Lorg/hsqldb/types/Charset;
        11: .line 488
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.collations:[Lorg/hsqldb/types/Collation;
            iload 4 /* i */
            aaload
            aload 5 /* type */
            getfield org.hsqldb.types.Type.precision:J
        12: .line 489
            aload 5 /* type */
            getfield org.hsqldb.types.Type.scale:I
        13: .line 486
            invokestatic org.hsqldb.types.Type.getType:(ILorg/hsqldb/types/Charset;Lorg/hsqldb/types/Collation;JI)Lorg/hsqldb/types/Type;
            astore 5 /* type */
        14: .line 490
            aload 3 /* orderIndex */
            invokeinterface org.hsqldb.index.Index.getColumnTypes:()[Lorg/hsqldb/types/Type;
            iload 4 /* i */
            aload 5 /* type */
            aastore
        end local 5 // org.hsqldb.types.Type type
        15: .line 482
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 4 /* i */
            aload 0 /* this */
            getfield org.hsqldb.SortAndSlice.columnCount:I
            if_icmplt 7
        end local 4 // int i
        17: .line 495
      StackMap locals:
      StackMap stack:
            aload 3 /* orderIndex */
            areturn
        end local 3 // org.hsqldb.index.Index orderIndex
        18: .line 498
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // org.hsqldb.TableBase table
        end local 1 // org.hsqldb.Session session
        end local 0 // org.hsqldb.SortAndSlice this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Lorg/hsqldb/SortAndSlice;
            0   19     1     session  Lorg/hsqldb/Session;
            0   19     2       table  Lorg/hsqldb/TableBase;
            4   18     3  orderIndex  Lorg/hsqldb/index/Index;
            6   17     4           i  I
            9   15     5        type  Lorg/hsqldb/types/Type;
    MethodParameters:
         Name  Flags
      session  
      table    
}
SourceFile: "SortAndSlice.java"
InnerClasses:
  public final HsqlName = org.hsqldb.HsqlNameManager$HsqlName of org.hsqldb.HsqlNameManager
  public RangeVariableConditions = org.hsqldb.RangeVariable$RangeVariableConditions of org.hsqldb.RangeVariable