public class org.h2.command.dml.Insert extends org.h2.command.dml.CommandWithValues implements org.h2.result.ResultTarget
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.h2.command.dml.Insert
super_class: org.h2.command.dml.CommandWithValues
{
private org.h2.table.Table table;
descriptor: Lorg/h2/table/Table;
flags: (0x0002) ACC_PRIVATE
private org.h2.table.Column[] columns;
descriptor: [Lorg/h2/table/Column;
flags: (0x0002) ACC_PRIVATE
private org.h2.command.dml.Query query;
descriptor: Lorg/h2/command/dml/Query;
flags: (0x0002) ACC_PRIVATE
private boolean sortedInsertMode;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int rowNumber;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean insertFromSelect;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private org.h2.table.TableFilter sourceTableFilter;
descriptor: Lorg/h2/table/TableFilter;
flags: (0x0002) ACC_PRIVATE
private java.util.HashMap<org.h2.table.Column, org.h2.expression.Expression> duplicateKeyAssignmentMap;
descriptor: Ljava/util/HashMap;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/HashMap<Lorg/h2/table/Column;Lorg/h2/expression/Expression;>;
private boolean ignore;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
public void <init>(org.h2.engine.Session);
descriptor: (Lorg/h2/engine/Session;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial org.h2.command.dml.CommandWithValues.<init>:(Lorg/h2/engine/Session;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/command/dml/Insert;
0 2 1 session Lorg/h2/engine/Session;
MethodParameters:
Name Flags
session
public void setCommand(org.h2.command.Command);
descriptor: (Lorg/h2/command/Command;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial org.h2.command.dml.CommandWithValues.setCommand:(Lorg/h2/command/Command;)V
1: aload 0
getfield org.h2.command.dml.Insert.query:Lorg/h2/command/dml/Query;
ifnull 3
2: aload 0
getfield org.h2.command.dml.Insert.query:Lorg/h2/command/dml/Query;
aload 1
invokevirtual org.h2.command.dml.Query.setCommand:(Lorg/h2/command/Command;)V
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/command/dml/Insert;
0 4 1 command Lorg/h2/command/Command;
MethodParameters:
Name Flags
command
public void setTable(org.h2.table.Table);
descriptor: (Lorg/h2/table/Table;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/command/dml/Insert;
0 2 1 table Lorg/h2/table/Table;
MethodParameters:
Name Flags
table
public void setColumns(org.h2.table.Column[]);
descriptor: ([Lorg/h2/table/Column;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.h2.command.dml.Insert.columns:[Lorg/h2/table/Column;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/command/dml/Insert;
0 2 1 columns [Lorg/h2/table/Column;
MethodParameters:
Name Flags
columns
public void setIgnore(boolean);
descriptor: (Z)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.command.dml.Insert.ignore:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/command/dml/Insert;
0 2 1 ignore Z
MethodParameters:
Name Flags
ignore
public void setQuery(org.h2.command.dml.Query);
descriptor: (Lorg/h2/command/dml/Query;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.h2.command.dml.Insert.query:Lorg/h2/command/dml/Query;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/command/dml/Insert;
0 2 1 query Lorg/h2/command/dml/Query;
MethodParameters:
Name Flags
query
public void addAssignmentForDuplicate(org.h2.table.Column, org.h2.expression.Expression);
descriptor: (Lorg/h2/table/Column;Lorg/h2/expression/Expression;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.h2.command.dml.Insert.duplicateKeyAssignmentMap:Ljava/util/HashMap;
ifnonnull 2
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.h2.command.dml.Insert.duplicateKeyAssignmentMap:Ljava/util/HashMap;
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Insert.duplicateKeyAssignmentMap:Ljava/util/HashMap;
aload 1
invokevirtual java.util.HashMap.containsKey:(Ljava/lang/Object;)Z
ifeq 6
3: ldc 42121
4: aload 1
invokevirtual org.h2.table.Column.getName:()Ljava/lang/String;
5: invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Insert.duplicateKeyAssignmentMap:Ljava/util/HashMap;
aload 1
aload 2
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/h2/command/dml/Insert;
0 8 1 column Lorg/h2/table/Column;
0 8 2 expression Lorg/h2/expression/Expression;
MethodParameters:
Name Flags
column
expression
public int update();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aload 0
getfield org.h2.command.dml.Insert.sortedInsertMode:Z
ifeq 6
2: aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
invokevirtual org.h2.engine.Database.isMVStore:()Z
ifne 4
3: aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
iconst_1
iconst_1
invokevirtual org.h2.table.Table.lock:(Lorg/h2/engine/Session;ZZ)Z
pop
4: StackMap locals: org.h2.index.Index
StackMap stack:
aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
invokevirtual org.h2.table.Table.getScanIndex:(Lorg/h2/engine/Session;)Lorg/h2/index/Index;
astore 1
5: aload 1
iconst_1
invokeinterface org.h2.index.Index.setSortedInsertMode:(Z)V
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.command.dml.Insert.insertRows:()I
istore 3
7: aload 1
ifnull 9
8: aload 1
iconst_0
invokeinterface org.h2.index.Index.setSortedInsertMode:(Z)V
9: StackMap locals: org.h2.command.dml.Insert org.h2.index.Index top int
StackMap stack:
iload 3
ireturn
10: StackMap locals: org.h2.command.dml.Insert org.h2.index.Index
StackMap stack: java.lang.Throwable
astore 2
11: aload 1
ifnull 13
12: aload 1
iconst_0
invokeinterface org.h2.index.Index.setSortedInsertMode:(Z)V
13: StackMap locals: java.lang.Throwable
StackMap stack:
aload 2
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/h2/command/dml/Insert;
1 14 1 index Lorg/h2/index/Index;
Exception table:
from to target type
6 7 10 any
private int insertRows();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=13, args_size=1
start local 0 0: aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
invokevirtual org.h2.engine.Session.getUser:()Lorg/h2/engine/User;
aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
iconst_4
invokevirtual org.h2.engine.User.checkRight:(Lorg/h2/table/Table;I)V
1: aload 0
lconst_0
invokevirtual org.h2.command.dml.Insert.setCurrentRowNumber:(J)V
2: aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
iconst_1
iconst_1
invokevirtual org.h2.table.Table.fire:(Lorg/h2/engine/Session;IZ)V
3: aload 0
iconst_0
putfield org.h2.command.dml.Insert.rowNumber:I
4: aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
invokevirtual org.h2.engine.Session.getGeneratedKeys:()Lorg/h2/engine/GeneratedKeys;
astore 1
start local 1 5: aload 1
aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
invokevirtual org.h2.engine.GeneratedKeys.initialize:(Lorg/h2/table/Table;)V
6: aload 0
getfield org.h2.command.dml.Insert.valuesExpressionList:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
istore 2
start local 2 7: iload 2
ifle 51
8: aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
invokevirtual org.h2.engine.Database.getMode:()Lorg/h2/engine/Mode;
astore 3
start local 3 9: aload 0
getfield org.h2.command.dml.Insert.columns:[Lorg/h2/table/Column;
arraylength
istore 4
start local 4 10: iconst_0
istore 5
start local 5 11: goto 49
12: StackMap locals: org.h2.command.dml.Insert org.h2.engine.GeneratedKeys int org.h2.engine.Mode int int
StackMap stack:
aload 1
invokevirtual org.h2.engine.GeneratedKeys.nextRow:()V
13: aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.getTemplateRow:()Lorg/h2/result/Row;
astore 6
start local 6 14: aload 0
getfield org.h2.command.dml.Insert.valuesExpressionList:Ljava/util/ArrayList;
iload 5
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Expression[]
astore 7
start local 7 15: aload 0
iload 5
iconst_1
iadd
i2l
invokevirtual org.h2.command.dml.Insert.setCurrentRowNumber:(J)V
16: iconst_0
istore 8
start local 8 17: goto 31
18: StackMap locals: org.h2.result.Row org.h2.expression.Expression[] int
StackMap stack:
aload 0
getfield org.h2.command.dml.Insert.columns:[Lorg/h2/table/Column;
iload 8
aaload
astore 9
start local 9 19: aload 9
invokevirtual org.h2.table.Column.getColumnId:()I
istore 10
start local 10 20: aload 7
iload 8
aaload
astore 11
start local 11 21: aload 11
ifnull 30
22: aload 11
aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
invokevirtual org.h2.expression.Expression.optimize:(Lorg/h2/engine/Session;)Lorg/h2/expression/Expression;
astore 11
23: aload 9
aload 11
aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
invokevirtual org.h2.expression.Expression.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
aload 3
invokevirtual org.h2.table.Column.convert:(Lorg/h2/value/Value;Lorg/h2/engine/Mode;)Lorg/h2/value/Value;
astore 12
start local 12 24: aload 6
iload 10
aload 12
invokeinterface org.h2.result.Row.setValue:(ILorg/h2/value/Value;)V
25: aload 11
invokevirtual org.h2.expression.Expression.isGeneratedKey:()Z
ifeq 30
26: aload 1
aload 9
invokevirtual org.h2.engine.GeneratedKeys.add:(Lorg/h2/table/Column;)V
end local 12 27: goto 30
StackMap locals: org.h2.command.dml.Insert org.h2.engine.GeneratedKeys int org.h2.engine.Mode int int org.h2.result.Row org.h2.expression.Expression[] int org.h2.table.Column int org.h2.expression.Expression
StackMap stack: org.h2.message.DbException
28: astore 12
start local 12 29: aload 0
aload 12
iload 5
aload 7
invokestatic org.h2.command.dml.Insert.getSimpleSQL:([Lorg/h2/expression/Expression;)Ljava/lang/String;
invokevirtual org.h2.command.dml.Insert.setRow:(Lorg/h2/message/DbException;ILjava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 12 end local 11 end local 10 end local 9 30: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
31: iload 8
iload 4
if_icmplt 18
end local 8 32: aload 0
dup
getfield org.h2.command.dml.Insert.rowNumber:I
iconst_1
iadd
putfield org.h2.command.dml.Insert.rowNumber:I
33: aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
aload 6
invokevirtual org.h2.table.Table.validateConvertUpdateSequence:(Lorg/h2/engine/Session;Lorg/h2/result/Row;)V
34: aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
aconst_null
aload 6
invokevirtual org.h2.table.Table.fireBeforeRow:(Lorg/h2/engine/Session;Lorg/h2/result/Row;Lorg/h2/result/Row;)Z
istore 8
start local 8 35: iload 8
ifne 48
36: aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
iconst_1
iconst_0
invokevirtual org.h2.table.Table.lock:(Lorg/h2/engine/Session;ZZ)Z
pop
37: aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
aload 6
invokevirtual org.h2.table.Table.addRow:(Lorg/h2/engine/Session;Lorg/h2/result/Row;)V
38: goto 45
StackMap locals: org.h2.command.dml.Insert org.h2.engine.GeneratedKeys int org.h2.engine.Mode int int org.h2.result.Row org.h2.expression.Expression[] int
StackMap stack: org.h2.message.DbException
39: astore 9
start local 9 40: aload 0
aload 9
aconst_null
invokevirtual org.h2.command.dml.Insert.handleOnDuplicate:(Lorg/h2/message/DbException;[Lorg/h2/value/Value;)Z
ifeq 43
41: aload 0
dup
getfield org.h2.command.dml.Insert.rowNumber:I
iconst_1
iadd
putfield org.h2.command.dml.Insert.rowNumber:I
42: goto 48
43: StackMap locals: org.h2.message.DbException
StackMap stack:
aload 0
dup
getfield org.h2.command.dml.Insert.rowNumber:I
iconst_1
isub
putfield org.h2.command.dml.Insert.rowNumber:I
44: goto 48
end local 9 45: StackMap locals:
StackMap stack:
aload 1
aload 6
invokevirtual org.h2.engine.GeneratedKeys.confirmRow:(Lorg/h2/result/Row;)V
46: aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
iconst_0
aload 6
invokevirtual org.h2.engine.Session.log:(Lorg/h2/table/Table;SLorg/h2/result/Row;)V
47: aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
aconst_null
aload 6
iconst_0
invokevirtual org.h2.table.Table.fireAfterRow:(Lorg/h2/engine/Session;Lorg/h2/result/Row;Lorg/h2/result/Row;Z)V
end local 8 end local 7 end local 6 48: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
49: iload 5
iload 2
if_icmplt 12
end local 5 end local 4 end local 3 50: goto 70
51: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
iconst_1
iconst_0
invokevirtual org.h2.table.Table.lock:(Lorg/h2/engine/Session;ZZ)Z
pop
52: aload 0
getfield org.h2.command.dml.Insert.insertFromSelect:Z
ifeq 55
53: aload 0
getfield org.h2.command.dml.Insert.query:Lorg/h2/command/dml/Query;
iconst_0
aload 0
invokevirtual org.h2.command.dml.Query.query:(ILorg/h2/result/ResultTarget;)Lorg/h2/result/ResultInterface;
pop
54: goto 70
55: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Insert.query:Lorg/h2/command/dml/Query;
iconst_0
invokevirtual org.h2.command.dml.Query.query:(I)Lorg/h2/result/ResultInterface;
astore 3
start local 3 56: goto 68
57: StackMap locals: org.h2.result.ResultInterface
StackMap stack:
aload 1
invokevirtual org.h2.engine.GeneratedKeys.nextRow:()V
58: aload 3
invokeinterface org.h2.result.ResultInterface.currentRow:()[Lorg/h2/value/Value;
astore 4
start local 4 59: aload 0
aload 4
invokevirtual org.h2.command.dml.Insert.addRowImpl:([Lorg/h2/value/Value;)Lorg/h2/result/Row;
astore 5
start local 5 60: aload 5
ifnull 68
61: aload 1
aload 5
invokevirtual org.h2.engine.GeneratedKeys.confirmRow:(Lorg/h2/result/Row;)V
end local 5 62: goto 68
StackMap locals: org.h2.command.dml.Insert org.h2.engine.GeneratedKeys int org.h2.result.ResultInterface org.h2.value.Value[]
StackMap stack: org.h2.message.DbException
63: astore 5
start local 5 64: aload 0
aload 5
aload 4
invokevirtual org.h2.command.dml.Insert.handleOnDuplicate:(Lorg/h2/message/DbException;[Lorg/h2/value/Value;)Z
ifeq 67
65: aload 0
dup
getfield org.h2.command.dml.Insert.rowNumber:I
iconst_1
iadd
putfield org.h2.command.dml.Insert.rowNumber:I
66: goto 68
67: StackMap locals: org.h2.message.DbException
StackMap stack:
aload 0
dup
getfield org.h2.command.dml.Insert.rowNumber:I
iconst_1
isub
putfield org.h2.command.dml.Insert.rowNumber:I
end local 5 end local 4 68: StackMap locals:
StackMap stack:
aload 3
invokeinterface org.h2.result.ResultInterface.next:()Z
ifne 57
69: aload 3
invokeinterface org.h2.result.ResultInterface.close:()V
end local 3 70: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
iconst_1
iconst_0
invokevirtual org.h2.table.Table.fire:(Lorg/h2/engine/Session;IZ)V
71: aload 0
getfield org.h2.command.dml.Insert.rowNumber:I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 72 0 this Lorg/h2/command/dml/Insert;
5 72 1 generatedKeys Lorg/h2/engine/GeneratedKeys;
7 72 2 listSize I
9 50 3 mode Lorg/h2/engine/Mode;
10 50 4 columnLen I
11 50 5 x I
14 48 6 newRow Lorg/h2/result/Row;
15 48 7 expr [Lorg/h2/expression/Expression;
17 32 8 i I
19 30 9 c Lorg/h2/table/Column;
20 30 10 index I
21 30 11 e Lorg/h2/expression/Expression;
24 27 12 v Lorg/h2/value/Value;
29 30 12 ex Lorg/h2/message/DbException;
35 48 8 done Z
40 45 9 de Lorg/h2/message/DbException;
56 70 3 rows Lorg/h2/result/ResultInterface;
59 68 4 r [Lorg/h2/value/Value;
60 62 5 newRow Lorg/h2/result/Row;
64 68 5 de Lorg/h2/message/DbException;
Exception table:
from to target type
23 27 28 Class org.h2.message.DbException
37 38 39 Class org.h2.message.DbException
59 62 63 Class org.h2.message.DbException
public void addRow(org.h2.value.Value[]);
descriptor: ([Lorg/h2/value/Value;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.h2.command.dml.Insert.addRowImpl:([Lorg/h2/value/Value;)Lorg/h2/result/Row;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/command/dml/Insert;
0 2 1 values [Lorg/h2/value/Value;
MethodParameters:
Name Flags
values
private org.h2.result.Row addRowImpl(org.h2.value.Value[]);
descriptor: ([Lorg/h2/value/Value;)Lorg/h2/result/Row;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.getTemplateRow:()Lorg/h2/result/Row;
astore 2
start local 2 1: aload 0
aload 0
dup
getfield org.h2.command.dml.Insert.rowNumber:I
iconst_1
iadd
dup_x1
putfield org.h2.command.dml.Insert.rowNumber:I
i2l
invokevirtual org.h2.command.dml.Insert.setCurrentRowNumber:(J)V
2: aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
invokevirtual org.h2.engine.Database.getMode:()Lorg/h2/engine/Mode;
astore 3
start local 3 3: iconst_0
istore 4
start local 4 4: aload 0
getfield org.h2.command.dml.Insert.columns:[Lorg/h2/table/Column;
arraylength
istore 5
start local 5 5: goto 14
6: StackMap locals: org.h2.command.dml.Insert org.h2.value.Value[] org.h2.result.Row org.h2.engine.Mode int int
StackMap stack:
aload 0
getfield org.h2.command.dml.Insert.columns:[Lorg/h2/table/Column;
iload 4
aaload
astore 6
start local 6 7: aload 6
invokevirtual org.h2.table.Column.getColumnId:()I
istore 7
start local 7 8: aload 6
aload 1
iload 4
aaload
aload 3
invokevirtual org.h2.table.Column.convert:(Lorg/h2/value/Value;Lorg/h2/engine/Mode;)Lorg/h2/value/Value;
astore 8
start local 8 9: aload 2
iload 7
aload 8
invokeinterface org.h2.result.Row.setValue:(ILorg/h2/value/Value;)V
end local 8 10: goto 13
StackMap locals: org.h2.command.dml.Insert org.h2.value.Value[] org.h2.result.Row org.h2.engine.Mode int int org.h2.table.Column int
StackMap stack: org.h2.message.DbException
11: astore 8
start local 8 12: aload 0
aload 8
aload 0
getfield org.h2.command.dml.Insert.rowNumber:I
aload 1
invokestatic org.h2.command.dml.Insert.getSQL:([Lorg/h2/value/Value;)Ljava/lang/String;
invokevirtual org.h2.command.dml.Insert.setRow:(Lorg/h2/message/DbException;ILjava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 8 end local 7 end local 6 13: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
14: iload 4
iload 5
if_icmplt 6
end local 5 end local 4 15: aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
aload 2
invokevirtual org.h2.table.Table.validateConvertUpdateSequence:(Lorg/h2/engine/Session;Lorg/h2/result/Row;)V
16: aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
aconst_null
aload 2
invokevirtual org.h2.table.Table.fireBeforeRow:(Lorg/h2/engine/Session;Lorg/h2/result/Row;Lorg/h2/result/Row;)Z
istore 4
start local 4 17: iload 4
ifne 22
18: aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
aload 2
invokevirtual org.h2.table.Table.addRow:(Lorg/h2/engine/Session;Lorg/h2/result/Row;)V
19: aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
iconst_0
aload 2
invokevirtual org.h2.engine.Session.log:(Lorg/h2/table/Table;SLorg/h2/result/Row;)V
20: aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
aconst_null
aload 2
iconst_0
invokevirtual org.h2.table.Table.fireAfterRow:(Lorg/h2/engine/Session;Lorg/h2/result/Row;Lorg/h2/result/Row;Z)V
21: aload 2
areturn
22: StackMap locals: org.h2.command.dml.Insert org.h2.value.Value[] org.h2.result.Row org.h2.engine.Mode int
StackMap stack:
aconst_null
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lorg/h2/command/dml/Insert;
0 23 1 values [Lorg/h2/value/Value;
1 23 2 newRow Lorg/h2/result/Row;
3 23 3 mode Lorg/h2/engine/Mode;
4 15 4 j I
5 15 5 len I
7 13 6 c Lorg/h2/table/Column;
8 13 7 index I
9 10 8 v Lorg/h2/value/Value;
12 13 8 ex Lorg/h2/message/DbException;
17 23 4 done Z
Exception table:
from to target type
8 10 11 Class org.h2.message.DbException
MethodParameters:
Name Flags
values
public int getRowCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.command.dml.Insert.rowNumber:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/command/dml/Insert;
public void limitsWereApplied();
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/command/dml/Insert;
public java.lang.String getPlanSQL(boolean);
descriptor: (Z)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
ldc "INSERT INTO "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 2
start local 2 1: aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
aload 2
iload 1
invokevirtual org.h2.table.Table.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
bipush 40
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
2: aload 2
aload 0
getfield org.h2.command.dml.Insert.columns:[Lorg/h2/table/Column;
iload 1
invokestatic org.h2.table.Column.writeColumns:(Ljava/lang/StringBuilder;[Lorg/h2/table/Column;Z)Ljava/lang/StringBuilder;
pop
3: aload 2
ldc ")\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
4: aload 0
getfield org.h2.command.dml.Insert.insertFromSelect:Z
ifeq 6
5: aload 2
ldc "DIRECT "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
6: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 0
getfield org.h2.command.dml.Insert.sortedInsertMode:Z
ifeq 8
7: aload 2
ldc "SORTED "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Insert.valuesExpressionList:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.isEmpty:()Z
ifne 22
9: aload 2
ldc "VALUES "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: iconst_0
istore 3
start local 3 11: aload 0
getfield org.h2.command.dml.Insert.valuesExpressionList:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
iconst_1
if_icmple 13
12: aload 2
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
13: StackMap locals: int
StackMap stack:
aload 0
getfield org.h2.command.dml.Insert.valuesExpressionList:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 5
goto 20
StackMap locals: org.h2.command.dml.Insert int java.lang.StringBuilder int top java.util.Iterator
StackMap stack:
14: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.expression.Expression[]
astore 4
start local 4 15: iload 3
iinc 3 1
ifle 17
16: aload 2
ldc ",\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
17: StackMap locals: org.h2.command.dml.Insert int java.lang.StringBuilder int org.h2.expression.Expression[] java.util.Iterator
StackMap stack:
aload 2
bipush 40
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
18: aload 2
aload 4
iload 1
invokestatic org.h2.expression.Expression.writeExpressions:(Ljava/lang/StringBuilder;[Lorg/h2/expression/Expression;Z)V
19: aload 2
bipush 41
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
end local 4 20: StackMap locals: org.h2.command.dml.Insert int java.lang.StringBuilder int top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 14
end local 3 21: goto 23
22: StackMap locals: org.h2.command.dml.Insert int java.lang.StringBuilder
StackMap stack:
aload 2
aload 0
getfield org.h2.command.dml.Insert.query:Lorg/h2/command/dml/Query;
iload 1
invokevirtual org.h2.command.dml.Query.getPlanSQL:(Z)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
23: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/h2/command/dml/Insert;
0 24 1 alwaysQuote Z
1 24 2 builder Ljava/lang/StringBuilder;
11 21 3 row I
15 20 4 expr [Lorg/h2/expression/Expression;
MethodParameters:
Name Flags
alwaysQuote
public void prepare();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=1
start local 0 0: aload 0
getfield org.h2.command.dml.Insert.columns:[Lorg/h2/table/Column;
ifnonnull 5
1: aload 0
getfield org.h2.command.dml.Insert.valuesExpressionList:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.isEmpty:()Z
ifne 4
aload 0
getfield org.h2.command.dml.Insert.valuesExpressionList:Ljava/util/ArrayList;
iconst_0
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Expression[]
arraylength
ifne 4
2: aload 0
iconst_0
anewarray org.h2.table.Column
putfield org.h2.command.dml.Insert.columns:[Lorg/h2/table/Column;
3: goto 5
4: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.getColumns:()[Lorg/h2/table/Column;
putfield org.h2.command.dml.Insert.columns:[Lorg/h2/table/Column;
5: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Insert.valuesExpressionList:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.isEmpty:()Z
ifne 26
6: aload 0
getfield org.h2.command.dml.Insert.valuesExpressionList:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 2
goto 24
StackMap locals: org.h2.command.dml.Insert top java.util.Iterator
StackMap stack:
7: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.expression.Expression[]
astore 1
start local 1 8: aload 1
arraylength
aload 0
getfield org.h2.command.dml.Insert.columns:[Lorg/h2/table/Column;
arraylength
if_icmpeq 10
9: sipush 21002
invokestatic org.h2.message.DbException.get:(I)Lorg/h2/message/DbException;
athrow
10: StackMap locals: org.h2.command.dml.Insert org.h2.expression.Expression[] java.util.Iterator
StackMap stack:
iconst_0
istore 3
start local 3 11: aload 1
arraylength
istore 4
start local 4 12: goto 23
13: StackMap locals: int int
StackMap stack:
aload 1
iload 3
aaload
astore 5
start local 5 14: aload 5
ifnull 22
15: aload 0
getfield org.h2.command.dml.Insert.sourceTableFilter:Lorg/h2/table/TableFilter;
ifnull 17
16: aload 5
aload 0
getfield org.h2.command.dml.Insert.sourceTableFilter:Lorg/h2/table/TableFilter;
iconst_0
iconst_0
invokevirtual org.h2.expression.Expression.mapColumns:(Lorg/h2/table/ColumnResolver;II)V
17: StackMap locals: org.h2.expression.Expression
StackMap stack:
aload 5
aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
invokevirtual org.h2.expression.Expression.optimize:(Lorg/h2/engine/Session;)Lorg/h2/expression/Expression;
astore 5
18: aload 5
instanceof org.h2.expression.Parameter
ifeq 21
19: aload 5
checkcast org.h2.expression.Parameter
astore 6
start local 6 20: aload 6
aload 0
getfield org.h2.command.dml.Insert.columns:[Lorg/h2/table/Column;
iload 3
aaload
invokevirtual org.h2.expression.Parameter.setColumn:(Lorg/h2/table/Column;)V
end local 6 21: StackMap locals:
StackMap stack:
aload 1
iload 3
aload 5
aastore
end local 5 22: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
23: iload 3
iload 4
if_icmplt 13
end local 4 end local 3 end local 1 24: StackMap locals: org.h2.command.dml.Insert top java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
25: goto 29
26: StackMap locals: org.h2.command.dml.Insert
StackMap stack:
aload 0
getfield org.h2.command.dml.Insert.query:Lorg/h2/command/dml/Query;
invokevirtual org.h2.command.dml.Query.prepare:()V
27: aload 0
getfield org.h2.command.dml.Insert.query:Lorg/h2/command/dml/Query;
invokevirtual org.h2.command.dml.Query.getColumnCount:()I
aload 0
getfield org.h2.command.dml.Insert.columns:[Lorg/h2/table/Column;
arraylength
if_icmpeq 29
28: sipush 21002
invokestatic org.h2.message.DbException.get:(I)Lorg/h2/message/DbException;
athrow
29: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lorg/h2/command/dml/Insert;
8 24 1 expr [Lorg/h2/expression/Expression;
11 24 3 i I
12 24 4 len I
14 22 5 e Lorg/h2/expression/Expression;
20 21 6 p Lorg/h2/expression/Parameter;
public boolean isTransactional();
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/command/dml/Insert;
public org.h2.result.ResultInterface queryMeta();
descriptor: ()Lorg/h2/result/ResultInterface;
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/command/dml/Insert;
public void setSortedInsertMode(boolean);
descriptor: (Z)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.command.dml.Insert.sortedInsertMode:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/command/dml/Insert;
0 2 1 sortedInsertMode Z
MethodParameters:
Name Flags
sortedInsertMode
public int getType();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: bipush 61
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/command/dml/Insert;
public void setInsertFromSelect(boolean);
descriptor: (Z)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.command.dml.Insert.insertFromSelect:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/command/dml/Insert;
0 2 1 value Z
MethodParameters:
Name Flags
value
public boolean isCacheable();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.command.dml.Insert.duplicateKeyAssignmentMap:Ljava/util/HashMap;
ifnull 3
1: aload 0
getfield org.h2.command.dml.Insert.duplicateKeyAssignmentMap:Ljava/util/HashMap;
invokevirtual java.util.HashMap.isEmpty:()Z
ifne 3
2: iconst_0
ireturn
StackMap locals:
StackMap stack:
3: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/command/dml/Insert;
private boolean handleOnDuplicate(org.h2.message.DbException, org.h2.value.Value[]);
descriptor: (Lorg/h2/message/DbException;[Lorg/h2/value/Value;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.h2.message.DbException.getErrorCode:()I
sipush 23505
if_icmpeq 2
1: aload 1
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Insert.duplicateKeyAssignmentMap:Ljava/util/HashMap;
ifnull 4
3: aload 0
getfield org.h2.command.dml.Insert.duplicateKeyAssignmentMap:Ljava/util/HashMap;
invokevirtual java.util.HashMap.isEmpty:()Z
ifeq 7
4: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Insert.ignore:Z
ifeq 6
5: iconst_0
ireturn
6: StackMap locals:
StackMap stack:
aload 1
athrow
7: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
8: aload 0
getfield org.h2.command.dml.Insert.duplicateKeyAssignmentMap:Ljava/util/HashMap;
invokevirtual java.util.HashMap.size:()I
9: invokespecial java.util.ArrayList.<init>:(I)V
astore 3
start local 3 10: aload 2
ifnonnull 11
aload 0
getfield org.h2.command.dml.Insert.valuesExpressionList:Ljava/util/ArrayList;
aload 0
invokevirtual org.h2.command.dml.Insert.getCurrentRowNumber:()J
l2i
iconst_1
isub
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Expression[]
goto 12
11: StackMap locals: java.util.ArrayList
StackMap stack:
aload 0
getfield org.h2.command.dml.Insert.columns:[Lorg/h2/table/Column;
arraylength
anewarray org.h2.expression.Expression
12: StackMap locals:
StackMap stack: org.h2.expression.Expression[]
astore 4
start local 4 13: iconst_0
istore 5
start local 5 14: goto 25
15: StackMap locals: org.h2.expression.Expression[] int
StackMap stack:
aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
iconst_1
invokevirtual org.h2.table.Table.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
bipush 46
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
astore 6
start local 6 16: aload 0
getfield org.h2.command.dml.Insert.columns:[Lorg/h2/table/Column;
iload 5
aaload
aload 6
iconst_1
invokevirtual org.h2.table.Column.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 7
start local 7 17: aload 3
aload 7
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
18: aload 2
ifnull 22
19: aload 2
iload 5
aaload
astore 8
start local 8 20: aload 4
iload 5
aload 8
invokestatic org.h2.expression.ValueExpression.get:(Lorg/h2/value/Value;)Lorg/h2/expression/ValueExpression;
aastore
21: goto 23
end local 8 22: StackMap locals: java.lang.StringBuilder java.lang.String
StackMap stack:
aload 4
iload 5
aaload
aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
invokevirtual org.h2.expression.Expression.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
astore 8
start local 8 23: StackMap locals: org.h2.value.Value
StackMap stack:
aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
aload 7
aload 8
invokevirtual org.h2.engine.Session.setVariable:(Ljava/lang/String;Lorg/h2/value/Value;)V
end local 8 end local 7 end local 6 24: iinc 5 1
StackMap locals:
StackMap stack:
25: iload 5
aload 0
getfield org.h2.command.dml.Insert.columns:[Lorg/h2/table/Column;
arraylength
if_icmplt 15
end local 5 26: new java.lang.StringBuilder
dup
ldc "UPDATE "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 5
start local 5 27: aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
aload 5
iconst_1
invokevirtual org.h2.table.Table.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
ldc " SET "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
28: iconst_0
istore 6
start local 6 29: aload 0
getfield org.h2.command.dml.Insert.duplicateKeyAssignmentMap:Ljava/util/HashMap;
invokevirtual java.util.HashMap.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 8
goto 37
StackMap locals: org.h2.command.dml.Insert org.h2.message.DbException org.h2.value.Value[] java.util.ArrayList org.h2.expression.Expression[] java.lang.StringBuilder int top java.util.Iterator
StackMap stack:
30: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.table.Column
astore 7
start local 7 31: iload 6
ifeq 33
32: aload 5
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
33: StackMap locals: org.h2.command.dml.Insert org.h2.message.DbException org.h2.value.Value[] java.util.ArrayList org.h2.expression.Expression[] java.lang.StringBuilder int org.h2.table.Column java.util.Iterator
StackMap stack:
iconst_1
istore 6
34: aload 0
getfield org.h2.command.dml.Insert.duplicateKeyAssignmentMap:Ljava/util/HashMap;
aload 7
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.h2.expression.Expression
astore 9
start local 9 35: aload 7
aload 5
iconst_1
invokevirtual org.h2.table.Column.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
bipush 61
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
36: aload 9
aload 5
iconst_1
invokevirtual org.h2.expression.Expression.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
pop
end local 9 end local 7 37: StackMap locals: org.h2.command.dml.Insert org.h2.message.DbException org.h2.value.Value[] java.util.ArrayList org.h2.expression.Expression[] java.lang.StringBuilder int top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 30
38: aload 5
ldc " WHERE "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
39: aload 1
invokevirtual org.h2.message.DbException.getSource:()Ljava/lang/Object;
checkcast org.h2.index.Index
astore 7
start local 7 40: aload 7
ifnonnull 43
41: ldc "Unable to apply ON DUPLICATE KEY UPDATE, no index found!"
42: invokestatic org.h2.message.DbException.getUnsupportedException:(Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
43: StackMap locals: org.h2.command.dml.Insert org.h2.message.DbException org.h2.value.Value[] java.util.ArrayList org.h2.expression.Expression[] java.lang.StringBuilder int org.h2.index.Index
StackMap stack:
aload 0
aload 7
aload 4
invokevirtual org.h2.command.dml.Insert.prepareUpdateCondition:(Lorg/h2/index/Index;[Lorg/h2/expression/Expression;)Lorg/h2/expression/Expression;
aload 5
iconst_1
invokevirtual org.h2.expression.Expression.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
pop
44: aload 5
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
start local 8 45: aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
aload 8
invokevirtual org.h2.engine.Session.prepare:(Ljava/lang/String;)Lorg/h2/command/Prepared;
checkcast org.h2.command.dml.Update
astore 9
start local 9 46: aload 9
iconst_1
invokevirtual org.h2.command.dml.Update.setUpdateToCurrentValuesReturnsZero:(Z)V
47: aload 9
invokevirtual org.h2.command.dml.Update.getParameters:()Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 11
goto 51
StackMap locals: org.h2.command.dml.Insert org.h2.message.DbException org.h2.value.Value[] java.util.ArrayList org.h2.expression.Expression[] java.lang.StringBuilder int org.h2.index.Index java.lang.String org.h2.command.dml.Update top java.util.Iterator
StackMap stack:
48: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.expression.Parameter
astore 10
start local 10 49: aload 0
getfield org.h2.command.dml.Insert.parameters:Ljava/util/ArrayList;
aload 10
invokevirtual org.h2.expression.Parameter.getIndex:()I
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Parameter
astore 12
start local 12 50: aload 10
aload 12
aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
invokevirtual org.h2.expression.Parameter.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
invokevirtual org.h2.expression.Parameter.setValue:(Lorg/h2/value/Value;)V
end local 12 end local 10 51: StackMap locals:
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 48
52: aload 9
invokevirtual org.h2.command.dml.Update.update:()I
ifle 53
iconst_1
goto 54
StackMap locals: org.h2.command.dml.Insert org.h2.message.DbException org.h2.value.Value[] java.util.ArrayList org.h2.expression.Expression[] java.lang.StringBuilder int org.h2.index.Index java.lang.String org.h2.command.dml.Update
StackMap stack:
53: iconst_0
StackMap locals:
StackMap stack: int
54: istore 10
start local 10 55: aload 3
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 12
goto 58
StackMap locals: org.h2.command.dml.Insert org.h2.message.DbException org.h2.value.Value[] java.util.ArrayList org.h2.expression.Expression[] java.lang.StringBuilder int org.h2.index.Index java.lang.String org.h2.command.dml.Update int top java.util.Iterator
StackMap stack:
56: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 11
start local 11 57: aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
aload 11
getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
invokevirtual org.h2.engine.Session.setVariable:(Ljava/lang/String;Lorg/h2/value/Value;)V
end local 11 58: StackMap locals:
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 56
59: iload 10
ireturn
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 60 0 this Lorg/h2/command/dml/Insert;
0 60 1 de Lorg/h2/message/DbException;
0 60 2 currentRow [Lorg/h2/value/Value;
10 60 3 variableNames Ljava/util/ArrayList<Ljava/lang/String;>;
13 60 4 row [Lorg/h2/expression/Expression;
14 26 5 i I
16 24 6 builder Ljava/lang/StringBuilder;
17 24 7 key Ljava/lang/String;
20 22 8 value Lorg/h2/value/Value;
23 24 8 value Lorg/h2/value/Value;
27 60 5 builder Ljava/lang/StringBuilder;
29 60 6 f Z
31 37 7 column Lorg/h2/table/Column;
35 37 9 ex Lorg/h2/expression/Expression;
40 60 7 foundIndex Lorg/h2/index/Index;
45 60 8 sql Ljava/lang/String;
46 60 9 command Lorg/h2/command/dml/Update;
49 51 10 param Lorg/h2/expression/Parameter;
50 51 12 insertParam Lorg/h2/expression/Parameter;
55 60 10 result Z
57 58 11 variableName Ljava/lang/String;
MethodParameters:
Name Flags
de
currentRow
private org.h2.expression.Expression prepareUpdateCondition(org.h2.index.Index, org.h2.expression.Expression[]);
descriptor: (Lorg/h2/index/Index;[Lorg/h2/expression/Expression;)Lorg/h2/expression/Expression;
flags: (0x0002) ACC_PRIVATE
Code:
stack=11, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 1
instanceof org.h2.mvstore.db.MVPrimaryIndex
ifeq 8
1: aload 1
checkcast org.h2.mvstore.db.MVPrimaryIndex
astore 4
start local 4 2: iconst_1
anewarray org.h2.table.Column
dup
iconst_0
aload 4
invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getIndexColumns:()[Lorg/h2/table/IndexColumn;
aload 4
3: invokevirtual org.h2.mvstore.db.MVPrimaryIndex.getMainIndexColumn:()I
4: aaload
5: getfield org.h2.table.IndexColumn.column:Lorg/h2/table/Column;
aastore
6: astore 3
end local 4 start local 3 7: goto 17
end local 3 StackMap locals:
StackMap stack:
8: aload 1
instanceof org.h2.index.PageDataIndex
ifeq 16
9: aload 1
checkcast org.h2.index.PageDataIndex
astore 4
start local 4 10: aload 4
invokevirtual org.h2.index.PageDataIndex.getMainIndexColumn:()I
istore 5
start local 5 11: iload 5
iflt 13
12: iconst_1
anewarray org.h2.table.Column
dup
iconst_0
aload 4
invokevirtual org.h2.index.PageDataIndex.getIndexColumns:()[Lorg/h2/table/IndexColumn;
iload 5
aaload
getfield org.h2.table.IndexColumn.column:Lorg/h2/table/Column;
aastore
goto 14
13: StackMap locals: org.h2.command.dml.Insert org.h2.index.Index org.h2.expression.Expression[] top org.h2.index.PageDataIndex int
StackMap stack:
aload 1
invokeinterface org.h2.index.Index.getColumns:()[Lorg/h2/table/Column;
14: StackMap locals:
StackMap stack: org.h2.table.Column[]
astore 3
end local 5 end local 4 start local 3 15: goto 17
end local 3 16: StackMap locals: org.h2.command.dml.Insert org.h2.index.Index org.h2.expression.Expression[]
StackMap stack:
aload 1
invokeinterface org.h2.index.Index.getColumns:()[Lorg/h2/table/Column;
astore 3
start local 3 17: StackMap locals: org.h2.table.Column[]
StackMap stack:
aconst_null
astore 4
start local 4 18: aload 3
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 37
StackMap locals: org.h2.command.dml.Insert org.h2.index.Index org.h2.expression.Expression[] org.h2.table.Column[] org.h2.expression.Expression top int int org.h2.table.Column[]
StackMap stack:
19: aload 8
iload 6
aaload
astore 5
start local 5 20: new org.h2.expression.ExpressionColumn
dup
aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
21: aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.getSchema:()Lorg/h2/schema/Schema;
invokevirtual org.h2.schema.Schema.getName:()Ljava/lang/String;
aload 0
getfield org.h2.command.dml.Insert.table:Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.getName:()Ljava/lang/String;
22: aload 5
invokevirtual org.h2.table.Column.getName:()Ljava/lang/String;
iconst_0
23: invokespecial org.h2.expression.ExpressionColumn.<init>:(Lorg/h2/engine/Database;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
astore 9
start local 9 24: iconst_0
istore 10
start local 10 25: goto 35
26: StackMap locals: org.h2.command.dml.Insert org.h2.index.Index org.h2.expression.Expression[] org.h2.table.Column[] org.h2.expression.Expression org.h2.table.Column int int org.h2.table.Column[] org.h2.expression.ExpressionColumn int
StackMap stack:
aload 9
invokevirtual org.h2.expression.ExpressionColumn.getColumnName:()Ljava/lang/String;
aload 0
getfield org.h2.command.dml.Insert.columns:[Lorg/h2/table/Column;
iload 10
aaload
invokevirtual org.h2.table.Column.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 34
27: aload 4
ifnonnull 30
28: new org.h2.expression.condition.Comparison
dup
aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
iconst_0
aload 9
aload 2
iload 10
aaload
invokespecial org.h2.expression.condition.Comparison.<init>:(Lorg/h2/engine/Session;ILorg/h2/expression/Expression;Lorg/h2/expression/Expression;)V
astore 4
29: goto 36
30: StackMap locals:
StackMap stack:
new org.h2.expression.condition.ConditionAndOr
dup
iconst_0
aload 4
31: new org.h2.expression.condition.Comparison
dup
aload 0
getfield org.h2.command.dml.Insert.session:Lorg/h2/engine/Session;
iconst_0
aload 9
aload 2
iload 10
aaload
invokespecial org.h2.expression.condition.Comparison.<init>:(Lorg/h2/engine/Session;ILorg/h2/expression/Expression;Lorg/h2/expression/Expression;)V
32: invokespecial org.h2.expression.condition.ConditionAndOr.<init>:(ILorg/h2/expression/Expression;Lorg/h2/expression/Expression;)V
astore 4
33: goto 36
34: StackMap locals:
StackMap stack:
iinc 10 1
StackMap locals:
StackMap stack:
35: iload 10
aload 0
getfield org.h2.command.dml.Insert.columns:[Lorg/h2/table/Column;
arraylength
if_icmplt 26
end local 10 end local 9 end local 5 36: StackMap locals: org.h2.command.dml.Insert org.h2.index.Index org.h2.expression.Expression[] org.h2.table.Column[] org.h2.expression.Expression top int int org.h2.table.Column[]
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
37: iload 6
iload 7
if_icmplt 19
38: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lorg/h2/command/dml/Insert;
0 39 1 foundIndex Lorg/h2/index/Index;
0 39 2 row [Lorg/h2/expression/Expression;
7 8 3 indexedColumns [Lorg/h2/table/Column;
15 16 3 indexedColumns [Lorg/h2/table/Column;
17 39 3 indexedColumns [Lorg/h2/table/Column;
2 7 4 foundMV Lorg/h2/mvstore/db/MVPrimaryIndex;
10 15 4 foundPD Lorg/h2/index/PageDataIndex;
11 15 5 mainIndexColumn I
18 39 4 condition Lorg/h2/expression/Expression;
20 36 5 column Lorg/h2/table/Column;
24 36 9 expr Lorg/h2/expression/ExpressionColumn;
25 36 10 i I
MethodParameters:
Name Flags
foundIndex
row
public void setSourceTableFilter(org.h2.table.TableFilter);
descriptor: (Lorg/h2/table/TableFilter;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.h2.command.dml.Insert.sourceTableFilter:Lorg/h2/table/TableFilter;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/command/dml/Insert;
0 2 1 sourceTableFilter Lorg/h2/table/TableFilter;
MethodParameters:
Name Flags
sourceTableFilter
}
SourceFile: "Insert.java"