public class org.h2.mvstore.db.MVPrimaryIndex extends org.h2.index.BaseIndex
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.mvstore.db.MVPrimaryIndex
  super_class: org.h2.index.BaseIndex
{
  private final org.h2.mvstore.db.MVTable mvTable;
    descriptor: Lorg/h2/mvstore/db/MVTable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String mapName;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.h2.mvstore.tx.TransactionMap<org.h2.value.Value, org.h2.value.Value> dataMap;
    descriptor: Lorg/h2/mvstore/tx/TransactionMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/h2/mvstore/tx/TransactionMap<Lorg/h2/value/Value;Lorg/h2/value/Value;>;

  private final java.util.concurrent.atomic.AtomicLong lastKey;
    descriptor: Ljava/util/concurrent/atomic/AtomicLong;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

  public void <init>(org.h2.engine.Database, org.h2.mvstore.db.MVTable, int, org.h2.table.IndexColumn[], org.h2.index.IndexType);
    descriptor: (Lorg/h2/engine/Database;Lorg/h2/mvstore/db/MVTable;I[Lorg/h2/table/IndexColumn;Lorg/h2/index/IndexType;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=6
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
        start local 1 // org.h2.engine.Database db
        start local 2 // org.h2.mvstore.db.MVTable table
        start local 3 // int id
        start local 4 // org.h2.table.IndexColumn[] columns
        start local 5 // org.h2.index.IndexType indexType
         0: .line 48
            aload 0 /* this */
            aload 2 /* table */
            iload 3 /* id */
            new java.lang.StringBuilder
            dup
            aload 2 /* table */
            invokevirtual org.h2.mvstore.db.MVTable.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "_DATA"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* columns */
            aload 5 /* indexType */
            invokespecial org.h2.index.BaseIndex.<init>:(Lorg/h2/table/Table;ILjava/lang/String;[Lorg/h2/table/IndexColumn;Lorg/h2/index/IndexType;)V
         1: .line 43
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicLong
            dup
            invokespecial java.util.concurrent.atomic.AtomicLong.<init>:()V
            putfield org.h2.mvstore.db.MVPrimaryIndex.lastKey:Ljava/util/concurrent/atomic/AtomicLong;
         2: .line 44
            aload 0 /* this */
            iconst_m1
            putfield org.h2.mvstore.db.MVPrimaryIndex.mainIndexColumn:I
         3: .line 49
            aload 0 /* this */
            aload 2 /* table */
            putfield org.h2.mvstore.db.MVPrimaryIndex.mvTable:Lorg/h2/mvstore/db/MVTable;
         4: .line 50
            aload 4 /* columns */
            arraylength
            newarray 10
            astore 6 /* sortTypes */
        start local 6 // int[] sortTypes
         5: .line 51
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         6: goto 9
         7: .line 52
      StackMap locals: org.h2.mvstore.db.MVPrimaryIndex org.h2.engine.Database org.h2.mvstore.db.MVTable int org.h2.table.IndexColumn[] org.h2.index.IndexType int[] int
      StackMap stack:
            aload 6 /* sortTypes */
            iload 7 /* i */
            iconst_0
            iastore
         8: .line 51
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 7 /* i */
            aload 4 /* columns */
            arraylength
            if_icmplt 7
        end local 7 // int i
        10: .line 54
            new org.h2.mvstore.db.ValueDataType
            dup
            invokespecial org.h2.mvstore.db.ValueDataType.<init>:()V
            astore 7 /* keyType */
        start local 7 // org.h2.mvstore.db.ValueDataType keyType
        11: .line 55
            new org.h2.mvstore.db.ValueDataType
            dup
            aload 1 /* db */
            aload 6 /* sortTypes */
            invokespecial org.h2.mvstore.db.ValueDataType.<init>:(Lorg/h2/engine/Database;[I)V
            astore 8 /* valueType */
        start local 8 // org.h2.mvstore.db.ValueDataType valueType
        12: .line 56
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "table."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getId:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield org.h2.mvstore.db.MVPrimaryIndex.mapName:Ljava/lang/String;
        13: .line 57
            getstatic org.h2.mvstore.db.MVPrimaryIndex.$assertionsDisabled:Z
            ifne 14
            aload 1 /* db */
            invokevirtual org.h2.engine.Database.isStarting:()Z
            ifne 14
            aload 1 /* db */
            invokevirtual org.h2.engine.Database.getStore:()Lorg/h2/mvstore/db/MVTableEngine$Store;
            invokevirtual org.h2.mvstore.db.MVTableEngine$Store.getMvStore:()Lorg/h2/mvstore/MVStore;
            invokevirtual org.h2.mvstore.MVStore.getMetaMap:()Lorg/h2/mvstore/MVMap;
            new java.lang.StringBuilder
            dup
            ldc "name."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.mapName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.h2.mvstore.MVMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 14
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        14: .line 58
      StackMap locals: org.h2.mvstore.db.MVPrimaryIndex org.h2.engine.Database org.h2.mvstore.db.MVTable int org.h2.table.IndexColumn[] org.h2.index.IndexType int[] org.h2.mvstore.db.ValueDataType org.h2.mvstore.db.ValueDataType
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.mvTable:Lorg/h2/mvstore/db/MVTable;
            invokevirtual org.h2.mvstore.db.MVTable.getTransactionBegin:()Lorg/h2/mvstore/tx/Transaction;
            astore 9 /* t */
        start local 9 // org.h2.mvstore.tx.Transaction t
        15: .line 59
            aload 0 /* this */
            aload 9 /* t */
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.mapName:Ljava/lang/String;
            aload 7 /* keyType */
            aload 8 /* valueType */
            invokevirtual org.h2.mvstore.tx.Transaction.openMap:(Ljava/lang/String;Lorg/h2/mvstore/type/DataType;Lorg/h2/mvstore/type/DataType;)Lorg/h2/mvstore/tx/TransactionMap;
            putfield org.h2.mvstore.db.MVPrimaryIndex.dataMap:Lorg/h2/mvstore/tx/TransactionMap;
        16: .line 60
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.dataMap:Lorg/h2/mvstore/tx/TransactionMap;
            getfield org.h2.mvstore.tx.TransactionMap.map:Lorg/h2/mvstore/MVMap;
            aload 2 /* table */
            invokevirtual org.h2.mvstore.db.MVTable.isPersistData:()Z
            ifeq 17
            aload 5 /* indexType */
            invokevirtual org.h2.index.IndexType.isPersistent:()Z
            ifeq 17
            iconst_0
            goto 18
      StackMap locals: org.h2.mvstore.db.MVPrimaryIndex org.h2.engine.Database org.h2.mvstore.db.MVTable int org.h2.table.IndexColumn[] org.h2.index.IndexType int[] org.h2.mvstore.db.ValueDataType org.h2.mvstore.db.ValueDataType org.h2.mvstore.tx.Transaction
      StackMap stack: org.h2.mvstore.MVMap
        17: iconst_1
      StackMap locals: org.h2.mvstore.db.MVPrimaryIndex org.h2.engine.Database org.h2.mvstore.db.MVTable int org.h2.table.IndexColumn[] org.h2.index.IndexType int[] org.h2.mvstore.db.ValueDataType org.h2.mvstore.db.ValueDataType org.h2.mvstore.tx.Transaction
      StackMap stack: org.h2.mvstore.MVMap int
        18: invokevirtual org.h2.mvstore.MVMap.setVolatile:(Z)V
        19: .line 61
            aload 9 /* t */
            invokevirtual org.h2.mvstore.tx.Transaction.commit:()V
        20: .line 62
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.dataMap:Lorg/h2/mvstore/tx/TransactionMap;
            getfield org.h2.mvstore.tx.TransactionMap.map:Lorg/h2/mvstore/MVMap;
            invokevirtual org.h2.mvstore.MVMap.lastKey:()Ljava/lang/Object;
            checkcast org.h2.value.Value
            astore 10 /* k */
        start local 10 // org.h2.value.Value k
        21: .line 63
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.lastKey:Ljava/util/concurrent/atomic/AtomicLong;
            aload 10 /* k */
            ifnonnull 22
            lconst_0
            goto 23
      StackMap locals: org.h2.mvstore.db.MVPrimaryIndex org.h2.engine.Database org.h2.mvstore.db.MVTable int org.h2.table.IndexColumn[] org.h2.index.IndexType int[] org.h2.mvstore.db.ValueDataType org.h2.mvstore.db.ValueDataType org.h2.mvstore.tx.Transaction org.h2.value.Value
      StackMap stack: java.util.concurrent.atomic.AtomicLong
        22: aload 10 /* k */
            invokevirtual org.h2.value.Value.getLong:()J
      StackMap locals: org.h2.mvstore.db.MVPrimaryIndex org.h2.engine.Database org.h2.mvstore.db.MVTable int org.h2.table.IndexColumn[] org.h2.index.IndexType int[] org.h2.mvstore.db.ValueDataType org.h2.mvstore.db.ValueDataType org.h2.mvstore.tx.Transaction org.h2.value.Value
      StackMap stack: java.util.concurrent.atomic.AtomicLong long
        23: invokevirtual java.util.concurrent.atomic.AtomicLong.set:(J)V
        24: .line 64
            return
        end local 10 // org.h2.value.Value k
        end local 9 // org.h2.mvstore.tx.Transaction t
        end local 8 // org.h2.mvstore.db.ValueDataType valueType
        end local 7 // org.h2.mvstore.db.ValueDataType keyType
        end local 6 // int[] sortTypes
        end local 5 // org.h2.index.IndexType indexType
        end local 4 // org.h2.table.IndexColumn[] columns
        end local 3 // int id
        end local 2 // org.h2.mvstore.db.MVTable table
        end local 1 // org.h2.engine.Database db
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   25     0       this  Lorg/h2/mvstore/db/MVPrimaryIndex;
            0   25     1         db  Lorg/h2/engine/Database;
            0   25     2      table  Lorg/h2/mvstore/db/MVTable;
            0   25     3         id  I
            0   25     4    columns  [Lorg/h2/table/IndexColumn;
            0   25     5  indexType  Lorg/h2/index/IndexType;
            5   25     6  sortTypes  [I
            6   10     7          i  I
           11   25     7    keyType  Lorg/h2/mvstore/db/ValueDataType;
           12   25     8  valueType  Lorg/h2/mvstore/db/ValueDataType;
           15   25     9          t  Lorg/h2/mvstore/tx/Transaction;
           21   25    10          k  Lorg/h2/value/Value;
    MethodParameters:
           Name  Flags
      db         
      table      
      id         
      columns    
      indexType  

  public java.lang.String getCreateSQL();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
         0: .line 68
            aconst_null
            areturn
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/db/MVPrimaryIndex;

  public java.lang.String getPlanSQL();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
         0: .line 73
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.table:Lorg/h2/table/Table;
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            iconst_0
            invokevirtual org.h2.table.Table.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            ldc ".tableScan"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/db/MVPrimaryIndex;

  public void setMainIndexColumn(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
        start local 1 // int mainIndexColumn
         0: .line 77
            aload 0 /* this */
            iload 1 /* mainIndexColumn */
            putfield org.h2.mvstore.db.MVPrimaryIndex.mainIndexColumn:I
         1: .line 78
            return
        end local 1 // int mainIndexColumn
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/h2/mvstore/db/MVPrimaryIndex;
            0    2     1  mainIndexColumn  I
    MethodParameters:
                 Name  Flags
      mainIndexColumn  

  public int getMainIndexColumn();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
         0: .line 81
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.mainIndexColumn:I
            ireturn
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/db/MVPrimaryIndex;

  public void close(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
        start local 1 // org.h2.engine.Session session
         0: .line 87
            return
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/h2/mvstore/db/MVPrimaryIndex;
            0    1     1  session  Lorg/h2/engine/Session;
    MethodParameters:
         Name  Flags
      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=11, args_size=3
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
        start local 1 // org.h2.engine.Session session
        start local 2 // org.h2.result.Row row
         0: .line 91
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.mainIndexColumn:I
            iconst_m1
            if_icmpne 4
         1: .line 92
            aload 2 /* row */
            invokeinterface org.h2.result.Row.getKey:()J
            lconst_0
            lcmp
            ifne 6
         2: .line 93
            aload 2 /* row */
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.lastKey:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
            invokeinterface org.h2.result.Row.setKey:(J)V
         3: .line 95
            goto 6
         4: .line 96
      StackMap locals:
      StackMap stack:
            aload 2 /* row */
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.mainIndexColumn:I
            invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
            invokevirtual org.h2.value.Value.getLong:()J
            lstore 3 /* c */
        start local 3 // long c
         5: .line 97
            aload 2 /* row */
            lload 3 /* c */
            invokeinterface org.h2.result.Row.setKey:(J)V
        end local 3 // long c
         6: .line 100
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.mvTable:Lorg/h2/mvstore/db/MVTable;
            invokevirtual org.h2.mvstore.db.MVTable.getContainsLargeObject:()Z
            ifeq 18
         7: .line 101
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         8: aload 2 /* row */
            invokeinterface org.h2.result.Row.getColumnCount:()I
            istore 4 /* len */
        start local 4 // int len
         9: goto 17
        10: .line 102
      StackMap locals: int int
      StackMap stack:
            aload 2 /* row */
            iload 3 /* i */
            invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
            astore 5 /* v */
        start local 5 // org.h2.value.Value v
        11: .line 103
            aload 5 /* v */
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.database:Lorg/h2/engine/Database;
            aload 0 /* this */
            invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getId:()I
            invokevirtual org.h2.value.Value.copy:(Lorg/h2/store/DataHandler;I)Lorg/h2/value/Value;
            astore 6 /* v2 */
        start local 6 // org.h2.value.Value v2
        12: .line 104
            aload 6 /* v2 */
            invokevirtual org.h2.value.Value.isLinkedToTable:()Z
            ifeq 14
        13: .line 105
            aload 1 /* session */
            aload 6 /* v2 */
            invokevirtual org.h2.engine.Session.removeAtCommitStop:(Lorg/h2/value/Value;)V
        14: .line 107
      StackMap locals: org.h2.value.Value org.h2.value.Value
      StackMap stack:
            aload 5 /* v */
            aload 6 /* v2 */
            if_acmpeq 16
        15: .line 108
            aload 2 /* row */
            iload 3 /* i */
            aload 6 /* v2 */
            invokeinterface org.h2.result.Row.setValue:(ILorg/h2/value/Value;)V
        end local 6 // org.h2.value.Value v2
        end local 5 // org.h2.value.Value v
        16: .line 101
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 3 /* i */
            iload 4 /* len */
            if_icmplt 10
        end local 4 // int len
        end local 3 // int i
        18: .line 113
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* session */
            invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getMap:(Lorg/h2/engine/Session;)Lorg/h2/mvstore/tx/TransactionMap;
            astore 3 /* map */
        start local 3 // org.h2.mvstore.tx.TransactionMap map
        19: .line 114
            aload 2 /* row */
            invokeinterface org.h2.result.Row.getKey:()J
            lstore 4 /* rowKey */
        start local 4 // long rowKey
        20: .line 115
            lload 4 /* rowKey */
            invokestatic org.h2.value.ValueLong.get:(J)Lorg/h2/value/ValueLong;
            astore 6 /* key */
        start local 6 // org.h2.value.Value key
        21: .line 117
            aload 3 /* map */
            aload 6 /* key */
            aload 2 /* row */
            invokeinterface org.h2.result.Row.getValueList:()[Lorg/h2/value/Value;
            invokestatic org.h2.value.ValueArray.get:([Lorg/h2/value/Value;)Lorg/h2/value/ValueArray;
            invokevirtual org.h2.mvstore.tx.TransactionMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.value.Value
            astore 7 /* oldValue */
        start local 7 // org.h2.value.Value oldValue
        22: .line 118
            aload 7 /* oldValue */
            ifnull 38
        23: .line 119
            new java.lang.StringBuilder
            dup
            ldc "PRIMARY KEY ON "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 8 /* builder */
        start local 8 // java.lang.StringBuilder builder
        24: .line 120
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.table:Lorg/h2/table/Table;
            aload 8 /* builder */
            iconst_0
            invokevirtual org.h2.table.Table.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            pop
        25: .line 121
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.mainIndexColumn:I
            iflt 28
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.mainIndexColumn:I
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.indexColumns:[Lorg/h2/table/IndexColumn;
            arraylength
            if_icmpge 28
        26: .line 122
            aload 8 /* builder */
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        27: .line 123
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.indexColumns:[Lorg/h2/table/IndexColumn;
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.mainIndexColumn:I
            aaload
            aload 8 /* builder */
            iconst_0
            invokevirtual org.h2.table.IndexColumn.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        28: .line 125
      StackMap locals: org.h2.mvstore.db.MVPrimaryIndex org.h2.engine.Session org.h2.result.Row org.h2.mvstore.tx.TransactionMap long org.h2.value.Value org.h2.value.Value java.lang.StringBuilder
      StackMap stack:
            ldc 90131
            istore 9 /* errorCode */
        start local 9 // int errorCode
        29: .line 126
            aload 3 /* map */
            aload 6 /* key */
            invokevirtual org.h2.mvstore.tx.TransactionMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 31
        30: .line 128
            sipush 23505
            istore 9 /* errorCode */
        31: .line 130
      StackMap locals: int
      StackMap stack:
            aload 8 /* builder */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 7 /* oldValue */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        32: .line 131
            iload 9 /* errorCode */
            aload 8 /* builder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            astore 10 /* e */
        start local 10 // org.h2.message.DbException e
        33: .line 132
            aload 10 /* e */
            aload 0 /* this */
            invokevirtual org.h2.message.DbException.setSource:(Ljava/lang/Object;)V
        34: .line 133
            aload 10 /* e */
            athrow
        end local 10 // org.h2.message.DbException e
        end local 9 // int errorCode
        end local 8 // java.lang.StringBuilder builder
        end local 7 // org.h2.value.Value oldValue
        35: .line 135
      StackMap locals: org.h2.mvstore.db.MVPrimaryIndex org.h2.engine.Session org.h2.result.Row org.h2.mvstore.tx.TransactionMap long org.h2.value.Value
      StackMap stack: java.lang.IllegalStateException
            astore 7 /* e */
        start local 7 // java.lang.IllegalStateException e
        36: .line 136
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.mvTable:Lorg/h2/mvstore/db/MVTable;
            aload 7 /* e */
            invokevirtual org.h2.mvstore.db.MVTable.convertException:(Ljava/lang/IllegalStateException;)Lorg/h2/message/DbException;
            athrow
        end local 7 // java.lang.IllegalStateException e
        start local 7 // long last
        37: .line 142
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.lastKey:Ljava/util/concurrent/atomic/AtomicLong;
            lload 7 /* last */
            lload 4 /* rowKey */
            invokevirtual java.util.concurrent.atomic.AtomicLong.compareAndSet:(JJ)Z
            ifeq 38
            goto 40
        end local 7 // long last
        38: .line 141
      StackMap locals:
      StackMap stack:
            lload 4 /* rowKey */
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.lastKey:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
            dup2
            lstore 7 /* last */
        start local 7 // long last
        39: lcmp
            ifgt 37
        40: .line 144
      StackMap locals: long
      StackMap stack:
            return
        end local 7 // long last
        end local 6 // org.h2.value.Value key
        end local 4 // long rowKey
        end local 3 // org.h2.mvstore.tx.TransactionMap map
        end local 2 // org.h2.result.Row row
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   41     0       this  Lorg/h2/mvstore/db/MVPrimaryIndex;
            0   41     1    session  Lorg/h2/engine/Session;
            0   41     2        row  Lorg/h2/result/Row;
            5    6     3          c  J
            8   18     3          i  I
            9   18     4        len  I
           11   16     5          v  Lorg/h2/value/Value;
           12   16     6         v2  Lorg/h2/value/Value;
           19   41     3        map  Lorg/h2/mvstore/tx/TransactionMap<Lorg/h2/value/Value;Lorg/h2/value/Value;>;
           20   41     4     rowKey  J
           21   41     6        key  Lorg/h2/value/Value;
           22   35     7   oldValue  Lorg/h2/value/Value;
           24   35     8    builder  Ljava/lang/StringBuilder;
           29   35     9  errorCode  I
           33   35    10          e  Lorg/h2/message/DbException;
           36   37     7          e  Ljava/lang/IllegalStateException;
           37   38     7       last  J
           39   41     7       last  J
      Exception table:
        from    to  target  type
          21    35      35  Class java.lang.IllegalStateException
    MethodParameters:
         Name  Flags
      session  
      row      

  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=3, locals=6, args_size=3
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
        start local 1 // org.h2.engine.Session session
        start local 2 // org.h2.result.Row row
         0: .line 148
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.mvTable:Lorg/h2/mvstore/db/MVTable;
            invokevirtual org.h2.mvstore.db.MVTable.getContainsLargeObject:()Z
            ifeq 9
         1: .line 149
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: aload 2 /* row */
            invokeinterface org.h2.result.Row.getColumnCount:()I
            istore 4 /* len */
        start local 4 // int len
         3: goto 8
         4: .line 150
      StackMap locals: int int
      StackMap stack:
            aload 2 /* row */
            iload 3 /* i */
            invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
            astore 5 /* v */
        start local 5 // org.h2.value.Value v
         5: .line 151
            aload 5 /* v */
            invokevirtual org.h2.value.Value.isLinkedToTable:()Z
            ifeq 7
         6: .line 152
            aload 1 /* session */
            aload 5 /* v */
            invokevirtual org.h2.engine.Session.removeAtCommit:(Lorg/h2/value/Value;)V
        end local 5 // org.h2.value.Value v
         7: .line 149
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            iload 4 /* len */
            if_icmplt 4
        end local 4 // int len
        end local 3 // int i
         9: .line 156
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* session */
            invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getMap:(Lorg/h2/engine/Session;)Lorg/h2/mvstore/tx/TransactionMap;
            astore 3 /* map */
        start local 3 // org.h2.mvstore.tx.TransactionMap map
        10: .line 158
            aload 3 /* map */
            aload 2 /* row */
            invokeinterface org.h2.result.Row.getKey:()J
            invokestatic org.h2.value.ValueLong.get:(J)Lorg/h2/value/ValueLong;
            invokevirtual org.h2.mvstore.tx.TransactionMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.value.Value
            astore 4 /* old */
        start local 4 // org.h2.value.Value old
        11: .line 159
            aload 4 /* old */
            ifnonnull 17
        12: .line 160
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 5 /* builder */
        start local 5 // java.lang.StringBuilder builder
        13: .line 161
            aload 0 /* this */
            aload 5 /* builder */
            iconst_0
            invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* row */
            invokeinterface org.h2.result.Row.getKey:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            pop
        14: .line 162
            ldc 90112
            aload 5 /* builder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 5 // java.lang.StringBuilder builder
        end local 4 // org.h2.value.Value old
        15: .line 164
      StackMap locals: org.h2.mvstore.db.MVPrimaryIndex org.h2.engine.Session org.h2.result.Row org.h2.mvstore.tx.TransactionMap
      StackMap stack: java.lang.IllegalStateException
            astore 4 /* e */
        start local 4 // java.lang.IllegalStateException e
        16: .line 165
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.mvTable:Lorg/h2/mvstore/db/MVTable;
            aload 4 /* e */
            invokevirtual org.h2.mvstore.db.MVTable.convertException:(Ljava/lang/IllegalStateException;)Lorg/h2/message/DbException;
            athrow
        end local 4 // java.lang.IllegalStateException e
        17: .line 167
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.h2.mvstore.tx.TransactionMap map
        end local 2 // org.h2.result.Row row
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0     this  Lorg/h2/mvstore/db/MVPrimaryIndex;
            0   18     1  session  Lorg/h2/engine/Session;
            0   18     2      row  Lorg/h2/result/Row;
            2    9     3        i  I
            3    9     4      len  I
            5    7     5        v  Lorg/h2/value/Value;
           10   18     3      map  Lorg/h2/mvstore/tx/TransactionMap<Lorg/h2/value/Value;Lorg/h2/value/Value;>;
           11   15     4      old  Lorg/h2/value/Value;
           13   15     5  builder  Ljava/lang/StringBuilder;
           16   17     4        e  Ljava/lang/IllegalStateException;
      Exception table:
        from    to  target  type
          10    15      15  Class java.lang.IllegalStateException
    MethodParameters:
         Name  Flags
      session  
      row      

  public void update(org.h2.engine.Session, org.h2.result.Row, org.h2.result.Row);
    descriptor: (Lorg/h2/engine/Session;Lorg/h2/result/Row;Lorg/h2/result/Row;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=4
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
        start local 1 // org.h2.engine.Session session
        start local 2 // org.h2.result.Row oldRow
        start local 3 // org.h2.result.Row newRow
         0: .line 171
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.mainIndexColumn:I
            iconst_m1
            if_icmpeq 3
         1: .line 172
            aload 3 /* newRow */
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.mainIndexColumn:I
            invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
            invokevirtual org.h2.value.Value.getLong:()J
            lstore 4 /* c */
        start local 4 // long c
         2: .line 173
            aload 3 /* newRow */
            lload 4 /* c */
            invokeinterface org.h2.result.Row.setKey:(J)V
        end local 4 // long c
         3: .line 175
      StackMap locals:
      StackMap stack:
            aload 2 /* oldRow */
            invokeinterface org.h2.result.Row.getKey:()J
            lstore 4 /* key */
        start local 4 // long key
         4: .line 176
            getstatic org.h2.mvstore.db.MVPrimaryIndex.$assertionsDisabled:Z
            ifne 5
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.mainIndexColumn:I
            iconst_m1
            if_icmpne 5
            lload 4 /* key */
            lconst_0
            lcmp
            ifne 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 177
      StackMap locals: long
      StackMap stack:
            getstatic org.h2.mvstore.db.MVPrimaryIndex.$assertionsDisabled:Z
            ifne 6
            lload 4 /* key */
            aload 3 /* newRow */
            invokeinterface org.h2.result.Row.getKey:()J
            lcmp
            ifeq 6
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            lload 4 /* key */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " != "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* newRow */
            invokeinterface org.h2.result.Row.getKey:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         6: .line 178
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.mvTable:Lorg/h2/mvstore/db/MVTable;
            invokevirtual org.h2.mvstore.db.MVTable.getContainsLargeObject:()Z
            ifeq 22
         7: .line 179
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         8: aload 2 /* oldRow */
            invokeinterface org.h2.result.Row.getColumnCount:()I
            istore 7 /* len */
        start local 7 // int len
         9: goto 21
        10: .line 180
      StackMap locals: int int
      StackMap stack:
            aload 2 /* oldRow */
            iload 6 /* i */
            invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
            astore 8 /* oldValue */
        start local 8 // org.h2.value.Value oldValue
        11: .line 181
            aload 3 /* newRow */
            iload 6 /* i */
            invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
            astore 9 /* newValue */
        start local 9 // org.h2.value.Value newValue
        12: .line 182
            aload 8 /* oldValue */
            aload 9 /* newValue */
            if_acmpeq 20
        13: .line 183
            aload 8 /* oldValue */
            invokevirtual org.h2.value.Value.isLinkedToTable:()Z
            ifeq 15
        14: .line 184
            aload 1 /* session */
            aload 8 /* oldValue */
            invokevirtual org.h2.engine.Session.removeAtCommit:(Lorg/h2/value/Value;)V
        15: .line 186
      StackMap locals: org.h2.value.Value org.h2.value.Value
      StackMap stack:
            aload 9 /* newValue */
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.database:Lorg/h2/engine/Database;
            aload 0 /* this */
            invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getId:()I
            invokevirtual org.h2.value.Value.copy:(Lorg/h2/store/DataHandler;I)Lorg/h2/value/Value;
            astore 10 /* v2 */
        start local 10 // org.h2.value.Value v2
        16: .line 187
            aload 10 /* v2 */
            invokevirtual org.h2.value.Value.isLinkedToTable:()Z
            ifeq 18
        17: .line 188
            aload 1 /* session */
            aload 10 /* v2 */
            invokevirtual org.h2.engine.Session.removeAtCommitStop:(Lorg/h2/value/Value;)V
        18: .line 190
      StackMap locals: org.h2.value.Value
      StackMap stack:
            aload 9 /* newValue */
            aload 10 /* v2 */
            if_acmpeq 20
        19: .line 191
            aload 3 /* newRow */
            iload 6 /* i */
            aload 10 /* v2 */
            invokeinterface org.h2.result.Row.setValue:(ILorg/h2/value/Value;)V
        end local 10 // org.h2.value.Value v2
        end local 9 // org.h2.value.Value newValue
        end local 8 // org.h2.value.Value oldValue
        20: .line 179
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 6 /* i */
            iload 7 /* len */
            if_icmplt 10
        end local 7 // int len
        end local 6 // int i
        22: .line 197
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* session */
            invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getMap:(Lorg/h2/engine/Session;)Lorg/h2/mvstore/tx/TransactionMap;
            astore 6 /* map */
        start local 6 // org.h2.mvstore.tx.TransactionMap map
        23: .line 199
            aload 6 /* map */
            lload 4 /* key */
            invokestatic org.h2.value.ValueLong.get:(J)Lorg/h2/value/ValueLong;
            aload 3 /* newRow */
            invokeinterface org.h2.result.Row.getValueList:()[Lorg/h2/value/Value;
            invokestatic org.h2.value.ValueArray.get:([Lorg/h2/value/Value;)Lorg/h2/value/ValueArray;
            invokevirtual org.h2.mvstore.tx.TransactionMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.value.Value
            astore 7 /* existing */
        start local 7 // org.h2.value.Value existing
        24: .line 200
            aload 7 /* existing */
            ifnonnull 30
        25: .line 201
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 8 /* builder */
        start local 8 // java.lang.StringBuilder builder
        26: .line 202
            aload 0 /* this */
            aload 8 /* builder */
            iconst_0
            invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 4 /* key */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            pop
        27: .line 203
            ldc 90112
            aload 8 /* builder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 8 // java.lang.StringBuilder builder
        end local 7 // org.h2.value.Value existing
        28: .line 205
      StackMap locals: org.h2.mvstore.db.MVPrimaryIndex org.h2.engine.Session org.h2.result.Row org.h2.result.Row long org.h2.mvstore.tx.TransactionMap
      StackMap stack: java.lang.IllegalStateException
            astore 7 /* e */
        start local 7 // java.lang.IllegalStateException e
        29: .line 206
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.mvTable:Lorg/h2/mvstore/db/MVTable;
            aload 7 /* e */
            invokevirtual org.h2.mvstore.db.MVTable.convertException:(Ljava/lang/IllegalStateException;)Lorg/h2/message/DbException;
            athrow
        end local 7 // java.lang.IllegalStateException e
        30: .line 212
      StackMap locals:
      StackMap stack:
            aload 3 /* newRow */
            invokeinterface org.h2.result.Row.getKey:()J
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.lastKey:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
            lcmp
            ifle 32
        31: .line 213
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.lastKey:Ljava/util/concurrent/atomic/AtomicLong;
            aload 3 /* newRow */
            invokeinterface org.h2.result.Row.getKey:()J
            invokevirtual java.util.concurrent.atomic.AtomicLong.set:(J)V
        32: .line 215
      StackMap locals:
      StackMap stack:
            return
        end local 6 // org.h2.mvstore.tx.TransactionMap map
        end local 4 // long key
        end local 3 // org.h2.result.Row newRow
        end local 2 // org.h2.result.Row oldRow
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   33     0      this  Lorg/h2/mvstore/db/MVPrimaryIndex;
            0   33     1   session  Lorg/h2/engine/Session;
            0   33     2    oldRow  Lorg/h2/result/Row;
            0   33     3    newRow  Lorg/h2/result/Row;
            2    3     4         c  J
            4   33     4       key  J
            8   22     6         i  I
            9   22     7       len  I
           11   20     8  oldValue  Lorg/h2/value/Value;
           12   20     9  newValue  Lorg/h2/value/Value;
           16   20    10        v2  Lorg/h2/value/Value;
           23   33     6       map  Lorg/h2/mvstore/tx/TransactionMap<Lorg/h2/value/Value;Lorg/h2/value/Value;>;
           24   28     7  existing  Lorg/h2/value/Value;
           26   28     8   builder  Ljava/lang/StringBuilder;
           29   30     7         e  Ljava/lang/IllegalStateException;
      Exception table:
        from    to  target  type
          23    28      28  Class java.lang.IllegalStateException
    MethodParameters:
         Name  Flags
      session  
      oldRow   
      newRow   

  org.h2.result.Row lockRow(org.h2.engine.Session, org.h2.result.Row);
    descriptor: (Lorg/h2/engine/Session;Lorg/h2/result/Row;)Lorg/h2/result/Row;
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
        start local 1 // org.h2.engine.Session session
        start local 2 // org.h2.result.Row row
         0: .line 225
            aload 0 /* this */
            aload 1 /* session */
            invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getMap:(Lorg/h2/engine/Session;)Lorg/h2/mvstore/tx/TransactionMap;
            astore 3 /* map */
        start local 3 // org.h2.mvstore.tx.TransactionMap map
         1: .line 226
            aload 2 /* row */
            invokeinterface org.h2.result.Row.getKey:()J
            lstore 4 /* key */
        start local 4 // long key
         2: .line 227
            aload 0 /* this */
            aload 3 /* map */
            lload 4 /* key */
            invokevirtual org.h2.mvstore.db.MVPrimaryIndex.lockRow:(Lorg/h2/mvstore/tx/TransactionMap;J)Lorg/h2/value/Value;
            checkcast org.h2.value.ValueArray
            astore 6 /* array */
        start local 6 // org.h2.value.ValueArray array
         3: .line 228
            aload 6 /* array */
            ifnonnull 4
            aconst_null
            goto 5
      StackMap locals: org.h2.mvstore.tx.TransactionMap long org.h2.value.ValueArray
      StackMap stack:
         4: aload 1 /* session */
            lload 4 /* key */
            aload 6 /* array */
            invokestatic org.h2.mvstore.db.MVPrimaryIndex.getRow:(Lorg/h2/engine/Session;JLorg/h2/value/ValueArray;)Lorg/h2/result/Row;
      StackMap locals:
      StackMap stack: org.h2.result.Row
         5: areturn
        end local 6 // org.h2.value.ValueArray array
        end local 4 // long key
        end local 3 // org.h2.mvstore.tx.TransactionMap map
        end local 2 // org.h2.result.Row row
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/h2/mvstore/db/MVPrimaryIndex;
            0    6     1  session  Lorg/h2/engine/Session;
            0    6     2      row  Lorg/h2/result/Row;
            1    6     3      map  Lorg/h2/mvstore/tx/TransactionMap<Lorg/h2/value/Value;Lorg/h2/value/Value;>;
            2    6     4      key  J
            3    6     6    array  Lorg/h2/value/ValueArray;
    MethodParameters:
         Name  Flags
      session  
      row      

  private org.h2.value.Value lockRow(org.h2.mvstore.tx.TransactionMap<org.h2.value.Value, org.h2.value.Value>, long);
    descriptor: (Lorg/h2/mvstore/tx/TransactionMap;J)Lorg/h2/value/Value;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
        start local 1 // org.h2.mvstore.tx.TransactionMap map
        start local 2 // long key
         0: .line 233
            aload 1 /* map */
            lload 2 /* key */
            invokestatic org.h2.value.ValueLong.get:(J)Lorg/h2/value/ValueLong;
            invokevirtual org.h2.mvstore.tx.TransactionMap.lock:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.value.Value
         1: areturn
         2: .line 234
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
            astore 4 /* ex */
        start local 4 // java.lang.IllegalStateException ex
         3: .line 235
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.mvTable:Lorg/h2/mvstore/db/MVTable;
            aload 4 /* ex */
            invokevirtual org.h2.mvstore.db.MVTable.convertException:(Ljava/lang/IllegalStateException;)Lorg/h2/message/DbException;
            athrow
        end local 4 // java.lang.IllegalStateException ex
        end local 2 // long key
        end local 1 // org.h2.mvstore.tx.TransactionMap map
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/h2/mvstore/db/MVPrimaryIndex;
            0    4     1   map  Lorg/h2/mvstore/tx/TransactionMap<Lorg/h2/value/Value;Lorg/h2/value/Value;>;
            0    4     2   key  J
            3    4     4    ex  Ljava/lang/IllegalStateException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalStateException
    Signature: (Lorg/h2/mvstore/tx/TransactionMap<Lorg/h2/value/Value;Lorg/h2/value/Value;>;J)Lorg/h2/value/Value;
    MethodParameters:
      Name  Flags
      map   
      key   

  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=6, locals=7, args_size=4
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex 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 241
            aload 0 /* this */
            aload 2 /* first */
            getstatic org.h2.value.ValueLong.MIN:Lorg/h2/value/ValueLong;
            invokevirtual org.h2.mvstore.db.MVPrimaryIndex.extractPKFromRow:(Lorg/h2/result/SearchRow;Lorg/h2/value/ValueLong;)Lorg/h2/value/ValueLong;
            astore 4 /* min */
        start local 4 // org.h2.value.ValueLong min
         1: .line 242
            aload 0 /* this */
            aload 3 /* last */
            getstatic org.h2.value.ValueLong.MAX:Lorg/h2/value/ValueLong;
            invokevirtual org.h2.mvstore.db.MVPrimaryIndex.extractPKFromRow:(Lorg/h2/result/SearchRow;Lorg/h2/value/ValueLong;)Lorg/h2/value/ValueLong;
            astore 5 /* max */
        start local 5 // org.h2.value.ValueLong max
         2: .line 243
            aload 0 /* this */
            aload 1 /* session */
            invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getMap:(Lorg/h2/engine/Session;)Lorg/h2/mvstore/tx/TransactionMap;
            astore 6 /* map */
        start local 6 // org.h2.mvstore.tx.TransactionMap map
         3: .line 244
            new org.h2.mvstore.db.MVPrimaryIndex$MVStoreCursor
            dup
            aload 1 /* session */
            aload 6 /* map */
            aload 4 /* min */
            aload 5 /* max */
            invokevirtual org.h2.mvstore.tx.TransactionMap.entryIterator:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Iterator;
            invokespecial org.h2.mvstore.db.MVPrimaryIndex$MVStoreCursor.<init>:(Lorg/h2/engine/Session;Ljava/util/Iterator;)V
            areturn
        end local 6 // org.h2.mvstore.tx.TransactionMap map
        end local 5 // org.h2.value.ValueLong max
        end local 4 // org.h2.value.ValueLong min
        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.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/h2/mvstore/db/MVPrimaryIndex;
            0    4     1  session  Lorg/h2/engine/Session;
            0    4     2    first  Lorg/h2/result/SearchRow;
            0    4     3     last  Lorg/h2/result/SearchRow;
            1    4     4      min  Lorg/h2/value/ValueLong;
            2    4     5      max  Lorg/h2/value/ValueLong;
            3    4     6      map  Lorg/h2/mvstore/tx/TransactionMap<Lorg/h2/value/Value;Lorg/h2/value/Value;>;
    MethodParameters:
         Name  Flags
      session  
      first    
      last     

  private org.h2.value.ValueLong extractPKFromRow(org.h2.result.SearchRow, org.h2.value.ValueLong);
    descriptor: (Lorg/h2/result/SearchRow;Lorg/h2/value/ValueLong;)Lorg/h2/value/ValueLong;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
        start local 1 // org.h2.result.SearchRow row
        start local 2 // org.h2.value.ValueLong defaultValue
         0: .line 249
            aload 1 /* row */
            ifnonnull 3
         1: .line 250
            aload 2 /* defaultValue */
            astore 3 /* result */
        start local 3 // org.h2.value.ValueLong result
         2: .line 251
            goto 11
        end local 3 // org.h2.value.ValueLong result
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.mainIndexColumn:I
            iconst_m1
            if_icmpne 6
         4: .line 252
            aload 1 /* row */
            invokeinterface org.h2.result.SearchRow.getKey:()J
            invokestatic org.h2.value.ValueLong.get:(J)Lorg/h2/value/ValueLong;
            astore 3 /* result */
        start local 3 // org.h2.value.ValueLong result
         5: .line 253
            goto 11
        end local 3 // org.h2.value.ValueLong result
         6: .line 254
      StackMap locals:
      StackMap stack:
            aload 1 /* row */
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.mainIndexColumn:I
            invokeinterface org.h2.result.SearchRow.getValue:(I)Lorg/h2/value/Value;
            checkcast org.h2.value.ValueLong
            astore 4 /* v */
        start local 4 // org.h2.value.ValueLong v
         7: .line 255
            aload 4 /* v */
            ifnonnull 10
         8: .line 256
            aload 1 /* row */
            invokeinterface org.h2.result.SearchRow.getKey:()J
            invokestatic org.h2.value.ValueLong.get:(J)Lorg/h2/value/ValueLong;
            astore 3 /* result */
        start local 3 // org.h2.value.ValueLong result
         9: .line 257
            goto 11
        end local 3 // org.h2.value.ValueLong result
        10: .line 258
      StackMap locals: org.h2.mvstore.db.MVPrimaryIndex org.h2.result.SearchRow org.h2.value.ValueLong top org.h2.value.ValueLong
      StackMap stack:
            aload 4 /* v */
            astore 3 /* result */
        end local 4 // org.h2.value.ValueLong v
        start local 3 // org.h2.value.ValueLong result
        11: .line 261
      StackMap locals: org.h2.mvstore.db.MVPrimaryIndex org.h2.result.SearchRow org.h2.value.ValueLong org.h2.value.ValueLong
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // org.h2.value.ValueLong result
        end local 2 // org.h2.value.ValueLong defaultValue
        end local 1 // org.h2.result.SearchRow row
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   12     0          this  Lorg/h2/mvstore/db/MVPrimaryIndex;
            0   12     1           row  Lorg/h2/result/SearchRow;
            0   12     2  defaultValue  Lorg/h2/value/ValueLong;
            2    3     3        result  Lorg/h2/value/ValueLong;
            5    6     3        result  Lorg/h2/value/ValueLong;
            9   10     3        result  Lorg/h2/value/ValueLong;
           11   12     3        result  Lorg/h2/value/ValueLong;
            7   11     4             v  Lorg/h2/value/ValueLong;
    MethodParameters:
              Name  Flags
      row           
      defaultValue  

  public org.h2.mvstore.db.MVTable getTable();
    descriptor: ()Lorg/h2/mvstore/db/MVTable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
         0: .line 266
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.mvTable:Lorg/h2/mvstore/db/MVTable;
            areturn
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/db/MVPrimaryIndex;

  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=6, locals=6, args_size=3
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
        start local 1 // org.h2.engine.Session session
        start local 2 // long key
         0: .line 271
            aload 0 /* this */
            aload 1 /* session */
            invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getMap:(Lorg/h2/engine/Session;)Lorg/h2/mvstore/tx/TransactionMap;
            astore 4 /* map */
        start local 4 // org.h2.mvstore.tx.TransactionMap map
         1: .line 272
            aload 4 /* map */
            lload 2 /* key */
            invokestatic org.h2.value.ValueLong.get:(J)Lorg/h2/value/ValueLong;
            invokevirtual org.h2.mvstore.tx.TransactionMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.value.Value
            astore 5 /* v */
        start local 5 // org.h2.value.Value v
         2: .line 273
            aload 5 /* v */
            ifnonnull 6
         3: .line 274
            ldc 90143
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
         4: .line 275
            aload 0 /* this */
            iconst_0
            invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getSQL:(Z)Ljava/lang/String;
            aastore
            dup
            iconst_1
            lload 2 /* key */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            aastore
         5: .line 274
            invokestatic org.h2.message.DbException.get:(I[Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
         6: .line 277
      StackMap locals: org.h2.mvstore.tx.TransactionMap org.h2.value.Value
      StackMap stack:
            aload 1 /* session */
            lload 2 /* key */
            aload 5 /* v */
            checkcast org.h2.value.ValueArray
            invokestatic org.h2.mvstore.db.MVPrimaryIndex.getRow:(Lorg/h2/engine/Session;JLorg/h2/value/ValueArray;)Lorg/h2/result/Row;
            areturn
        end local 5 // org.h2.value.Value v
        end local 4 // org.h2.mvstore.tx.TransactionMap map
        end local 2 // long key
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/h2/mvstore/db/MVPrimaryIndex;
            0    7     1  session  Lorg/h2/engine/Session;
            0    7     2      key  J
            1    7     4      map  Lorg/h2/mvstore/tx/TransactionMap<Lorg/h2/value/Value;Lorg/h2/value/Value;>;
            2    7     5        v  Lorg/h2/value/Value;
    MethodParameters:
         Name  Flags
      session  
      key      

  private static org.h2.result.Row getRow(org.h2.engine.Session, long, org.h2.value.ValueArray);
    descriptor: (Lorg/h2/engine/Session;JLorg/h2/value/ValueArray;)Lorg/h2/result/Row;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.h2.engine.Session session
        start local 1 // long key
        start local 3 // org.h2.value.ValueArray array
         0: .line 281
            aload 0 /* session */
            aload 3 /* array */
            invokevirtual org.h2.value.ValueArray.getList:()[Lorg/h2/value/Value;
            iconst_0
            invokevirtual org.h2.engine.Session.createRow:([Lorg/h2/value/Value;I)Lorg/h2/result/Row;
            astore 4 /* row */
        start local 4 // org.h2.result.Row row
         1: .line 282
            aload 4 /* row */
            lload 1 /* key */
            invokeinterface org.h2.result.Row.setKey:(J)V
         2: .line 283
            aload 4 /* row */
            areturn
        end local 4 // org.h2.result.Row row
        end local 3 // org.h2.value.ValueArray array
        end local 1 // long key
        end local 0 // org.h2.engine.Session session
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  session  Lorg/h2/engine/Session;
            0    3     1      key  J
            0    3     3    array  Lorg/h2/value/ValueArray;
            1    3     4      row  Lorg/h2/result/Row;
    MethodParameters:
         Name  Flags
      session  
      key      
      array    

  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=8, args_size=7
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex 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 291
            ldc 10
            aload 0 /* this */
            aload 2 /* masks */
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.dataMap:Lorg/h2/mvstore/tx/TransactionMap;
            invokevirtual org.h2.mvstore.tx.TransactionMap.sizeAsLongMax:()J
         1: .line 292
            aload 3 /* filters */
            iload 4 /* filter */
            aload 5 /* sortOrder */
            iconst_1
            aload 6 /* allColumnsSet */
         2: .line 291
            invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getCostRangeIndex:([IJ[Lorg/h2/table/TableFilter;ILorg/h2/result/SortOrder;ZLorg/h2/command/dml/AllColumnsForPlan;)J
            lmul
            l2d
         3: dreturn
         4: .line 293
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
            astore 7 /* e */
        start local 7 // java.lang.IllegalStateException e
         5: .line 294
            ldc 90007
            aload 7 /* e */
            iconst_0
            anewarray java.lang.String
            invokestatic org.h2.message.DbException.get:(ILjava/lang/Throwable;[Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 7 // java.lang.IllegalStateException e
        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.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lorg/h2/mvstore/db/MVPrimaryIndex;
            0    6     1        session  Lorg/h2/engine/Session;
            0    6     2          masks  [I
            0    6     3        filters  [Lorg/h2/table/TableFilter;
            0    6     4         filter  I
            0    6     5      sortOrder  Lorg/h2/result/SortOrder;
            0    6     6  allColumnsSet  Lorg/h2/command/dml/AllColumnsForPlan;
            5    6     7              e  Ljava/lang/IllegalStateException;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.IllegalStateException
    MethodParameters:
               Name  Flags
      session        
      masks          
      filters        
      filter         
      sortOrder      
      allColumnsSet  

  public int getColumnIndex(org.h2.table.Column);
    descriptor: (Lorg/h2/table/Column;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
        start local 1 // org.h2.table.Column col
         0: .line 301
            iconst_m1
            ireturn
        end local 1 // org.h2.table.Column col
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/db/MVPrimaryIndex;
            0    1     1   col  Lorg/h2/table/Column;
    MethodParameters:
      Name  Flags
      col   

  public boolean isFirstColumn(org.h2.table.Column);
    descriptor: (Lorg/h2/table/Column;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
        start local 1 // org.h2.table.Column column
         0: .line 306
            iconst_0
            ireturn
        end local 1 // org.h2.table.Column column
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/h2/mvstore/db/MVPrimaryIndex;
            0    1     1  column  Lorg/h2/table/Column;
    MethodParameters:
        Name  Flags
      column  

  public void remove(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
        start local 1 // org.h2.engine.Session session
         0: .line 311
            aload 0 /* this */
            aload 1 /* session */
            invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getMap:(Lorg/h2/engine/Session;)Lorg/h2/mvstore/tx/TransactionMap;
            astore 2 /* map */
        start local 2 // org.h2.mvstore.tx.TransactionMap map
         1: .line 312
            aload 2 /* map */
            invokevirtual org.h2.mvstore.tx.TransactionMap.isClosed:()Z
            ifne 4
         2: .line 313
            aload 1 /* session */
            invokevirtual org.h2.engine.Session.getTransaction:()Lorg/h2/mvstore/tx/Transaction;
            astore 3 /* t */
        start local 3 // org.h2.mvstore.tx.Transaction t
         3: .line 314
            aload 3 /* t */
            aload 2 /* map */
            invokevirtual org.h2.mvstore.tx.Transaction.removeMap:(Lorg/h2/mvstore/tx/TransactionMap;)V
        end local 3 // org.h2.mvstore.tx.Transaction t
         4: .line 316
      StackMap locals: org.h2.mvstore.tx.TransactionMap
      StackMap stack:
            return
        end local 2 // org.h2.mvstore.tx.TransactionMap map
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/h2/mvstore/db/MVPrimaryIndex;
            0    5     1  session  Lorg/h2/engine/Session;
            1    5     2      map  Lorg/h2/mvstore/tx/TransactionMap<Lorg/h2/value/Value;Lorg/h2/value/Value;>;
            3    4     3        t  Lorg/h2/mvstore/tx/Transaction;
    MethodParameters:
         Name  Flags
      session  

  public void truncate(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.mvstore.db.MVPrimaryIndex this
        start local 1 // org.h2.engine.Session session
         0: .line 320
            aload 0 /* this */
            aload 1 /* session */
            invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getMap:(Lorg/h2/engine/Session;)Lorg/h2/mvstore/tx/TransactionMap;
            astore 2 /* map */
        start local 2 // org.h2.mvstore.tx.TransactionMap map
         1: .line 321
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.mvTable:Lorg/h2/mvstore/db/MVTable;
            invokevirtual org.h2.mvstore.db.MVTable.getContainsLargeObject:()Z
            ifeq 3
         2: .line 322
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getLobStorage:()Lorg/h2/store/LobStorageInterface;
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.table:Lorg/h2/table/Table;
            invokevirtual org.h2.table.Table.getId:()I
            invokeinterface org.h2.store.LobStorageInterface.removeAllForTable:(I)V
         3: .line 324
      StackMap locals: org.h2.mvstore.tx.TransactionMap
      StackMap stack:
            aload 2 /* map */
            invokevirtual org.h2.mvstore.tx.TransactionMap.clear:()V
         4: .line 325
            return
        end local 2 // org.h2.mvstore.tx.TransactionMap map
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/h2/mvstore/db/MVPrimaryIndex;
            0    5     1  session  Lorg/h2/engine/Session;
            1    5     2      map  Lorg/h2/mvstore/tx/TransactionMap<Lorg/h2/value/Value;Lorg/h2/value/Value;>;
    MethodParameters:
         Name  Flags
      session  

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

  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=4, locals=9, args_size=3
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
        start local 1 // org.h2.engine.Session session
        start local 2 // boolean first
         0: .line 334
            aload 0 /* this */
            aload 1 /* session */
            invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getMap:(Lorg/h2/engine/Session;)Lorg/h2/mvstore/tx/TransactionMap;
            astore 3 /* map */
        start local 3 // org.h2.mvstore.tx.TransactionMap map
         1: .line 335
            iload 2 /* first */
            ifeq 2
            aload 3 /* map */
            invokevirtual org.h2.mvstore.tx.TransactionMap.firstKey:()Ljava/lang/Object;
            checkcast org.h2.value.Value
            goto 3
      StackMap locals: org.h2.mvstore.tx.TransactionMap
      StackMap stack:
         2: aload 3 /* map */
            invokevirtual org.h2.mvstore.tx.TransactionMap.lastKey:()Ljava/lang/Object;
            checkcast org.h2.value.Value
      StackMap locals:
      StackMap stack: org.h2.value.Value
         3: checkcast org.h2.value.ValueLong
            astore 4 /* v */
        start local 4 // org.h2.value.ValueLong v
         4: .line 336
            aload 4 /* v */
            ifnonnull 8
         5: .line 337
            new org.h2.mvstore.db.MVPrimaryIndex$MVStoreCursor
            dup
            aload 1 /* session */
         6: .line 338
            invokestatic java.util.Collections.emptyIterator:()Ljava/util/Iterator;
         7: .line 337
            invokespecial org.h2.mvstore.db.MVPrimaryIndex$MVStoreCursor.<init>:(Lorg/h2/engine/Session;Ljava/util/Iterator;)V
            areturn
         8: .line 340
      StackMap locals: org.h2.value.ValueLong
      StackMap stack:
            aload 3 /* map */
            aload 4 /* v */
            invokevirtual org.h2.mvstore.tx.TransactionMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.value.Value
            astore 5 /* value */
        start local 5 // org.h2.value.Value value
         9: .line 341
            new java.util.AbstractMap$SimpleImmutableEntry
            dup
            aload 4 /* v */
            aload 5 /* value */
            invokespecial java.util.AbstractMap$SimpleImmutableEntry.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
            astore 6 /* e */
        start local 6 // java.util.Map$Entry e
        10: .line 342
            aload 6 /* e */
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            astore 7 /* list */
        start local 7 // java.util.List list
        11: .line 343
            new org.h2.mvstore.db.MVPrimaryIndex$MVStoreCursor
            dup
            aload 1 /* session */
            aload 7 /* list */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            invokespecial org.h2.mvstore.db.MVPrimaryIndex$MVStoreCursor.<init>:(Lorg/h2/engine/Session;Ljava/util/Iterator;)V
            astore 8 /* c */
        start local 8 // org.h2.mvstore.db.MVPrimaryIndex$MVStoreCursor c
        12: .line 344
            aload 8 /* c */
            invokevirtual org.h2.mvstore.db.MVPrimaryIndex$MVStoreCursor.next:()Z
            pop
        13: .line 345
            aload 8 /* c */
            areturn
        end local 8 // org.h2.mvstore.db.MVPrimaryIndex$MVStoreCursor c
        end local 7 // java.util.List list
        end local 6 // java.util.Map$Entry e
        end local 5 // org.h2.value.Value value
        end local 4 // org.h2.value.ValueLong v
        end local 3 // org.h2.mvstore.tx.TransactionMap map
        end local 2 // boolean first
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Lorg/h2/mvstore/db/MVPrimaryIndex;
            0   14     1  session  Lorg/h2/engine/Session;
            0   14     2    first  Z
            1   14     3      map  Lorg/h2/mvstore/tx/TransactionMap<Lorg/h2/value/Value;Lorg/h2/value/Value;>;
            4   14     4        v  Lorg/h2/value/ValueLong;
            9   14     5    value  Lorg/h2/value/Value;
           10   14     6        e  Ljava/util/Map$Entry<Lorg/h2/value/Value;Lorg/h2/value/Value;>;
           11   14     7     list  Ljava/util/List<Ljava/util/Map$Entry<Lorg/h2/value/Value;Lorg/h2/value/Value;>;>;
           12   14     8        c  Lorg/h2/mvstore/db/MVPrimaryIndex$MVStoreCursor;
    MethodParameters:
         Name  Flags
      session  
      first    

  public boolean needRebuild();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
         0: .line 350
            iconst_0
            ireturn
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/db/MVPrimaryIndex;

  public long getRowCount(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
        start local 1 // org.h2.engine.Session session
         0: .line 355
            aload 0 /* this */
            aload 1 /* session */
            invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getMap:(Lorg/h2/engine/Session;)Lorg/h2/mvstore/tx/TransactionMap;
            astore 2 /* map */
        start local 2 // org.h2.mvstore.tx.TransactionMap map
         1: .line 356
            aload 2 /* map */
            invokevirtual org.h2.mvstore.tx.TransactionMap.sizeAsLong:()J
            lreturn
        end local 2 // org.h2.mvstore.tx.TransactionMap map
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/h2/mvstore/db/MVPrimaryIndex;
            0    2     1  session  Lorg/h2/engine/Session;
            1    2     2      map  Lorg/h2/mvstore/tx/TransactionMap<Lorg/h2/value/Value;Lorg/h2/value/Value;>;
    MethodParameters:
         Name  Flags
      session  

  public long getRowCountMax();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
         0: .line 365
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.dataMap:Lorg/h2/mvstore/tx/TransactionMap;
            invokevirtual org.h2.mvstore.tx.TransactionMap.sizeAsLongMax:()J
            lreturn
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/db/MVPrimaryIndex;

  public long getRowCountApproximation();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
         0: .line 370
            aload 0 /* this */
            invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getRowCountMax:()J
            lreturn
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/db/MVPrimaryIndex;

  public long getDiskSpaceUsed();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
         0: .line 375
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.dataMap:Lorg/h2/mvstore/tx/TransactionMap;
            getfield org.h2.mvstore.tx.TransactionMap.map:Lorg/h2/mvstore/MVMap;
            invokevirtual org.h2.mvstore.MVMap.getRootPage:()Lorg/h2/mvstore/Page;
            invokevirtual org.h2.mvstore.Page.getDiskSpaceUsed:()J
            lreturn
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/db/MVPrimaryIndex;

  public java.lang.String getMapName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
         0: .line 379
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.mapName:Ljava/lang/String;
            areturn
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/db/MVPrimaryIndex;

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

  org.h2.value.ValueLong getKey(org.h2.result.SearchRow, org.h2.value.ValueLong, org.h2.value.ValueLong);
    descriptor: (Lorg/h2/result/SearchRow;Lorg/h2/value/ValueLong;Lorg/h2/value/ValueLong;)Lorg/h2/value/ValueLong;
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=4
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
        start local 1 // org.h2.result.SearchRow row
        start local 2 // org.h2.value.ValueLong ifEmpty
        start local 3 // org.h2.value.ValueLong ifNull
         0: .line 396
            aload 1 /* row */
            ifnonnull 2
         1: .line 397
            aload 2 /* ifEmpty */
            areturn
         2: .line 399
      StackMap locals:
      StackMap stack:
            aload 1 /* row */
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.mainIndexColumn:I
            invokeinterface org.h2.result.SearchRow.getValue:(I)Lorg/h2/value/Value;
            astore 4 /* v */
        start local 4 // org.h2.value.Value v
         3: .line 400
            aload 4 /* v */
            ifnonnull 5
         4: .line 401
            aload 1 /* row */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         5: .line 402
      StackMap locals: org.h2.value.Value
      StackMap stack:
            aload 4 /* v */
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            if_acmpne 7
         6: .line 403
            aload 3 /* ifNull */
            areturn
         7: .line 405
      StackMap locals:
      StackMap stack:
            aload 4 /* v */
            iconst_5
            invokevirtual org.h2.value.Value.convertTo:(I)Lorg/h2/value/Value;
            checkcast org.h2.value.ValueLong
            areturn
        end local 4 // org.h2.value.Value v
        end local 3 // org.h2.value.ValueLong ifNull
        end local 2 // org.h2.value.ValueLong ifEmpty
        end local 1 // org.h2.result.SearchRow row
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/h2/mvstore/db/MVPrimaryIndex;
            0    8     1      row  Lorg/h2/result/SearchRow;
            0    8     2  ifEmpty  Lorg/h2/value/ValueLong;
            0    8     3   ifNull  Lorg/h2/value/ValueLong;
            3    8     4        v  Lorg/h2/value/Value;
    MethodParameters:
         Name  Flags
      row      
      ifEmpty  
      ifNull   

  org.h2.index.Cursor find(org.h2.engine.Session, org.h2.value.ValueLong, org.h2.value.ValueLong);
    descriptor: (Lorg/h2/engine/Session;Lorg/h2/value/ValueLong;Lorg/h2/value/ValueLong;)Lorg/h2/index/Cursor;
    flags: (0x0000) 
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
        start local 1 // org.h2.engine.Session session
        start local 2 // org.h2.value.ValueLong first
        start local 3 // org.h2.value.ValueLong last
         0: .line 417
            aload 0 /* this */
            aload 1 /* session */
            invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getMap:(Lorg/h2/engine/Session;)Lorg/h2/mvstore/tx/TransactionMap;
            astore 4 /* map */
        start local 4 // org.h2.mvstore.tx.TransactionMap map
         1: .line 418
            new org.h2.mvstore.db.MVPrimaryIndex$MVStoreCursor
            dup
            aload 1 /* session */
            aload 4 /* map */
            aload 2 /* first */
            aload 3 /* last */
            invokevirtual org.h2.mvstore.tx.TransactionMap.entryIterator:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Iterator;
            invokespecial org.h2.mvstore.db.MVPrimaryIndex$MVStoreCursor.<init>:(Lorg/h2/engine/Session;Ljava/util/Iterator;)V
            areturn
        end local 4 // org.h2.mvstore.tx.TransactionMap map
        end local 3 // org.h2.value.ValueLong last
        end local 2 // org.h2.value.ValueLong first
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/h2/mvstore/db/MVPrimaryIndex;
            0    2     1  session  Lorg/h2/engine/Session;
            0    2     2    first  Lorg/h2/value/ValueLong;
            0    2     3     last  Lorg/h2/value/ValueLong;
            1    2     4      map  Lorg/h2/mvstore/tx/TransactionMap<Lorg/h2/value/Value;Lorg/h2/value/Value;>;
    MethodParameters:
         Name  Flags
      session  
      first    
      last     

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

  org.h2.mvstore.tx.TransactionMap<org.h2.value.Value, org.h2.value.Value> getMap(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)Lorg/h2/mvstore/tx/TransactionMap;
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.h2.mvstore.db.MVPrimaryIndex this
        start local 1 // org.h2.engine.Session session
         0: .line 433
            aload 1 /* session */
            ifnonnull 2
         1: .line 434
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.dataMap:Lorg/h2/mvstore/tx/TransactionMap;
            areturn
         2: .line 436
      StackMap locals:
      StackMap stack:
            aload 1 /* session */
            invokevirtual org.h2.engine.Session.getTransaction:()Lorg/h2/mvstore/tx/Transaction;
            astore 2 /* t */
        start local 2 // org.h2.mvstore.tx.Transaction t
         3: .line 437
            aload 0 /* this */
            getfield org.h2.mvstore.db.MVPrimaryIndex.dataMap:Lorg/h2/mvstore/tx/TransactionMap;
            aload 2 /* t */
            invokevirtual org.h2.mvstore.tx.TransactionMap.getInstance:(Lorg/h2/mvstore/tx/Transaction;)Lorg/h2/mvstore/tx/TransactionMap;
            areturn
        end local 2 // org.h2.mvstore.tx.Transaction t
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.mvstore.db.MVPrimaryIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/h2/mvstore/db/MVPrimaryIndex;
            0    4     1  session  Lorg/h2/engine/Session;
            3    4     2        t  Lorg/h2/mvstore/tx/Transaction;
    Signature: (Lorg/h2/engine/Session;)Lorg/h2/mvstore/tx/TransactionMap<Lorg/h2/value/Value;Lorg/h2/value/Value;>;
    MethodParameters:
         Name  Flags
      session  

  public org.h2.table.Table getTable();
    descriptor: ()Lorg/h2/table/Table;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getTable:()Lorg/h2/mvstore/db/MVTable;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "MVPrimaryIndex.java"
NestMembers:
  org.h2.mvstore.db.MVPrimaryIndex$MVStoreCursor
InnerClasses:
  public SimpleImmutableEntry = java.util.AbstractMap$SimpleImmutableEntry of java.util.AbstractMap
  public abstract Entry = java.util.Map$Entry of java.util.Map
  MVStoreCursor = org.h2.mvstore.db.MVPrimaryIndex$MVStoreCursor of org.h2.mvstore.db.MVPrimaryIndex
  public Store = org.h2.mvstore.db.MVTableEngine$Store of org.h2.mvstore.db.MVTableEngine