public class org.h2.constraint.ConstraintReferential extends org.h2.constraint.Constraint
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.h2.constraint.ConstraintReferential
super_class: org.h2.constraint.Constraint
{
private org.h2.table.IndexColumn[] columns;
descriptor: [Lorg/h2/table/IndexColumn;
flags: (0x0002) ACC_PRIVATE
private org.h2.table.IndexColumn[] refColumns;
descriptor: [Lorg/h2/table/IndexColumn;
flags: (0x0002) ACC_PRIVATE
private org.h2.constraint.ConstraintActionType deleteAction;
descriptor: Lorg/h2/constraint/ConstraintActionType;
flags: (0x0002) ACC_PRIVATE
private org.h2.constraint.ConstraintActionType updateAction;
descriptor: Lorg/h2/constraint/ConstraintActionType;
flags: (0x0002) ACC_PRIVATE
private org.h2.table.Table refTable;
descriptor: Lorg/h2/table/Table;
flags: (0x0002) ACC_PRIVATE
private org.h2.index.Index index;
descriptor: Lorg/h2/index/Index;
flags: (0x0002) ACC_PRIVATE
private org.h2.index.Index refIndex;
descriptor: Lorg/h2/index/Index;
flags: (0x0002) ACC_PRIVATE
private boolean indexOwner;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean refIndexOwner;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.lang.String deleteSQL;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String updateSQL;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private boolean skipOwnTable;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
public void <init>(org.h2.schema.Schema, int, java.lang.String, org.h2.table.Table);
descriptor: (Lorg/h2/schema/Schema;ILjava/lang/String;Lorg/h2/table/Table;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
iload 2
aload 3
aload 4
invokespecial org.h2.constraint.Constraint.<init>:(Lorg/h2/schema/Schema;ILjava/lang/String;Lorg/h2/table/Table;)V
1: aload 0
getstatic org.h2.constraint.ConstraintActionType.RESTRICT:Lorg/h2/constraint/ConstraintActionType;
putfield org.h2.constraint.ConstraintReferential.deleteAction:Lorg/h2/constraint/ConstraintActionType;
2: aload 0
getstatic org.h2.constraint.ConstraintActionType.RESTRICT:Lorg/h2/constraint/ConstraintActionType;
putfield org.h2.constraint.ConstraintReferential.updateAction:Lorg/h2/constraint/ConstraintActionType;
3: return
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/constraint/ConstraintReferential;
0 4 1 schema Lorg/h2/schema/Schema;
0 4 2 id I
0 4 3 name Ljava/lang/String;
0 4 4 table Lorg/h2/table/Table;
MethodParameters:
Name Flags
schema
id
name
table
public org.h2.constraint.Constraint$Type getConstraintType();
descriptor: ()Lorg/h2/constraint/Constraint$Type;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic org.h2.constraint.Constraint$Type.REFERENTIAL:Lorg/h2/constraint/Constraint$Type;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/constraint/ConstraintReferential;
public java.lang.String getCreateSQLForCopy(org.h2.table.Table, java.lang.String);
descriptor: (Lorg/h2/table/Table;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 0
getfield org.h2.constraint.ConstraintReferential.refTable:Lorg/h2/table/Table;
aload 2
iconst_1
invokevirtual org.h2.constraint.ConstraintReferential.getCreateSQLForCopy:(Lorg/h2/table/Table;Lorg/h2/table/Table;Ljava/lang/String;Z)Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/constraint/ConstraintReferential;
0 1 1 forTable Lorg/h2/table/Table;
0 1 2 quotedName Ljava/lang/String;
MethodParameters:
Name Flags
forTable
quotedName
public java.lang.String getCreateSQLForCopy(org.h2.table.Table, org.h2.table.Table, java.lang.String, boolean);
descriptor: (Lorg/h2/table/Table;Lorg/h2/table/Table;Ljava/lang/String;Z)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: new java.lang.StringBuilder
dup
ldc "ALTER TABLE "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 5
start local 5 1: aload 1
aload 5
iconst_1
invokevirtual org.h2.table.Table.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
ldc " ADD CONSTRAINT "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
2: aload 1
invokevirtual org.h2.table.Table.isHidden:()Z
ifeq 4
3: aload 5
ldc "IF NOT EXISTS "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
4: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 5
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: aload 0
getfield org.h2.constraint.ConstraintReferential.comment:Ljava/lang/String;
ifnull 8
6: aload 5
ldc " COMMENT "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: aload 5
aload 0
getfield org.h2.constraint.ConstraintReferential.comment:Ljava/lang/String;
invokestatic org.h2.util.StringUtils.quoteStringSQL:(Ljava/lang/StringBuilder;Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
astore 6
start local 6 9: aload 0
getfield org.h2.constraint.ConstraintReferential.refColumns:[Lorg/h2/table/IndexColumn;
astore 7
start local 7 10: aload 5
ldc " FOREIGN KEY("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
11: aload 5
aload 6
iconst_1
invokestatic org.h2.table.IndexColumn.writeColumns:(Ljava/lang/StringBuilder;[Lorg/h2/table/IndexColumn;Z)Ljava/lang/StringBuilder;
pop
12: aload 5
bipush 41
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
13: iload 4
ifeq 16
aload 0
getfield org.h2.constraint.ConstraintReferential.indexOwner:Z
ifeq 16
aload 1
aload 0
getfield org.h2.constraint.ConstraintReferential.table:Lorg/h2/table/Table;
if_acmpne 16
14: aload 5
ldc " INDEX "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
15: aload 0
getfield org.h2.constraint.ConstraintReferential.index:Lorg/h2/index/Index;
aload 5
iconst_1
invokeinterface org.h2.index.Index.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
pop
16: StackMap locals: org.h2.table.IndexColumn[] org.h2.table.IndexColumn[]
StackMap stack:
aload 5
ldc " REFERENCES "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
17: aload 0
getfield org.h2.constraint.ConstraintReferential.table:Lorg/h2/table/Table;
aload 0
getfield org.h2.constraint.ConstraintReferential.refTable:Lorg/h2/table/Table;
if_acmpne 20
18: aload 1
aload 5
iconst_1
invokevirtual org.h2.table.Table.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
pop
19: goto 21
20: StackMap locals:
StackMap stack:
aload 2
aload 5
iconst_1
invokevirtual org.h2.table.Table.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
pop
21: StackMap locals:
StackMap stack:
aload 5
bipush 40
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
22: aload 5
aload 7
iconst_1
invokestatic org.h2.table.IndexColumn.writeColumns:(Ljava/lang/StringBuilder;[Lorg/h2/table/IndexColumn;Z)Ljava/lang/StringBuilder;
pop
23: aload 5
bipush 41
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
24: iload 4
ifeq 27
aload 0
getfield org.h2.constraint.ConstraintReferential.refIndexOwner:Z
ifeq 27
aload 1
aload 0
getfield org.h2.constraint.ConstraintReferential.table:Lorg/h2/table/Table;
if_acmpne 27
25: aload 5
ldc " INDEX "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
26: aload 0
getfield org.h2.constraint.ConstraintReferential.refIndex:Lorg/h2/index/Index;
aload 5
iconst_1
invokeinterface org.h2.index.Index.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
pop
27: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.constraint.ConstraintReferential.deleteAction:Lorg/h2/constraint/ConstraintActionType;
getstatic org.h2.constraint.ConstraintActionType.RESTRICT:Lorg/h2/constraint/ConstraintActionType;
if_acmpeq 29
28: aload 5
ldc " ON DELETE "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.h2.constraint.ConstraintReferential.deleteAction:Lorg/h2/constraint/ConstraintActionType;
invokevirtual org.h2.constraint.ConstraintActionType.getSqlName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
29: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.constraint.ConstraintReferential.updateAction:Lorg/h2/constraint/ConstraintActionType;
getstatic org.h2.constraint.ConstraintActionType.RESTRICT:Lorg/h2/constraint/ConstraintActionType;
if_acmpeq 31
30: aload 5
ldc " ON UPDATE "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.h2.constraint.ConstraintReferential.updateAction:Lorg/h2/constraint/ConstraintActionType;
invokevirtual org.h2.constraint.ConstraintActionType.getSqlName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
31: StackMap locals:
StackMap stack:
aload 5
ldc " NOCHECK"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
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 32 0 this Lorg/h2/constraint/ConstraintReferential;
0 32 1 forTable Lorg/h2/table/Table;
0 32 2 forRefTable Lorg/h2/table/Table;
0 32 3 quotedName Ljava/lang/String;
0 32 4 internalIndex Z
1 32 5 builder Ljava/lang/StringBuilder;
9 32 6 cols [Lorg/h2/table/IndexColumn;
10 32 7 refCols [Lorg/h2/table/IndexColumn;
MethodParameters:
Name Flags
forTable
forRefTable
quotedName
internalIndex
private java.lang.String getShortDescription(org.h2.index.Index, org.h2.result.SearchRow);
descriptor: (Lorg/h2/index/Index;Lorg/h2/result/SearchRow;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=9, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.StringBuilder
dup
aload 0
invokevirtual org.h2.constraint.ConstraintReferential.getName:()Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
astore 3
start local 3 1: aload 0
getfield org.h2.constraint.ConstraintReferential.table:Lorg/h2/table/Table;
aload 3
iconst_0
invokevirtual org.h2.table.Table.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
ldc " FOREIGN KEY("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
2: aload 3
aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
iconst_0
invokestatic org.h2.table.IndexColumn.writeColumns:(Ljava/lang/StringBuilder;[Lorg/h2/table/IndexColumn;Z)Ljava/lang/StringBuilder;
pop
3: aload 3
ldc ") REFERENCES "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
4: aload 0
getfield org.h2.constraint.ConstraintReferential.refTable:Lorg/h2/table/Table;
aload 3
iconst_0
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
5: aload 3
aload 0
getfield org.h2.constraint.ConstraintReferential.refColumns:[Lorg/h2/table/IndexColumn;
iconst_0
invokestatic org.h2.table.IndexColumn.writeColumns:(Ljava/lang/StringBuilder;[Lorg/h2/table/IndexColumn;Z)Ljava/lang/StringBuilder;
pop
6: aload 3
bipush 41
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
7: aload 1
ifnull 23
aload 2
ifnull 23
8: aload 3
ldc " ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: aload 1
invokeinterface org.h2.index.Index.getColumns:()[Lorg/h2/table/Column;
astore 4
start local 4 10: aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
arraylength
aload 4
arraylength
invokestatic java.lang.Math.min:(II)I
istore 5
start local 5 11: iconst_0
istore 6
start local 6 12: goto 21
13: StackMap locals: org.h2.constraint.ConstraintReferential org.h2.index.Index org.h2.result.SearchRow java.lang.StringBuilder org.h2.table.Column[] int int
StackMap stack:
aload 4
iload 6
aaload
invokevirtual org.h2.table.Column.getColumnId:()I
istore 7
start local 7 14: aload 2
iload 7
invokeinterface org.h2.result.SearchRow.getValue:(I)Lorg/h2/value/Value;
astore 8
start local 8 15: iload 6
ifle 17
16: aload 3
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
17: StackMap locals: int org.h2.value.Value
StackMap stack:
aload 3
aload 8
ifnonnull 18
ldc ""
goto 19
StackMap locals:
StackMap stack: java.lang.StringBuilder
18: aload 8
invokevirtual org.h2.value.Value.toString:()Ljava/lang/String;
StackMap locals: org.h2.constraint.ConstraintReferential org.h2.index.Index org.h2.result.SearchRow java.lang.StringBuilder org.h2.table.Column[] int int int org.h2.value.Value
StackMap stack: java.lang.StringBuilder java.lang.String
19: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 8 end local 7 20: iinc 6 1
StackMap locals:
StackMap stack:
21: iload 6
iload 5
if_icmplt 13
end local 6 22: aload 3
bipush 41
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
end local 5 end local 4 23: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/h2/constraint/ConstraintReferential;
0 24 1 searchIndex Lorg/h2/index/Index;
0 24 2 check Lorg/h2/result/SearchRow;
1 24 3 builder Ljava/lang/StringBuilder;
10 23 4 cols [Lorg/h2/table/Column;
11 23 5 len I
12 22 6 i I
14 20 7 idx I
15 20 8 c Lorg/h2/value/Value;
MethodParameters:
Name Flags
searchIndex
check
public java.lang.String getCreateSQLWithoutIndexes();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield org.h2.constraint.ConstraintReferential.table:Lorg/h2/table/Table;
aload 0
getfield org.h2.constraint.ConstraintReferential.refTable:Lorg/h2/table/Table;
aload 0
iconst_1
invokevirtual org.h2.constraint.ConstraintReferential.getSQL:(Z)Ljava/lang/String;
iconst_0
invokevirtual org.h2.constraint.ConstraintReferential.getCreateSQLForCopy:(Lorg/h2/table/Table;Lorg/h2/table/Table;Ljava/lang/String;Z)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/constraint/ConstraintReferential;
public java.lang.String getCreateSQL();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield org.h2.constraint.ConstraintReferential.table:Lorg/h2/table/Table;
aload 0
iconst_1
invokevirtual org.h2.constraint.ConstraintReferential.getSQL:(Z)Ljava/lang/String;
invokevirtual org.h2.constraint.ConstraintReferential.getCreateSQLForCopy:(Lorg/h2/table/Table;Ljava/lang/String;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/constraint/ConstraintReferential;
public void setColumns(org.h2.table.IndexColumn[]);
descriptor: ([Lorg/h2/table/IndexColumn;)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.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/constraint/ConstraintReferential;
0 2 1 cols [Lorg/h2/table/IndexColumn;
MethodParameters:
Name Flags
cols
public org.h2.table.IndexColumn[] getColumns();
descriptor: ()[Lorg/h2/table/IndexColumn;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/constraint/ConstraintReferential;
public java.util.HashSet<org.h2.table.Column> getReferencedColumns(org.h2.table.Table);
descriptor: (Lorg/h2/table/Table;)Ljava/util/HashSet;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=7, args_size=2
start local 0 start local 1 0: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 2
start local 2 1: aload 1
aload 0
getfield org.h2.constraint.ConstraintReferential.table:Lorg/h2/table/Table;
if_acmpne 8
2: aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 6
StackMap locals: org.h2.constraint.ConstraintReferential org.h2.table.Table java.util.HashSet top int int org.h2.table.IndexColumn[]
StackMap stack:
3: aload 6
iload 4
aaload
astore 3
start local 3 4: aload 2
aload 3
getfield org.h2.table.IndexColumn.column:Lorg/h2/table/Column;
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
end local 3 5: iinc 4 1
StackMap locals:
StackMap stack:
6: iload 4
iload 5
if_icmplt 3
7: goto 14
StackMap locals: org.h2.constraint.ConstraintReferential org.h2.table.Table java.util.HashSet
StackMap stack:
8: aload 1
aload 0
getfield org.h2.constraint.ConstraintReferential.refTable:Lorg/h2/table/Table;
if_acmpne 14
9: aload 0
getfield org.h2.constraint.ConstraintReferential.refColumns:[Lorg/h2/table/IndexColumn;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 13
StackMap locals: org.h2.constraint.ConstraintReferential org.h2.table.Table java.util.HashSet top int int org.h2.table.IndexColumn[]
StackMap stack:
10: aload 6
iload 4
aaload
astore 3
start local 3 11: aload 2
aload 3
getfield org.h2.table.IndexColumn.column:Lorg/h2/table/Column;
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
end local 3 12: iinc 4 1
StackMap locals:
StackMap stack:
13: iload 4
iload 5
if_icmplt 10
14: StackMap locals: org.h2.constraint.ConstraintReferential org.h2.table.Table java.util.HashSet
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/h2/constraint/ConstraintReferential;
0 15 1 table Lorg/h2/table/Table;
1 15 2 result Ljava/util/HashSet<Lorg/h2/table/Column;>;
4 5 3 c Lorg/h2/table/IndexColumn;
11 12 3 c Lorg/h2/table/IndexColumn;
Signature: (Lorg/h2/table/Table;)Ljava/util/HashSet<Lorg/h2/table/Column;>;
MethodParameters:
Name Flags
table
public void setRefColumns(org.h2.table.IndexColumn[]);
descriptor: ([Lorg/h2/table/IndexColumn;)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.constraint.ConstraintReferential.refColumns:[Lorg/h2/table/IndexColumn;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/constraint/ConstraintReferential;
0 2 1 refCols [Lorg/h2/table/IndexColumn;
MethodParameters:
Name Flags
refCols
public org.h2.table.IndexColumn[] getRefColumns();
descriptor: ()[Lorg/h2/table/IndexColumn;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.constraint.ConstraintReferential.refColumns:[Lorg/h2/table/IndexColumn;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/constraint/ConstraintReferential;
public void setRefTable(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.constraint.ConstraintReferential.refTable:Lorg/h2/table/Table;
1: aload 1
invokevirtual org.h2.table.Table.isTemporary:()Z
ifeq 3
2: aload 0
iconst_1
invokevirtual org.h2.constraint.ConstraintReferential.setTemporary:(Z)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/constraint/ConstraintReferential;
0 4 1 refTable Lorg/h2/table/Table;
MethodParameters:
Name Flags
refTable
public void setIndex(org.h2.index.Index, boolean);
descriptor: (Lorg/h2/index/Index;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
putfield org.h2.constraint.ConstraintReferential.index:Lorg/h2/index/Index;
1: aload 0
iload 2
putfield org.h2.constraint.ConstraintReferential.indexOwner:Z
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/constraint/ConstraintReferential;
0 3 1 index Lorg/h2/index/Index;
0 3 2 isOwner Z
MethodParameters:
Name Flags
index
isOwner
public void setRefIndex(org.h2.index.Index, boolean);
descriptor: (Lorg/h2/index/Index;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
putfield org.h2.constraint.ConstraintReferential.refIndex:Lorg/h2/index/Index;
1: aload 0
iload 2
putfield org.h2.constraint.ConstraintReferential.refIndexOwner:Z
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/constraint/ConstraintReferential;
0 3 1 refIndex Lorg/h2/index/Index;
0 3 2 isRefOwner Z
MethodParameters:
Name Flags
refIndex
isRefOwner
public void removeChildrenAndResources(org.h2.engine.Session);
descriptor: (Lorg/h2/engine/Session;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.constraint.ConstraintReferential.table:Lorg/h2/table/Table;
aload 0
invokevirtual org.h2.table.Table.removeConstraint:(Lorg/h2/constraint/Constraint;)V
1: aload 0
getfield org.h2.constraint.ConstraintReferential.refTable:Lorg/h2/table/Table;
aload 0
invokevirtual org.h2.table.Table.removeConstraint:(Lorg/h2/constraint/Constraint;)V
2: aload 0
getfield org.h2.constraint.ConstraintReferential.indexOwner:Z
ifeq 4
3: aload 0
getfield org.h2.constraint.ConstraintReferential.table:Lorg/h2/table/Table;
aload 1
aload 0
getfield org.h2.constraint.ConstraintReferential.index:Lorg/h2/index/Index;
invokevirtual org.h2.table.Table.removeIndexOrTransferOwnership:(Lorg/h2/engine/Session;Lorg/h2/index/Index;)V
4: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.constraint.ConstraintReferential.refIndexOwner:Z
ifeq 6
5: aload 0
getfield org.h2.constraint.ConstraintReferential.refTable:Lorg/h2/table/Table;
aload 1
aload 0
getfield org.h2.constraint.ConstraintReferential.refIndex:Lorg/h2/index/Index;
invokevirtual org.h2.table.Table.removeIndexOrTransferOwnership:(Lorg/h2/engine/Session;Lorg/h2/index/Index;)V
6: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.constraint.ConstraintReferential.database:Lorg/h2/engine/Database;
aload 1
aload 0
invokevirtual org.h2.constraint.ConstraintReferential.getId:()I
invokevirtual org.h2.engine.Database.removeMeta:(Lorg/h2/engine/Session;I)V
7: aload 0
aconst_null
putfield org.h2.constraint.ConstraintReferential.refTable:Lorg/h2/table/Table;
8: aload 0
aconst_null
putfield org.h2.constraint.ConstraintReferential.index:Lorg/h2/index/Index;
9: aload 0
aconst_null
putfield org.h2.constraint.ConstraintReferential.refIndex:Lorg/h2/index/Index;
10: aload 0
aconst_null
putfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
11: aload 0
aconst_null
putfield org.h2.constraint.ConstraintReferential.refColumns:[Lorg/h2/table/IndexColumn;
12: aload 0
aconst_null
putfield org.h2.constraint.ConstraintReferential.deleteSQL:Ljava/lang/String;
13: aload 0
aconst_null
putfield org.h2.constraint.ConstraintReferential.updateSQL:Ljava/lang/String;
14: aload 0
aconst_null
putfield org.h2.constraint.ConstraintReferential.table:Lorg/h2/table/Table;
15: aload 0
invokevirtual org.h2.constraint.ConstraintReferential.invalidate:()V
16: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/h2/constraint/ConstraintReferential;
0 17 1 session Lorg/h2/engine/Session;
MethodParameters:
Name Flags
session
public void checkRow(org.h2.engine.Session, org.h2.table.Table, org.h2.result.Row, org.h2.result.Row);
descriptor: (Lorg/h2/engine/Session;Lorg/h2/table/Table;Lorg/h2/result/Row;Lorg/h2/result/Row;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield org.h2.constraint.ConstraintReferential.database:Lorg/h2/engine/Database;
invokevirtual org.h2.engine.Database.getReferentialIntegrity:()Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.constraint.ConstraintReferential.table:Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.getCheckForeignKeyConstraints:()Z
ifeq 4
3: aload 0
getfield org.h2.constraint.ConstraintReferential.refTable:Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.getCheckForeignKeyConstraints:()Z
ifne 5
4: StackMap locals:
StackMap stack:
return
5: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield org.h2.constraint.ConstraintReferential.table:Lorg/h2/table/Table;
if_acmpne 8
6: aload 0
getfield org.h2.constraint.ConstraintReferential.skipOwnTable:Z
ifne 8
7: aload 0
aload 1
aload 3
aload 4
invokevirtual org.h2.constraint.ConstraintReferential.checkRowOwnTable:(Lorg/h2/engine/Session;Lorg/h2/result/Row;Lorg/h2/result/Row;)V
8: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield org.h2.constraint.ConstraintReferential.refTable:Lorg/h2/table/Table;
if_acmpne 10
9: aload 0
aload 1
aload 3
aload 4
invokevirtual org.h2.constraint.ConstraintReferential.checkRowRefTable:(Lorg/h2/engine/Session;Lorg/h2/result/Row;Lorg/h2/result/Row;)V
10: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/h2/constraint/ConstraintReferential;
0 11 1 session Lorg/h2/engine/Session;
0 11 2 t Lorg/h2/table/Table;
0 11 3 oldRow Lorg/h2/result/Row;
0 11 4 newRow Lorg/h2/result/Row;
MethodParameters:
Name Flags
session
t
oldRow
newRow
private void checkRowOwnTable(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: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=13, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 2
ifnull 3
iconst_1
goto 4
StackMap locals:
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: istore 4
start local 4 5: aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 15
StackMap locals: org.h2.constraint.ConstraintReferential org.h2.engine.Session org.h2.result.Row org.h2.result.Row int top int int org.h2.table.IndexColumn[]
StackMap stack:
6: aload 8
iload 6
aaload
astore 5
start local 5 7: aload 5
getfield org.h2.table.IndexColumn.column:Lorg/h2/table/Column;
invokevirtual org.h2.table.Column.getColumnId:()I
istore 9
start local 9 8: aload 3
iload 9
invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
astore 10
start local 10 9: aload 10
getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
if_acmpne 11
10: return
11: StackMap locals: org.h2.constraint.ConstraintReferential org.h2.engine.Session org.h2.result.Row org.h2.result.Row int org.h2.table.IndexColumn int int org.h2.table.IndexColumn[] int org.h2.value.Value
StackMap stack:
iload 4
ifeq 14
12: aload 0
getfield org.h2.constraint.ConstraintReferential.database:Lorg/h2/engine/Database;
aload 10
aload 2
iload 9
invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
invokevirtual org.h2.engine.Database.areEqual:(Lorg/h2/value/Value;Lorg/h2/value/Value;)Z
ifne 14
13: iconst_0
istore 4
end local 10 end local 9 end local 5 14: StackMap locals: org.h2.constraint.ConstraintReferential org.h2.engine.Session org.h2.result.Row org.h2.result.Row int top int int org.h2.table.IndexColumn[]
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
15: iload 6
iload 7
if_icmplt 6
16: iload 4
ifeq 18
17: return
18: StackMap locals: org.h2.constraint.ConstraintReferential org.h2.engine.Session org.h2.result.Row org.h2.result.Row int
StackMap stack:
aload 0
getfield org.h2.constraint.ConstraintReferential.refTable:Lorg/h2/table/Table;
aload 0
getfield org.h2.constraint.ConstraintReferential.table:Lorg/h2/table/Table;
if_acmpne 35
19: iconst_1
istore 5
start local 5 20: iconst_0
istore 6
start local 6 21: aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
arraylength
istore 7
start local 7 22: goto 32
23: StackMap locals: int int int
StackMap stack:
aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
iload 6
aaload
getfield org.h2.table.IndexColumn.column:Lorg/h2/table/Column;
invokevirtual org.h2.table.Column.getColumnId:()I
istore 8
start local 8 24: aload 3
iload 8
invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
astore 9
start local 9 25: aload 0
getfield org.h2.constraint.ConstraintReferential.refColumns:[Lorg/h2/table/IndexColumn;
iload 6
aaload
getfield org.h2.table.IndexColumn.column:Lorg/h2/table/Column;
astore 10
start local 10 26: aload 10
invokevirtual org.h2.table.Column.getColumnId:()I
istore 11
start local 11 27: aload 3
iload 11
invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
astore 12
start local 12 28: aload 0
getfield org.h2.constraint.ConstraintReferential.database:Lorg/h2/engine/Database;
aload 12
aload 9
invokevirtual org.h2.engine.Database.areEqual:(Lorg/h2/value/Value;Lorg/h2/value/Value;)Z
ifne 31
29: iconst_0
istore 5
30: goto 33
end local 12 end local 11 end local 10 end local 9 end local 8 31: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
32: iload 6
iload 7
if_icmplt 23
end local 7 end local 6 33: StackMap locals:
StackMap stack:
iload 5
ifeq 35
34: return
end local 5 35: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.constraint.ConstraintReferential.refTable:Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.getTemplateRow:()Lorg/h2/result/Row;
astore 5
start local 5 36: iconst_0
istore 6
start local 6 37: aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
arraylength
istore 7
start local 7 38: goto 45
39: StackMap locals: org.h2.result.Row int int
StackMap stack:
aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
iload 6
aaload
getfield org.h2.table.IndexColumn.column:Lorg/h2/table/Column;
invokevirtual org.h2.table.Column.getColumnId:()I
istore 8
start local 8 40: aload 3
iload 8
invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
astore 9
start local 9 41: aload 0
getfield org.h2.constraint.ConstraintReferential.refColumns:[Lorg/h2/table/IndexColumn;
iload 6
aaload
getfield org.h2.table.IndexColumn.column:Lorg/h2/table/Column;
astore 10
start local 10 42: aload 10
invokevirtual org.h2.table.Column.getColumnId:()I
istore 11
start local 11 43: aload 5
iload 11
aload 10
aload 9
invokevirtual org.h2.table.Column.convert:(Lorg/h2/value/Value;)Lorg/h2/value/Value;
invokeinterface org.h2.result.Row.setValue:(ILorg/h2/value/Value;)V
end local 11 end local 10 end local 9 end local 8 44: iinc 6 1
StackMap locals:
StackMap stack:
45: iload 6
iload 7
if_icmplt 39
end local 7 end local 6 46: aload 0
aload 1
aload 0
getfield org.h2.constraint.ConstraintReferential.refIndex:Lorg/h2/index/Index;
aload 5
aconst_null
invokevirtual org.h2.constraint.ConstraintReferential.existsRow:(Lorg/h2/engine/Session;Lorg/h2/index/Index;Lorg/h2/result/SearchRow;Lorg/h2/result/Row;)Z
ifne 50
47: sipush 23506
48: aload 0
aload 0
getfield org.h2.constraint.ConstraintReferential.refIndex:Lorg/h2/index/Index;
aload 5
invokevirtual org.h2.constraint.ConstraintReferential.getShortDescription:(Lorg/h2/index/Index;Lorg/h2/result/SearchRow;)Ljava/lang/String;
49: invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
athrow
50: StackMap locals:
StackMap stack:
return
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 51 0 this Lorg/h2/constraint/ConstraintReferential;
0 51 1 session Lorg/h2/engine/Session;
0 51 2 oldRow Lorg/h2/result/Row;
0 51 3 newRow Lorg/h2/result/Row;
5 51 4 constraintColumnsEqual Z
7 14 5 col Lorg/h2/table/IndexColumn;
8 14 9 idx I
9 14 10 v Lorg/h2/value/Value;
20 35 5 self Z
21 33 6 i I
22 33 7 len I
24 31 8 idx I
25 31 9 v Lorg/h2/value/Value;
26 31 10 refCol Lorg/h2/table/Column;
27 31 11 refIdx I
28 31 12 r Lorg/h2/value/Value;
36 51 5 check Lorg/h2/result/Row;
37 46 6 i I
38 46 7 len I
40 44 8 idx I
41 44 9 v Lorg/h2/value/Value;
42 44 10 refCol Lorg/h2/table/Column;
43 44 11 refIdx I
MethodParameters:
Name Flags
session
oldRow
newRow
private boolean existsRow(org.h2.engine.Session, org.h2.index.Index, org.h2.result.SearchRow, org.h2.result.Row);
descriptor: (Lorg/h2/engine/Session;Lorg/h2/index/Index;Lorg/h2/result/SearchRow;Lorg/h2/result/Row;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=15, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
invokeinterface org.h2.index.Index.getTable:()Lorg/h2/table/Table;
astore 5
start local 5 1: aload 5
aload 1
iconst_0
iconst_0
invokevirtual org.h2.table.Table.lock:(Lorg/h2/engine/Session;ZZ)Z
pop
2: aload 2
aload 1
aload 3
aload 3
invokeinterface org.h2.index.Index.find:(Lorg/h2/engine/Session;Lorg/h2/result/SearchRow;Lorg/h2/result/SearchRow;)Lorg/h2/index/Cursor;
astore 6
start local 6 3: goto 22
4: StackMap locals: org.h2.table.Table org.h2.index.Cursor
StackMap stack:
aload 6
invokeinterface org.h2.index.Cursor.getSearchRow:()Lorg/h2/result/SearchRow;
astore 7
start local 7 5: aload 4
ifnull 7
aload 7
invokeinterface org.h2.result.SearchRow.getKey:()J
aload 4
invokeinterface org.h2.result.Row.getKey:()J
lcmp
ifne 7
6: goto 22
7: StackMap locals: org.h2.result.SearchRow
StackMap stack:
aload 2
invokeinterface org.h2.index.Index.getColumns:()[Lorg/h2/table/Column;
astore 8
start local 8 8: iconst_1
istore 9
start local 9 9: aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
arraylength
aload 8
arraylength
invokestatic java.lang.Math.min:(II)I
istore 10
start local 10 10: iconst_0
istore 11
start local 11 11: goto 19
12: StackMap locals: org.h2.constraint.ConstraintReferential org.h2.engine.Session org.h2.index.Index org.h2.result.SearchRow org.h2.result.Row org.h2.table.Table org.h2.index.Cursor org.h2.result.SearchRow org.h2.table.Column[] int int int
StackMap stack:
aload 8
iload 11
aaload
invokevirtual org.h2.table.Column.getColumnId:()I
istore 12
start local 12 13: aload 3
iload 12
invokeinterface org.h2.result.SearchRow.getValue:(I)Lorg/h2/value/Value;
astore 13
start local 13 14: aload 7
iload 12
invokeinterface org.h2.result.SearchRow.getValue:(I)Lorg/h2/value/Value;
astore 14
start local 14 15: aload 5
aload 13
aload 14
invokevirtual org.h2.table.Table.compareValues:(Lorg/h2/value/Value;Lorg/h2/value/Value;)I
ifeq 18
16: iconst_0
istore 9
17: goto 20
end local 14 end local 13 end local 12 18: StackMap locals:
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
19: iload 11
iload 10
if_icmplt 12
end local 11 20: StackMap locals:
StackMap stack:
iload 9
ifeq 22
21: iconst_1
ireturn
end local 10 end local 9 end local 8 end local 7 22: StackMap locals: org.h2.constraint.ConstraintReferential org.h2.engine.Session org.h2.index.Index org.h2.result.SearchRow org.h2.result.Row org.h2.table.Table org.h2.index.Cursor
StackMap stack:
aload 6
invokeinterface org.h2.index.Cursor.next:()Z
ifne 4
23: iconst_0
ireturn
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 24 0 this Lorg/h2/constraint/ConstraintReferential;
0 24 1 session Lorg/h2/engine/Session;
0 24 2 searchIndex Lorg/h2/index/Index;
0 24 3 check Lorg/h2/result/SearchRow;
0 24 4 excluding Lorg/h2/result/Row;
1 24 5 searchTable Lorg/h2/table/Table;
3 24 6 cursor Lorg/h2/index/Cursor;
5 22 7 found Lorg/h2/result/SearchRow;
8 22 8 cols [Lorg/h2/table/Column;
9 22 9 allEqual Z
10 22 10 len I
11 20 11 i I
13 18 12 idx I
14 18 13 c Lorg/h2/value/Value;
15 18 14 f Lorg/h2/value/Value;
MethodParameters:
Name Flags
session
searchIndex
check
excluding
private boolean isEqual(org.h2.result.Row, org.h2.result.Row);
descriptor: (Lorg/h2/result/Row;Lorg/h2/result/Row;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.h2.constraint.ConstraintReferential.refIndex:Lorg/h2/index/Index;
aload 1
aload 2
invokeinterface org.h2.index.Index.compareRows:(Lorg/h2/result/SearchRow;Lorg/h2/result/SearchRow;)I
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/constraint/ConstraintReferential;
0 2 1 oldRow Lorg/h2/result/Row;
0 2 2 newRow Lorg/h2/result/Row;
MethodParameters:
Name Flags
oldRow
newRow
private void checkRow(org.h2.engine.Session, org.h2.result.Row);
descriptor: (Lorg/h2/engine/Session;Lorg/h2/result/Row;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.h2.constraint.ConstraintReferential.table:Lorg/h2/table/Table;
iconst_0
invokevirtual org.h2.table.Table.getTemplateSimpleRow:(Z)Lorg/h2/result/SearchRow;
astore 3
start local 3 1: iconst_0
istore 4
start local 4 2: aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
arraylength
istore 5
start local 5 3: goto 12
4: StackMap locals: org.h2.result.SearchRow int int
StackMap stack:
aload 0
getfield org.h2.constraint.ConstraintReferential.refColumns:[Lorg/h2/table/IndexColumn;
iload 4
aaload
getfield org.h2.table.IndexColumn.column:Lorg/h2/table/Column;
astore 6
start local 6 5: aload 6
invokevirtual org.h2.table.Column.getColumnId:()I
istore 7
start local 7 6: aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
iload 4
aaload
getfield org.h2.table.IndexColumn.column:Lorg/h2/table/Column;
astore 8
start local 8 7: aload 8
aload 2
iload 7
invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
invokevirtual org.h2.table.Column.convert:(Lorg/h2/value/Value;)Lorg/h2/value/Value;
astore 9
start local 9 8: aload 9
getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
if_acmpne 10
9: return
10: StackMap locals: org.h2.constraint.ConstraintReferential org.h2.engine.Session org.h2.result.Row org.h2.result.SearchRow int int org.h2.table.Column int org.h2.table.Column org.h2.value.Value
StackMap stack:
aload 3
aload 8
invokevirtual org.h2.table.Column.getColumnId:()I
aload 9
invokeinterface org.h2.result.SearchRow.setValue:(ILorg/h2/value/Value;)V
end local 9 end local 8 end local 7 end local 6 11: iinc 4 1
StackMap locals: org.h2.constraint.ConstraintReferential org.h2.engine.Session org.h2.result.Row org.h2.result.SearchRow int int
StackMap stack:
12: iload 4
iload 5
if_icmplt 4
end local 5 end local 4 13: aload 0
getfield org.h2.constraint.ConstraintReferential.refTable:Lorg/h2/table/Table;
aload 0
getfield org.h2.constraint.ConstraintReferential.table:Lorg/h2/table/Table;
if_acmpne 14
aload 2
goto 15
StackMap locals:
StackMap stack:
14: aconst_null
StackMap locals:
StackMap stack: org.h2.result.Row
15: astore 4
start local 4 16: aload 0
aload 1
aload 0
getfield org.h2.constraint.ConstraintReferential.index:Lorg/h2/index/Index;
aload 3
aload 4
invokevirtual org.h2.constraint.ConstraintReferential.existsRow:(Lorg/h2/engine/Session;Lorg/h2/index/Index;Lorg/h2/result/SearchRow;Lorg/h2/result/Row;)Z
ifeq 20
17: sipush 23503
18: aload 0
aload 0
getfield org.h2.constraint.ConstraintReferential.index:Lorg/h2/index/Index;
aload 3
invokevirtual org.h2.constraint.ConstraintReferential.getShortDescription:(Lorg/h2/index/Index;Lorg/h2/result/SearchRow;)Ljava/lang/String;
19: invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
athrow
20: StackMap locals: org.h2.result.Row
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/h2/constraint/ConstraintReferential;
0 21 1 session Lorg/h2/engine/Session;
0 21 2 oldRow Lorg/h2/result/Row;
1 21 3 check Lorg/h2/result/SearchRow;
2 13 4 i I
3 13 5 len I
5 11 6 refCol Lorg/h2/table/Column;
6 11 7 refIdx I
7 11 8 col Lorg/h2/table/Column;
8 11 9 v Lorg/h2/value/Value;
16 21 4 excluding Lorg/h2/result/Row;
MethodParameters:
Name Flags
session
oldRow
private void checkRowRefTable(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: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 3
ifnull 4
aload 0
aload 2
aload 3
invokevirtual org.h2.constraint.ConstraintReferential.isEqual:(Lorg/h2/result/Row;Lorg/h2/result/Row;)Z
ifeq 4
3: return
4: StackMap locals:
StackMap stack:
aload 3
ifnonnull 15
5: aload 0
getfield org.h2.constraint.ConstraintReferential.deleteAction:Lorg/h2/constraint/ConstraintActionType;
getstatic org.h2.constraint.ConstraintActionType.RESTRICT:Lorg/h2/constraint/ConstraintActionType;
if_acmpne 8
6: aload 0
aload 1
aload 2
invokevirtual org.h2.constraint.ConstraintReferential.checkRow:(Lorg/h2/engine/Session;Lorg/h2/result/Row;)V
7: goto 31
8: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.constraint.ConstraintReferential.deleteAction:Lorg/h2/constraint/ConstraintActionType;
getstatic org.h2.constraint.ConstraintActionType.CASCADE:Lorg/h2/constraint/ConstraintActionType;
if_acmpne 9
iconst_0
goto 10
StackMap locals:
StackMap stack:
9: aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
arraylength
StackMap locals:
StackMap stack: int
10: istore 4
start local 4 11: aload 0
aload 1
invokevirtual org.h2.constraint.ConstraintReferential.getDelete:(Lorg/h2/engine/Session;)Lorg/h2/command/Prepared;
astore 5
start local 5 12: aload 0
aload 5
iload 4
aload 2
invokevirtual org.h2.constraint.ConstraintReferential.setWhere:(Lorg/h2/command/Prepared;ILorg/h2/result/Row;)V
13: aload 0
aload 5
invokevirtual org.h2.constraint.ConstraintReferential.updateWithSkipCheck:(Lorg/h2/command/Prepared;)V
end local 5 end local 4 14: goto 31
15: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.constraint.ConstraintReferential.updateAction:Lorg/h2/constraint/ConstraintActionType;
getstatic org.h2.constraint.ConstraintActionType.RESTRICT:Lorg/h2/constraint/ConstraintActionType;
if_acmpne 18
16: aload 0
aload 1
aload 2
invokevirtual org.h2.constraint.ConstraintReferential.checkRow:(Lorg/h2/engine/Session;Lorg/h2/result/Row;)V
17: goto 31
18: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.h2.constraint.ConstraintReferential.getUpdate:(Lorg/h2/engine/Session;)Lorg/h2/command/Prepared;
astore 4
start local 4 19: aload 0
getfield org.h2.constraint.ConstraintReferential.updateAction:Lorg/h2/constraint/ConstraintActionType;
getstatic org.h2.constraint.ConstraintActionType.CASCADE:Lorg/h2/constraint/ConstraintActionType;
if_acmpne 29
20: aload 4
invokevirtual org.h2.command.Prepared.getParameters:()Ljava/util/ArrayList;
astore 5
start local 5 21: iconst_0
istore 6
start local 6 22: aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
arraylength
istore 7
start local 7 23: goto 28
24: StackMap locals: org.h2.constraint.ConstraintReferential org.h2.engine.Session org.h2.result.Row org.h2.result.Row org.h2.command.Prepared java.util.ArrayList int int
StackMap stack:
aload 5
iload 6
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Parameter
astore 8
start local 8 25: aload 0
getfield org.h2.constraint.ConstraintReferential.refColumns:[Lorg/h2/table/IndexColumn;
iload 6
aaload
getfield org.h2.table.IndexColumn.column:Lorg/h2/table/Column;
astore 9
start local 9 26: aload 8
aload 3
aload 9
invokevirtual org.h2.table.Column.getColumnId:()I
invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
invokevirtual org.h2.expression.Parameter.setValue:(Lorg/h2/value/Value;)V
end local 9 end local 8 27: iinc 6 1
StackMap locals:
StackMap stack:
28: iload 6
iload 7
if_icmplt 24
end local 7 end local 6 end local 5 29: StackMap locals:
StackMap stack:
aload 0
aload 4
aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
arraylength
aload 2
invokevirtual org.h2.constraint.ConstraintReferential.setWhere:(Lorg/h2/command/Prepared;ILorg/h2/result/Row;)V
30: aload 0
aload 4
invokevirtual org.h2.constraint.ConstraintReferential.updateWithSkipCheck:(Lorg/h2/command/Prepared;)V
end local 4 31: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lorg/h2/constraint/ConstraintReferential;
0 32 1 session Lorg/h2/engine/Session;
0 32 2 oldRow Lorg/h2/result/Row;
0 32 3 newRow Lorg/h2/result/Row;
11 14 4 i I
12 14 5 deleteCommand Lorg/h2/command/Prepared;
19 31 4 updateCommand Lorg/h2/command/Prepared;
21 29 5 params Ljava/util/ArrayList<Lorg/h2/expression/Parameter;>;
22 29 6 i I
23 29 7 len I
25 27 8 param Lorg/h2/expression/Parameter;
26 27 9 refCol Lorg/h2/table/Column;
MethodParameters:
Name Flags
session
oldRow
newRow
private void updateWithSkipCheck(org.h2.command.Prepared);
descriptor: (Lorg/h2/command/Prepared;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
iconst_1
putfield org.h2.constraint.ConstraintReferential.skipOwnTable:Z
1: aload 1
invokevirtual org.h2.command.Prepared.update:()I
pop
2: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 2
4: aload 0
iconst_0
putfield org.h2.constraint.ConstraintReferential.skipOwnTable:Z
5: aload 2
athrow
6: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield org.h2.constraint.ConstraintReferential.skipOwnTable:Z
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/h2/constraint/ConstraintReferential;
0 8 1 prep Lorg/h2/command/Prepared;
Exception table:
from to target type
0 3 3 any
MethodParameters:
Name Flags
prep
private void setWhere(org.h2.command.Prepared, int, org.h2.result.Row);
descriptor: (Lorg/h2/command/Prepared;ILorg/h2/result/Row;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 4
start local 4 1: aload 0
getfield org.h2.constraint.ConstraintReferential.refColumns:[Lorg/h2/table/IndexColumn;
arraylength
istore 5
start local 5 2: goto 9
3: StackMap locals: int int
StackMap stack:
aload 0
getfield org.h2.constraint.ConstraintReferential.refColumns:[Lorg/h2/table/IndexColumn;
iload 4
aaload
getfield org.h2.table.IndexColumn.column:Lorg/h2/table/Column;
invokevirtual org.h2.table.Column.getColumnId:()I
istore 6
start local 6 4: aload 3
iload 6
invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
astore 7
start local 7 5: aload 1
invokevirtual org.h2.command.Prepared.getParameters:()Ljava/util/ArrayList;
astore 8
start local 8 6: aload 8
iload 2
iload 4
iadd
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Parameter
astore 9
start local 9 7: aload 9
aload 7
invokevirtual org.h2.expression.Parameter.setValue:(Lorg/h2/value/Value;)V
end local 9 end local 8 end local 7 end local 6 8: iinc 4 1
StackMap locals:
StackMap stack:
9: iload 4
iload 5
if_icmplt 3
end local 5 end local 4 10: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/h2/constraint/ConstraintReferential;
0 11 1 command Lorg/h2/command/Prepared;
0 11 2 pos I
0 11 3 row Lorg/h2/result/Row;
1 10 4 i I
2 10 5 len I
4 8 6 idx I
5 8 7 v Lorg/h2/value/Value;
6 8 8 params Ljava/util/ArrayList<Lorg/h2/expression/Parameter;>;
7 8 9 param Lorg/h2/expression/Parameter;
MethodParameters:
Name Flags
command
pos
row
public org.h2.constraint.ConstraintActionType getDeleteAction();
descriptor: ()Lorg/h2/constraint/ConstraintActionType;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.constraint.ConstraintReferential.deleteAction:Lorg/h2/constraint/ConstraintActionType;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/constraint/ConstraintReferential;
public void setDeleteAction(org.h2.constraint.ConstraintActionType);
descriptor: (Lorg/h2/constraint/ConstraintActionType;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield org.h2.constraint.ConstraintReferential.deleteAction:Lorg/h2/constraint/ConstraintActionType;
if_acmpne 2
aload 0
getfield org.h2.constraint.ConstraintReferential.deleteSQL:Ljava/lang/String;
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.constraint.ConstraintReferential.deleteAction:Lorg/h2/constraint/ConstraintActionType;
getstatic org.h2.constraint.ConstraintActionType.RESTRICT:Lorg/h2/constraint/ConstraintActionType;
if_acmpeq 4
3: ldc 90045
ldc "ON DELETE"
invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield org.h2.constraint.ConstraintReferential.deleteAction:Lorg/h2/constraint/ConstraintActionType;
5: aload 0
invokevirtual org.h2.constraint.ConstraintReferential.buildDeleteSQL:()V
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/h2/constraint/ConstraintReferential;
0 7 1 action Lorg/h2/constraint/ConstraintActionType;
MethodParameters:
Name Flags
action
public void updateOnTableColumnRename();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.constraint.ConstraintReferential.deleteAction:Lorg/h2/constraint/ConstraintActionType;
ifnull 3
1: aload 0
aconst_null
putfield org.h2.constraint.ConstraintReferential.deleteSQL:Ljava/lang/String;
2: aload 0
invokevirtual org.h2.constraint.ConstraintReferential.buildDeleteSQL:()V
3: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.constraint.ConstraintReferential.updateAction:Lorg/h2/constraint/ConstraintActionType;
ifnull 6
4: aload 0
aconst_null
putfield org.h2.constraint.ConstraintReferential.updateSQL:Ljava/lang/String;
5: aload 0
invokevirtual org.h2.constraint.ConstraintReferential.buildUpdateSQL:()V
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/h2/constraint/ConstraintReferential;
private void buildDeleteSQL();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield org.h2.constraint.ConstraintReferential.deleteAction:Lorg/h2/constraint/ConstraintActionType;
getstatic org.h2.constraint.ConstraintActionType.RESTRICT:Lorg/h2/constraint/ConstraintActionType;
if_acmpne 2
1: return
2: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 3: aload 0
getfield org.h2.constraint.ConstraintReferential.deleteAction:Lorg/h2/constraint/ConstraintActionType;
getstatic org.h2.constraint.ConstraintActionType.CASCADE:Lorg/h2/constraint/ConstraintActionType;
if_acmpne 7
4: aload 1
ldc "DELETE FROM "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: aload 0
getfield org.h2.constraint.ConstraintReferential.table:Lorg/h2/table/Table;
aload 1
iconst_1
invokevirtual org.h2.table.Table.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
pop
6: goto 8
7: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 0
aload 1
invokevirtual org.h2.constraint.ConstraintReferential.appendUpdate:(Ljava/lang/StringBuilder;)V
8: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.h2.constraint.ConstraintReferential.appendWhere:(Ljava/lang/StringBuilder;)V
9: aload 0
aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield org.h2.constraint.ConstraintReferential.deleteSQL:Ljava/lang/String;
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/h2/constraint/ConstraintReferential;
3 11 1 builder Ljava/lang/StringBuilder;
private org.h2.command.Prepared getUpdate(org.h2.engine.Session);
descriptor: (Lorg/h2/engine/Session;)Lorg/h2/command/Prepared;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 0
getfield org.h2.constraint.ConstraintReferential.updateSQL:Ljava/lang/String;
aload 0
getfield org.h2.constraint.ConstraintReferential.updateAction:Lorg/h2/constraint/ConstraintActionType;
invokevirtual org.h2.constraint.ConstraintReferential.prepare:(Lorg/h2/engine/Session;Ljava/lang/String;Lorg/h2/constraint/ConstraintActionType;)Lorg/h2/command/Prepared;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/constraint/ConstraintReferential;
0 1 1 session Lorg/h2/engine/Session;
MethodParameters:
Name Flags
session
private org.h2.command.Prepared getDelete(org.h2.engine.Session);
descriptor: (Lorg/h2/engine/Session;)Lorg/h2/command/Prepared;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 0
getfield org.h2.constraint.ConstraintReferential.deleteSQL:Ljava/lang/String;
aload 0
getfield org.h2.constraint.ConstraintReferential.deleteAction:Lorg/h2/constraint/ConstraintActionType;
invokevirtual org.h2.constraint.ConstraintReferential.prepare:(Lorg/h2/engine/Session;Ljava/lang/String;Lorg/h2/constraint/ConstraintActionType;)Lorg/h2/command/Prepared;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/constraint/ConstraintReferential;
0 1 1 session Lorg/h2/engine/Session;
MethodParameters:
Name Flags
session
public org.h2.constraint.ConstraintActionType getUpdateAction();
descriptor: ()Lorg/h2/constraint/ConstraintActionType;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.constraint.ConstraintReferential.updateAction:Lorg/h2/constraint/ConstraintActionType;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/constraint/ConstraintReferential;
public void setUpdateAction(org.h2.constraint.ConstraintActionType);
descriptor: (Lorg/h2/constraint/ConstraintActionType;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield org.h2.constraint.ConstraintReferential.updateAction:Lorg/h2/constraint/ConstraintActionType;
if_acmpne 2
aload 0
getfield org.h2.constraint.ConstraintReferential.updateSQL:Ljava/lang/String;
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.constraint.ConstraintReferential.updateAction:Lorg/h2/constraint/ConstraintActionType;
getstatic org.h2.constraint.ConstraintActionType.RESTRICT:Lorg/h2/constraint/ConstraintActionType;
if_acmpeq 4
3: ldc 90045
ldc "ON UPDATE"
invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield org.h2.constraint.ConstraintReferential.updateAction:Lorg/h2/constraint/ConstraintActionType;
5: aload 0
invokevirtual org.h2.constraint.ConstraintReferential.buildUpdateSQL:()V
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/h2/constraint/ConstraintReferential;
0 7 1 action Lorg/h2/constraint/ConstraintActionType;
MethodParameters:
Name Flags
action
private void buildUpdateSQL();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield org.h2.constraint.ConstraintReferential.updateAction:Lorg/h2/constraint/ConstraintActionType;
getstatic org.h2.constraint.ConstraintActionType.RESTRICT:Lorg/h2/constraint/ConstraintActionType;
if_acmpne 2
1: return
2: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 3: aload 0
aload 1
invokevirtual org.h2.constraint.ConstraintReferential.appendUpdate:(Ljava/lang/StringBuilder;)V
4: aload 0
aload 1
invokevirtual org.h2.constraint.ConstraintReferential.appendWhere:(Ljava/lang/StringBuilder;)V
5: aload 0
aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield org.h2.constraint.ConstraintReferential.updateSQL:Ljava/lang/String;
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/h2/constraint/ConstraintReferential;
3 7 1 builder Ljava/lang/StringBuilder;
public void rebuild();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.h2.constraint.ConstraintReferential.buildUpdateSQL:()V
1: aload 0
invokevirtual org.h2.constraint.ConstraintReferential.buildDeleteSQL:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/constraint/ConstraintReferential;
private org.h2.command.Prepared prepare(org.h2.engine.Session, java.lang.String, org.h2.constraint.ConstraintActionType);
descriptor: (Lorg/h2/engine/Session;Ljava/lang/String;Lorg/h2/constraint/ConstraintActionType;)Lorg/h2/command/Prepared;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
aload 2
invokevirtual org.h2.engine.Session.prepare:(Ljava/lang/String;)Lorg/h2/command/Prepared;
astore 4
start local 4 1: aload 3
getstatic org.h2.constraint.ConstraintActionType.CASCADE:Lorg/h2/constraint/ConstraintActionType;
if_acmpeq 18
2: aload 4
invokevirtual org.h2.command.Prepared.getParameters:()Ljava/util/ArrayList;
astore 5
start local 5 3: iconst_0
istore 6
start local 6 4: aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
arraylength
istore 7
start local 7 5: goto 17
6: StackMap locals: org.h2.constraint.ConstraintReferential org.h2.engine.Session java.lang.String org.h2.constraint.ConstraintActionType org.h2.command.Prepared java.util.ArrayList int int
StackMap stack:
aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
iload 6
aaload
getfield org.h2.table.IndexColumn.column:Lorg/h2/table/Column;
astore 8
start local 8 7: aload 5
iload 6
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Parameter
astore 9
start local 9 8: aload 3
getstatic org.h2.constraint.ConstraintActionType.SET_NULL:Lorg/h2/constraint/ConstraintActionType;
if_acmpne 11
9: getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
astore 10
start local 10 10: goto 15
end local 10 11: StackMap locals: org.h2.table.Column org.h2.expression.Parameter
StackMap stack:
aload 8
invokevirtual org.h2.table.Column.getDefaultExpression:()Lorg/h2/expression/Expression;
astore 11
start local 11 12: aload 11
ifnonnull 14
13: sipush 23507
aload 8
invokevirtual org.h2.table.Column.getName:()Ljava/lang/String;
invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
athrow
14: StackMap locals: org.h2.constraint.ConstraintReferential org.h2.engine.Session java.lang.String org.h2.constraint.ConstraintActionType org.h2.command.Prepared java.util.ArrayList int int org.h2.table.Column org.h2.expression.Parameter top org.h2.expression.Expression
StackMap stack:
aload 11
aload 1
invokevirtual org.h2.expression.Expression.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
astore 10
end local 11 start local 10 15: StackMap locals: org.h2.constraint.ConstraintReferential org.h2.engine.Session java.lang.String org.h2.constraint.ConstraintActionType org.h2.command.Prepared java.util.ArrayList int int org.h2.table.Column org.h2.expression.Parameter org.h2.value.Value
StackMap stack:
aload 9
aload 10
invokevirtual org.h2.expression.Parameter.setValue:(Lorg/h2/value/Value;)V
end local 10 end local 9 end local 8 16: iinc 6 1
StackMap locals:
StackMap stack:
17: iload 6
iload 7
if_icmplt 6
end local 7 end local 6 end local 5 18: StackMap locals:
StackMap stack:
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 19 0 this Lorg/h2/constraint/ConstraintReferential;
0 19 1 session Lorg/h2/engine/Session;
0 19 2 sql Ljava/lang/String;
0 19 3 action Lorg/h2/constraint/ConstraintActionType;
1 19 4 command Lorg/h2/command/Prepared;
3 18 5 params Ljava/util/ArrayList<Lorg/h2/expression/Parameter;>;
4 18 6 i I
5 18 7 len I
7 16 8 column Lorg/h2/table/Column;
8 16 9 param Lorg/h2/expression/Parameter;
10 11 10 value Lorg/h2/value/Value;
15 16 10 value Lorg/h2/value/Value;
12 15 11 expr Lorg/h2/expression/Expression;
MethodParameters:
Name Flags
session
sql
action
private void appendUpdate(java.lang.StringBuilder);
descriptor: (Ljava/lang/StringBuilder;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ldc "UPDATE "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
1: aload 0
getfield org.h2.constraint.ConstraintReferential.table:Lorg/h2/table/Table;
aload 1
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
2: iconst_0
istore 2
start local 2 3: aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
arraylength
istore 3
start local 3 4: goto 9
5: StackMap locals: int int
StackMap stack:
iload 2
ifle 7
6: aload 1
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
iload 2
aaload
getfield org.h2.table.IndexColumn.column:Lorg/h2/table/Column;
aload 1
iconst_1
invokevirtual org.h2.table.Column.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
ldc "=?"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: iinc 2 1
StackMap locals:
StackMap stack:
9: iload 2
iload 3
if_icmplt 5
end local 3 end local 2 10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/h2/constraint/ConstraintReferential;
0 11 1 builder Ljava/lang/StringBuilder;
3 10 2 i I
4 10 3 l I
MethodParameters:
Name Flags
builder
private void appendWhere(java.lang.StringBuilder);
descriptor: (Ljava/lang/StringBuilder;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ldc " WHERE "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
1: iconst_0
istore 2
start local 2 2: aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
arraylength
istore 3
start local 3 3: goto 8
4: StackMap locals: int int
StackMap stack:
iload 2
ifle 6
5: aload 1
ldc " AND "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
6: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
iload 2
aaload
getfield org.h2.table.IndexColumn.column:Lorg/h2/table/Column;
aload 1
iconst_1
invokevirtual org.h2.table.Column.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
ldc "=?"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: iinc 2 1
StackMap locals:
StackMap stack:
8: iload 2
iload 3
if_icmplt 4
end local 3 end local 2 9: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/h2/constraint/ConstraintReferential;
0 10 1 builder Ljava/lang/StringBuilder;
2 9 2 i I
3 9 3 l I
MethodParameters:
Name Flags
builder
public org.h2.table.Table getRefTable();
descriptor: ()Lorg/h2/table/Table;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.constraint.ConstraintReferential.refTable:Lorg/h2/table/Table;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/constraint/ConstraintReferential;
public boolean usesIndex(org.h2.index.Index);
descriptor: (Lorg/h2/index/Index;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield org.h2.constraint.ConstraintReferential.index:Lorg/h2/index/Index;
if_acmpeq 1
aload 1
aload 0
getfield org.h2.constraint.ConstraintReferential.refIndex:Lorg/h2/index/Index;
if_acmpeq 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/constraint/ConstraintReferential;
0 2 1 idx Lorg/h2/index/Index;
MethodParameters:
Name Flags
idx
public void setIndexOwner(org.h2.index.Index);
descriptor: (Lorg/h2/index/Index;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.constraint.ConstraintReferential.index:Lorg/h2/index/Index;
aload 1
if_acmpne 3
1: aload 0
iconst_1
putfield org.h2.constraint.ConstraintReferential.indexOwner:Z
2: goto 7
StackMap locals:
StackMap stack:
3: aload 0
getfield org.h2.constraint.ConstraintReferential.refIndex:Lorg/h2/index/Index;
aload 1
if_acmpne 6
4: aload 0
iconst_1
putfield org.h2.constraint.ConstraintReferential.refIndexOwner:Z
5: goto 7
6: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual org.h2.constraint.ConstraintReferential.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
pop
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/h2/constraint/ConstraintReferential;
0 8 1 index Lorg/h2/index/Index;
MethodParameters:
Name Flags
index
public boolean isBefore();
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/constraint/ConstraintReferential;
public void checkExistingData(org.h2.engine.Session);
descriptor: (Lorg/h2/engine/Session;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
invokevirtual org.h2.engine.Database.isStarting:()Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.h2.engine.Session.startStatementWithinTransaction:()V
3: new java.lang.StringBuilder
dup
ldc "SELECT 1 FROM (SELECT "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 2
start local 2 4: aload 2
aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
iconst_1
invokestatic org.h2.table.IndexColumn.writeColumns:(Ljava/lang/StringBuilder;[Lorg/h2/table/IndexColumn;Z)Ljava/lang/StringBuilder;
pop
5: aload 2
ldc " FROM "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
6: aload 0
getfield org.h2.constraint.ConstraintReferential.table:Lorg/h2/table/Table;
aload 2
iconst_1
invokevirtual org.h2.table.Table.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
ldc " WHERE "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: aload 2
aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
ldc " AND "
ldc " IS NOT NULL "
iconst_1
invokestatic org.h2.table.IndexColumn.writeColumns:(Ljava/lang/StringBuilder;[Lorg/h2/table/IndexColumn;Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/StringBuilder;
pop
8: aload 2
ldc " ORDER BY "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: aload 2
aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
iconst_1
invokestatic org.h2.table.IndexColumn.writeColumns:(Ljava/lang/StringBuilder;[Lorg/h2/table/IndexColumn;Z)Ljava/lang/StringBuilder;
pop
10: aload 2
ldc ") C WHERE NOT EXISTS(SELECT 1 FROM "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
11: aload 0
getfield org.h2.constraint.ConstraintReferential.refTable:Lorg/h2/table/Table;
aload 2
iconst_1
invokevirtual org.h2.table.Table.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
ldc " P WHERE "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: iconst_0
istore 3
start local 3 13: aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
arraylength
istore 4
start local 4 14: goto 21
15: StackMap locals: java.lang.StringBuilder int int
StackMap stack:
iload 3
ifle 17
16: aload 2
ldc " AND "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
17: StackMap locals:
StackMap stack:
aload 2
ldc "C."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
18: aload 0
getfield org.h2.constraint.ConstraintReferential.columns:[Lorg/h2/table/IndexColumn;
iload 3
aaload
aload 2
iconst_1
invokevirtual org.h2.table.IndexColumn.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
bipush 61
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
ldc "P."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
19: aload 0
getfield org.h2.constraint.ConstraintReferential.refColumns:[Lorg/h2/table/IndexColumn;
iload 3
aaload
aload 2
iconst_1
invokevirtual org.h2.table.IndexColumn.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
pop
20: iinc 3 1
StackMap locals:
StackMap stack:
21: iload 3
iload 4
if_icmplt 15
end local 4 end local 3 22: aload 2
bipush 41
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
23: aload 1
aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.h2.engine.Session.prepare:(Ljava/lang/String;)Lorg/h2/command/Prepared;
iconst_1
invokevirtual org.h2.command.Prepared.query:(I)Lorg/h2/result/ResultInterface;
astore 3
start local 3 24: aload 3
invokeinterface org.h2.result.ResultInterface.next:()Z
ifeq 28
25: sipush 23506
26: aload 0
aconst_null
aconst_null
invokevirtual org.h2.constraint.ConstraintReferential.getShortDescription:(Lorg/h2/index/Index;Lorg/h2/result/SearchRow;)Ljava/lang/String;
27: invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
athrow
28: StackMap locals: org.h2.constraint.ConstraintReferential org.h2.engine.Session java.lang.StringBuilder org.h2.result.ResultInterface
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lorg/h2/constraint/ConstraintReferential;
0 29 1 session Lorg/h2/engine/Session;
4 29 2 builder Ljava/lang/StringBuilder;
13 22 3 i I
14 22 4 l I
24 29 3 r Lorg/h2/result/ResultInterface;
MethodParameters:
Name Flags
session
public org.h2.index.Index getUniqueIndex();
descriptor: ()Lorg/h2/index/Index;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.constraint.ConstraintReferential.refIndex:Lorg/h2/index/Index;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/constraint/ConstraintReferential;
}
SourceFile: "ConstraintReferential.java"
InnerClasses:
public final Type = org.h2.constraint.Constraint$Type of org.h2.constraint.Constraint