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: 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 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 2
iload 3
new java.lang.StringBuilder
dup
aload 2
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
aload 5
invokespecial org.h2.index.BaseIndex.<init>:(Lorg/h2/table/Table;ILjava/lang/String;[Lorg/h2/table/IndexColumn;Lorg/h2/index/IndexType;)V
1: aload 0
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: aload 0
iconst_m1
putfield org.h2.mvstore.db.MVPrimaryIndex.mainIndexColumn:I
3: aload 0
aload 2
putfield org.h2.mvstore.db.MVPrimaryIndex.mvTable:Lorg/h2/mvstore/db/MVTable;
4: aload 4
arraylength
newarray 10
astore 6
start local 6 5: iconst_0
istore 7
start local 7 6: goto 9
7: 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
iload 7
iconst_0
iastore
8: iinc 7 1
StackMap locals:
StackMap stack:
9: iload 7
aload 4
arraylength
if_icmplt 7
end local 7 10: new org.h2.mvstore.db.ValueDataType
dup
invokespecial org.h2.mvstore.db.ValueDataType.<init>:()V
astore 7
start local 7 11: new org.h2.mvstore.db.ValueDataType
dup
aload 1
aload 6
invokespecial org.h2.mvstore.db.ValueDataType.<init>:(Lorg/h2/engine/Database;[I)V
astore 8
start local 8 12: aload 0
new java.lang.StringBuilder
dup
ldc "table."
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
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: getstatic org.h2.mvstore.db.MVPrimaryIndex.$assertionsDisabled:Z
ifne 14
aload 1
invokevirtual org.h2.engine.Database.isStarting:()Z
ifne 14
aload 1
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
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: 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
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
start local 9 15: aload 0
aload 9
aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.mapName:Ljava/lang/String;
aload 7
aload 8
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: aload 0
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
invokevirtual org.h2.mvstore.db.MVTable.isPersistData:()Z
ifeq 17
aload 5
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: aload 9
invokevirtual org.h2.mvstore.tx.Transaction.commit:()V
20: aload 0
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
start local 10 21: aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.lastKey:Ljava/util/concurrent/atomic/AtomicLong;
aload 10
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
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: return
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 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 0: aconst_null
areturn
end local 0 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 0: aload 0
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 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 start local 1 0: aload 0
iload 1
putfield org.h2.mvstore.db.MVPrimaryIndex.mainIndexColumn:I
1: return
end local 1 end local 0 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 0: aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.mainIndexColumn:I
ireturn
end local 0 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 start local 1 0: return
end local 1 end local 0 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 start local 1 start local 2 0: aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.mainIndexColumn:I
iconst_m1
if_icmpne 4
1: aload 2
invokeinterface org.h2.result.Row.getKey:()J
lconst_0
lcmp
ifne 6
2: aload 2
aload 0
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: goto 6
4: StackMap locals:
StackMap stack:
aload 2
aload 0
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
start local 3 5: aload 2
lload 3
invokeinterface org.h2.result.Row.setKey:(J)V
end local 3 6: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.mvTable:Lorg/h2/mvstore/db/MVTable;
invokevirtual org.h2.mvstore.db.MVTable.getContainsLargeObject:()Z
ifeq 18
7: iconst_0
istore 3
start local 3 8: aload 2
invokeinterface org.h2.result.Row.getColumnCount:()I
istore 4
start local 4 9: goto 17
10: StackMap locals: int int
StackMap stack:
aload 2
iload 3
invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
astore 5
start local 5 11: aload 5
aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.database:Lorg/h2/engine/Database;
aload 0
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
start local 6 12: aload 6
invokevirtual org.h2.value.Value.isLinkedToTable:()Z
ifeq 14
13: aload 1
aload 6
invokevirtual org.h2.engine.Session.removeAtCommitStop:(Lorg/h2/value/Value;)V
14: StackMap locals: org.h2.value.Value org.h2.value.Value
StackMap stack:
aload 5
aload 6
if_acmpeq 16
15: aload 2
iload 3
aload 6
invokeinterface org.h2.result.Row.setValue:(ILorg/h2/value/Value;)V
end local 6 end local 5 16: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
17: iload 3
iload 4
if_icmplt 10
end local 4 end local 3 18: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getMap:(Lorg/h2/engine/Session;)Lorg/h2/mvstore/tx/TransactionMap;
astore 3
start local 3 19: aload 2
invokeinterface org.h2.result.Row.getKey:()J
lstore 4
start local 4 20: lload 4
invokestatic org.h2.value.ValueLong.get:(J)Lorg/h2/value/ValueLong;
astore 6
start local 6 21: aload 3
aload 6
aload 2
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
start local 7 22: aload 7
ifnull 38
23: new java.lang.StringBuilder
dup
ldc "PRIMARY KEY ON "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 8
start local 8 24: aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.table:Lorg/h2/table/Table;
aload 8
iconst_0
invokevirtual org.h2.table.Table.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
pop
25: aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.mainIndexColumn:I
iflt 28
aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.mainIndexColumn:I
aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.indexColumns:[Lorg/h2/table/IndexColumn;
arraylength
if_icmpge 28
26: aload 8
bipush 40
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
27: aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.indexColumns:[Lorg/h2/table/IndexColumn;
aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.mainIndexColumn:I
aaload
aload 8
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: 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
start local 9 29: aload 3
aload 6
invokevirtual org.h2.mvstore.tx.TransactionMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
ifnull 31
30: sipush 23505
istore 9
31: StackMap locals: int
StackMap stack:
aload 8
bipush 32
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
pop
32: iload 9
aload 8
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
astore 10
start local 10 33: aload 10
aload 0
invokevirtual org.h2.message.DbException.setSource:(Ljava/lang/Object;)V
34: aload 10
athrow
end local 10 end local 9 end local 8 end local 7 35: 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
start local 7 36: aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.mvTable:Lorg/h2/mvstore/db/MVTable;
aload 7
invokevirtual org.h2.mvstore.db.MVTable.convertException:(Ljava/lang/IllegalStateException;)Lorg/h2/message/DbException;
athrow
end local 7 start local 7 37: StackMap locals: long
StackMap stack:
aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.lastKey:Ljava/util/concurrent/atomic/AtomicLong;
lload 7
lload 4
invokevirtual java.util.concurrent.atomic.AtomicLong.compareAndSet:(JJ)Z
ifeq 38
goto 40
end local 7 38: StackMap locals:
StackMap stack:
lload 4
aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.lastKey:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
dup2
lstore 7
start local 7 39: lcmp
ifgt 37
40: StackMap locals: long
StackMap stack:
return
end local 7 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 0: aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.mvTable:Lorg/h2/mvstore/db/MVTable;
invokevirtual org.h2.mvstore.db.MVTable.getContainsLargeObject:()Z
ifeq 9
1: iconst_0
istore 3
start local 3 2: aload 2
invokeinterface org.h2.result.Row.getColumnCount:()I
istore 4
start local 4 3: goto 8
4: StackMap locals: int int
StackMap stack:
aload 2
iload 3
invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
astore 5
start local 5 5: aload 5
invokevirtual org.h2.value.Value.isLinkedToTable:()Z
ifeq 7
6: aload 1
aload 5
invokevirtual org.h2.engine.Session.removeAtCommit:(Lorg/h2/value/Value;)V
end local 5 7: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
8: iload 3
iload 4
if_icmplt 4
end local 4 end local 3 9: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getMap:(Lorg/h2/engine/Session;)Lorg/h2/mvstore/tx/TransactionMap;
astore 3
start local 3 10: aload 3
aload 2
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
start local 4 11: aload 4
ifnonnull 17
12: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 5
start local 5 13: aload 0
aload 5
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
invokeinterface org.h2.result.Row.getKey:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
pop
14: ldc 90112
aload 5
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 end local 4 15: 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
start local 4 16: aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.mvTable:Lorg/h2/mvstore/db/MVTable;
aload 4
invokevirtual org.h2.mvstore.db.MVTable.convertException:(Ljava/lang/IllegalStateException;)Lorg/h2/message/DbException;
athrow
end local 4 17: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 start local 3 0: aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.mainIndexColumn:I
iconst_m1
if_icmpeq 3
1: aload 3
aload 0
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
start local 4 2: aload 3
lload 4
invokeinterface org.h2.result.Row.setKey:(J)V
end local 4 3: StackMap locals:
StackMap stack:
aload 2
invokeinterface org.h2.result.Row.getKey:()J
lstore 4
start local 4 4: getstatic org.h2.mvstore.db.MVPrimaryIndex.$assertionsDisabled:Z
ifne 5
aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.mainIndexColumn:I
iconst_m1
if_icmpne 5
lload 4
lconst_0
lcmp
ifne 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals: long
StackMap stack:
getstatic org.h2.mvstore.db.MVPrimaryIndex.$assertionsDisabled:Z
ifne 6
lload 4
aload 3
invokeinterface org.h2.result.Row.getKey:()J
lcmp
ifeq 6
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
lload 4
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
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: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.mvTable:Lorg/h2/mvstore/db/MVTable;
invokevirtual org.h2.mvstore.db.MVTable.getContainsLargeObject:()Z
ifeq 22
7: iconst_0
istore 6
start local 6 8: aload 2
invokeinterface org.h2.result.Row.getColumnCount:()I
istore 7
start local 7 9: goto 21
10: StackMap locals: int int
StackMap stack:
aload 2
iload 6
invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
astore 8
start local 8 11: aload 3
iload 6
invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
astore 9
start local 9 12: aload 8
aload 9
if_acmpeq 20
13: aload 8
invokevirtual org.h2.value.Value.isLinkedToTable:()Z
ifeq 15
14: aload 1
aload 8
invokevirtual org.h2.engine.Session.removeAtCommit:(Lorg/h2/value/Value;)V
15: StackMap locals: org.h2.value.Value org.h2.value.Value
StackMap stack:
aload 9
aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.database:Lorg/h2/engine/Database;
aload 0
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
start local 10 16: aload 10
invokevirtual org.h2.value.Value.isLinkedToTable:()Z
ifeq 18
17: aload 1
aload 10
invokevirtual org.h2.engine.Session.removeAtCommitStop:(Lorg/h2/value/Value;)V
18: StackMap locals: org.h2.value.Value
StackMap stack:
aload 9
aload 10
if_acmpeq 20
19: aload 3
iload 6
aload 10
invokeinterface org.h2.result.Row.setValue:(ILorg/h2/value/Value;)V
end local 10 end local 9 end local 8 20: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
21: iload 6
iload 7
if_icmplt 10
end local 7 end local 6 22: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getMap:(Lorg/h2/engine/Session;)Lorg/h2/mvstore/tx/TransactionMap;
astore 6
start local 6 23: aload 6
lload 4
invokestatic org.h2.value.ValueLong.get:(J)Lorg/h2/value/ValueLong;
aload 3
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
start local 7 24: aload 7
ifnonnull 30
25: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 8
start local 8 26: aload 0
aload 8
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
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
pop
27: ldc 90112
aload 8
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 end local 7 28: 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
start local 7 29: aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.mvTable:Lorg/h2/mvstore/db/MVTable;
aload 7
invokevirtual org.h2.mvstore.db.MVTable.convertException:(Ljava/lang/IllegalStateException;)Lorg/h2/message/DbException;
athrow
end local 7 30: StackMap locals:
StackMap stack:
aload 3
invokeinterface org.h2.result.Row.getKey:()J
aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.lastKey:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lcmp
ifle 32
31: aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.lastKey:Ljava/util/concurrent/atomic/AtomicLong;
aload 3
invokeinterface org.h2.result.Row.getKey:()J
invokevirtual java.util.concurrent.atomic.AtomicLong.set:(J)V
32: StackMap locals:
StackMap stack:
return
end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getMap:(Lorg/h2/engine/Session;)Lorg/h2/mvstore/tx/TransactionMap;
astore 3
start local 3 1: aload 2
invokeinterface org.h2.result.Row.getKey:()J
lstore 4
start local 4 2: aload 0
aload 3
lload 4
invokevirtual org.h2.mvstore.db.MVPrimaryIndex.lockRow:(Lorg/h2/mvstore/tx/TransactionMap;J)Lorg/h2/value/Value;
checkcast org.h2.value.ValueArray
astore 6
start local 6 3: aload 6
ifnonnull 4
aconst_null
goto 5
StackMap locals: org.h2.mvstore.tx.TransactionMap long org.h2.value.ValueArray
StackMap stack:
4: aload 1
lload 4
aload 6
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 end local 4 end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 0: aload 1
lload 2
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: StackMap locals:
StackMap stack: java.lang.IllegalStateException
astore 4
start local 4 3: aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.mvTable:Lorg/h2/mvstore/db/MVTable;
aload 4
invokevirtual org.h2.mvstore.db.MVTable.convertException:(Ljava/lang/IllegalStateException;)Lorg/h2/message/DbException;
athrow
end local 4 end local 2 end local 1 end local 0 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 start local 1 start local 2 start local 3 0: aload 0
aload 2
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
start local 4 1: aload 0
aload 3
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
start local 5 2: aload 0
aload 1
invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getMap:(Lorg/h2/engine/Session;)Lorg/h2/mvstore/tx/TransactionMap;
astore 6
start local 6 3: new org.h2.mvstore.db.MVPrimaryIndex$MVStoreCursor
dup
aload 1
aload 6
aload 4
aload 5
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 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 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 (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 start local 1 start local 2 0: aload 1
ifnonnull 3
1: aload 2
astore 3
start local 3 2: goto 11
end local 3 StackMap locals:
StackMap stack:
3: aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.mainIndexColumn:I
iconst_m1
if_icmpne 6
4: aload 1
invokeinterface org.h2.result.SearchRow.getKey:()J
invokestatic org.h2.value.ValueLong.get:(J)Lorg/h2/value/ValueLong;
astore 3
start local 3 5: goto 11
end local 3 6: StackMap locals:
StackMap stack:
aload 1
aload 0
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
start local 4 7: aload 4
ifnonnull 10
8: aload 1
invokeinterface org.h2.result.SearchRow.getKey:()J
invokestatic org.h2.value.ValueLong.get:(J)Lorg/h2/value/ValueLong;
astore 3
start local 3 9: goto 11
end local 3 10: StackMap locals: org.h2.mvstore.db.MVPrimaryIndex org.h2.result.SearchRow org.h2.value.ValueLong top org.h2.value.ValueLong
StackMap stack:
aload 4
astore 3
end local 4 start local 3 11: StackMap locals: org.h2.mvstore.db.MVPrimaryIndex org.h2.result.SearchRow org.h2.value.ValueLong org.h2.value.ValueLong
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 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 0: aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.mvTable:Lorg/h2/mvstore/db/MVTable;
areturn
end local 0 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 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getMap:(Lorg/h2/engine/Session;)Lorg/h2/mvstore/tx/TransactionMap;
astore 4
start local 4 1: aload 4
lload 2
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
start local 5 2: aload 5
ifnonnull 6
3: ldc 90143
iconst_2
anewarray java.lang.String
dup
iconst_0
4: aload 0
iconst_0
invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getSQL:(Z)Ljava/lang/String;
aastore
dup
iconst_1
lload 2
invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
aastore
5: invokestatic org.h2.message.DbException.get:(I[Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
6: StackMap locals: org.h2.mvstore.tx.TransactionMap org.h2.value.Value
StackMap stack:
aload 1
lload 2
aload 5
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 end local 4 end local 2 end local 1 end local 0 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 start local 1 start local 3 0: aload 0
aload 3
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
start local 4 1: aload 4
lload 1
invokeinterface org.h2.result.Row.setKey:(J)V
2: aload 4
areturn
end local 4 end local 3 end local 1 end local 0 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 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: ldc 10
aload 0
aload 2
aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.dataMap:Lorg/h2/mvstore/tx/TransactionMap;
invokevirtual org.h2.mvstore.tx.TransactionMap.sizeAsLongMax:()J
1: aload 3
iload 4
aload 5
iconst_1
aload 6
2: 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: StackMap locals:
StackMap stack: java.lang.IllegalStateException
astore 7
start local 7 5: ldc 90007
aload 7
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 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 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 start local 1 0: iconst_m1
ireturn
end local 1 end local 0 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 start local 1 0: iconst_0
ireturn
end local 1 end local 0 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 start local 1 0: aload 0
aload 1
invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getMap:(Lorg/h2/engine/Session;)Lorg/h2/mvstore/tx/TransactionMap;
astore 2
start local 2 1: aload 2
invokevirtual org.h2.mvstore.tx.TransactionMap.isClosed:()Z
ifne 4
2: aload 1
invokevirtual org.h2.engine.Session.getTransaction:()Lorg/h2/mvstore/tx/Transaction;
astore 3
start local 3 3: aload 3
aload 2
invokevirtual org.h2.mvstore.tx.Transaction.removeMap:(Lorg/h2/mvstore/tx/TransactionMap;)V
end local 3 4: StackMap locals: org.h2.mvstore.tx.TransactionMap
StackMap stack:
return
end local 2 end local 1 end local 0 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 start local 1 0: aload 0
aload 1
invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getMap:(Lorg/h2/engine/Session;)Lorg/h2/mvstore/tx/TransactionMap;
astore 2
start local 2 1: aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.mvTable:Lorg/h2/mvstore/db/MVTable;
invokevirtual org.h2.mvstore.db.MVTable.getContainsLargeObject:()Z
ifeq 3
2: aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.database:Lorg/h2/engine/Database;
invokevirtual org.h2.engine.Database.getLobStorage:()Lorg/h2/store/LobStorageInterface;
aload 0
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: StackMap locals: org.h2.mvstore.tx.TransactionMap
StackMap stack:
aload 2
invokevirtual org.h2.mvstore.tx.TransactionMap.clear:()V
4: return
end local 2 end local 1 end local 0 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 0: iconst_1
ireturn
end local 0 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 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getMap:(Lorg/h2/engine/Session;)Lorg/h2/mvstore/tx/TransactionMap;
astore 3
start local 3 1: iload 2
ifeq 2
aload 3
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
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
start local 4 4: aload 4
ifnonnull 8
5: new org.h2.mvstore.db.MVPrimaryIndex$MVStoreCursor
dup
aload 1
6: invokestatic java.util.Collections.emptyIterator:()Ljava/util/Iterator;
7: invokespecial org.h2.mvstore.db.MVPrimaryIndex$MVStoreCursor.<init>:(Lorg/h2/engine/Session;Ljava/util/Iterator;)V
areturn
8: StackMap locals: org.h2.value.ValueLong
StackMap stack:
aload 3
aload 4
invokevirtual org.h2.mvstore.tx.TransactionMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.h2.value.Value
astore 5
start local 5 9: new java.util.AbstractMap$SimpleImmutableEntry
dup
aload 4
aload 5
invokespecial java.util.AbstractMap$SimpleImmutableEntry.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
astore 6
start local 6 10: aload 6
invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
astore 7
start local 7 11: new org.h2.mvstore.db.MVPrimaryIndex$MVStoreCursor
dup
aload 1
aload 7
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
start local 8 12: aload 8
invokevirtual org.h2.mvstore.db.MVPrimaryIndex$MVStoreCursor.next:()Z
pop
13: aload 8
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 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 0: iconst_0
ireturn
end local 0 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 start local 1 0: aload 0
aload 1
invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getMap:(Lorg/h2/engine/Session;)Lorg/h2/mvstore/tx/TransactionMap;
astore 2
start local 2 1: aload 2
invokevirtual org.h2.mvstore.tx.TransactionMap.sizeAsLong:()J
lreturn
end local 2 end local 1 end local 0 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 0: aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.dataMap:Lorg/h2/mvstore/tx/TransactionMap;
invokevirtual org.h2.mvstore.tx.TransactionMap.sizeAsLongMax:()J
lreturn
end local 0 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 0: aload 0
invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getRowCountMax:()J
lreturn
end local 0 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 0: aload 0
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 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 0: aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.mapName:Ljava/lang/String;
areturn
end local 0 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 0: return
end local 0 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 start local 1 start local 2 start local 3 0: aload 1
ifnonnull 2
1: aload 2
areturn
2: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.mainIndexColumn:I
invokeinterface org.h2.result.SearchRow.getValue:(I)Lorg/h2/value/Value;
astore 4
start local 4 3: aload 4
ifnonnull 5
4: aload 1
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
5: StackMap locals: org.h2.value.Value
StackMap stack:
aload 4
getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
if_acmpne 7
6: aload 3
areturn
7: StackMap locals:
StackMap stack:
aload 4
iconst_5
invokevirtual org.h2.value.Value.convertTo:(I)Lorg/h2/value/Value;
checkcast org.h2.value.ValueLong
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getMap:(Lorg/h2/engine/Session;)Lorg/h2/mvstore/tx/TransactionMap;
astore 4
start local 4 1: new org.h2.mvstore.db.MVPrimaryIndex$MVStoreCursor
dup
aload 1
aload 4
aload 2
aload 3
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 end local 3 end local 2 end local 1 end local 0 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 0: iconst_1
ireturn
end local 0 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 start local 1 0: aload 1
ifnonnull 2
1: aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.dataMap:Lorg/h2/mvstore/tx/TransactionMap;
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.h2.engine.Session.getTransaction:()Lorg/h2/mvstore/tx/Transaction;
astore 2
start local 2 3: aload 0
getfield org.h2.mvstore.db.MVPrimaryIndex.dataMap:Lorg/h2/mvstore/tx/TransactionMap;
aload 2
invokevirtual org.h2.mvstore.tx.TransactionMap.getInstance:(Lorg/h2/mvstore/tx/Transaction;)Lorg/h2/mvstore/tx/TransactionMap;
areturn
end local 2 end local 1 end local 0 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: 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