public class org.h2.index.PageBtreeIndex extends org.h2.index.PageIndex
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.index.PageBtreeIndex
  super_class: org.h2.index.PageIndex
{
  private static int memoryChangeRequired;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private final org.h2.store.PageStore store;
    descriptor: Lorg/h2/store/PageStore;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.h2.table.PageStoreTable tableData;
    descriptor: Lorg/h2/table/PageStoreTable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean needRebuild;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private long rowCount;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

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

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

  public void <init>(org.h2.table.PageStoreTable, int, java.lang.String, org.h2.table.IndexColumn[], org.h2.index.IndexType, boolean, org.h2.engine.Session);
    descriptor: (Lorg/h2/table/PageStoreTable;ILjava/lang/String;[Lorg/h2/table/IndexColumn;Lorg/h2/index/IndexType;ZLorg/h2/engine/Session;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=8
        start local 0 // org.h2.index.PageBtreeIndex this
        start local 1 // org.h2.table.PageStoreTable table
        start local 2 // int id
        start local 3 // java.lang.String indexName
        start local 4 // org.h2.table.IndexColumn[] columns
        start local 5 // org.h2.index.IndexType indexType
        start local 6 // boolean create
        start local 7 // org.h2.engine.Session session
         0: .line 46
            aload 0 /* this */
            aload 1 /* table */
            iload 2 /* id */
            aload 3 /* indexName */
            aload 4 /* columns */
            aload 5 /* indexType */
            invokespecial org.h2.index.PageIndex.<init>:(Lorg/h2/table/Table;ILjava/lang/String;[Lorg/h2/table/IndexColumn;Lorg/h2/index/IndexType;)V
         1: .line 47
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.isStarting:()Z
            ifne 3
            iload 6 /* create */
            ifeq 3
         2: .line 48
            aload 4 /* columns */
            invokestatic org.h2.index.PageBtreeIndex.checkIndexColumnTypes:([Lorg/h2/table/IndexColumn;)V
         3: .line 52
      StackMap locals: org.h2.index.PageBtreeIndex org.h2.table.PageStoreTable int java.lang.String org.h2.table.IndexColumn[] org.h2.index.IndexType int org.h2.engine.Session
      StackMap stack:
            aload 0 /* this */
            aload 1 /* table */
            putfield org.h2.index.PageBtreeIndex.tableData:Lorg/h2/table/PageStoreTable;
         4: .line 53
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.isPersistent:()Z
            ifeq 5
            iload 2 /* id */
            ifge 6
         5: .line 54
      StackMap locals:
      StackMap stack:
            aload 3 /* indexName */
            invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         6: .line 56
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getPageStore:()Lorg/h2/store/PageStore;
            putfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
         7: .line 57
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            aload 0 /* this */
            invokevirtual org.h2.store.PageStore.addIndex:(Lorg/h2/index/PageIndex;)V
         8: .line 58
            iload 6 /* create */
            ifeq 15
         9: .line 60
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.allocatePage:()I
            putfield org.h2.index.PageBtreeIndex.rootPageId:I
        10: .line 64
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            aload 0 /* this */
            aload 7 /* session */
            invokevirtual org.h2.store.PageStore.addMeta:(Lorg/h2/index/PageIndex;Lorg/h2/engine/Session;)V
        11: .line 65
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.rootPageId:I
            iconst_0
            invokestatic org.h2.index.PageBtreeLeaf.create:(Lorg/h2/index/PageBtreeIndex;II)Lorg/h2/index/PageBtreeLeaf;
            astore 8 /* root */
        start local 8 // org.h2.index.PageBtreeLeaf root
        12: .line 66
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            aload 8 /* root */
            aconst_null
            invokevirtual org.h2.store.PageStore.logUndo:(Lorg/h2/store/Page;Lorg/h2/store/Data;)V
        13: .line 67
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            aload 8 /* root */
            invokevirtual org.h2.store.PageStore.update:(Lorg/h2/store/Page;)V
        end local 8 // org.h2.index.PageBtreeLeaf root
        14: .line 68
            goto 18
        15: .line 69
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            iload 2 /* id */
            invokevirtual org.h2.store.PageStore.getRootPageId:(I)I
            putfield org.h2.index.PageBtreeIndex.rootPageId:I
        16: .line 70
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.rootPageId:I
            invokevirtual org.h2.index.PageBtreeIndex.getPage:(I)Lorg/h2/index/PageBtree;
            astore 8 /* root */
        start local 8 // org.h2.index.PageBtree root
        17: .line 71
            aload 0 /* this */
            aload 8 /* root */
            invokevirtual org.h2.index.PageBtree.getRowCount:()I
            i2l
            putfield org.h2.index.PageBtreeIndex.rowCount:J
        end local 8 // org.h2.index.PageBtree root
        18: .line 73
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 6 /* create */
            ifne 20
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.rowCount:J
            lconst_0
            lcmp
            ifne 19
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.isRecoveryRunning:()Z
            ifne 20
      StackMap locals:
      StackMap stack: org.h2.index.PageBtreeIndex
        19: iconst_0
            goto 21
      StackMap locals:
      StackMap stack: org.h2.index.PageBtreeIndex
        20: iconst_1
      StackMap locals: org.h2.index.PageBtreeIndex org.h2.table.PageStoreTable int java.lang.String org.h2.table.IndexColumn[] org.h2.index.IndexType int org.h2.engine.Session
      StackMap stack: org.h2.index.PageBtreeIndex int
        21: putfield org.h2.index.PageBtreeIndex.needRebuild:Z
        22: .line 74
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 24
        23: .line 75
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.trace:Lorg/h2/message/Trace;
            ldc "opened {0} rows: {1}"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.h2.index.PageBtreeIndex.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.rowCount:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
        24: .line 77
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            sipush 184
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.getPageSize:()I
            iadd
            iconst_2
            ishr
            putfield org.h2.index.PageBtreeIndex.memoryPerPage:I
        25: .line 78
            return
        end local 7 // org.h2.engine.Session session
        end local 6 // boolean create
        end local 5 // org.h2.index.IndexType indexType
        end local 4 // org.h2.table.IndexColumn[] columns
        end local 3 // java.lang.String indexName
        end local 2 // int id
        end local 1 // org.h2.table.PageStoreTable table
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   26     0       this  Lorg/h2/index/PageBtreeIndex;
            0   26     1      table  Lorg/h2/table/PageStoreTable;
            0   26     2         id  I
            0   26     3  indexName  Ljava/lang/String;
            0   26     4    columns  [Lorg/h2/table/IndexColumn;
            0   26     5  indexType  Lorg/h2/index/IndexType;
            0   26     6     create  Z
            0   26     7    session  Lorg/h2/engine/Session;
           12   14     8       root  Lorg/h2/index/PageBtreeLeaf;
           17   18     8       root  Lorg/h2/index/PageBtree;
    MethodParameters:
           Name  Flags
      table      
      id         
      indexName  
      columns    
      indexType  
      create     
      session    

  public void add(org.h2.engine.Session, org.h2.result.Row);
    descriptor: (Lorg/h2/engine/Session;Lorg/h2/result/Row;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // org.h2.index.PageBtreeIndex this
        start local 1 // org.h2.engine.Session session
        start local 2 // org.h2.result.Row row
         0: .line 82
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 2
         1: .line 83
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.trace:Lorg/h2/message/Trace;
            ldc "{0} add {1}"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.h2.index.PageBtreeIndex.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 2 /* row */
            aastore
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
         2: .line 86
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* row */
            invokevirtual org.h2.index.PageBtreeIndex.getSearchRow:(Lorg/h2/result/Row;)Lorg/h2/result/SearchRow;
            astore 3 /* newRow */
        start local 3 // org.h2.result.SearchRow newRow
         3: .line 88
            aload 0 /* this */
            aload 3 /* newRow */
            invokevirtual org.h2.index.PageBtreeIndex.addRow:(Lorg/h2/result/SearchRow;)V
         4: .line 89
            goto 8
      StackMap locals: org.h2.index.PageBtreeIndex org.h2.engine.Session org.h2.result.Row org.h2.result.SearchRow
      StackMap stack: java.lang.Throwable
         5: astore 4
         6: .line 90
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.incrementChangeCount:()V
         7: .line 91
            aload 4
            athrow
         8: .line 90
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.incrementChangeCount:()V
         9: .line 92
            return
        end local 3 // org.h2.result.SearchRow newRow
        end local 2 // org.h2.result.Row row
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lorg/h2/index/PageBtreeIndex;
            0   10     1  session  Lorg/h2/engine/Session;
            0   10     2      row  Lorg/h2/result/Row;
            3   10     3   newRow  Lorg/h2/result/SearchRow;
      Exception table:
        from    to  target  type
           3     5       5  any
    MethodParameters:
         Name  Flags
      session  
      row      

  private void addRow(org.h2.result.SearchRow);
    descriptor: (Lorg/h2/result/SearchRow;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // org.h2.index.PageBtreeIndex this
        start local 1 // org.h2.result.SearchRow newRow
         0: .line 96
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.rootPageId:I
            invokevirtual org.h2.index.PageBtreeIndex.getPage:(I)Lorg/h2/index/PageBtree;
            astore 2 /* root */
        start local 2 // org.h2.index.PageBtree root
         1: .line 97
            aload 2 /* root */
            aload 1 /* newRow */
            invokevirtual org.h2.index.PageBtree.addRowTry:(Lorg/h2/result/SearchRow;)I
            istore 3 /* splitPoint */
        start local 3 // int splitPoint
         2: .line 98
            iload 3 /* splitPoint */
            iconst_m1
            if_icmpne 4
         3: .line 99
            goto 24
         4: .line 101
      StackMap locals: org.h2.index.PageBtree int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 6
         5: .line 102
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.trace:Lorg/h2/message/Trace;
            ldc "split {0}"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 3 /* splitPoint */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 104
      StackMap locals:
      StackMap stack:
            aload 2 /* root */
            iload 3 /* splitPoint */
            iconst_1
            isub
            invokevirtual org.h2.index.PageBtree.getRow:(I)Lorg/h2/result/SearchRow;
            astore 4 /* pivot */
        start local 4 // org.h2.result.SearchRow pivot
         7: .line 105
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            aload 2 /* root */
            aload 2 /* root */
            getfield org.h2.index.PageBtree.data:Lorg/h2/store/Data;
            invokevirtual org.h2.store.PageStore.logUndo:(Lorg/h2/store/Page;Lorg/h2/store/Data;)V
         8: .line 106
            aload 2 /* root */
            astore 5 /* page1 */
        start local 5 // org.h2.index.PageBtree page1
         9: .line 107
            aload 2 /* root */
            iload 3 /* splitPoint */
            invokevirtual org.h2.index.PageBtree.split:(I)Lorg/h2/index/PageBtree;
            astore 6 /* page2 */
        start local 6 // org.h2.index.PageBtree page2
        10: .line 108
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            aload 6 /* page2 */
            aconst_null
            invokevirtual org.h2.store.PageStore.logUndo:(Lorg/h2/store/Page;Lorg/h2/store/Data;)V
        11: .line 109
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.allocatePage:()I
            istore 7 /* id */
        start local 7 // int id
        12: .line 110
            aload 5 /* page1 */
            iload 7 /* id */
            invokevirtual org.h2.index.PageBtree.setPageId:(I)V
        13: .line 111
            aload 5 /* page1 */
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.rootPageId:I
            invokevirtual org.h2.index.PageBtree.setParentPageId:(I)V
        14: .line 112
            aload 6 /* page2 */
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.rootPageId:I
            invokevirtual org.h2.index.PageBtree.setParentPageId:(I)V
        15: .line 114
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.rootPageId:I
            iconst_0
        16: .line 113
            invokestatic org.h2.index.PageBtreeNode.create:(Lorg/h2/index/PageBtreeIndex;II)Lorg/h2/index/PageBtreeNode;
            astore 8 /* newRoot */
        start local 8 // org.h2.index.PageBtreeNode newRoot
        17: .line 115
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            aload 8 /* newRoot */
            aconst_null
            invokevirtual org.h2.store.PageStore.logUndo:(Lorg/h2/store/Page;Lorg/h2/store/Data;)V
        18: .line 116
            aload 8 /* newRoot */
            aload 5 /* page1 */
            aload 4 /* pivot */
            aload 6 /* page2 */
            invokevirtual org.h2.index.PageBtreeNode.init:(Lorg/h2/index/PageBtree;Lorg/h2/result/SearchRow;Lorg/h2/index/PageBtree;)V
        19: .line 117
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            aload 5 /* page1 */
            invokevirtual org.h2.store.PageStore.update:(Lorg/h2/store/Page;)V
        20: .line 118
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            aload 6 /* page2 */
            invokevirtual org.h2.store.PageStore.update:(Lorg/h2/store/Page;)V
        21: .line 119
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            aload 8 /* newRoot */
            invokevirtual org.h2.store.PageStore.update:(Lorg/h2/store/Page;)V
        22: .line 120
            aload 8 /* newRoot */
            astore 2
        end local 8 // org.h2.index.PageBtreeNode newRoot
        end local 7 // int id
        end local 6 // org.h2.index.PageBtree page2
        end local 5 // org.h2.index.PageBtree page1
        end local 4 // org.h2.result.SearchRow pivot
        end local 3 // int splitPoint
        end local 2 // org.h2.index.PageBtree root
        23: .line 95
            goto 0
        24: .line 122
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.index.PageBtreeIndex.invalidateRowCount:()V
        25: .line 123
            aload 0 /* this */
            dup
            getfield org.h2.index.PageBtreeIndex.rowCount:J
            lconst_1
            ladd
            putfield org.h2.index.PageBtreeIndex.rowCount:J
        26: .line 124
            return
        end local 1 // org.h2.result.SearchRow newRow
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   27     0        this  Lorg/h2/index/PageBtreeIndex;
            0   27     1      newRow  Lorg/h2/result/SearchRow;
            1   23     2        root  Lorg/h2/index/PageBtree;
            2   23     3  splitPoint  I
            7   23     4       pivot  Lorg/h2/result/SearchRow;
            9   23     5       page1  Lorg/h2/index/PageBtree;
           10   23     6       page2  Lorg/h2/index/PageBtree;
           12   23     7          id  I
           17   23     8     newRoot  Lorg/h2/index/PageBtreeNode;
    MethodParameters:
        Name  Flags
      newRow  

  private org.h2.result.SearchRow getSearchRow(org.h2.result.Row);
    descriptor: (Lorg/h2/result/Row;)Lorg/h2/result/SearchRow;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // org.h2.index.PageBtreeIndex this
        start local 1 // org.h2.result.Row row
         0: .line 133
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.table:Lorg/h2/table/Table;
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.columns:[Lorg/h2/table/Column;
            arraylength
            iconst_1
            if_icmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack: org.h2.table.Table
         1: iconst_0
      StackMap locals: org.h2.index.PageBtreeIndex org.h2.result.Row
      StackMap stack: org.h2.table.Table int
         2: invokevirtual org.h2.table.Table.getTemplateSimpleRow:(Z)Lorg/h2/result/SearchRow;
            astore 2 /* r */
        start local 2 // org.h2.result.SearchRow r
         3: .line 134
            aload 2 /* r */
            aload 1 /* row */
            invokeinterface org.h2.result.SearchRow.setKey:(Lorg/h2/result/SearchRow;)V
         4: .line 135
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.columns:[Lorg/h2/table/Column;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 9
      StackMap locals: org.h2.index.PageBtreeIndex org.h2.result.Row org.h2.result.SearchRow top int int org.h2.table.Column[]
      StackMap stack:
         5: aload 6
            iload 4
            aaload
            astore 3 /* c */
        start local 3 // org.h2.table.Column c
         6: .line 136
            aload 3 /* c */
            invokevirtual org.h2.table.Column.getColumnId:()I
            istore 7 /* idx */
        start local 7 // int idx
         7: .line 137
            aload 2 /* r */
            iload 7 /* idx */
            aload 1 /* row */
            iload 7 /* idx */
            invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
            invokeinterface org.h2.result.SearchRow.setValue:(ILorg/h2/value/Value;)V
        end local 7 // int idx
        end local 3 // org.h2.table.Column c
         8: .line 135
            iinc 4 1
      StackMap locals:
      StackMap stack:
         9: iload 4
            iload 5
            if_icmplt 5
        10: .line 139
            aload 2 /* r */
            areturn
        end local 2 // org.h2.result.SearchRow r
        end local 1 // org.h2.result.Row row
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/h2/index/PageBtreeIndex;
            0   11     1   row  Lorg/h2/result/Row;
            3   11     2     r  Lorg/h2/result/SearchRow;
            6    8     3     c  Lorg/h2/table/Column;
            7    8     7   idx  I
    MethodParameters:
      Name  Flags
      row   

  org.h2.index.PageBtree getPage(int);
    descriptor: (I)Lorg/h2/index/PageBtree;
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.h2.index.PageBtreeIndex this
        start local 1 // int id
         0: .line 149
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            iload 1 /* id */
            invokevirtual org.h2.store.PageStore.getPage:(I)Lorg/h2/store/Page;
            astore 2 /* p */
        start local 2 // org.h2.store.Page p
         1: .line 150
            aload 2 /* p */
            ifnonnull 6
         2: .line 151
            aload 0 /* this */
            iload 1 /* id */
            iconst_0
            invokestatic org.h2.index.PageBtreeLeaf.create:(Lorg/h2/index/PageBtreeIndex;II)Lorg/h2/index/PageBtreeLeaf;
            astore 3 /* empty */
        start local 3 // org.h2.index.PageBtreeLeaf empty
         3: .line 153
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            aload 3 /* empty */
            aconst_null
            invokevirtual org.h2.store.PageStore.logUndo:(Lorg/h2/store/Page;Lorg/h2/store/Data;)V
         4: .line 154
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            aload 3 /* empty */
            invokevirtual org.h2.store.PageStore.update:(Lorg/h2/store/Page;)V
         5: .line 155
            aload 3 /* empty */
            areturn
        end local 3 // org.h2.index.PageBtreeLeaf empty
         6: .line 156
      StackMap locals: org.h2.store.Page
      StackMap stack:
            aload 2 /* p */
            instanceof org.h2.index.PageBtree
            ifne 8
         7: .line 157
            ldc 90030
            aload 2 /* p */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
         8: .line 159
      StackMap locals:
      StackMap stack:
            aload 2 /* p */
            checkcast org.h2.index.PageBtree
            areturn
        end local 2 // org.h2.store.Page p
        end local 1 // int id
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lorg/h2/index/PageBtreeIndex;
            0    9     1     id  I
            1    9     2      p  Lorg/h2/store/Page;
            3    6     3  empty  Lorg/h2/index/PageBtreeLeaf;
    MethodParameters:
      Name  Flags
      id    

  public boolean canGetFirstOrLast();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.index.PageBtreeIndex this
         0: .line 164
            iconst_1
            ireturn
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/index/PageBtreeIndex;

  public org.h2.index.Cursor findNext(org.h2.engine.Session, org.h2.result.SearchRow, org.h2.result.SearchRow);
    descriptor: (Lorg/h2/engine/Session;Lorg/h2/result/SearchRow;Lorg/h2/result/SearchRow;)Lorg/h2/index/Cursor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.h2.index.PageBtreeIndex this
        start local 1 // org.h2.engine.Session session
        start local 2 // org.h2.result.SearchRow first
        start local 3 // org.h2.result.SearchRow last
         0: .line 169
            aload 0 /* this */
            aload 1 /* session */
            aload 2 /* first */
            iconst_1
            aload 3 /* last */
            invokevirtual org.h2.index.PageBtreeIndex.find:(Lorg/h2/engine/Session;Lorg/h2/result/SearchRow;ZLorg/h2/result/SearchRow;)Lorg/h2/index/Cursor;
            areturn
        end local 3 // org.h2.result.SearchRow last
        end local 2 // org.h2.result.SearchRow first
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/h2/index/PageBtreeIndex;
            0    1     1  session  Lorg/h2/engine/Session;
            0    1     2    first  Lorg/h2/result/SearchRow;
            0    1     3     last  Lorg/h2/result/SearchRow;
    MethodParameters:
         Name  Flags
      session  
      first    
      last     

  public org.h2.index.Cursor find(org.h2.engine.Session, org.h2.result.SearchRow, org.h2.result.SearchRow);
    descriptor: (Lorg/h2/engine/Session;Lorg/h2/result/SearchRow;Lorg/h2/result/SearchRow;)Lorg/h2/index/Cursor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.h2.index.PageBtreeIndex this
        start local 1 // org.h2.engine.Session session
        start local 2 // org.h2.result.SearchRow first
        start local 3 // org.h2.result.SearchRow last
         0: .line 174
            aload 0 /* this */
            aload 1 /* session */
            aload 2 /* first */
            iconst_0
            aload 3 /* last */
            invokevirtual org.h2.index.PageBtreeIndex.find:(Lorg/h2/engine/Session;Lorg/h2/result/SearchRow;ZLorg/h2/result/SearchRow;)Lorg/h2/index/Cursor;
            areturn
        end local 3 // org.h2.result.SearchRow last
        end local 2 // org.h2.result.SearchRow first
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/h2/index/PageBtreeIndex;
            0    1     1  session  Lorg/h2/engine/Session;
            0    1     2    first  Lorg/h2/result/SearchRow;
            0    1     3     last  Lorg/h2/result/SearchRow;
    MethodParameters:
         Name  Flags
      session  
      first    
      last     

  private org.h2.index.Cursor find(org.h2.engine.Session, org.h2.result.SearchRow, boolean, org.h2.result.SearchRow);
    descriptor: (Lorg/h2/engine/Session;Lorg/h2/result/SearchRow;ZLorg/h2/result/SearchRow;)Lorg/h2/index/Cursor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // org.h2.index.PageBtreeIndex this
        start local 1 // org.h2.engine.Session session
        start local 2 // org.h2.result.SearchRow first
        start local 3 // boolean bigger
        start local 4 // org.h2.result.SearchRow last
         0: .line 179
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            ifnonnull 2
         1: .line 180
            ldc 90007
            invokestatic org.h2.message.DbException.get:(I)Lorg/h2/message/DbException;
            athrow
         2: .line 182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.rootPageId:I
            invokevirtual org.h2.index.PageBtreeIndex.getPage:(I)Lorg/h2/index/PageBtree;
            astore 5 /* root */
        start local 5 // org.h2.index.PageBtree root
         3: .line 183
            new org.h2.index.PageBtreeCursor
            dup
            aload 1 /* session */
            aload 0 /* this */
            aload 4 /* last */
            invokespecial org.h2.index.PageBtreeCursor.<init>:(Lorg/h2/engine/Session;Lorg/h2/index/PageBtreeIndex;Lorg/h2/result/SearchRow;)V
            astore 6 /* cursor */
        start local 6 // org.h2.index.PageBtreeCursor cursor
         4: .line 184
            aload 5 /* root */
            aload 6 /* cursor */
            aload 2 /* first */
            iload 3 /* bigger */
            invokevirtual org.h2.index.PageBtree.find:(Lorg/h2/index/PageBtreeCursor;Lorg/h2/result/SearchRow;Z)V
         5: .line 185
            aload 6 /* cursor */
            areturn
        end local 6 // org.h2.index.PageBtreeCursor cursor
        end local 5 // org.h2.index.PageBtree root
        end local 4 // org.h2.result.SearchRow last
        end local 3 // boolean bigger
        end local 2 // org.h2.result.SearchRow first
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/h2/index/PageBtreeIndex;
            0    6     1  session  Lorg/h2/engine/Session;
            0    6     2    first  Lorg/h2/result/SearchRow;
            0    6     3   bigger  Z
            0    6     4     last  Lorg/h2/result/SearchRow;
            3    6     5     root  Lorg/h2/index/PageBtree;
            4    6     6   cursor  Lorg/h2/index/PageBtreeCursor;
    MethodParameters:
         Name  Flags
      session  
      first    
      bigger   
      last     

  public org.h2.index.Cursor findFirstOrLast(org.h2.engine.Session, boolean);
    descriptor: (Lorg/h2/engine/Session;Z)Lorg/h2/index/Cursor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // org.h2.index.PageBtreeIndex this
        start local 1 // org.h2.engine.Session session
        start local 2 // boolean first
         0: .line 190
            iload 2 /* first */
            ifeq 9
         1: .line 192
            aload 0 /* this */
            aload 1 /* session */
            aconst_null
            iconst_0
            aconst_null
            invokevirtual org.h2.index.PageBtreeIndex.find:(Lorg/h2/engine/Session;Lorg/h2/result/SearchRow;ZLorg/h2/result/SearchRow;)Lorg/h2/index/Cursor;
            astore 3 /* cursor */
        start local 3 // org.h2.index.Cursor cursor
         2: .line 193
            goto 7
         3: .line 194
      StackMap locals: org.h2.index.Cursor
      StackMap stack:
            aload 3 /* cursor */
            invokeinterface org.h2.index.Cursor.getSearchRow:()Lorg/h2/result/SearchRow;
            astore 4 /* row */
        start local 4 // org.h2.result.SearchRow row
         4: .line 195
            aload 4 /* row */
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.columnIds:[I
            iconst_0
            iaload
            invokeinterface org.h2.result.SearchRow.getValue:(I)Lorg/h2/value/Value;
            astore 5 /* v */
        start local 5 // org.h2.value.Value v
         5: .line 196
            aload 5 /* v */
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            if_acmpeq 7
         6: .line 197
            aload 3 /* cursor */
            areturn
        end local 5 // org.h2.value.Value v
        end local 4 // org.h2.result.SearchRow row
         7: .line 193
      StackMap locals:
      StackMap stack:
            aload 3 /* cursor */
            invokeinterface org.h2.index.Cursor.next:()Z
            ifne 3
         8: .line 200
            aload 3 /* cursor */
            areturn
        end local 3 // org.h2.index.Cursor cursor
         9: .line 202
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.rootPageId:I
            invokevirtual org.h2.index.PageBtreeIndex.getPage:(I)Lorg/h2/index/PageBtree;
            astore 3 /* root */
        start local 3 // org.h2.index.PageBtree root
        10: .line 203
            new org.h2.index.PageBtreeCursor
            dup
            aload 1 /* session */
            aload 0 /* this */
            aconst_null
            invokespecial org.h2.index.PageBtreeCursor.<init>:(Lorg/h2/engine/Session;Lorg/h2/index/PageBtreeIndex;Lorg/h2/result/SearchRow;)V
            astore 4 /* cursor */
        start local 4 // org.h2.index.PageBtreeCursor cursor
        11: .line 204
            aload 3 /* root */
            aload 4 /* cursor */
            invokevirtual org.h2.index.PageBtree.last:(Lorg/h2/index/PageBtreeCursor;)V
        12: .line 205
            aload 4 /* cursor */
            invokevirtual org.h2.index.PageBtreeCursor.previous:()Z
            pop
        13: .line 208
      StackMap locals: org.h2.index.PageBtree org.h2.index.PageBtreeCursor
      StackMap stack:
            aload 4 /* cursor */
            invokevirtual org.h2.index.PageBtreeCursor.getSearchRow:()Lorg/h2/result/SearchRow;
            astore 5 /* row */
        start local 5 // org.h2.result.SearchRow row
        14: .line 209
            aload 5 /* row */
            ifnonnull 16
        15: .line 210
            goto 20
        16: .line 212
      StackMap locals: org.h2.result.SearchRow
      StackMap stack:
            aload 5 /* row */
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.columnIds:[I
            iconst_0
            iaload
            invokeinterface org.h2.result.SearchRow.getValue:(I)Lorg/h2/value/Value;
            astore 6 /* v */
        start local 6 // org.h2.value.Value v
        17: .line 213
            aload 6 /* v */
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            if_acmpeq 19
        18: .line 214
            aload 4 /* cursor */
            areturn
        end local 6 // org.h2.value.Value v
        end local 5 // org.h2.result.SearchRow row
        19: .line 216
      StackMap locals:
      StackMap stack:
            aload 4 /* cursor */
            invokevirtual org.h2.index.PageBtreeCursor.previous:()Z
            ifne 13
        20: .line 217
      StackMap locals:
      StackMap stack:
            aload 4 /* cursor */
            areturn
        end local 4 // org.h2.index.PageBtreeCursor cursor
        end local 3 // org.h2.index.PageBtree root
        end local 2 // boolean first
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   21     0     this  Lorg/h2/index/PageBtreeIndex;
            0   21     1  session  Lorg/h2/engine/Session;
            0   21     2    first  Z
            2    9     3   cursor  Lorg/h2/index/Cursor;
            4    7     4      row  Lorg/h2/result/SearchRow;
            5    7     5        v  Lorg/h2/value/Value;
           10   21     3     root  Lorg/h2/index/PageBtree;
           11   21     4   cursor  Lorg/h2/index/PageBtreeCursor;
           14   19     5      row  Lorg/h2/result/SearchRow;
           17   19     6        v  Lorg/h2/value/Value;
    MethodParameters:
         Name  Flags
      session  
      first    

  public double getCost(org.h2.engine.Session, int[], org.h2.table.TableFilter[], int, org.h2.result.SortOrder, org.h2.command.dml.AllColumnsForPlan);
    descriptor: (Lorg/h2/engine/Session;[I[Lorg/h2/table/TableFilter;ILorg/h2/result/SortOrder;Lorg/h2/command/dml/AllColumnsForPlan;)D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=7, args_size=7
        start local 0 // org.h2.index.PageBtreeIndex this
        start local 1 // org.h2.engine.Session session
        start local 2 // int[] masks
        start local 3 // org.h2.table.TableFilter[] filters
        start local 4 // int filter
        start local 5 // org.h2.result.SortOrder sortOrder
        start local 6 // org.h2.command.dml.AllColumnsForPlan allColumnsSet
         0: .line 224
            ldc 10
            aload 0 /* this */
            aload 2 /* masks */
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.tableData:Lorg/h2/table/PageStoreTable;
            aload 1 /* session */
            invokevirtual org.h2.table.PageStoreTable.getRowCount:(Lorg/h2/engine/Session;)J
         1: .line 225
            aload 3 /* filters */
            iload 4 /* filter */
            aload 5 /* sortOrder */
            iconst_0
            aload 6 /* allColumnsSet */
         2: .line 224
            invokevirtual org.h2.index.PageBtreeIndex.getCostRangeIndex:([IJ[Lorg/h2/table/TableFilter;ILorg/h2/result/SortOrder;ZLorg/h2/command/dml/AllColumnsForPlan;)J
            lmul
            l2d
            dreturn
        end local 6 // org.h2.command.dml.AllColumnsForPlan allColumnsSet
        end local 5 // org.h2.result.SortOrder sortOrder
        end local 4 // int filter
        end local 3 // org.h2.table.TableFilter[] filters
        end local 2 // int[] masks
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lorg/h2/index/PageBtreeIndex;
            0    3     1        session  Lorg/h2/engine/Session;
            0    3     2          masks  [I
            0    3     3        filters  [Lorg/h2/table/TableFilter;
            0    3     4         filter  I
            0    3     5      sortOrder  Lorg/h2/result/SortOrder;
            0    3     6  allColumnsSet  Lorg/h2/command/dml/AllColumnsForPlan;
    MethodParameters:
               Name  Flags
      session        
      masks          
      filters        
      filter         
      sortOrder      
      allColumnsSet  

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

  public void remove(org.h2.engine.Session, org.h2.result.Row);
    descriptor: (Lorg/h2/engine/Session;Lorg/h2/result/Row;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // org.h2.index.PageBtreeIndex this
        start local 1 // org.h2.engine.Session session
        start local 2 // org.h2.result.Row row
         0: .line 235
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 2
         1: .line 236
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.trace:Lorg/h2/message/Trace;
            ldc "{0} remove {1}"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.h2.index.PageBtreeIndex.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 2 /* row */
            aastore
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
         2: .line 240
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.rowCount:J
            lconst_1
            lcmp
            ifne 5
         3: .line 241
            aload 0 /* this */
            invokevirtual org.h2.index.PageBtreeIndex.removeAllRows:()V
         4: .line 242
            goto 14
         5: .line 244
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.rootPageId:I
            invokevirtual org.h2.index.PageBtreeIndex.getPage:(I)Lorg/h2/index/PageBtree;
            astore 3 /* root */
        start local 3 // org.h2.index.PageBtree root
         6: .line 245
            aload 3 /* root */
            aload 2 /* row */
            invokevirtual org.h2.index.PageBtree.remove:(Lorg/h2/result/SearchRow;)Lorg/h2/result/SearchRow;
            pop
         7: .line 246
            aload 0 /* this */
            invokevirtual org.h2.index.PageBtreeIndex.invalidateRowCount:()V
         8: .line 247
            aload 0 /* this */
            dup
            getfield org.h2.index.PageBtreeIndex.rowCount:J
            lconst_1
            lsub
            putfield org.h2.index.PageBtreeIndex.rowCount:J
        end local 3 // org.h2.index.PageBtree root
         9: .line 248
            goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: astore 4
        11: .line 249
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.incrementChangeCount:()V
        12: .line 250
            aload 4
            athrow
        13: .line 249
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.incrementChangeCount:()V
        14: .line 252
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.h2.result.Row row
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     this  Lorg/h2/index/PageBtreeIndex;
            0   15     1  session  Lorg/h2/engine/Session;
            0   15     2      row  Lorg/h2/result/Row;
            6    9     3     root  Lorg/h2/index/PageBtree;
      Exception table:
        from    to  target  type
           5    10      10  any
    MethodParameters:
         Name  Flags
      session  
      row      

  public void remove(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.h2.index.PageBtreeIndex this
        start local 1 // org.h2.engine.Session session
         0: .line 256
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 2
         1: .line 257
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.trace:Lorg/h2/message/Trace;
            ldc "remove"
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
         2: .line 259
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.index.PageBtreeIndex.removeAllRows:()V
         3: .line 260
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.rootPageId:I
            invokevirtual org.h2.store.PageStore.free:(I)V
         4: .line 261
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            aload 0 /* this */
            aload 1 /* session */
            invokevirtual org.h2.store.PageStore.removeMeta:(Lorg/h2/index/Index;Lorg/h2/engine/Session;)V
         5: .line 262
            return
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/h2/index/PageBtreeIndex;
            0    6     1  session  Lorg/h2/engine/Session;
    MethodParameters:
         Name  Flags
      session  

  public void truncate(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.h2.index.PageBtreeIndex this
        start local 1 // org.h2.engine.Session session
         0: .line 266
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 2
         1: .line 267
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.trace:Lorg/h2/message/Trace;
            ldc "truncate"
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
         2: .line 269
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.index.PageBtreeIndex.removeAllRows:()V
         3: .line 270
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.tableData:Lorg/h2/table/PageStoreTable;
            invokevirtual org.h2.table.PageStoreTable.getContainsLargeObject:()Z
            ifeq 5
         4: .line 271
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getLobStorage:()Lorg/h2/store/LobStorageInterface;
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.table:Lorg/h2/table/Table;
            invokevirtual org.h2.table.Table.getId:()I
            invokeinterface org.h2.store.LobStorageInterface.removeAllForTable:(I)V
         5: .line 273
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.tableData:Lorg/h2/table/PageStoreTable;
            lconst_0
            invokevirtual org.h2.table.PageStoreTable.setRowCount:(J)V
         6: .line 274
            return
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/h2/index/PageBtreeIndex;
            0    7     1  session  Lorg/h2/engine/Session;
    MethodParameters:
         Name  Flags
      session  

  private void removeAllRows();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.h2.index.PageBtreeIndex this
         0: .line 278
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.rootPageId:I
            invokevirtual org.h2.index.PageBtreeIndex.getPage:(I)Lorg/h2/index/PageBtree;
            astore 1 /* root */
        start local 1 // org.h2.index.PageBtree root
         1: .line 279
            aload 1 /* root */
            invokevirtual org.h2.index.PageBtree.freeRecursive:()V
         2: .line 280
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.rootPageId:I
            iconst_0
            invokestatic org.h2.index.PageBtreeLeaf.create:(Lorg/h2/index/PageBtreeIndex;II)Lorg/h2/index/PageBtreeLeaf;
            astore 1 /* root */
         3: .line 281
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.rootPageId:I
            invokevirtual org.h2.store.PageStore.removeFromCache:(I)V
         4: .line 282
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            aload 1 /* root */
            invokevirtual org.h2.store.PageStore.update:(Lorg/h2/store/Page;)V
         5: .line 283
            aload 0 /* this */
            lconst_0
            putfield org.h2.index.PageBtreeIndex.rowCount:J
        end local 1 // org.h2.index.PageBtree root
         6: .line 284
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 2
         8: .line 285
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.incrementChangeCount:()V
         9: .line 286
            aload 2
            athrow
        10: .line 285
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.incrementChangeCount:()V
        11: .line 287
            return
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/h2/index/PageBtreeIndex;
            1    6     1  root  Lorg/h2/index/PageBtree;
      Exception table:
        from    to  target  type
           0     7       7  any

  public void checkRename();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.h2.index.PageBtreeIndex this
         0: .line 292
            return
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/index/PageBtreeIndex;

  public org.h2.result.Row getRow(org.h2.engine.Session, long);
    descriptor: (Lorg/h2/engine/Session;J)Lorg/h2/result/Row;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.h2.index.PageBtreeIndex this
        start local 1 // org.h2.engine.Session session
        start local 2 // long key
         0: .line 303
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.tableData:Lorg/h2/table/PageStoreTable;
            aload 1 /* session */
            lload 2 /* key */
            invokevirtual org.h2.table.PageStoreTable.getRow:(Lorg/h2/engine/Session;J)Lorg/h2/result/Row;
            areturn
        end local 2 // long key
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/h2/index/PageBtreeIndex;
            0    1     1  session  Lorg/h2/engine/Session;
            0    1     2      key  J
    MethodParameters:
         Name  Flags
      session  
      key      

  org.h2.store.PageStore getPageStore();
    descriptor: ()Lorg/h2/store/PageStore;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.index.PageBtreeIndex this
         0: .line 307
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            areturn
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/index/PageBtreeIndex;

  public long getRowCountApproximation();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.index.PageBtreeIndex this
         0: .line 312
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.tableData:Lorg/h2/table/PageStoreTable;
            invokevirtual org.h2.table.PageStoreTable.getRowCountApproximation:()J
            lreturn
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/index/PageBtreeIndex;

  public long getDiskSpaceUsed();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.index.PageBtreeIndex this
         0: .line 317
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.tableData:Lorg/h2/table/PageStoreTable;
            invokevirtual org.h2.table.PageStoreTable.getDiskSpaceUsed:()J
            lreturn
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/index/PageBtreeIndex;

  public long getRowCount(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.index.PageBtreeIndex this
        start local 1 // org.h2.engine.Session session
         0: .line 322
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.rowCount:J
            lreturn
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/h2/index/PageBtreeIndex;
            0    1     1  session  Lorg/h2/engine/Session;
    MethodParameters:
         Name  Flags
      session  

  public void close(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.h2.index.PageBtreeIndex this
        start local 1 // org.h2.engine.Session session
         0: .line 327
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 2
         1: .line 328
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.trace:Lorg/h2/message/Trace;
            ldc "close"
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
         2: .line 333
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.index.PageBtreeIndex.writeRowCount:()V
         3: .line 334
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 2
         5: .line 335
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.incrementChangeCount:()V
         6: .line 336
            aload 2
            athrow
         7: .line 335
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.incrementChangeCount:()V
         8: .line 337
            return
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lorg/h2/index/PageBtreeIndex;
            0    9     1  session  Lorg/h2/engine/Session;
      Exception table:
        from    to  target  type
           2     4       4  any
    MethodParameters:
         Name  Flags
      session  

  org.h2.result.SearchRow readRow(org.h2.store.Data, int, boolean, boolean);
    descriptor: (Lorg/h2/store/Data;IZZ)Lorg/h2/result/SearchRow;
    flags: (0x0000) 
    Code:
      stack=4, locals=14, args_size=5
        start local 0 // org.h2.index.PageBtreeIndex this
        start local 1 // org.h2.store.Data data
        start local 2 // int offset
        start local 3 // boolean onlyPosition
        start local 4 // boolean needData
         0: .line 350
            aload 1 /* data */
            dup
            astore 5
            monitorenter
         1: .line 351
            aload 1 /* data */
            iload 2 /* offset */
            invokevirtual org.h2.store.Data.setPos:(I)V
         2: .line 352
            aload 1 /* data */
            invokevirtual org.h2.store.Data.readVarLong:()J
            lstore 6 /* key */
        start local 6 // long key
         3: .line 353
            iload 3 /* onlyPosition */
            ifeq 11
         4: .line 354
            iload 4 /* needData */
            ifeq 7
         5: .line 355
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.tableData:Lorg/h2/table/PageStoreTable;
            aconst_null
            lload 6 /* key */
            invokevirtual org.h2.table.PageStoreTable.getRow:(Lorg/h2/engine/Session;J)Lorg/h2/result/Row;
            aload 5
            monitorexit
         6: areturn
         7: .line 357
      StackMap locals: org.h2.store.Data long
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.table:Lorg/h2/table/Table;
            iconst_1
            invokevirtual org.h2.table.Table.getTemplateSimpleRow:(Z)Lorg/h2/result/SearchRow;
            astore 8 /* row */
        start local 8 // org.h2.result.SearchRow row
         8: .line 358
            aload 8 /* row */
            lload 6 /* key */
            invokeinterface org.h2.result.SearchRow.setKey:(J)V
         9: .line 359
            aload 8 /* row */
            aload 5
            monitorexit
        10: areturn
        end local 8 // org.h2.result.SearchRow row
        11: .line 361
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.table:Lorg/h2/table/Table;
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.columns:[Lorg/h2/table/Column;
            arraylength
            iconst_1
            if_icmpne 12
            iconst_1
            goto 13
      StackMap locals:
      StackMap stack: org.h2.table.Table
        12: iconst_0
      StackMap locals: org.h2.index.PageBtreeIndex org.h2.store.Data int int int org.h2.store.Data long
      StackMap stack: org.h2.table.Table int
        13: invokevirtual org.h2.table.Table.getTemplateSimpleRow:(Z)Lorg/h2/result/SearchRow;
            astore 8 /* row */
        start local 8 // org.h2.result.SearchRow row
        14: .line 362
            aload 8 /* row */
            lload 6 /* key */
            invokeinterface org.h2.result.SearchRow.setKey:(J)V
        15: .line 363
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.columns:[Lorg/h2/table/Column;
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 20
      StackMap locals: org.h2.index.PageBtreeIndex org.h2.store.Data int int int org.h2.store.Data long org.h2.result.SearchRow top int int org.h2.table.Column[]
      StackMap stack:
        16: aload 12
            iload 10
            aaload
            astore 9 /* col */
        start local 9 // org.h2.table.Column col
        17: .line 364
            aload 9 /* col */
            invokevirtual org.h2.table.Column.getColumnId:()I
            istore 13 /* idx */
        start local 13 // int idx
        18: .line 365
            aload 8 /* row */
            iload 13 /* idx */
            aload 1 /* data */
            invokevirtual org.h2.store.Data.readValue:()Lorg/h2/value/Value;
            invokeinterface org.h2.result.SearchRow.setValue:(ILorg/h2/value/Value;)V
        end local 13 // int idx
        end local 9 // org.h2.table.Column col
        19: .line 363
            iinc 10 1
      StackMap locals:
      StackMap stack:
        20: iload 10
            iload 11
            if_icmplt 16
        21: .line 367
            aload 8 /* row */
            aload 5
            monitorexit
        22: areturn
        end local 8 // org.h2.result.SearchRow row
        end local 6 // long key
        23: .line 350
      StackMap locals: org.h2.index.PageBtreeIndex org.h2.store.Data int int int org.h2.store.Data
      StackMap stack: java.lang.Throwable
            aload 5
            monitorexit
        24: athrow
        end local 4 // boolean needData
        end local 3 // boolean onlyPosition
        end local 2 // int offset
        end local 1 // org.h2.store.Data data
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   25     0          this  Lorg/h2/index/PageBtreeIndex;
            0   25     1          data  Lorg/h2/store/Data;
            0   25     2        offset  I
            0   25     3  onlyPosition  Z
            0   25     4      needData  Z
            3   23     6           key  J
            8   11     8           row  Lorg/h2/result/SearchRow;
           14   23     8           row  Lorg/h2/result/SearchRow;
           17   19     9           col  Lorg/h2/table/Column;
           18   19    13           idx  I
      Exception table:
        from    to  target  type
           1     6      23  any
           7    10      23  any
          11    22      23  any
          23    24      23  any
    MethodParameters:
              Name  Flags
      data          
      offset        
      onlyPosition  
      needData      

  org.h2.result.SearchRow readRow(long);
    descriptor: (J)Lorg/h2/result/SearchRow;
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.h2.index.PageBtreeIndex this
        start local 1 // long key
         0: .line 378
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.tableData:Lorg/h2/table/PageStoreTable;
            aconst_null
            lload 1 /* key */
            invokevirtual org.h2.table.PageStoreTable.getRow:(Lorg/h2/engine/Session;J)Lorg/h2/result/Row;
            areturn
        end local 1 // long key
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/index/PageBtreeIndex;
            0    1     1   key  J
    MethodParameters:
      Name  Flags
      key   

  void writeRow(org.h2.store.Data, int, org.h2.result.SearchRow, boolean);
    descriptor: (Lorg/h2/store/Data;ILorg/h2/result/SearchRow;Z)V
    flags: (0x0000) 
    Code:
      stack=3, locals=10, args_size=5
        start local 0 // org.h2.index.PageBtreeIndex this
        start local 1 // org.h2.store.Data data
        start local 2 // int offset
        start local 3 // org.h2.result.SearchRow row
        start local 4 // boolean onlyPosition
         0: .line 390
            aload 1 /* data */
            iload 2 /* offset */
            invokevirtual org.h2.store.Data.setPos:(I)V
         1: .line 391
            aload 1 /* data */
            aload 3 /* row */
            invokeinterface org.h2.result.SearchRow.getKey:()J
            invokevirtual org.h2.store.Data.writeVarLong:(J)V
         2: .line 392
            iload 4 /* onlyPosition */
            ifne 9
         3: .line 393
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.columns:[Lorg/h2/table/Column;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 8
      StackMap locals: org.h2.index.PageBtreeIndex org.h2.store.Data int org.h2.result.SearchRow int top int int org.h2.table.Column[]
      StackMap stack:
         4: aload 8
            iload 6
            aaload
            astore 5 /* col */
        start local 5 // org.h2.table.Column col
         5: .line 394
            aload 5 /* col */
            invokevirtual org.h2.table.Column.getColumnId:()I
            istore 9 /* idx */
        start local 9 // int idx
         6: .line 395
            aload 1 /* data */
            aload 3 /* row */
            iload 9 /* idx */
            invokeinterface org.h2.result.SearchRow.getValue:(I)Lorg/h2/value/Value;
            invokevirtual org.h2.store.Data.writeValue:(Lorg/h2/value/Value;)V
        end local 9 // int idx
        end local 5 // org.h2.table.Column col
         7: .line 393
            iinc 6 1
      StackMap locals:
      StackMap stack:
         8: iload 6
            iload 7
            if_icmplt 4
         9: .line 398
      StackMap locals: org.h2.index.PageBtreeIndex org.h2.store.Data int org.h2.result.SearchRow int
      StackMap stack:
            return
        end local 4 // boolean onlyPosition
        end local 3 // org.h2.result.SearchRow row
        end local 2 // int offset
        end local 1 // org.h2.store.Data data
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lorg/h2/index/PageBtreeIndex;
            0   10     1          data  Lorg/h2/store/Data;
            0   10     2        offset  I
            0   10     3           row  Lorg/h2/result/SearchRow;
            0   10     4  onlyPosition  Z
            5    7     5           col  Lorg/h2/table/Column;
            6    7     9           idx  I
    MethodParameters:
              Name  Flags
      data          
      offset        
      row           
      onlyPosition  

  int getRowSize(org.h2.store.Data, org.h2.result.SearchRow, boolean);
    descriptor: (Lorg/h2/store/Data;Lorg/h2/result/SearchRow;Z)I
    flags: (0x0000) 
    Code:
      stack=3, locals=10, args_size=4
        start local 0 // org.h2.index.PageBtreeIndex this
        start local 1 // org.h2.store.Data dummy
        start local 2 // org.h2.result.SearchRow row
        start local 3 // boolean onlyPosition
         0: .line 409
            aload 2 /* row */
            invokeinterface org.h2.result.SearchRow.getKey:()J
            invokestatic org.h2.store.Data.getVarLongLen:(J)I
            istore 4 /* rowsize */
        start local 4 // int rowsize
         1: .line 410
            iload 3 /* onlyPosition */
            ifne 8
         2: .line 411
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.columns:[Lorg/h2/table/Column;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 7
      StackMap locals: org.h2.index.PageBtreeIndex org.h2.store.Data org.h2.result.SearchRow int int top int int org.h2.table.Column[]
      StackMap stack:
         3: aload 8
            iload 6
            aaload
            astore 5 /* col */
        start local 5 // org.h2.table.Column col
         4: .line 412
            aload 2 /* row */
            aload 5 /* col */
            invokevirtual org.h2.table.Column.getColumnId:()I
            invokeinterface org.h2.result.SearchRow.getValue:(I)Lorg/h2/value/Value;
            astore 9 /* v */
        start local 9 // org.h2.value.Value v
         5: .line 413
            iload 4 /* rowsize */
            aload 1 /* dummy */
            aload 9 /* v */
            invokevirtual org.h2.store.Data.getValueLen:(Lorg/h2/value/Value;)I
            iadd
            istore 4 /* rowsize */
        end local 9 // org.h2.value.Value v
        end local 5 // org.h2.table.Column col
         6: .line 411
            iinc 6 1
      StackMap locals:
      StackMap stack:
         7: iload 6
            iload 7
            if_icmplt 3
         8: .line 416
      StackMap locals: org.h2.index.PageBtreeIndex org.h2.store.Data org.h2.result.SearchRow int int
      StackMap stack:
            iload 4 /* rowsize */
            ireturn
        end local 4 // int rowsize
        end local 3 // boolean onlyPosition
        end local 2 // org.h2.result.SearchRow row
        end local 1 // org.h2.store.Data dummy
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Lorg/h2/index/PageBtreeIndex;
            0    9     1         dummy  Lorg/h2/store/Data;
            0    9     2           row  Lorg/h2/result/SearchRow;
            0    9     3  onlyPosition  Z
            1    9     4       rowsize  I
            4    6     5           col  Lorg/h2/table/Column;
            5    6     9             v  Lorg/h2/value/Value;
    MethodParameters:
              Name  Flags
      dummy         
      row           
      onlyPosition  

  public boolean canFindNext();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.index.PageBtreeIndex this
         0: .line 421
            iconst_1
            ireturn
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/index/PageBtreeIndex;

  void setRootPageId(org.h2.engine.Session, int);
    descriptor: (Lorg/h2/engine/Session;I)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.h2.index.PageBtreeIndex this
        start local 1 // org.h2.engine.Session session
        start local 2 // int newPos
         0: .line 431
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            aload 0 /* this */
            aload 1 /* session */
            invokevirtual org.h2.store.PageStore.removeMeta:(Lorg/h2/index/Index;Lorg/h2/engine/Session;)V
         1: .line 432
            aload 0 /* this */
            iload 2 /* newPos */
            putfield org.h2.index.PageBtreeIndex.rootPageId:I
         2: .line 433
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            aload 0 /* this */
            aload 1 /* session */
            invokevirtual org.h2.store.PageStore.addMeta:(Lorg/h2/index/PageIndex;Lorg/h2/engine/Session;)V
         3: .line 434
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.store:Lorg/h2/store/PageStore;
            aload 0 /* this */
            invokevirtual org.h2.store.PageStore.addIndex:(Lorg/h2/index/PageIndex;)V
         4: .line 435
            return
        end local 2 // int newPos
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/h2/index/PageBtreeIndex;
            0    5     1  session  Lorg/h2/engine/Session;
            0    5     2   newPos  I
    MethodParameters:
         Name  Flags
      session  
      newPos   

  private void invalidateRowCount();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.h2.index.PageBtreeIndex this
         0: .line 438
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.rootPageId:I
            invokevirtual org.h2.index.PageBtreeIndex.getPage:(I)Lorg/h2/index/PageBtree;
            astore 1 /* root */
        start local 1 // org.h2.index.PageBtree root
         1: .line 439
            aload 1 /* root */
            iconst_m1
            invokevirtual org.h2.index.PageBtree.setRowCountStored:(I)V
         2: .line 440
            return
        end local 1 // org.h2.index.PageBtree root
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/index/PageBtreeIndex;
            1    3     1  root  Lorg/h2/index/PageBtree;

  public void writeRowCount();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.h2.index.PageBtreeIndex this
         0: .line 444
            getstatic org.h2.engine.SysProperties.MODIFY_ON_WRITE:Z
            ifeq 2
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.rootPageId:I
            ifne 2
         1: .line 446
            return
         2: .line 448
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.rootPageId:I
            invokevirtual org.h2.index.PageBtreeIndex.getPage:(I)Lorg/h2/index/PageBtree;
            astore 1 /* root */
        start local 1 // org.h2.index.PageBtree root
         3: .line 449
            aload 1 /* root */
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.rowCount:J
            invokestatic org.h2.util.MathUtils.convertLongToInt:(J)I
            invokevirtual org.h2.index.PageBtree.setRowCountStored:(I)V
         4: .line 450
            return
        end local 1 // org.h2.index.PageBtree root
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/h2/index/PageBtreeIndex;
            3    5     1  root  Lorg/h2/index/PageBtree;

  boolean hasData(org.h2.result.SearchRow);
    descriptor: (Lorg/h2/result/SearchRow;)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.h2.index.PageBtreeIndex this
        start local 1 // org.h2.result.SearchRow row
         0: .line 459
            aload 1 /* row */
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.columns:[Lorg/h2/table/Column;
            iconst_0
            aaload
            invokevirtual org.h2.table.Column.getColumnId:()I
            invokeinterface org.h2.result.SearchRow.getValue:(I)Lorg/h2/value/Value;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // org.h2.result.SearchRow row
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/index/PageBtreeIndex;
            0    2     1   row  Lorg/h2/result/SearchRow;
    MethodParameters:
      Name  Flags
      row   

  int getMemoryPerPage();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.index.PageBtreeIndex this
         0: .line 463
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.memoryPerPage:I
            ireturn
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/index/PageBtreeIndex;

  void memoryChange(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.h2.index.PageBtreeIndex this
        start local 1 // int x
         0: .line 473
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.memoryCount:I
            bipush 64
            if_icmpge 3
         1: .line 474
            aload 0 /* this */
            dup
            getfield org.h2.index.PageBtreeIndex.memoryPerPage:I
            iload 1 /* x */
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.memoryPerPage:I
            isub
            aload 0 /* this */
            dup
            getfield org.h2.index.PageBtreeIndex.memoryCount:I
            iconst_1
            iadd
            dup_x1
            putfield org.h2.index.PageBtreeIndex.memoryCount:I
            idiv
            iadd
            putfield org.h2.index.PageBtreeIndex.memoryPerPage:I
         2: .line 475
            goto 7
         3: .line 476
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.h2.index.PageBtreeIndex.memoryPerPage:I
            iload 1 /* x */
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.memoryPerPage:I
            if_icmple 4
            iconst_1
            goto 5
      StackMap locals: org.h2.index.PageBtreeIndex int
      StackMap stack: org.h2.index.PageBtreeIndex int
         4: iconst_m1
         5: .line 477
      StackMap locals: org.h2.index.PageBtreeIndex int
      StackMap stack: org.h2.index.PageBtreeIndex int int
            iload 1 /* x */
            aload 0 /* this */
            getfield org.h2.index.PageBtreeIndex.memoryPerPage:I
            isub
            bipush 64
            idiv
         6: .line 476
            iadd
            iadd
            putfield org.h2.index.PageBtreeIndex.memoryPerPage:I
         7: .line 479
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int x
        end local 0 // org.h2.index.PageBtreeIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/h2/index/PageBtreeIndex;
            0    8     1     x  I
    MethodParameters:
      Name  Flags
      x     

  static boolean isMemoryChangeRequired();
    descriptor: ()Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 487
            getstatic org.h2.index.PageBtreeIndex.memoryChangeRequired:I
            dup
            iconst_1
            isub
            putstatic org.h2.index.PageBtreeIndex.memoryChangeRequired:I
            ifgt 3
         1: .line 488
            bipush 10
            putstatic org.h2.index.PageBtreeIndex.memoryChangeRequired:I
         2: .line 489
            iconst_1
            ireturn
         3: .line 491
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "PageBtreeIndex.java"