public class org.hsqldb.RangeVariableResolver
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.hsqldb.RangeVariableResolver
super_class: java.lang.Object
{
org.hsqldb.Session session;
descriptor: Lorg/hsqldb/Session;
flags: (0x0000)
org.hsqldb.QuerySpecification select;
descriptor: Lorg/hsqldb/QuerySpecification;
flags: (0x0000)
org.hsqldb.RangeVariable[] rangeVariables;
descriptor: [Lorg/hsqldb/RangeVariable;
flags: (0x0000)
org.hsqldb.Expression conditions;
descriptor: Lorg/hsqldb/Expression;
flags: (0x0000)
org.hsqldb.lib.OrderedHashSet rangeVarSet;
descriptor: Lorg/hsqldb/lib/OrderedHashSet;
flags: (0x0000)
org.hsqldb.ParserDQL$CompileContext compileContext;
descriptor: Lorg/hsqldb/ParserDQL$CompileContext;
flags: (0x0000)
org.hsqldb.SortAndSlice sortAndSlice;
descriptor: Lorg/hsqldb/SortAndSlice;
flags: (0x0000)
boolean reorder;
descriptor: Z
flags: (0x0000)
org.hsqldb.lib.HsqlArrayList[] tempJoinExpressions;
descriptor: [Lorg/hsqldb/lib/HsqlArrayList;
flags: (0x0000)
org.hsqldb.lib.HsqlArrayList[] joinExpressions;
descriptor: [Lorg/hsqldb/lib/HsqlArrayList;
flags: (0x0000)
org.hsqldb.lib.HsqlArrayList[] whereExpressions;
descriptor: [Lorg/hsqldb/lib/HsqlArrayList;
flags: (0x0000)
org.hsqldb.lib.HsqlArrayList queryConditions;
descriptor: Lorg/hsqldb/lib/HsqlArrayList;
flags: (0x0000)
org.hsqldb.Expression[] inExpressions;
descriptor: [Lorg/hsqldb/Expression;
flags: (0x0000)
boolean[] inInJoin;
descriptor: [Z
flags: (0x0000)
int inExpressionCount;
descriptor: I
flags: (0x0000)
boolean expandInExpression;
descriptor: Z
flags: (0x0000)
int firstLeftJoinIndex;
descriptor: I
flags: (0x0000)
int firstRightJoinIndex;
descriptor: I
flags: (0x0000)
int lastRightJoinIndex;
descriptor: I
flags: (0x0000)
int firstLateralJoinIndex;
descriptor: I
flags: (0x0000)
int firstOuterJoinIndex;
descriptor: I
flags: (0x0000)
int lastOuterJoinIndex;
descriptor: I
flags: (0x0000)
org.hsqldb.lib.OrderedIntHashSet colIndexSetEqual;
descriptor: Lorg/hsqldb/lib/OrderedIntHashSet;
flags: (0x0000)
org.hsqldb.lib.IntKeyIntValueHashMap colIndexSetOther;
descriptor: Lorg/hsqldb/lib/IntKeyIntValueHashMap;
flags: (0x0000)
org.hsqldb.lib.OrderedHashSet tempSet;
descriptor: Lorg/hsqldb/lib/OrderedHashSet;
flags: (0x0000)
org.hsqldb.lib.HashMap tempMap;
descriptor: Lorg/hsqldb/lib/HashMap;
flags: (0x0000)
org.hsqldb.lib.MultiValueHashMap tempMultiMap;
descriptor: Lorg/hsqldb/lib/MultiValueHashMap;
flags: (0x0000)
void <init>(org.hsqldb.Session, org.hsqldb.QuerySpecification);
descriptor: (Lorg/hsqldb/Session;Lorg/hsqldb/QuerySpecification;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new org.hsqldb.lib.OrderedHashSet
dup
invokespecial org.hsqldb.lib.OrderedHashSet.<init>:()V
putfield org.hsqldb.RangeVariableResolver.rangeVarSet:Lorg/hsqldb/lib/OrderedHashSet;
2: aload 0
getstatic org.hsqldb.SortAndSlice.noSort:Lorg/hsqldb/SortAndSlice;
putfield org.hsqldb.RangeVariableResolver.sortAndSlice:Lorg/hsqldb/SortAndSlice;
3: aload 0
new org.hsqldb.lib.HsqlArrayList
dup
invokespecial org.hsqldb.lib.HsqlArrayList.<init>:()V
putfield org.hsqldb.RangeVariableResolver.queryConditions:Lorg/hsqldb/lib/HsqlArrayList;
4: aload 0
iconst_0
putfield org.hsqldb.RangeVariableResolver.inExpressionCount:I
5: aload 0
iconst_1
putfield org.hsqldb.RangeVariableResolver.expandInExpression:Z
6: aload 0
new org.hsqldb.lib.OrderedIntHashSet
dup
invokespecial org.hsqldb.lib.OrderedIntHashSet.<init>:()V
putfield org.hsqldb.RangeVariableResolver.colIndexSetEqual:Lorg/hsqldb/lib/OrderedIntHashSet;
7: aload 0
new org.hsqldb.lib.IntKeyIntValueHashMap
dup
invokespecial org.hsqldb.lib.IntKeyIntValueHashMap.<init>:()V
putfield org.hsqldb.RangeVariableResolver.colIndexSetOther:Lorg/hsqldb/lib/IntKeyIntValueHashMap;
8: aload 0
new org.hsqldb.lib.OrderedHashSet
dup
invokespecial org.hsqldb.lib.OrderedHashSet.<init>:()V
putfield org.hsqldb.RangeVariableResolver.tempSet:Lorg/hsqldb/lib/OrderedHashSet;
9: aload 0
new org.hsqldb.lib.HashMap
dup
invokespecial org.hsqldb.lib.HashMap.<init>:()V
putfield org.hsqldb.RangeVariableResolver.tempMap:Lorg/hsqldb/lib/HashMap;
10: aload 0
new org.hsqldb.lib.MultiValueHashMap
dup
invokespecial org.hsqldb.lib.MultiValueHashMap.<init>:()V
putfield org.hsqldb.RangeVariableResolver.tempMultiMap:Lorg/hsqldb/lib/MultiValueHashMap;
11: aload 0
aload 1
putfield org.hsqldb.RangeVariableResolver.session:Lorg/hsqldb/Session;
12: aload 0
aload 2
putfield org.hsqldb.RangeVariableResolver.select:Lorg/hsqldb/QuerySpecification;
13: aload 0
aload 2
getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
putfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
14: aload 0
aload 2
getfield org.hsqldb.QuerySpecification.queryCondition:Lorg/hsqldb/Expression;
putfield org.hsqldb.RangeVariableResolver.conditions:Lorg/hsqldb/Expression;
15: aload 0
aload 2
getfield org.hsqldb.QuerySpecification.compileContext:Lorg/hsqldb/ParserDQL$CompileContext;
putfield org.hsqldb.RangeVariableResolver.compileContext:Lorg/hsqldb/ParserDQL$CompileContext;
16: aload 0
aload 2
getfield org.hsqldb.QuerySpecification.sortAndSlice:Lorg/hsqldb/SortAndSlice;
putfield org.hsqldb.RangeVariableResolver.sortAndSlice:Lorg/hsqldb/SortAndSlice;
17: aload 0
iconst_1
putfield org.hsqldb.RangeVariableResolver.reorder:Z
18: aload 0
invokevirtual org.hsqldb.RangeVariableResolver.initialise:()V
19: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/hsqldb/RangeVariableResolver;
0 20 1 session Lorg/hsqldb/Session;
0 20 2 select Lorg/hsqldb/QuerySpecification;
MethodParameters:
Name Flags
session
select
void <init>(org.hsqldb.Session, org.hsqldb.RangeVariable[], org.hsqldb.Expression, org.hsqldb.ParserDQL$CompileContext, boolean);
descriptor: (Lorg/hsqldb/Session;[Lorg/hsqldb/RangeVariable;Lorg/hsqldb/Expression;Lorg/hsqldb/ParserDQL$CompileContext;Z)V
flags: (0x0000)
Code:
stack=3, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new org.hsqldb.lib.OrderedHashSet
dup
invokespecial org.hsqldb.lib.OrderedHashSet.<init>:()V
putfield org.hsqldb.RangeVariableResolver.rangeVarSet:Lorg/hsqldb/lib/OrderedHashSet;
2: aload 0
getstatic org.hsqldb.SortAndSlice.noSort:Lorg/hsqldb/SortAndSlice;
putfield org.hsqldb.RangeVariableResolver.sortAndSlice:Lorg/hsqldb/SortAndSlice;
3: aload 0
new org.hsqldb.lib.HsqlArrayList
dup
invokespecial org.hsqldb.lib.HsqlArrayList.<init>:()V
putfield org.hsqldb.RangeVariableResolver.queryConditions:Lorg/hsqldb/lib/HsqlArrayList;
4: aload 0
iconst_0
putfield org.hsqldb.RangeVariableResolver.inExpressionCount:I
5: aload 0
iconst_1
putfield org.hsqldb.RangeVariableResolver.expandInExpression:Z
6: aload 0
new org.hsqldb.lib.OrderedIntHashSet
dup
invokespecial org.hsqldb.lib.OrderedIntHashSet.<init>:()V
putfield org.hsqldb.RangeVariableResolver.colIndexSetEqual:Lorg/hsqldb/lib/OrderedIntHashSet;
7: aload 0
new org.hsqldb.lib.IntKeyIntValueHashMap
dup
invokespecial org.hsqldb.lib.IntKeyIntValueHashMap.<init>:()V
putfield org.hsqldb.RangeVariableResolver.colIndexSetOther:Lorg/hsqldb/lib/IntKeyIntValueHashMap;
8: aload 0
new org.hsqldb.lib.OrderedHashSet
dup
invokespecial org.hsqldb.lib.OrderedHashSet.<init>:()V
putfield org.hsqldb.RangeVariableResolver.tempSet:Lorg/hsqldb/lib/OrderedHashSet;
9: aload 0
new org.hsqldb.lib.HashMap
dup
invokespecial org.hsqldb.lib.HashMap.<init>:()V
putfield org.hsqldb.RangeVariableResolver.tempMap:Lorg/hsqldb/lib/HashMap;
10: aload 0
new org.hsqldb.lib.MultiValueHashMap
dup
invokespecial org.hsqldb.lib.MultiValueHashMap.<init>:()V
putfield org.hsqldb.RangeVariableResolver.tempMultiMap:Lorg/hsqldb/lib/MultiValueHashMap;
11: aload 0
aload 1
putfield org.hsqldb.RangeVariableResolver.session:Lorg/hsqldb/Session;
12: aload 0
aload 2
putfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
13: aload 0
aload 3
putfield org.hsqldb.RangeVariableResolver.conditions:Lorg/hsqldb/Expression;
14: aload 0
aload 4
putfield org.hsqldb.RangeVariableResolver.compileContext:Lorg/hsqldb/ParserDQL$CompileContext;
15: aload 0
iload 5
putfield org.hsqldb.RangeVariableResolver.reorder:Z
16: aload 0
invokevirtual org.hsqldb.RangeVariableResolver.initialise:()V
17: 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 18 0 this Lorg/hsqldb/RangeVariableResolver;
0 18 1 session Lorg/hsqldb/Session;
0 18 2 rangeVariables [Lorg/hsqldb/RangeVariable;
0 18 3 conditions Lorg/hsqldb/Expression;
0 18 4 compileContext Lorg/hsqldb/ParserDQL$CompileContext;
0 18 5 reorder Z
MethodParameters:
Name Flags
session
rangeVariables
conditions
compileContext
reorder
private void initialise();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
putfield org.hsqldb.RangeVariableResolver.firstLeftJoinIndex:I
1: aload 0
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
putfield org.hsqldb.RangeVariableResolver.firstRightJoinIndex:I
2: aload 0
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
putfield org.hsqldb.RangeVariableResolver.firstLateralJoinIndex:I
3: aload 0
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
putfield org.hsqldb.RangeVariableResolver.firstOuterJoinIndex:I
4: aload 0
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
anewarray org.hsqldb.Expression
putfield org.hsqldb.RangeVariableResolver.inExpressions:[Lorg/hsqldb/Expression;
5: aload 0
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
newarray 4
putfield org.hsqldb.RangeVariableResolver.inInJoin:[Z
6: aload 0
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
anewarray org.hsqldb.lib.HsqlArrayList
putfield org.hsqldb.RangeVariableResolver.tempJoinExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
7: iconst_0
istore 1
start local 1 8: goto 11
9: StackMap locals: int
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.tempJoinExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
iload 1
new org.hsqldb.lib.HsqlArrayList
dup
invokespecial org.hsqldb.lib.HsqlArrayList.<init>:()V
aastore
10: iinc 1 1
StackMap locals:
StackMap stack:
11: iload 1
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
if_icmplt 9
end local 1 12: aload 0
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
anewarray org.hsqldb.lib.HsqlArrayList
putfield org.hsqldb.RangeVariableResolver.joinExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
13: iconst_0
istore 1
start local 1 14: goto 17
15: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.joinExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
iload 1
new org.hsqldb.lib.HsqlArrayList
dup
invokespecial org.hsqldb.lib.HsqlArrayList.<init>:()V
aastore
16: iinc 1 1
StackMap locals:
StackMap stack:
17: iload 1
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
if_icmplt 15
end local 1 18: aload 0
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
anewarray org.hsqldb.lib.HsqlArrayList
putfield org.hsqldb.RangeVariableResolver.whereExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
19: iconst_0
istore 1
start local 1 20: goto 23
21: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.whereExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
iload 1
new org.hsqldb.lib.HsqlArrayList
dup
invokespecial org.hsqldb.lib.HsqlArrayList.<init>:()V
aastore
22: iinc 1 1
StackMap locals:
StackMap stack:
23: iload 1
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
if_icmplt 21
end local 1 24: aload 0
getfield org.hsqldb.RangeVariableResolver.queryConditions:Lorg/hsqldb/lib/HsqlArrayList;
invokevirtual org.hsqldb.lib.HsqlArrayList.clear:()V
25: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lorg/hsqldb/RangeVariableResolver;
8 12 1 i I
14 18 1 i I
20 24 1 i I
void processConditions();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
getfield org.hsqldb.RangeVariableResolver.session:Lorg/hsqldb/Session;
getfield org.hsqldb.Session.sessionOptimization:I
bipush 8
if_icmpge 2
1: aload 0
iconst_0
putfield org.hsqldb.RangeVariableResolver.reorder:Z
2: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.session:Lorg/hsqldb/Session;
aload 0
getfield org.hsqldb.RangeVariableResolver.conditions:Lorg/hsqldb/Expression;
aload 0
getfield org.hsqldb.RangeVariableResolver.queryConditions:Lorg/hsqldb/lib/HsqlArrayList;
invokestatic org.hsqldb.RangeVariableResolver.decomposeAndConditions:(Lorg/hsqldb/Session;Lorg/hsqldb/Expression;Lorg/hsqldb/lib/HsqlList;)Lorg/hsqldb/Expression;
pop
3: iconst_0
istore 1
start local 1 4: goto 12
5: StackMap locals: int
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVarSet:Lorg/hsqldb/lib/OrderedHashSet;
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 1
aaload
invokevirtual org.hsqldb.lib.OrderedHashSet.add:(Ljava/lang/Object;)Z
pop
6: aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 1
aaload
getfield org.hsqldb.RangeVariable.joinCondition:Lorg/hsqldb/Expression;
ifnonnull 8
7: goto 11
8: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.session:Lorg/hsqldb/Session;
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 1
aaload
getfield org.hsqldb.RangeVariable.joinCondition:Lorg/hsqldb/Expression;
9: aload 0
getfield org.hsqldb.RangeVariableResolver.tempJoinExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
iload 1
aaload
10: invokestatic org.hsqldb.RangeVariableResolver.decomposeAndConditions:(Lorg/hsqldb/Session;Lorg/hsqldb/Expression;Lorg/hsqldb/lib/HsqlList;)Lorg/hsqldb/Expression;
pop
11: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
12: iload 1
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
if_icmplt 5
end local 1 13: iconst_0
istore 1
start local 1 14: goto 32
15: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.queryConditions:Lorg/hsqldb/lib/HsqlArrayList;
iload 1
invokevirtual org.hsqldb.lib.HsqlArrayList.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.Expression
astore 2
start local 2 16: aload 2
invokevirtual org.hsqldb.Expression.isTrue:()Z
ifeq 18
17: goto 31
18: StackMap locals: org.hsqldb.Expression
StackMap stack:
aload 2
getfield org.hsqldb.Expression.isSingleColumnEqual:Z
ifne 19
aload 2
getfield org.hsqldb.Expression.isColumnCondition:Z
ifeq 31
19: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getRangeVariable:()Lorg/hsqldb/RangeVariable;
astore 3
start local 3 20: aload 2
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
getfield org.hsqldb.Expression.opType:I
iconst_2
if_icmpne 25
21: aload 3
ifnull 25
22: aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVarSet:Lorg/hsqldb/lib/OrderedHashSet;
aload 3
invokevirtual org.hsqldb.lib.OrderedHashSet.getIndex:(Ljava/lang/Object;)I
istore 4
start local 4 23: iload 4
ifle 25
24: aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 4
aaload
iconst_0
putfield org.hsqldb.RangeVariable.isLeftJoin:Z
end local 4 25: StackMap locals: org.hsqldb.RangeVariable
StackMap stack:
aload 2
invokevirtual org.hsqldb.Expression.getRightNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getRangeVariable:()Lorg/hsqldb/RangeVariable;
astore 3
26: aload 2
invokevirtual org.hsqldb.Expression.getRightNode:()Lorg/hsqldb/Expression;
getfield org.hsqldb.Expression.opType:I
iconst_2
if_icmpne 31
27: aload 3
ifnull 31
28: aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVarSet:Lorg/hsqldb/lib/OrderedHashSet;
aload 3
invokevirtual org.hsqldb.lib.OrderedHashSet.getIndex:(Ljava/lang/Object;)I
istore 4
start local 4 29: iload 4
ifle 31
30: aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 4
aaload
iconst_0
putfield org.hsqldb.RangeVariable.isLeftJoin:Z
end local 4 end local 3 end local 2 31: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
32: iload 1
aload 0
getfield org.hsqldb.RangeVariableResolver.queryConditions:Lorg/hsqldb/lib/HsqlArrayList;
invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
if_icmplt 15
end local 1 33: iconst_0
istore 1
start local 1 34: goto 55
35: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 1
aaload
astore 2
start local 2 36: iconst_0
istore 3
start local 3 37: aload 2
getfield org.hsqldb.RangeVariable.isLeftJoin:Z
ifeq 41
38: aload 0
getfield org.hsqldb.RangeVariableResolver.firstLeftJoinIndex:I
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
if_icmpne 40
39: aload 0
iload 1
putfield org.hsqldb.RangeVariableResolver.firstLeftJoinIndex:I
40: StackMap locals: org.hsqldb.RangeVariable int
StackMap stack:
iconst_1
istore 3
41: StackMap locals:
StackMap stack:
aload 2
getfield org.hsqldb.RangeVariable.isRightJoin:Z
ifeq 46
42: aload 0
getfield org.hsqldb.RangeVariableResolver.firstRightJoinIndex:I
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
if_icmpne 44
43: aload 0
iload 1
putfield org.hsqldb.RangeVariableResolver.firstRightJoinIndex:I
44: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield org.hsqldb.RangeVariableResolver.lastRightJoinIndex:I
45: iconst_1
istore 3
46: StackMap locals:
StackMap stack:
aload 2
getfield org.hsqldb.RangeVariable.isLateral:Z
ifeq 50
47: aload 0
getfield org.hsqldb.RangeVariableResolver.firstLateralJoinIndex:I
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
if_icmpne 49
48: aload 0
iload 1
putfield org.hsqldb.RangeVariableResolver.firstLateralJoinIndex:I
49: StackMap locals:
StackMap stack:
iconst_1
istore 3
50: StackMap locals:
StackMap stack:
iload 3
ifeq 54
51: aload 0
getfield org.hsqldb.RangeVariableResolver.firstOuterJoinIndex:I
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
if_icmpne 53
52: aload 0
iload 1
putfield org.hsqldb.RangeVariableResolver.firstOuterJoinIndex:I
53: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield org.hsqldb.RangeVariableResolver.lastOuterJoinIndex:I
end local 3 end local 2 54: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
55: iload 1
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
if_icmplt 35
end local 1 56: aload 0
invokevirtual org.hsqldb.RangeVariableResolver.expandConditions:()V
57: aload 0
aconst_null
putfield org.hsqldb.RangeVariableResolver.conditions:Lorg/hsqldb/Expression;
58: aload 0
invokevirtual org.hsqldb.RangeVariableResolver.reorder:()V
59: aload 0
invokevirtual org.hsqldb.RangeVariableResolver.assignToLists:()V
60: aload 0
invokevirtual org.hsqldb.RangeVariableResolver.assignToRangeVariables:()V
61: aload 0
getfield org.hsqldb.RangeVariableResolver.select:Lorg/hsqldb/QuerySpecification;
ifnull 68
62: aload 0
getfield org.hsqldb.RangeVariableResolver.select:Lorg/hsqldb/QuerySpecification;
iconst_0
putfield org.hsqldb.QuerySpecification.startInnerRange:I
63: aload 0
getfield org.hsqldb.RangeVariableResolver.select:Lorg/hsqldb/QuerySpecification;
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
putfield org.hsqldb.QuerySpecification.endInnerRange:I
64: aload 0
getfield org.hsqldb.RangeVariableResolver.firstRightJoinIndex:I
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
if_icmpge 66
65: aload 0
getfield org.hsqldb.RangeVariableResolver.select:Lorg/hsqldb/QuerySpecification;
aload 0
getfield org.hsqldb.RangeVariableResolver.firstRightJoinIndex:I
putfield org.hsqldb.QuerySpecification.startInnerRange:I
66: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.firstLeftJoinIndex:I
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
if_icmpge 68
67: aload 0
getfield org.hsqldb.RangeVariableResolver.select:Lorg/hsqldb/QuerySpecification;
aload 0
getfield org.hsqldb.RangeVariableResolver.firstLeftJoinIndex:I
putfield org.hsqldb.QuerySpecification.endInnerRange:I
68: StackMap locals:
StackMap stack:
iconst_0
istore 1
start local 1 69: goto 72
70: StackMap locals: int
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 1
aaload
iload 1
putfield org.hsqldb.RangeVariable.rangePositionInJoin:I
71: iinc 1 1
StackMap locals:
StackMap stack:
72: iload 1
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
if_icmplt 70
end local 1 73: aload 0
getfield org.hsqldb.RangeVariableResolver.expandInExpression:Z
ifeq 75
aload 0
getfield org.hsqldb.RangeVariableResolver.inExpressionCount:I
ifeq 75
74: aload 0
invokevirtual org.hsqldb.RangeVariableResolver.setInConditionsAsTables:()V
75: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 76 0 this Lorg/hsqldb/RangeVariableResolver;
4 13 1 i I
14 33 1 j I
16 31 2 e Lorg/hsqldb/Expression;
20 31 3 range Lorg/hsqldb/RangeVariable;
23 25 4 index I
29 31 4 index I
34 56 1 i I
36 54 2 range Lorg/hsqldb/RangeVariable;
37 54 3 isOuter Z
69 73 1 i I
static org.hsqldb.Expression decomposeAndConditions(org.hsqldb.Session, org.hsqldb.Expression, org.hsqldb.lib.HsqlList);
descriptor: (Lorg/hsqldb/Session;Lorg/hsqldb/Expression;Lorg/hsqldb/lib/HsqlList;)Lorg/hsqldb/Expression;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: getstatic org.hsqldb.Expression.EXPR_TRUE:Lorg/hsqldb/Expression;
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
astore 3
start local 3 3: aload 1
invokevirtual org.hsqldb.Expression.getRightNode:()Lorg/hsqldb/Expression;
astore 4
start local 4 4: aload 1
invokevirtual org.hsqldb.Expression.getType:()I
istore 5
start local 5 5: iload 5
bipush 49
if_icmpne 15
6: aload 0
aload 3
aload 2
invokestatic org.hsqldb.RangeVariableResolver.decomposeAndConditions:(Lorg/hsqldb/Session;Lorg/hsqldb/Expression;Lorg/hsqldb/lib/HsqlList;)Lorg/hsqldb/Expression;
astore 3
7: aload 0
aload 4
aload 2
invokestatic org.hsqldb.RangeVariableResolver.decomposeAndConditions:(Lorg/hsqldb/Session;Lorg/hsqldb/Expression;Lorg/hsqldb/lib/HsqlList;)Lorg/hsqldb/Expression;
astore 4
8: aload 3
invokevirtual org.hsqldb.Expression.isTrue:()Z
ifeq 10
9: aload 4
areturn
10: StackMap locals: org.hsqldb.Expression org.hsqldb.Expression int
StackMap stack:
aload 4
invokevirtual org.hsqldb.Expression.isTrue:()Z
ifeq 12
11: aload 3
areturn
12: StackMap locals:
StackMap stack:
aload 1
aload 3
invokevirtual org.hsqldb.Expression.setLeftNode:(Lorg/hsqldb/Expression;)V
13: aload 1
aload 4
invokevirtual org.hsqldb.Expression.setRightNode:(Lorg/hsqldb/Expression;)V
14: aload 1
areturn
15: StackMap locals:
StackMap stack:
iload 5
bipush 40
if_icmpne 28
16: aload 3
invokevirtual org.hsqldb.Expression.getType:()I
bipush 25
if_icmpne 28
17: aload 4
invokevirtual org.hsqldb.Expression.getType:()I
bipush 25
if_icmpne 28
18: iconst_0
istore 6
start local 6 19: goto 26
20: StackMap locals: int
StackMap stack:
new org.hsqldb.ExpressionLogical
dup
aload 3
getfield org.hsqldb.Expression.nodes:[Lorg/hsqldb/Expression;
iload 6
aaload
21: aload 4
getfield org.hsqldb.Expression.nodes:[Lorg/hsqldb/Expression;
iload 6
aaload
22: invokespecial org.hsqldb.ExpressionLogical.<init>:(Lorg/hsqldb/Expression;Lorg/hsqldb/Expression;)V
astore 7
start local 7 23: aload 7
aload 0
aconst_null
invokevirtual org.hsqldb.Expression.resolveTypes:(Lorg/hsqldb/Session;Lorg/hsqldb/Expression;)V
24: aload 2
aload 7
invokeinterface org.hsqldb.lib.HsqlList.add:(Ljava/lang/Object;)Z
pop
end local 7 25: iinc 6 1
StackMap locals:
StackMap stack:
26: iload 6
aload 3
getfield org.hsqldb.Expression.nodes:[Lorg/hsqldb/Expression;
arraylength
if_icmplt 20
end local 6 27: getstatic org.hsqldb.Expression.EXPR_TRUE:Lorg/hsqldb/Expression;
areturn
28: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.hsqldb.Expression.isTrue:()Z
ifne 30
29: aload 2
aload 1
invokeinterface org.hsqldb.lib.HsqlList.add:(Ljava/lang/Object;)Z
pop
30: StackMap locals:
StackMap stack:
getstatic org.hsqldb.Expression.EXPR_TRUE:Lorg/hsqldb/Expression;
areturn
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 31 0 session Lorg/hsqldb/Session;
0 31 1 e Lorg/hsqldb/Expression;
0 31 2 conditions Lorg/hsqldb/lib/HsqlList;
3 31 3 arg1 Lorg/hsqldb/Expression;
4 31 4 arg2 Lorg/hsqldb/Expression;
5 31 5 type I
19 27 6 i I
23 25 7 part Lorg/hsqldb/Expression;
MethodParameters:
Name Flags
session
e
conditions
static org.hsqldb.Expression decomposeOrConditions(org.hsqldb.Expression, org.hsqldb.lib.HsqlList);
descriptor: (Lorg/hsqldb/Expression;Lorg/hsqldb/lib/HsqlList;)Lorg/hsqldb/Expression;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
ifnonnull 2
1: getstatic org.hsqldb.Expression.EXPR_FALSE:Lorg/hsqldb/Expression;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
astore 2
start local 2 3: aload 0
invokevirtual org.hsqldb.Expression.getRightNode:()Lorg/hsqldb/Expression;
astore 3
start local 3 4: aload 0
invokevirtual org.hsqldb.Expression.getType:()I
istore 4
start local 4 5: iload 4
bipush 50
if_icmpne 14
6: aload 2
aload 1
invokestatic org.hsqldb.RangeVariableResolver.decomposeOrConditions:(Lorg/hsqldb/Expression;Lorg/hsqldb/lib/HsqlList;)Lorg/hsqldb/Expression;
astore 2
7: aload 3
aload 1
invokestatic org.hsqldb.RangeVariableResolver.decomposeOrConditions:(Lorg/hsqldb/Expression;Lorg/hsqldb/lib/HsqlList;)Lorg/hsqldb/Expression;
astore 3
8: aload 2
invokevirtual org.hsqldb.Expression.isFalse:()Z
ifeq 10
9: aload 3
areturn
10: StackMap locals: org.hsqldb.Expression org.hsqldb.Expression int
StackMap stack:
aload 3
invokevirtual org.hsqldb.Expression.isFalse:()Z
ifeq 12
11: aload 2
areturn
12: StackMap locals:
StackMap stack:
new org.hsqldb.ExpressionLogical
dup
bipush 50
aload 2
aload 3
invokespecial org.hsqldb.ExpressionLogical.<init>:(ILorg/hsqldb/Expression;Lorg/hsqldb/Expression;)V
astore 0
13: aload 0
areturn
14: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.hsqldb.Expression.isFalse:()Z
ifne 16
15: aload 1
aload 0
invokeinterface org.hsqldb.lib.HsqlList.add:(Ljava/lang/Object;)Z
pop
16: StackMap locals:
StackMap stack:
getstatic org.hsqldb.Expression.EXPR_FALSE:Lorg/hsqldb/Expression;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 e Lorg/hsqldb/Expression;
0 17 1 conditions Lorg/hsqldb/lib/HsqlList;
3 17 2 arg1 Lorg/hsqldb/Expression;
4 17 3 arg2 Lorg/hsqldb/Expression;
5 17 4 type I
MethodParameters:
Name Flags
e
conditions
void expandConditions();
descriptor: ()V
flags: (0x0000)
Code:
stack=6, locals=14, args_size=1
start local 0 0: aload 0
getfield org.hsqldb.RangeVariableResolver.tempJoinExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
astore 1
start local 1 1: aload 0
getfield org.hsqldb.RangeVariableResolver.firstRightJoinIndex:I
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
if_icmpne 5
2: aload 0
aload 0
getfield org.hsqldb.RangeVariableResolver.tempJoinExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
iconst_0
aload 0
getfield org.hsqldb.RangeVariableResolver.firstOuterJoinIndex:I
3: aload 0
getfield org.hsqldb.RangeVariableResolver.queryConditions:Lorg/hsqldb/lib/HsqlArrayList;
iconst_m1
4: invokevirtual org.hsqldb.RangeVariableResolver.moveConditions:([Lorg/hsqldb/lib/HsqlList;IILorg/hsqldb/lib/HsqlList;I)V
5: StackMap locals: org.hsqldb.lib.HsqlArrayList[]
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.firstOuterJoinIndex:I
iconst_2
if_icmpge 7
6: return
7: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 8: goto 13
9: StackMap locals: int
StackMap stack:
aload 0
aload 0
getfield org.hsqldb.RangeVariableResolver.tempJoinExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
iconst_0
aload 0
getfield org.hsqldb.RangeVariableResolver.firstOuterJoinIndex:I
10: aload 0
getfield org.hsqldb.RangeVariableResolver.tempJoinExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
iload 2
aaload
iload 2
11: invokevirtual org.hsqldb.RangeVariableResolver.moveConditions:([Lorg/hsqldb/lib/HsqlList;IILorg/hsqldb/lib/HsqlList;I)V
12: iinc 2 1
StackMap locals:
StackMap stack:
13: iload 2
aload 0
getfield org.hsqldb.RangeVariableResolver.firstOuterJoinIndex:I
if_icmplt 9
end local 2 14: aload 0
getfield org.hsqldb.RangeVariableResolver.firstOuterJoinIndex:I
iconst_3
if_icmpge 16
15: return
16: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 17: goto 121
18: StackMap locals: int
StackMap stack:
aload 1
iload 2
aaload
astore 3
start local 3 19: aload 0
getfield org.hsqldb.RangeVariableResolver.tempMultiMap:Lorg/hsqldb/lib/MultiValueHashMap;
invokevirtual org.hsqldb.lib.MultiValueHashMap.clear:()V
20: aload 0
getfield org.hsqldb.RangeVariableResolver.tempSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.clear:()V
21: aload 0
getfield org.hsqldb.RangeVariableResolver.tempMap:Lorg/hsqldb/lib/HashMap;
invokevirtual org.hsqldb.lib.HashMap.clear:()V
22: iconst_0
istore 4
start local 4 23: iconst_0
istore 5
start local 5 24: iconst_0
istore 6
start local 6 25: iconst_0
istore 7
start local 7 26: goto 84
27: StackMap locals: org.hsqldb.RangeVariableResolver org.hsqldb.lib.HsqlArrayList[] int org.hsqldb.lib.HsqlArrayList int int int int
StackMap stack:
aload 3
iload 7
invokevirtual org.hsqldb.lib.HsqlArrayList.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.Expression
astore 8
start local 8 28: aload 8
invokevirtual org.hsqldb.Expression.isTrue:()Z
ifeq 30
29: goto 83
30: StackMap locals: org.hsqldb.Expression
StackMap stack:
aload 8
getfield org.hsqldb.Expression.isSingleColumnEqual:Z
ifeq 42
31: iconst_1
istore 4
32: aload 8
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
getfield org.hsqldb.Expression.opType:I
iconst_2
if_icmpne 37
33: aload 0
getfield org.hsqldb.RangeVariableResolver.tempMap:Lorg/hsqldb/lib/HashMap;
aload 8
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getColumn:()Lorg/hsqldb/ColumnSchema;
34: aload 8
invokevirtual org.hsqldb.Expression.getRightNode:()Lorg/hsqldb/Expression;
35: invokevirtual org.hsqldb.lib.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
36: goto 83
StackMap locals:
StackMap stack:
37: aload 8
invokevirtual org.hsqldb.Expression.getRightNode:()Lorg/hsqldb/Expression;
getfield org.hsqldb.Expression.opType:I
iconst_2
if_icmpne 83
38: aload 0
getfield org.hsqldb.RangeVariableResolver.tempMap:Lorg/hsqldb/lib/HashMap;
aload 8
invokevirtual org.hsqldb.Expression.getRightNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getColumn:()Lorg/hsqldb/ColumnSchema;
39: aload 8
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
40: invokevirtual org.hsqldb.lib.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
41: goto 83
42: StackMap locals:
StackMap stack:
aload 8
getfield org.hsqldb.Expression.isColumnEqual:Z
ifne 44
43: goto 83
44: StackMap locals:
StackMap stack:
aload 8
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getRangeVariable:()Lorg/hsqldb/RangeVariable;
45: aload 8
invokevirtual org.hsqldb.Expression.getRightNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getRangeVariable:()Lorg/hsqldb/RangeVariable;
46: if_acmpne 48
47: goto 83
48: StackMap locals:
StackMap stack:
aload 8
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getRangeVariable:()Lorg/hsqldb/RangeVariable;
ifnull 83
49: aload 8
invokevirtual org.hsqldb.Expression.getRightNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getRangeVariable:()Lorg/hsqldb/RangeVariable;
ifnonnull 51
50: goto 83
51: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVarSet:Lorg/hsqldb/lib/OrderedHashSet;
aload 8
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getRangeVariable:()Lorg/hsqldb/RangeVariable;
invokevirtual org.hsqldb.lib.OrderedHashSet.getIndex:(Ljava/lang/Object;)I
52: istore 9
start local 9 53: iload 9
ifge 58
54: aload 8
iconst_1
putfield org.hsqldb.Expression.isSingleColumnEqual:Z
55: aload 8
iconst_1
putfield org.hsqldb.Expression.isSingleColumnCondition:Z
56: aload 0
getfield org.hsqldb.RangeVariableResolver.tempMap:Lorg/hsqldb/lib/HashMap;
aload 8
invokevirtual org.hsqldb.Expression.getRightNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getColumn:()Lorg/hsqldb/ColumnSchema;
aload 8
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.lib.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
57: goto 83
58: StackMap locals: int
StackMap stack:
iload 9
aload 0
getfield org.hsqldb.RangeVariableResolver.firstOuterJoinIndex:I
if_icmplt 60
59: goto 83
60: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVarSet:Lorg/hsqldb/lib/OrderedHashSet;
61: aload 8
invokevirtual org.hsqldb.Expression.getRightNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getRangeVariable:()Lorg/hsqldb/RangeVariable;
62: invokevirtual org.hsqldb.lib.OrderedHashSet.getIndex:(Ljava/lang/Object;)I
istore 9
63: iload 9
ifge 68
64: aload 8
iconst_1
putfield org.hsqldb.Expression.isSingleColumnEqual:Z
65: aload 8
iconst_1
putfield org.hsqldb.Expression.isSingleColumnCondition:Z
66: aload 0
getfield org.hsqldb.RangeVariableResolver.tempMap:Lorg/hsqldb/lib/HashMap;
aload 8
invokevirtual org.hsqldb.Expression.getRightNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getColumn:()Lorg/hsqldb/ColumnSchema;
aload 8
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.lib.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
67: goto 83
68: StackMap locals:
StackMap stack:
iload 9
aload 0
getfield org.hsqldb.RangeVariableResolver.firstOuterJoinIndex:I
if_icmplt 70
69: goto 83
70: StackMap locals:
StackMap stack:
iconst_1
istore 5
71: aload 8
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getRangeVariable:()Lorg/hsqldb/RangeVariable;
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 2
aaload
if_acmpne 77
72: aload 8
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getColumn:()Lorg/hsqldb/ColumnSchema;
astore 10
start local 10 73: aload 0
getfield org.hsqldb.RangeVariableResolver.tempMultiMap:Lorg/hsqldb/lib/MultiValueHashMap;
aload 10
aload 8
invokevirtual org.hsqldb.Expression.getRightNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.lib.MultiValueHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
74: aload 0
getfield org.hsqldb.RangeVariableResolver.tempMultiMap:Lorg/hsqldb/lib/MultiValueHashMap;
aload 10
invokevirtual org.hsqldb.lib.MultiValueHashMap.valueCount:(Ljava/lang/Object;)I
iconst_1
if_icmple 83
75: iconst_1
istore 6
end local 10 76: goto 83
StackMap locals:
StackMap stack:
77: aload 8
invokevirtual org.hsqldb.Expression.getRightNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getRangeVariable:()Lorg/hsqldb/RangeVariable;
78: aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 2
aaload
if_acmpne 83
79: aload 8
invokevirtual org.hsqldb.Expression.getRightNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getColumn:()Lorg/hsqldb/ColumnSchema;
astore 10
start local 10 80: aload 0
getfield org.hsqldb.RangeVariableResolver.tempMultiMap:Lorg/hsqldb/lib/MultiValueHashMap;
aload 10
aload 8
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.lib.MultiValueHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
81: aload 0
getfield org.hsqldb.RangeVariableResolver.tempMultiMap:Lorg/hsqldb/lib/MultiValueHashMap;
aload 10
invokevirtual org.hsqldb.lib.MultiValueHashMap.valueCount:(Ljava/lang/Object;)I
iconst_1
if_icmple 83
82: iconst_1
istore 6
end local 10 end local 9 end local 8 83: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
84: iload 7
aload 3
invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
if_icmplt 27
end local 7 85: iload 6
ifeq 105
86: aload 0
getfield org.hsqldb.RangeVariableResolver.tempMultiMap:Lorg/hsqldb/lib/MultiValueHashMap;
invokevirtual org.hsqldb.lib.MultiValueHashMap.keySet:()Lorg/hsqldb/lib/Set;
invokeinterface org.hsqldb.lib.Set.iterator:()Lorg/hsqldb/lib/Iterator;
astore 7
start local 7 87: goto 104
88: StackMap locals: org.hsqldb.RangeVariableResolver org.hsqldb.lib.HsqlArrayList[] int org.hsqldb.lib.HsqlArrayList int int int org.hsqldb.lib.Iterator
StackMap stack:
aload 7
invokeinterface org.hsqldb.lib.Iterator.next:()Ljava/lang/Object;
astore 8
start local 8 89: aload 0
getfield org.hsqldb.RangeVariableResolver.tempMultiMap:Lorg/hsqldb/lib/MultiValueHashMap;
aload 8
invokevirtual org.hsqldb.lib.MultiValueHashMap.get:(Ljava/lang/Object;)Lorg/hsqldb/lib/Iterator;
astore 9
start local 9 90: aload 0
getfield org.hsqldb.RangeVariableResolver.tempSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.clear:()V
91: goto 93
92: StackMap locals: java.lang.Object org.hsqldb.lib.Iterator
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.tempSet:Lorg/hsqldb/lib/OrderedHashSet;
aload 9
invokeinterface org.hsqldb.lib.Iterator.next:()Ljava/lang/Object;
invokevirtual org.hsqldb.lib.OrderedHashSet.add:(Ljava/lang/Object;)Z
pop
93: StackMap locals:
StackMap stack:
aload 9
invokeinterface org.hsqldb.lib.Iterator.hasNext:()Z
ifne 92
94: goto 103
95: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.tempSet:Lorg/hsqldb/lib/OrderedHashSet;
aload 0
getfield org.hsqldb.RangeVariableResolver.tempSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.size:()I
iconst_1
isub
invokevirtual org.hsqldb.lib.OrderedHashSet.remove:(I)Ljava/lang/Object;
checkcast org.hsqldb.Expression
96: astore 10
start local 10 97: iconst_0
istore 11
start local 11 98: goto 102
99: StackMap locals: org.hsqldb.Expression int
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.tempSet:Lorg/hsqldb/lib/OrderedHashSet;
iload 11
invokevirtual org.hsqldb.lib.OrderedHashSet.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.Expression
astore 12
start local 12 100: aload 0
aload 1
aload 10
aload 12
invokevirtual org.hsqldb.RangeVariableResolver.closeJoinChain:([Lorg/hsqldb/lib/HsqlList;Lorg/hsqldb/Expression;Lorg/hsqldb/Expression;)V
end local 12 101: iinc 11 1
StackMap locals:
StackMap stack:
102: iload 11
aload 0
getfield org.hsqldb.RangeVariableResolver.tempSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.size:()I
if_icmplt 99
end local 11 end local 10 103: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.tempSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.size:()I
iconst_1
if_icmpgt 95
end local 9 end local 8 104: StackMap locals:
StackMap stack:
aload 7
invokeinterface org.hsqldb.lib.Iterator.hasNext:()Z
ifne 88
end local 7 105: StackMap locals:
StackMap stack:
iload 5
ifeq 120
iload 4
ifeq 120
106: aload 0
getfield org.hsqldb.RangeVariableResolver.tempMultiMap:Lorg/hsqldb/lib/MultiValueHashMap;
invokevirtual org.hsqldb.lib.MultiValueHashMap.keySet:()Lorg/hsqldb/lib/Set;
invokeinterface org.hsqldb.lib.Set.iterator:()Lorg/hsqldb/lib/Iterator;
astore 7
start local 7 107: goto 119
108: StackMap locals: org.hsqldb.lib.Iterator
StackMap stack:
aload 7
invokeinterface org.hsqldb.lib.Iterator.next:()Ljava/lang/Object;
astore 8
start local 8 109: aload 0
getfield org.hsqldb.RangeVariableResolver.tempMap:Lorg/hsqldb/lib/HashMap;
aload 8
invokevirtual org.hsqldb.lib.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.hsqldb.Expression
astore 9
start local 9 110: aload 9
ifnull 119
111: aload 0
getfield org.hsqldb.RangeVariableResolver.tempMultiMap:Lorg/hsqldb/lib/MultiValueHashMap;
aload 8
invokevirtual org.hsqldb.lib.MultiValueHashMap.get:(Ljava/lang/Object;)Lorg/hsqldb/lib/Iterator;
astore 10
start local 10 112: goto 118
113: StackMap locals: java.lang.Object org.hsqldb.Expression org.hsqldb.lib.Iterator
StackMap stack:
aload 10
invokeinterface org.hsqldb.lib.Iterator.next:()Ljava/lang/Object;
checkcast org.hsqldb.Expression
astore 11
start local 11 114: new org.hsqldb.ExpressionLogical
dup
aload 9
aload 11
invokespecial org.hsqldb.ExpressionLogical.<init>:(Lorg/hsqldb/Expression;Lorg/hsqldb/Expression;)V
astore 12
start local 12 115: aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVarSet:Lorg/hsqldb/lib/OrderedHashSet;
aload 11
invokevirtual org.hsqldb.Expression.getRangeVariable:()Lorg/hsqldb/RangeVariable;
invokevirtual org.hsqldb.lib.OrderedHashSet.getIndex:(Ljava/lang/Object;)I
116: istore 13
start local 13 117: aload 1
iload 13
aaload
aload 12
invokevirtual org.hsqldb.lib.HsqlArrayList.add:(Ljava/lang/Object;)Z
pop
end local 13 end local 12 end local 11 118: StackMap locals:
StackMap stack:
aload 10
invokeinterface org.hsqldb.lib.Iterator.hasNext:()Z
ifne 113
end local 10 end local 9 end local 8 119: StackMap locals:
StackMap stack:
aload 7
invokeinterface org.hsqldb.lib.Iterator.hasNext:()Z
ifne 108
end local 7 end local 6 end local 5 end local 4 end local 3 120: StackMap locals: org.hsqldb.RangeVariableResolver org.hsqldb.lib.HsqlArrayList[] int
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
121: iload 2
aload 0
getfield org.hsqldb.RangeVariableResolver.firstOuterJoinIndex:I
if_icmplt 18
end local 2 122: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 123 0 this Lorg/hsqldb/RangeVariableResolver;
1 123 1 array [Lorg/hsqldb/lib/HsqlArrayList;
8 14 2 i I
17 122 2 i I
19 120 3 list Lorg/hsqldb/lib/HsqlArrayList;
23 120 4 hasValEqual Z
24 120 5 hasColEqual Z
25 120 6 hasChain Z
26 85 7 j I
28 83 8 e Lorg/hsqldb/Expression;
53 83 9 idx I
73 76 10 column Lorg/hsqldb/ColumnSchema;
80 83 10 column Lorg/hsqldb/ColumnSchema;
87 105 7 keyIt Lorg/hsqldb/lib/Iterator;
89 104 8 key Ljava/lang/Object;
90 104 9 it Lorg/hsqldb/lib/Iterator;
97 103 10 e1 Lorg/hsqldb/Expression;
98 103 11 j I
100 101 12 e2 Lorg/hsqldb/Expression;
107 120 7 keyIt Lorg/hsqldb/lib/Iterator;
109 119 8 key Ljava/lang/Object;
110 119 9 e1 Lorg/hsqldb/Expression;
112 119 10 it Lorg/hsqldb/lib/Iterator;
114 118 11 e2 Lorg/hsqldb/Expression;
115 118 12 e Lorg/hsqldb/Expression;
117 118 13 index I
void moveConditions(org.hsqldb.lib.HsqlList[], int, int, org.hsqldb.lib.HsqlList, int);
descriptor: ([Lorg/hsqldb/lib/HsqlList;IILorg/hsqldb/lib/HsqlList;I)V
flags: (0x0000)
Code:
stack=3, locals=9, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iconst_0
istore 6
start local 6 1: goto 16
2: StackMap locals: int
StackMap stack:
aload 4
iload 6
invokeinterface org.hsqldb.lib.HsqlList.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.Expression
astore 7
start local 7 3: aload 0
getfield org.hsqldb.RangeVariableResolver.tempSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.clear:()V
4: aload 7
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
aload 0
getfield org.hsqldb.RangeVariableResolver.tempSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.Expression.collectRangeVariables:([Lorg/hsqldb/RangeVariable;Lorg/hsqldb/lib/OrderedHashSet;)Lorg/hsqldb/lib/OrderedHashSet;
pop
5: aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVarSet:Lorg/hsqldb/lib/OrderedHashSet;
aload 0
getfield org.hsqldb.RangeVariableResolver.tempSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.getSmallestIndex:(Lorg/hsqldb/lib/OrderedHashSet;)I
istore 8
start local 8 6: iload 8
iload 2
if_icmpge 8
7: goto 15
8: StackMap locals: org.hsqldb.Expression int
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVarSet:Lorg/hsqldb/lib/OrderedHashSet;
aload 0
getfield org.hsqldb.RangeVariableResolver.tempSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.getLargestIndex:(Lorg/hsqldb/lib/OrderedHashSet;)I
istore 8
9: iload 8
iload 3
if_icmplt 11
10: goto 15
11: StackMap locals:
StackMap stack:
iload 8
iload 5
if_icmpeq 15
12: aload 4
iload 6
invokeinterface org.hsqldb.lib.HsqlList.remove:(I)Ljava/lang/Object;
pop
13: aload 1
iload 8
aaload
aload 7
invokeinterface org.hsqldb.lib.HsqlList.add:(Ljava/lang/Object;)Z
pop
14: iinc 6 -1
end local 8 end local 7 15: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
16: iload 6
aload 4
invokeinterface org.hsqldb.lib.HsqlList.size:()I
if_icmplt 2
end local 6 17: 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 18 0 this Lorg/hsqldb/RangeVariableResolver;
0 18 1 lists [Lorg/hsqldb/lib/HsqlList;
0 18 2 rangeStart I
0 18 3 rangeLimit I
0 18 4 list Lorg/hsqldb/lib/HsqlList;
0 18 5 listIndex I
1 17 6 j I
3 15 7 e Lorg/hsqldb/Expression;
6 15 8 index I
MethodParameters:
Name Flags
lists
rangeStart
rangeLimit
list
listIndex
void closeJoinChain(org.hsqldb.lib.HsqlList[], org.hsqldb.Expression, org.hsqldb.Expression);
descriptor: ([Lorg/hsqldb/lib/HsqlList;Lorg/hsqldb/Expression;Lorg/hsqldb/Expression;)V
flags: (0x0000)
Code:
stack=4, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVarSet:Lorg/hsqldb/lib/OrderedHashSet;
aload 2
invokevirtual org.hsqldb.Expression.getRangeVariable:()Lorg/hsqldb/RangeVariable;
invokevirtual org.hsqldb.lib.OrderedHashSet.getIndex:(Ljava/lang/Object;)I
istore 4
start local 4 1: aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVarSet:Lorg/hsqldb/lib/OrderedHashSet;
aload 3
invokevirtual org.hsqldb.Expression.getRangeVariable:()Lorg/hsqldb/RangeVariable;
invokevirtual org.hsqldb.lib.OrderedHashSet.getIndex:(Ljava/lang/Object;)I
istore 5
start local 5 2: iload 4
iload 5
if_icmple 3
iload 4
goto 4
3: StackMap locals: int int
StackMap stack:
iload 5
4: StackMap locals:
StackMap stack: int
istore 6
start local 6 5: iload 4
iconst_m1
if_icmpeq 6
iload 5
iconst_m1
if_icmpne 7
6: StackMap locals: int
StackMap stack:
return
7: StackMap locals:
StackMap stack:
new org.hsqldb.ExpressionLogical
dup
aload 2
aload 3
invokespecial org.hsqldb.ExpressionLogical.<init>:(Lorg/hsqldb/Expression;Lorg/hsqldb/Expression;)V
astore 7
start local 7 8: iconst_0
istore 8
start local 8 9: goto 13
10: StackMap locals: org.hsqldb.Expression int
StackMap stack:
aload 7
aload 1
iload 6
aaload
iload 8
invokeinterface org.hsqldb.lib.HsqlList.get:(I)Ljava/lang/Object;
invokevirtual org.hsqldb.Expression.equals:(Ljava/lang/Object;)Z
ifeq 12
11: return
12: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
13: iload 8
aload 1
iload 6
aaload
invokeinterface org.hsqldb.lib.HsqlList.size:()I
if_icmplt 10
end local 8 14: aload 1
iload 6
aaload
aload 7
invokeinterface org.hsqldb.lib.HsqlList.add:(Ljava/lang/Object;)Z
pop
15: return
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 16 0 this Lorg/hsqldb/RangeVariableResolver;
0 16 1 array [Lorg/hsqldb/lib/HsqlList;
0 16 2 e1 Lorg/hsqldb/Expression;
0 16 3 e2 Lorg/hsqldb/Expression;
1 16 4 idx1 I
2 16 5 idx2 I
5 16 6 index I
8 16 7 e Lorg/hsqldb/Expression;
9 14 8 i I
MethodParameters:
Name Flags
array
e1
e2
void reorder();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=7, args_size=1
start local 0 0: aload 0
getfield org.hsqldb.RangeVariableResolver.reorder:Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
iconst_1
if_icmpeq 4
3: aload 0
getfield org.hsqldb.RangeVariableResolver.firstRightJoinIndex:I
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
if_icmpeq 5
4: StackMap locals:
StackMap stack:
return
5: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.firstLeftJoinIndex:I
iconst_1
if_icmpne 7
6: return
7: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.firstLateralJoinIndex:I
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
if_icmpeq 9
8: return
9: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.sortAndSlice:Lorg/hsqldb/SortAndSlice;
getfield org.hsqldb.SortAndSlice.usingIndex:Z
ifeq 12
10: aload 0
getfield org.hsqldb.RangeVariableResolver.sortAndSlice:Lorg/hsqldb/SortAndSlice;
getfield org.hsqldb.SortAndSlice.primaryTableIndex:Lorg/hsqldb/index/Index;
ifnull 12
11: return
12: StackMap locals:
StackMap stack:
new org.hsqldb.lib.HsqlArrayList
dup
invokespecial org.hsqldb.lib.HsqlArrayList.<init>:()V
astore 1
start local 1 13: new org.hsqldb.lib.HsqlArrayList
dup
invokespecial org.hsqldb.lib.HsqlArrayList.<init>:()V
astore 2
start local 2 14: iconst_0
istore 3
start local 3 15: goto 28
16: StackMap locals: org.hsqldb.lib.HsqlArrayList org.hsqldb.lib.HsqlArrayList int
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.tempJoinExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
iload 3
aaload
astore 4
start local 4 17: iconst_0
istore 5
start local 5 18: goto 26
19: StackMap locals: org.hsqldb.lib.HsqlArrayList int
StackMap stack:
aload 4
iload 5
invokevirtual org.hsqldb.lib.HsqlArrayList.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.Expression
astore 6
start local 6 20: aload 6
getfield org.hsqldb.Expression.isColumnEqual:Z
ifeq 23
21: aload 1
aload 6
invokevirtual org.hsqldb.lib.HsqlArrayList.add:(Ljava/lang/Object;)Z
pop
22: goto 25
StackMap locals: org.hsqldb.Expression
StackMap stack:
23: aload 6
getfield org.hsqldb.Expression.isSingleColumnCondition:Z
ifeq 25
24: aload 2
aload 6
invokevirtual org.hsqldb.lib.HsqlArrayList.add:(Ljava/lang/Object;)Z
pop
end local 6 25: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
26: iload 5
aload 4
invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
if_icmplt 19
end local 5 end local 4 27: iinc 3 1
StackMap locals:
StackMap stack:
28: iload 3
aload 0
getfield org.hsqldb.RangeVariableResolver.firstLeftJoinIndex:I
if_icmplt 16
end local 3 29: aload 0
aload 2
aload 1
invokevirtual org.hsqldb.RangeVariableResolver.reorderRanges:(Lorg/hsqldb/lib/HsqlArrayList;Lorg/hsqldb/lib/HsqlArrayList;)V
30: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lorg/hsqldb/RangeVariableResolver;
13 31 1 joins Lorg/hsqldb/lib/HsqlArrayList;
14 31 2 starts Lorg/hsqldb/lib/HsqlArrayList;
15 29 3 i I
17 27 4 tempJoins Lorg/hsqldb/lib/HsqlArrayList;
18 27 5 j I
20 25 6 e Lorg/hsqldb/Expression;
void reorderRanges(org.hsqldb.lib.HsqlArrayList, org.hsqldb.lib.HsqlArrayList);
descriptor: (Lorg/hsqldb/lib/HsqlArrayList;Lorg/hsqldb/lib/HsqlArrayList;)V
flags: (0x0000)
Code:
stack=6, locals=14, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
ifne 2
1: return
2: StackMap locals:
StackMap stack:
iconst_m1
istore 3
start local 3 3: aconst_null
astore 4
start local 4 4: ldc 1024.0
dstore 5
start local 5 5: iconst_0
istore 7
start local 7 6: goto 44
7: StackMap locals: org.hsqldb.RangeVariableResolver org.hsqldb.lib.HsqlArrayList org.hsqldb.lib.HsqlArrayList int org.hsqldb.RangeVariable double int
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 7
aaload
getfield org.hsqldb.RangeVariable.rangeTable:Lorg/hsqldb/Table;
astore 8
start local 8 8: aload 8
instanceof org.hsqldb.TableDerived
ifeq 10
9: goto 43
10: StackMap locals: org.hsqldb.Table
StackMap stack:
aload 0
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 7
aaload
aload 1
invokevirtual org.hsqldb.RangeVariableResolver.collectIndexableColumns:(Lorg/hsqldb/RangeVariable;Lorg/hsqldb/lib/HsqlList;)V
11: aload 8
aload 0
getfield org.hsqldb.RangeVariableResolver.session:Lorg/hsqldb/Session;
12: aload 0
getfield org.hsqldb.RangeVariableResolver.colIndexSetEqual:Lorg/hsqldb/lib/OrderedIntHashSet;
bipush 40
iconst_0
13: invokevirtual org.hsqldb.Table.getIndexForColumns:(Lorg/hsqldb/Session;Lorg/hsqldb/lib/OrderedIntHashSet;IZ)[Lorg/hsqldb/index/Index$IndexUse;
astore 9
start local 9 14: aconst_null
astore 10
start local 10 15: iconst_0
istore 11
start local 11 16: goto 26
17: StackMap locals: org.hsqldb.index.Index$IndexUse[] org.hsqldb.index.Index int
StackMap stack:
aload 9
iload 11
aaload
getfield org.hsqldb.index.Index$IndexUse.index:Lorg/hsqldb/index/Index;
astore 10
18: aload 0
aload 0
getfield org.hsqldb.RangeVariableResolver.session:Lorg/hsqldb/Session;
aload 8
aload 10
19: aload 9
iload 11
aaload
getfield org.hsqldb.index.Index$IndexUse.columnCount:I
20: bipush 40
21: invokevirtual org.hsqldb.RangeVariableResolver.searchCost:(Lorg/hsqldb/Session;Lorg/hsqldb/Table;Lorg/hsqldb/index/Index;II)D
dstore 12
start local 12 22: dload 12
dload 5
dcmpg
ifge 25
23: dload 12
dstore 5
24: iload 7
istore 3
end local 12 25: StackMap locals:
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
26: iload 11
aload 9
arraylength
if_icmplt 17
end local 11 27: aload 10
ifnonnull 38
28: aload 0
getfield org.hsqldb.RangeVariableResolver.colIndexSetOther:Lorg/hsqldb/lib/IntKeyIntValueHashMap;
invokevirtual org.hsqldb.lib.IntKeyIntValueHashMap.keySet:()Lorg/hsqldb/lib/Set;
invokeinterface org.hsqldb.lib.Set.iterator:()Lorg/hsqldb/lib/Iterator;
astore 11
start local 11 29: goto 37
30: StackMap locals: org.hsqldb.RangeVariableResolver org.hsqldb.lib.HsqlArrayList org.hsqldb.lib.HsqlArrayList int org.hsqldb.RangeVariable double int org.hsqldb.Table org.hsqldb.index.Index$IndexUse[] org.hsqldb.index.Index org.hsqldb.lib.Iterator
StackMap stack:
aload 11
invokeinterface org.hsqldb.lib.Iterator.nextInt:()I
istore 12
start local 12 31: aload 8
aload 0
getfield org.hsqldb.RangeVariableResolver.session:Lorg/hsqldb/Session;
iload 12
invokevirtual org.hsqldb.Table.getIndexForColumn:(Lorg/hsqldb/Session;I)Lorg/hsqldb/index/Index;
astore 10
32: aload 10
ifnull 37
33: aload 8
aload 0
getfield org.hsqldb.RangeVariableResolver.session:Lorg/hsqldb/Session;
invokevirtual org.hsqldb.Table.getRowStore:(Lorg/hsqldb/Session;)Lorg/hsqldb/persist/PersistentStore;
invokeinterface org.hsqldb.persist.PersistentStore.elementCount:()J
l2d
ldc 2.0
ddiv
dstore 5
34: aload 0
getfield org.hsqldb.RangeVariableResolver.colIndexSetOther:Lorg/hsqldb/lib/IntKeyIntValueHashMap;
iload 12
iconst_0
invokevirtual org.hsqldb.lib.IntKeyIntValueHashMap.get:(II)I
iconst_1
if_icmple 38
35: dload 5
ldc 2.0
ddiv
dstore 5
36: goto 38
end local 12 37: StackMap locals:
StackMap stack:
aload 11
invokeinterface org.hsqldb.lib.Iterator.hasNext:()Z
ifne 30
end local 11 38: StackMap locals:
StackMap stack:
aload 10
ifnonnull 40
39: goto 43
40: StackMap locals:
StackMap stack:
iload 7
ifne 43
41: iconst_0
istore 3
42: goto 45
end local 10 end local 9 end local 8 43: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
44: iload 7
aload 0
getfield org.hsqldb.RangeVariableResolver.firstLeftJoinIndex:I
if_icmplt 7
end local 7 45: StackMap locals:
StackMap stack:
iload 3
ifge 47
46: return
47: StackMap locals:
StackMap stack:
iload 3
ifne 49
aload 0
getfield org.hsqldb.RangeVariableResolver.firstLeftJoinIndex:I
iconst_2
if_icmpne 49
48: return
49: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
anewarray org.hsqldb.RangeVariable
astore 7
start local 7 50: aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
aload 7
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
invokestatic org.hsqldb.lib.ArrayUtil.copyArray:(Ljava/lang/Object;Ljava/lang/Object;I)V
51: aload 7
iload 3
aaload
astore 4
52: aload 7
iload 3
aload 7
iconst_0
aaload
aastore
53: aload 7
iconst_0
aload 4
aastore
54: iconst_1
istore 3
55: goto 91
56: StackMap locals: org.hsqldb.RangeVariable[]
StackMap stack:
iconst_0
istore 8
start local 8 57: iconst_0
istore 9
start local 9 58: goto 73
59: StackMap locals: int int
StackMap stack:
aload 2
iload 9
invokevirtual org.hsqldb.lib.HsqlArrayList.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.Expression
astore 10
start local 10 60: aload 10
ifnonnull 62
61: goto 72
62: StackMap locals: org.hsqldb.Expression
StackMap stack:
aload 0
aload 10
iload 3
63: aload 7
64: invokevirtual org.hsqldb.RangeVariableResolver.getJoinedRangePosition:(Lorg/hsqldb/Expression;I[Lorg/hsqldb/RangeVariable;)I
istore 11
start local 11 65: iload 11
iload 3
if_icmplt 72
66: aload 7
iload 3
aaload
astore 4
67: aload 7
iload 3
aload 7
iload 11
aaload
aastore
68: aload 7
iload 11
aload 4
aastore
69: aload 2
iload 9
aconst_null
invokevirtual org.hsqldb.lib.HsqlArrayList.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
70: iconst_1
istore 8
71: goto 74
end local 11 end local 10 72: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
73: iload 9
aload 2
invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
if_icmplt 59
end local 9 74: StackMap locals:
StackMap stack:
iload 8
ifeq 76
75: goto 90
76: StackMap locals:
StackMap stack:
iconst_0
istore 9
start local 9 77: goto 87
78: StackMap locals: int
StackMap stack:
aload 7
iload 9
aaload
getfield org.hsqldb.RangeVariable.rangeTable:Lorg/hsqldb/Table;
astore 10
start local 10 79: aload 0
aload 7
iload 9
aaload
aload 1
invokevirtual org.hsqldb.RangeVariableResolver.collectIndexableColumns:(Lorg/hsqldb/RangeVariable;Lorg/hsqldb/lib/HsqlList;)V
80: aload 10
aload 0
getfield org.hsqldb.RangeVariableResolver.session:Lorg/hsqldb/Session;
81: aload 0
getfield org.hsqldb.RangeVariableResolver.colIndexSetEqual:Lorg/hsqldb/lib/OrderedIntHashSet;
bipush 40
iconst_0
82: invokevirtual org.hsqldb.Table.getIndexForColumns:(Lorg/hsqldb/Session;Lorg/hsqldb/lib/OrderedIntHashSet;IZ)[Lorg/hsqldb/index/Index$IndexUse;
astore 11
start local 11 83: aload 11
arraylength
ifle 86
84: iconst_1
istore 8
85: goto 88
end local 11 end local 10 86: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
87: iload 9
aload 1
invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
if_icmplt 78
end local 9 88: StackMap locals:
StackMap stack:
iload 8
ifne 90
89: goto 92
end local 8 90: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
91: iload 3
aload 0
getfield org.hsqldb.RangeVariableResolver.firstLeftJoinIndex:I
if_icmplt 56
92: StackMap locals:
StackMap stack:
iload 3
aload 0
getfield org.hsqldb.RangeVariableResolver.firstLeftJoinIndex:I
if_icmpeq 94
93: return
94: StackMap locals:
StackMap stack:
aload 7
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
invokestatic org.hsqldb.lib.ArrayUtil.copyArray:(Ljava/lang/Object;Ljava/lang/Object;I)V
95: aload 2
invokevirtual org.hsqldb.lib.HsqlArrayList.clear:()V
96: iconst_0
istore 8
start local 8 97: goto 102
98: StackMap locals: int
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.tempJoinExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
iload 8
aaload
astore 9
start local 9 99: aload 2
aload 9
invokevirtual org.hsqldb.lib.HsqlArrayList.addAll:(Lorg/hsqldb/lib/Collection;)Z
pop
100: aload 9
invokevirtual org.hsqldb.lib.HsqlArrayList.clear:()V
end local 9 101: iinc 8 1
StackMap locals:
StackMap stack:
102: iload 8
aload 0
getfield org.hsqldb.RangeVariableResolver.firstLeftJoinIndex:I
if_icmplt 98
end local 8 103: aload 0
getfield org.hsqldb.RangeVariableResolver.tempJoinExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
aload 0
getfield org.hsqldb.RangeVariableResolver.firstLeftJoinIndex:I
iconst_1
isub
aaload
aload 2
invokevirtual org.hsqldb.lib.HsqlArrayList.addAll:(Lorg/hsqldb/lib/Collection;)Z
pop
104: aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVarSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.clear:()V
105: iconst_0
istore 8
start local 8 106: goto 109
107: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVarSet:Lorg/hsqldb/lib/OrderedHashSet;
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 8
aaload
invokevirtual org.hsqldb.lib.OrderedHashSet.add:(Ljava/lang/Object;)Z
pop
108: iinc 8 1
StackMap locals:
StackMap stack:
109: iload 8
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
if_icmplt 107
end local 8 110: return
end local 7 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 111 0 this Lorg/hsqldb/RangeVariableResolver;
0 111 1 starts Lorg/hsqldb/lib/HsqlArrayList;
0 111 2 joins Lorg/hsqldb/lib/HsqlArrayList;
3 111 3 position I
4 111 4 range Lorg/hsqldb/RangeVariable;
5 111 5 cost D
6 45 7 i I
8 43 8 table Lorg/hsqldb/Table;
14 43 9 indexes [Lorg/hsqldb/index/Index$IndexUse;
15 43 10 index Lorg/hsqldb/index/Index;
16 27 11 j I
22 25 12 currentCost D
29 38 11 it Lorg/hsqldb/lib/Iterator;
31 37 12 colIndex I
50 111 7 newRanges [Lorg/hsqldb/RangeVariable;
57 90 8 found Z
58 74 9 i I
60 72 10 e Lorg/hsqldb/Expression;
65 72 11 newPosition I
77 88 9 i I
79 86 10 table Lorg/hsqldb/Table;
83 86 11 indexes [Lorg/hsqldb/index/Index$IndexUse;
97 103 8 i I
99 101 9 tempJoins Lorg/hsqldb/lib/HsqlArrayList;
106 110 8 i I
MethodParameters:
Name Flags
starts
joins
int getJoinedRangePosition(org.hsqldb.Expression, int, org.hsqldb.RangeVariable[]);
descriptor: (Lorg/hsqldb/Expression;I[Lorg/hsqldb/RangeVariable;)I
flags: (0x0000)
Code:
stack=3, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_m1
istore 4
start local 4 1: aload 0
getfield org.hsqldb.RangeVariableResolver.tempSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.clear:()V
2: aload 1
aload 3
aload 0
getfield org.hsqldb.RangeVariableResolver.tempSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.Expression.getJoinRangeVariables:([Lorg/hsqldb/RangeVariable;Lorg/hsqldb/lib/HsqlList;)V
3: iconst_0
istore 5
start local 5 4: goto 15
5: StackMap locals: int int
StackMap stack:
iconst_0
istore 6
start local 6 6: goto 13
7: StackMap locals: int
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.tempSet:Lorg/hsqldb/lib/OrderedHashSet;
iload 5
invokevirtual org.hsqldb.lib.OrderedHashSet.get:(I)Ljava/lang/Object;
aload 3
iload 6
aaload
if_acmpne 12
8: iload 6
iload 2
if_icmplt 12
9: iload 4
ifle 11
10: iconst_m1
ireturn
11: StackMap locals:
StackMap stack:
iload 6
istore 4
12: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
13: iload 6
aload 3
arraylength
if_icmplt 7
end local 6 14: iinc 5 1
StackMap locals:
StackMap stack:
15: iload 5
aload 0
getfield org.hsqldb.RangeVariableResolver.tempSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.size:()I
if_icmplt 5
end local 5 16: iload 4
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/hsqldb/RangeVariableResolver;
0 17 1 e Lorg/hsqldb/Expression;
0 17 2 position I
0 17 3 currentRanges [Lorg/hsqldb/RangeVariable;
1 17 4 found I
4 16 5 i I
6 14 6 j I
MethodParameters:
Name Flags
e
position
currentRanges
void assignToLists();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=6, args_size=1
start local 0 0: iconst_m1
istore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 18
3: StackMap locals: int int
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 2
aaload
getfield org.hsqldb.RangeVariable.isLeftJoin:Z
ifeq 5
4: iload 2
istore 1
5: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 2
aaload
getfield org.hsqldb.RangeVariable.isRightJoin:Z
ifeq 7
6: iload 2
istore 1
7: StackMap locals:
StackMap stack:
iload 1
iload 2
if_icmpne 10
8: aload 0
getfield org.hsqldb.RangeVariableResolver.joinExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
iload 2
aaload
aload 0
getfield org.hsqldb.RangeVariableResolver.tempJoinExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
iload 2
aaload
invokevirtual org.hsqldb.lib.HsqlArrayList.addAll:(Lorg/hsqldb/lib/Collection;)Z
pop
9: goto 17
10: StackMap locals:
StackMap stack:
iload 1
iconst_1
iadd
istore 3
start local 3 11: iconst_0
istore 4
start local 4 12: goto 16
13: StackMap locals: int int
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.tempJoinExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
iload 2
aaload
iload 4
invokevirtual org.hsqldb.lib.HsqlArrayList.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.Expression
astore 5
start local 5 14: aload 0
aload 5
aload 0
getfield org.hsqldb.RangeVariableResolver.joinExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
iload 3
invokevirtual org.hsqldb.RangeVariableResolver.assignToJoinLists:(Lorg/hsqldb/Expression;[Lorg/hsqldb/lib/HsqlList;I)V
end local 5 15: iinc 4 1
StackMap locals:
StackMap stack:
16: iload 4
aload 0
getfield org.hsqldb.RangeVariableResolver.tempJoinExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
iload 2
aaload
invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
if_icmplt 13
end local 4 end local 3 17: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
18: iload 2
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
if_icmplt 3
end local 2 19: iconst_0
istore 2
start local 2 20: goto 25
21: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.hsqldb.RangeVariableResolver.queryConditions:Lorg/hsqldb/lib/HsqlArrayList;
iload 2
invokevirtual org.hsqldb.lib.HsqlArrayList.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.Expression
22: aload 0
getfield org.hsqldb.RangeVariableResolver.whereExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
aload 0
getfield org.hsqldb.RangeVariableResolver.lastRightJoinIndex:I
23: invokevirtual org.hsqldb.RangeVariableResolver.assignToJoinLists:(Lorg/hsqldb/Expression;[Lorg/hsqldb/lib/HsqlList;I)V
24: iinc 2 1
StackMap locals:
StackMap stack:
25: iload 2
aload 0
getfield org.hsqldb.RangeVariableResolver.queryConditions:Lorg/hsqldb/lib/HsqlArrayList;
invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
if_icmplt 21
end local 2 26: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lorg/hsqldb/RangeVariableResolver;
1 27 1 lastOuterIndex I
2 19 2 i I
11 17 3 start I
12 17 4 j I
14 15 5 e Lorg/hsqldb/Expression;
20 26 2 i I
void assignToJoinLists(org.hsqldb.Expression, org.hsqldb.lib.HsqlList[], int);
descriptor: (Lorg/hsqldb/Expression;[Lorg/hsqldb/lib/HsqlList;I)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.tempSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.clear:()V
3: aload 1
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
aload 0
getfield org.hsqldb.RangeVariableResolver.tempSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.Expression.collectRangeVariables:([Lorg/hsqldb/RangeVariable;Lorg/hsqldb/lib/OrderedHashSet;)Lorg/hsqldb/lib/OrderedHashSet;
pop
4: aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVarSet:Lorg/hsqldb/lib/OrderedHashSet;
aload 0
getfield org.hsqldb.RangeVariableResolver.tempSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.getLargestIndex:(Lorg/hsqldb/lib/OrderedHashSet;)I
istore 4
start local 4 5: iload 4
iconst_m1
if_icmpne 7
6: iconst_0
istore 4
7: StackMap locals: int
StackMap stack:
iload 4
iload 3
if_icmpge 9
8: iload 3
istore 4
9: StackMap locals:
StackMap stack:
aload 1
instanceof org.hsqldb.ExpressionLogical
ifeq 12
10: aload 1
checkcast org.hsqldb.ExpressionLogical
getfield org.hsqldb.ExpressionLogical.isTerminal:Z
ifeq 12
11: aload 2
arraylength
iconst_1
isub
istore 4
12: StackMap locals:
StackMap stack:
aload 2
iload 4
aaload
aload 1
invokeinterface org.hsqldb.lib.HsqlList.add:(Ljava/lang/Object;)Z
pop
13: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/hsqldb/RangeVariableResolver;
0 14 1 e Lorg/hsqldb/Expression;
0 14 2 expressionLists [Lorg/hsqldb/lib/HsqlList;
0 14 3 first I
5 14 4 index I
MethodParameters:
Name Flags
e
expressionLists
first
void assignToRangeVariables();
descriptor: ()V
flags: (0x0000)
Code:
stack=6, locals=5, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 36
2: StackMap locals: int
StackMap stack:
iconst_0
istore 2
start local 2 3: iload 1
aload 0
getfield org.hsqldb.RangeVariableResolver.firstLeftJoinIndex:I
if_icmpge 12
4: aload 0
getfield org.hsqldb.RangeVariableResolver.firstRightJoinIndex:I
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
if_icmpne 12
5: aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 1
aaload
getfield org.hsqldb.RangeVariable.joinConditions:[Lorg/hsqldb/RangeVariable$RangeVariableConditions;
iconst_0
aaload
astore 3
start local 3 6: aload 0
getfield org.hsqldb.RangeVariableResolver.joinExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
iload 1
aaload
aload 0
getfield org.hsqldb.RangeVariableResolver.whereExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
iload 1
aaload
invokevirtual org.hsqldb.lib.HsqlArrayList.addAll:(Lorg/hsqldb/lib/Collection;)Z
pop
7: aload 0
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 1
aaload
aload 3
iload 1
8: aload 0
getfield org.hsqldb.RangeVariableResolver.joinExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
iload 1
aaload
9: invokevirtual org.hsqldb.RangeVariableResolver.assignToRangeVariable:(Lorg/hsqldb/RangeVariable;Lorg/hsqldb/RangeVariable$RangeVariableConditions;ILorg/hsqldb/lib/HsqlList;)V
10: aload 0
aload 3
aload 0
getfield org.hsqldb.RangeVariableResolver.joinExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
iload 1
aaload
invokevirtual org.hsqldb.RangeVariableResolver.assignToRangeVariable:(Lorg/hsqldb/RangeVariable$RangeVariableConditions;Lorg/hsqldb/lib/HsqlList;)V
11: goto 35
end local 3 12: StackMap locals: int
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 1
aaload
getfield org.hsqldb.RangeVariable.joinConditions:[Lorg/hsqldb/RangeVariable$RangeVariableConditions;
iconst_0
aaload
astore 3
start local 3 13: aload 0
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 1
aaload
aload 3
iload 1
14: aload 0
getfield org.hsqldb.RangeVariableResolver.joinExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
iload 1
aaload
15: invokevirtual org.hsqldb.RangeVariableResolver.assignToRangeVariable:(Lorg/hsqldb/RangeVariable;Lorg/hsqldb/RangeVariable$RangeVariableConditions;ILorg/hsqldb/lib/HsqlList;)V
16: aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 1
aaload
getfield org.hsqldb.RangeVariable.joinConditions:[Lorg/hsqldb/RangeVariable$RangeVariableConditions;
iconst_0
aaload
astore 3
17: aload 3
invokevirtual org.hsqldb.RangeVariable$RangeVariableConditions.hasIndex:()Z
ifeq 19
18: iconst_1
istore 2
19: StackMap locals: org.hsqldb.RangeVariable$RangeVariableConditions
StackMap stack:
aload 0
aload 3
aload 0
getfield org.hsqldb.RangeVariableResolver.joinExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
iload 1
aaload
invokevirtual org.hsqldb.RangeVariableResolver.assignToRangeVariable:(Lorg/hsqldb/RangeVariable$RangeVariableConditions;Lorg/hsqldb/lib/HsqlList;)V
20: aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 1
aaload
getfield org.hsqldb.RangeVariable.whereConditions:[Lorg/hsqldb/RangeVariable$RangeVariableConditions;
iconst_0
aaload
astore 3
21: iload 1
iconst_1
iadd
istore 4
start local 4 22: goto 29
23: StackMap locals: int
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 4
aaload
getfield org.hsqldb.RangeVariable.isRightJoin:Z
ifeq 28
24: aload 0
25: aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 4
aaload
getfield org.hsqldb.RangeVariable.whereConditions:[Lorg/hsqldb/RangeVariable$RangeVariableConditions;
iconst_0
aaload
26: aload 0
getfield org.hsqldb.RangeVariableResolver.whereExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
iload 1
aaload
27: invokevirtual org.hsqldb.RangeVariableResolver.assignToRangeVariable:(Lorg/hsqldb/RangeVariable$RangeVariableConditions;Lorg/hsqldb/lib/HsqlList;)V
28: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
29: iload 4
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
if_icmplt 23
end local 4 30: iload 2
ifne 34
31: aload 0
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 1
aaload
aload 3
iload 1
32: aload 0
getfield org.hsqldb.RangeVariableResolver.whereExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
iload 1
aaload
33: invokevirtual org.hsqldb.RangeVariableResolver.assignToRangeVariable:(Lorg/hsqldb/RangeVariable;Lorg/hsqldb/RangeVariable$RangeVariableConditions;ILorg/hsqldb/lib/HsqlList;)V
34: StackMap locals:
StackMap stack:
aload 0
aload 3
aload 0
getfield org.hsqldb.RangeVariableResolver.whereExpressions:[Lorg/hsqldb/lib/HsqlArrayList;
iload 1
aaload
invokevirtual org.hsqldb.RangeVariableResolver.assignToRangeVariable:(Lorg/hsqldb/RangeVariable$RangeVariableConditions;Lorg/hsqldb/lib/HsqlList;)V
end local 3 end local 2 35: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
36: iload 1
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
if_icmplt 2
end local 1 37: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Lorg/hsqldb/RangeVariableResolver;
1 37 1 i I
3 35 2 hasIndex Z
6 12 3 conditions Lorg/hsqldb/RangeVariable$RangeVariableConditions;
13 35 3 conditions Lorg/hsqldb/RangeVariable$RangeVariableConditions;
22 30 4 j I
void assignToRangeVariable(org.hsqldb.RangeVariable$RangeVariableConditions, org.hsqldb.lib.HsqlList);
descriptor: (Lorg/hsqldb/RangeVariable$RangeVariableConditions;Lorg/hsqldb/lib/HsqlList;)V
flags: (0x0000)
Code:
stack=2, locals=6, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: aload 2
invokeinterface org.hsqldb.lib.HsqlList.size:()I
istore 4
start local 4 2: goto 6
3: StackMap locals: int int
StackMap stack:
aload 2
iload 3
invokeinterface org.hsqldb.lib.HsqlList.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.Expression
astore 5
start local 5 4: aload 1
aload 5
invokevirtual org.hsqldb.RangeVariable$RangeVariableConditions.addCondition:(Lorg/hsqldb/Expression;)V
end local 5 5: iinc 3 1
StackMap locals:
StackMap stack:
6: iload 3
iload 4
if_icmplt 3
end local 4 end local 3 7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/hsqldb/RangeVariableResolver;
0 8 1 conditions Lorg/hsqldb/RangeVariable$RangeVariableConditions;
0 8 2 exprList Lorg/hsqldb/lib/HsqlList;
1 7 3 j I
2 7 4 size I
4 5 5 e Lorg/hsqldb/Expression;
MethodParameters:
Name Flags
conditions
exprList
private void collectIndexableColumns(org.hsqldb.RangeVariable, org.hsqldb.lib.HsqlList);
descriptor: (Lorg/hsqldb/RangeVariable;Lorg/hsqldb/lib/HsqlList;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.hsqldb.RangeVariableResolver.colIndexSetEqual:Lorg/hsqldb/lib/OrderedIntHashSet;
invokevirtual org.hsqldb.lib.OrderedIntHashSet.clear:()V
1: aload 0
getfield org.hsqldb.RangeVariableResolver.colIndexSetOther:Lorg/hsqldb/lib/IntKeyIntValueHashMap;
invokevirtual org.hsqldb.lib.IntKeyIntValueHashMap.clear:()V
2: iconst_0
istore 3
start local 3 3: aload 2
invokeinterface org.hsqldb.lib.HsqlList.size:()I
istore 4
start local 4 4: goto 20
5: StackMap locals: int int
StackMap stack:
aload 2
iload 3
invokeinterface org.hsqldb.lib.HsqlList.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.Expression
astore 5
start local 5 6: aload 5
getfield org.hsqldb.Expression.isSingleColumnCondition:Z
ifne 8
7: goto 19
8: StackMap locals: org.hsqldb.Expression
StackMap stack:
aload 5
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getRangeVariable:()Lorg/hsqldb/RangeVariable;
aload 1
if_acmpne 11
9: aload 5
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getColumnIndex:()I
istore 6
start local 6 10: goto 13
end local 6 StackMap locals:
StackMap stack:
11: aload 5
invokevirtual org.hsqldb.Expression.getRightNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getRangeVariable:()Lorg/hsqldb/RangeVariable;
aload 1
if_acmpne 19
12: aload 5
invokevirtual org.hsqldb.Expression.getRightNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getColumnIndex:()I
istore 6
start local 6 13: StackMap locals: int
StackMap stack:
aload 5
14: getfield org.hsqldb.Expression.isSingleColumnEqual:Z
ifeq 17
15: aload 0
getfield org.hsqldb.RangeVariableResolver.colIndexSetEqual:Lorg/hsqldb/lib/OrderedIntHashSet;
iload 6
invokevirtual org.hsqldb.lib.OrderedIntHashSet.add:(I)Z
pop
16: goto 19
17: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.colIndexSetOther:Lorg/hsqldb/lib/IntKeyIntValueHashMap;
iload 6
iconst_0
invokevirtual org.hsqldb.lib.IntKeyIntValueHashMap.get:(II)I
istore 7
start local 7 18: aload 0
getfield org.hsqldb.RangeVariableResolver.colIndexSetOther:Lorg/hsqldb/lib/IntKeyIntValueHashMap;
iload 6
iload 7
iconst_1
iadd
invokevirtual org.hsqldb.lib.IntKeyIntValueHashMap.put:(II)Z
pop
end local 7 end local 6 end local 5 19: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
20: iload 3
iload 4
if_icmplt 5
end local 4 end local 3 21: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lorg/hsqldb/RangeVariableResolver;
0 22 1 range Lorg/hsqldb/RangeVariable;
0 22 2 exprList Lorg/hsqldb/lib/HsqlList;
3 21 3 j I
4 21 4 size I
6 19 5 e Lorg/hsqldb/Expression;
10 11 6 idx I
13 19 6 idx I
18 19 7 count I
MethodParameters:
Name Flags
range
exprList
void assignToRangeVariable(org.hsqldb.RangeVariable, org.hsqldb.RangeVariable$RangeVariableConditions, int, org.hsqldb.lib.HsqlList);
descriptor: (Lorg/hsqldb/RangeVariable;Lorg/hsqldb/RangeVariable$RangeVariableConditions;ILorg/hsqldb/lib/HsqlList;)V
flags: (0x0000)
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 4
invokeinterface org.hsqldb.lib.HsqlList.isEmpty:()Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 4
iload 3
iconst_1
invokevirtual org.hsqldb.RangeVariableResolver.setIndexConditions:(Lorg/hsqldb/RangeVariable$RangeVariableConditions;Lorg/hsqldb/lib/HsqlList;IZ)V
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/hsqldb/RangeVariableResolver;
0 4 1 rangeVar Lorg/hsqldb/RangeVariable;
0 4 2 conditions Lorg/hsqldb/RangeVariable$RangeVariableConditions;
0 4 3 rangeVarIndex I
0 4 4 exprList Lorg/hsqldb/lib/HsqlList;
MethodParameters:
Name Flags
rangeVar
conditions
rangeVarIndex
exprList
private void setIndexConditions(org.hsqldb.RangeVariable$RangeVariableConditions, org.hsqldb.lib.HsqlList, int, boolean);
descriptor: (Lorg/hsqldb/RangeVariable$RangeVariableConditions;Lorg/hsqldb/lib/HsqlList;IZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=12, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield org.hsqldb.RangeVariableResolver.colIndexSetEqual:Lorg/hsqldb/lib/OrderedIntHashSet;
invokevirtual org.hsqldb.lib.OrderedIntHashSet.clear:()V
1: aload 0
getfield org.hsqldb.RangeVariableResolver.colIndexSetOther:Lorg/hsqldb/lib/IntKeyIntValueHashMap;
invokevirtual org.hsqldb.lib.IntKeyIntValueHashMap.clear:()V
2: iconst_0
istore 6
start local 6 3: aload 2
invokeinterface org.hsqldb.lib.HsqlList.size:()I
istore 7
start local 7 4: goto 56
5: StackMap locals: org.hsqldb.RangeVariableResolver org.hsqldb.RangeVariable$RangeVariableConditions org.hsqldb.lib.HsqlList int int top int int
StackMap stack:
aload 2
iload 6
invokeinterface org.hsqldb.lib.HsqlList.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.Expression
astore 8
start local 8 6: aload 8
ifnonnull 8
7: goto 55
8: StackMap locals: org.hsqldb.Expression
StackMap stack:
aload 8
aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeVar:Lorg/hsqldb/RangeVariable;
invokevirtual org.hsqldb.Expression.isIndexable:(Lorg/hsqldb/RangeVariable;)Z
ifne 10
9: goto 55
10: StackMap locals:
StackMap stack:
aload 8
invokevirtual org.hsqldb.Expression.getType:()I
istore 9
start local 9 11: iload 9
lookupswitch { // 10
2: 13
40: 14
41: 44
42: 44
43: 44
44: 44
45: 44
47: 24
48: 33
50: 12
default: 52
}
12: StackMap locals: int
StackMap stack:
goto 55
13: StackMap locals:
StackMap stack:
goto 55
14: StackMap locals:
StackMap stack:
aload 8
invokevirtual org.hsqldb.Expression.getSubType:()I
bipush 52
if_icmpeq 55
15: aload 8
invokevirtual org.hsqldb.Expression.getSubType:()I
bipush 51
if_icmpne 17
16: goto 55
17: StackMap locals:
StackMap stack:
aload 8
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getRangeVariable:()Lorg/hsqldb/RangeVariable;
18: aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeVar:Lorg/hsqldb/RangeVariable;
19: if_acmpeq 21
20: goto 55
21: StackMap locals:
StackMap stack:
aload 8
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getColumnIndex:()I
istore 10
start local 10 22: aload 0
getfield org.hsqldb.RangeVariableResolver.colIndexSetEqual:Lorg/hsqldb/lib/OrderedIntHashSet;
iload 10
invokevirtual org.hsqldb.lib.OrderedIntHashSet.add:(I)Z
pop
23: goto 55
end local 10 24: StackMap locals:
StackMap stack:
aload 8
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getRangeVariable:()Lorg/hsqldb/RangeVariable;
25: aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeVar:Lorg/hsqldb/RangeVariable;
26: if_acmpeq 28
27: goto 55
28: StackMap locals:
StackMap stack:
aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeVar:Lorg/hsqldb/RangeVariable;
getfield org.hsqldb.RangeVariable.isLeftJoin:Z
ifeq 30
29: goto 55
30: StackMap locals:
StackMap stack:
aload 8
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getColumnIndex:()I
istore 10
start local 10 31: aload 0
getfield org.hsqldb.RangeVariableResolver.colIndexSetEqual:Lorg/hsqldb/lib/OrderedIntHashSet;
iload 10
invokevirtual org.hsqldb.lib.OrderedIntHashSet.add:(I)Z
pop
32: goto 55
end local 10 33: StackMap locals:
StackMap stack:
aload 8
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getRangeVariable:()Lorg/hsqldb/RangeVariable;
34: aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeVar:Lorg/hsqldb/RangeVariable;
35: if_acmpeq 37
36: goto 55
37: StackMap locals:
StackMap stack:
aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeVar:Lorg/hsqldb/RangeVariable;
getfield org.hsqldb.RangeVariable.isLeftJoin:Z
ifeq 39
38: goto 55
39: StackMap locals:
StackMap stack:
aload 8
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getColumnIndex:()I
40: istore 10
start local 10 41: aload 0
getfield org.hsqldb.RangeVariableResolver.colIndexSetOther:Lorg/hsqldb/lib/IntKeyIntValueHashMap;
iload 10
iconst_0
invokevirtual org.hsqldb.lib.IntKeyIntValueHashMap.get:(II)I
istore 11
start local 11 42: aload 0
getfield org.hsqldb.RangeVariableResolver.colIndexSetOther:Lorg/hsqldb/lib/IntKeyIntValueHashMap;
iload 10
iload 11
iconst_1
iadd
invokevirtual org.hsqldb.lib.IntKeyIntValueHashMap.put:(II)Z
pop
43: goto 55
end local 11 end local 10 44: StackMap locals:
StackMap stack:
aload 8
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getRangeVariable:()Lorg/hsqldb/RangeVariable;
45: aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeVar:Lorg/hsqldb/RangeVariable;
46: if_acmpeq 48
47: goto 55
48: StackMap locals:
StackMap stack:
aload 8
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getColumnIndex:()I
istore 10
start local 10 49: aload 0
getfield org.hsqldb.RangeVariableResolver.colIndexSetOther:Lorg/hsqldb/lib/IntKeyIntValueHashMap;
iload 10
iconst_0
invokevirtual org.hsqldb.lib.IntKeyIntValueHashMap.get:(II)I
istore 11
start local 11 50: aload 0
getfield org.hsqldb.RangeVariableResolver.colIndexSetOther:Lorg/hsqldb/lib/IntKeyIntValueHashMap;
iload 10
iload 11
iconst_1
iadd
invokevirtual org.hsqldb.lib.IntKeyIntValueHashMap.put:(II)Z
pop
51: goto 55
end local 11 end local 10 52: StackMap locals:
StackMap stack:
sipush 201
53: ldc "RangeVariableResolver"
54: invokestatic org.hsqldb.error.Error.runtimeError:(ILjava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 9 end local 8 55: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
56: iload 6
iload 7
if_icmplt 5
end local 7 end local 6 57: aload 0
aload 1
aload 2
iload 3
invokevirtual org.hsqldb.RangeVariableResolver.setEqualityConditions:(Lorg/hsqldb/RangeVariable$RangeVariableConditions;Lorg/hsqldb/lib/HsqlList;I)V
58: aload 1
invokevirtual org.hsqldb.RangeVariable$RangeVariableConditions.hasIndex:()Z
istore 5
start local 5 59: iload 5
ifne 62
60: aload 0
aload 1
aload 2
iload 3
invokevirtual org.hsqldb.RangeVariableResolver.setNonEqualityConditions:(Lorg/hsqldb/RangeVariable$RangeVariableConditions;Lorg/hsqldb/lib/HsqlList;I)V
61: aload 1
invokevirtual org.hsqldb.RangeVariable$RangeVariableConditions.hasIndex:()Z
istore 5
62: StackMap locals: org.hsqldb.RangeVariableResolver org.hsqldb.RangeVariable$RangeVariableConditions org.hsqldb.lib.HsqlList int int int
StackMap stack:
iload 3
ifne 64
aload 0
getfield org.hsqldb.RangeVariableResolver.sortAndSlice:Lorg/hsqldb/SortAndSlice;
getfield org.hsqldb.SortAndSlice.usingIndex:Z
ifeq 64
63: iconst_1
istore 5
64: StackMap locals:
StackMap stack:
iconst_0
istore 6
start local 6 65: iload 5
ifne 105
iload 4
ifeq 105
66: iconst_0
istore 7
start local 7 67: aload 2
invokeinterface org.hsqldb.lib.HsqlList.size:()I
istore 8
start local 8 68: goto 104
69: StackMap locals: int int int
StackMap stack:
aload 2
iload 7
invokeinterface org.hsqldb.lib.HsqlList.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.Expression
astore 9
start local 9 70: aload 9
ifnonnull 72
71: goto 103
72: StackMap locals: org.hsqldb.Expression
StackMap stack:
aload 9
invokevirtual org.hsqldb.Expression.getType:()I
bipush 50
if_icmpne 81
73: aload 0
aload 1
74: aload 9
checkcast org.hsqldb.ExpressionLogical
75: iload 3
76: invokevirtual org.hsqldb.RangeVariableResolver.setOrConditions:(Lorg/hsqldb/RangeVariable$RangeVariableConditions;Lorg/hsqldb/ExpressionLogical;I)Z
istore 5
77: iload 5
ifeq 103
78: aload 2
iload 7
aconst_null
invokeinterface org.hsqldb.lib.HsqlList.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
79: iconst_1
istore 6
80: goto 105
81: StackMap locals:
StackMap stack:
aload 9
invokevirtual org.hsqldb.Expression.getType:()I
bipush 40
if_icmpne 103
82: aload 9
getfield org.hsqldb.Expression.exprSubType:I
bipush 52
if_icmpne 103
83: iload 3
aload 0
getfield org.hsqldb.RangeVariableResolver.firstLeftJoinIndex:I
if_icmpge 103
84: aload 0
getfield org.hsqldb.RangeVariableResolver.firstRightJoinIndex:I
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
if_icmpeq 86
85: goto 103
86: StackMap locals:
StackMap stack:
aload 9
invokevirtual org.hsqldb.Expression.getRightNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.isCorrelated:()Z
ifeq 88
87: goto 103
88: StackMap locals:
StackMap stack:
new org.hsqldb.lib.OrderedIntHashSet
dup
invokespecial org.hsqldb.lib.OrderedIntHashSet.<init>:()V
astore 10
start local 10 89: aload 9
checkcast org.hsqldb.ExpressionLogical
90: aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeVar:Lorg/hsqldb/RangeVariable;
aload 10
91: invokevirtual org.hsqldb.ExpressionLogical.addLeftColumnsForAllAny:(Lorg/hsqldb/RangeVariable;Lorg/hsqldb/lib/OrderedIntHashSet;)V
92: aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeVar:Lorg/hsqldb/RangeVariable;
getfield org.hsqldb.RangeVariable.rangeTable:Lorg/hsqldb/Table;
93: aload 0
getfield org.hsqldb.RangeVariableResolver.session:Lorg/hsqldb/Session;
aload 10
bipush 40
iconst_0
94: invokevirtual org.hsqldb.Table.getIndexForColumns:(Lorg/hsqldb/Session;Lorg/hsqldb/lib/OrderedIntHashSet;IZ)[Lorg/hsqldb/index/Index$IndexUse;
95: astore 11
start local 11 96: aload 11
arraylength
ifeq 103
97: aload 0
getfield org.hsqldb.RangeVariableResolver.inExpressions:[Lorg/hsqldb/Expression;
iload 3
aaload
ifnonnull 103
98: aload 0
getfield org.hsqldb.RangeVariableResolver.inExpressions:[Lorg/hsqldb/Expression;
iload 3
aload 9
aastore
99: aload 0
getfield org.hsqldb.RangeVariableResolver.inInJoin:[Z
iload 3
aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.isJoin:Z
bastore
100: aload 0
dup
getfield org.hsqldb.RangeVariableResolver.inExpressionCount:I
iconst_1
iadd
putfield org.hsqldb.RangeVariableResolver.inExpressionCount:I
101: aload 2
iload 7
aconst_null
invokeinterface org.hsqldb.lib.HsqlList.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
102: goto 105
end local 11 end local 10 end local 9 103: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
104: iload 7
iload 8
if_icmplt 69
end local 8 end local 7 105: StackMap locals:
StackMap stack:
iconst_0
istore 7
start local 7 106: aload 2
invokeinterface org.hsqldb.lib.HsqlList.size:()I
istore 8
start local 8 107: goto 131
108: StackMap locals: int int
StackMap stack:
aload 2
iload 7
invokeinterface org.hsqldb.lib.HsqlList.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.Expression
astore 9
start local 9 109: aload 9
ifnonnull 111
110: goto 130
111: StackMap locals: org.hsqldb.Expression
StackMap stack:
iload 6
ifeq 129
112: iconst_0
istore 10
start local 10 113: goto 127
114: StackMap locals: int
StackMap stack:
aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.isJoin:Z
ifeq 121
115: aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeVar:Lorg/hsqldb/RangeVariable;
getfield org.hsqldb.RangeVariable.joinConditions:[Lorg/hsqldb/RangeVariable$RangeVariableConditions;
iload 10
aaload
116: aload 9
aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeVar:Lorg/hsqldb/RangeVariable;
117: getfield org.hsqldb.RangeVariable.joinConditions:[Lorg/hsqldb/RangeVariable$RangeVariableConditions;
iload 10
aaload
getfield org.hsqldb.RangeVariable$RangeVariableConditions.nonIndexCondition:Lorg/hsqldb/Expression;
118: invokestatic org.hsqldb.ExpressionLogical.andExpressions:(Lorg/hsqldb/Expression;Lorg/hsqldb/Expression;)Lorg/hsqldb/Expression;
119: putfield org.hsqldb.RangeVariable$RangeVariableConditions.nonIndexCondition:Lorg/hsqldb/Expression;
120: goto 126
121: StackMap locals:
StackMap stack:
aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeVar:Lorg/hsqldb/RangeVariable;
getfield org.hsqldb.RangeVariable.whereConditions:[Lorg/hsqldb/RangeVariable$RangeVariableConditions;
iload 10
aaload
122: aload 9
aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeVar:Lorg/hsqldb/RangeVariable;
123: getfield org.hsqldb.RangeVariable.whereConditions:[Lorg/hsqldb/RangeVariable$RangeVariableConditions;
iload 10
aaload
getfield org.hsqldb.RangeVariable$RangeVariableConditions.nonIndexCondition:Lorg/hsqldb/Expression;
124: invokestatic org.hsqldb.ExpressionLogical.andExpressions:(Lorg/hsqldb/Expression;Lorg/hsqldb/Expression;)Lorg/hsqldb/Expression;
125: putfield org.hsqldb.RangeVariable$RangeVariableConditions.nonIndexCondition:Lorg/hsqldb/Expression;
126: StackMap locals:
StackMap stack:
iinc 10 1
127: StackMap locals:
StackMap stack:
iload 10
aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeVar:Lorg/hsqldb/RangeVariable;
getfield org.hsqldb.RangeVariable.joinConditions:[Lorg/hsqldb/RangeVariable$RangeVariableConditions;
arraylength
if_icmplt 114
end local 10 128: goto 130
129: StackMap locals:
StackMap stack:
aload 1
aload 9
invokevirtual org.hsqldb.RangeVariable$RangeVariableConditions.addCondition:(Lorg/hsqldb/Expression;)V
end local 9 130: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
131: iload 7
iload 8
if_icmplt 108
end local 8 end local 7 132: return
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 133 0 this Lorg/hsqldb/RangeVariableResolver;
0 133 1 conditions Lorg/hsqldb/RangeVariable$RangeVariableConditions;
0 133 2 exprList Lorg/hsqldb/lib/HsqlList;
0 133 3 rangeVarIndex I
0 133 4 includeOr Z
59 133 5 hasIndex Z
3 57 6 j I
4 57 7 size I
6 55 8 e Lorg/hsqldb/Expression;
11 55 9 type I
22 24 10 colIndex I
31 33 10 colIndex I
41 44 10 colIndex I
42 44 11 count I
49 52 10 colIndex I
50 52 11 count I
65 133 6 isOR Z
67 105 7 j I
68 105 8 size I
70 103 9 e Lorg/hsqldb/Expression;
89 103 10 set Lorg/hsqldb/lib/OrderedIntHashSet;
96 103 11 indexes [Lorg/hsqldb/index/Index$IndexUse;
106 132 7 i I
107 132 8 size I
109 130 9 e Lorg/hsqldb/Expression;
113 128 10 j I
MethodParameters:
Name Flags
conditions
exprList
rangeVarIndex
includeOr
private boolean setOrConditions(org.hsqldb.RangeVariable$RangeVariableConditions, org.hsqldb.ExpressionLogical, int);
descriptor: (Lorg/hsqldb/RangeVariable$RangeVariableConditions;Lorg/hsqldb/ExpressionLogical;I)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new org.hsqldb.lib.HsqlArrayList
dup
invokespecial org.hsqldb.lib.HsqlArrayList.<init>:()V
astore 4
start local 4 1: aload 2
aload 4
invokestatic org.hsqldb.RangeVariableResolver.decomposeOrConditions:(Lorg/hsqldb/Expression;Lorg/hsqldb/lib/HsqlList;)Lorg/hsqldb/Expression;
pop
2: aload 4
invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
anewarray org.hsqldb.RangeVariable$RangeVariableConditions
3: astore 5
start local 5 4: iconst_0
istore 6
start local 6 5: goto 16
6: StackMap locals: org.hsqldb.lib.HsqlArrayList org.hsqldb.RangeVariable$RangeVariableConditions[] int
StackMap stack:
new org.hsqldb.lib.HsqlArrayList
dup
invokespecial org.hsqldb.lib.HsqlArrayList.<init>:()V
astore 7
start local 7 7: aload 4
iload 6
invokevirtual org.hsqldb.lib.HsqlArrayList.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.Expression
astore 8
start local 8 8: aload 0
getfield org.hsqldb.RangeVariableResolver.session:Lorg/hsqldb/Session;
aload 8
aload 7
invokestatic org.hsqldb.RangeVariableResolver.decomposeAndConditions:(Lorg/hsqldb/Session;Lorg/hsqldb/Expression;Lorg/hsqldb/lib/HsqlList;)Lorg/hsqldb/Expression;
pop
9: new org.hsqldb.RangeVariable$RangeVariableConditions
dup
aload 1
invokespecial org.hsqldb.RangeVariable$RangeVariableConditions.<init>:(Lorg/hsqldb/RangeVariable$RangeVariableConditions;)V
10: astore 9
start local 9 11: aload 0
aload 9
aload 7
iload 3
iconst_0
invokevirtual org.hsqldb.RangeVariableResolver.setIndexConditions:(Lorg/hsqldb/RangeVariable$RangeVariableConditions;Lorg/hsqldb/lib/HsqlList;IZ)V
12: aload 5
iload 6
aload 9
aastore
13: aload 9
invokevirtual org.hsqldb.RangeVariable$RangeVariableConditions.hasIndex:()Z
ifne 15
14: iconst_0
ireturn
end local 9 end local 8 end local 7 15: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
16: iload 6
aload 4
invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
if_icmplt 6
end local 6 17: aconst_null
astore 6
start local 6 18: iconst_0
istore 7
start local 7 19: goto 35
20: StackMap locals: org.hsqldb.RangeVariableResolver org.hsqldb.RangeVariable$RangeVariableConditions org.hsqldb.ExpressionLogical int org.hsqldb.lib.HsqlArrayList org.hsqldb.RangeVariable$RangeVariableConditions[] org.hsqldb.Expression int
StackMap stack:
aload 5
iload 7
aaload
astore 8
start local 8 21: aload 5
iload 7
aaload
aload 6
putfield org.hsqldb.RangeVariable$RangeVariableConditions.excludeConditions:Lorg/hsqldb/Expression;
22: iload 7
aload 5
arraylength
iconst_1
isub
if_icmpne 24
23: goto 36
24: StackMap locals: org.hsqldb.RangeVariable$RangeVariableConditions
StackMap stack:
aconst_null
astore 9
start local 9 25: aload 8
getfield org.hsqldb.RangeVariable$RangeVariableConditions.indexCond:[Lorg/hsqldb/Expression;
ifnull 31
26: iconst_0
istore 10
start local 10 27: goto 30
28: StackMap locals: org.hsqldb.Expression int
StackMap stack:
aload 9
aload 8
getfield org.hsqldb.RangeVariable$RangeVariableConditions.indexCond:[Lorg/hsqldb/Expression;
iload 10
aaload
invokestatic org.hsqldb.ExpressionLogical.andExpressions:(Lorg/hsqldb/Expression;Lorg/hsqldb/Expression;)Lorg/hsqldb/Expression;
astore 9
29: iinc 10 1
StackMap locals:
StackMap stack:
30: iload 10
aload 8
getfield org.hsqldb.RangeVariable$RangeVariableConditions.indexedColumnCount:I
if_icmplt 28
end local 10 31: StackMap locals:
StackMap stack:
aload 9
aload 8
getfield org.hsqldb.RangeVariable$RangeVariableConditions.indexEndCondition:Lorg/hsqldb/Expression;
invokestatic org.hsqldb.ExpressionLogical.andExpressions:(Lorg/hsqldb/Expression;Lorg/hsqldb/Expression;)Lorg/hsqldb/Expression;
astore 9
32: aload 9
aload 8
getfield org.hsqldb.RangeVariable$RangeVariableConditions.nonIndexCondition:Lorg/hsqldb/Expression;
invokestatic org.hsqldb.ExpressionLogical.andExpressions:(Lorg/hsqldb/Expression;Lorg/hsqldb/Expression;)Lorg/hsqldb/Expression;
astore 9
33: aload 9
aload 6
invokestatic org.hsqldb.ExpressionLogical.orExpressions:(Lorg/hsqldb/Expression;Lorg/hsqldb/Expression;)Lorg/hsqldb/Expression;
astore 6
end local 9 end local 8 34: iinc 7 1
StackMap locals:
StackMap stack:
35: iload 7
aload 5
arraylength
if_icmplt 20
end local 7 36: StackMap locals:
StackMap stack:
aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.isJoin:Z
ifeq 44
37: aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeVar:Lorg/hsqldb/RangeVariable;
aload 5
putfield org.hsqldb.RangeVariable.joinConditions:[Lorg/hsqldb/RangeVariable$RangeVariableConditions;
38: aload 4
invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
anewarray org.hsqldb.RangeVariable$RangeVariableConditions
astore 5
39: aload 5
40: aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeVar:Lorg/hsqldb/RangeVariable;
getfield org.hsqldb.RangeVariable.whereConditions:[Lorg/hsqldb/RangeVariable$RangeVariableConditions;
iconst_0
aaload
41: invokestatic org.hsqldb.lib.ArrayUtil.fillArray:([Ljava/lang/Object;Ljava/lang/Object;)V
42: aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeVar:Lorg/hsqldb/RangeVariable;
aload 5
putfield org.hsqldb.RangeVariable.whereConditions:[Lorg/hsqldb/RangeVariable$RangeVariableConditions;
43: goto 50
44: StackMap locals:
StackMap stack:
aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeVar:Lorg/hsqldb/RangeVariable;
aload 5
putfield org.hsqldb.RangeVariable.whereConditions:[Lorg/hsqldb/RangeVariable$RangeVariableConditions;
45: aload 4
invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
anewarray org.hsqldb.RangeVariable$RangeVariableConditions
astore 5
46: aload 5
47: aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeVar:Lorg/hsqldb/RangeVariable;
getfield org.hsqldb.RangeVariable.joinConditions:[Lorg/hsqldb/RangeVariable$RangeVariableConditions;
iconst_0
aaload
48: invokestatic org.hsqldb.lib.ArrayUtil.fillArray:([Ljava/lang/Object;Ljava/lang/Object;)V
49: aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeVar:Lorg/hsqldb/RangeVariable;
aload 5
putfield org.hsqldb.RangeVariable.joinConditions:[Lorg/hsqldb/RangeVariable$RangeVariableConditions;
50: StackMap locals:
StackMap stack:
iconst_1
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 51 0 this Lorg/hsqldb/RangeVariableResolver;
0 51 1 conditions Lorg/hsqldb/RangeVariable$RangeVariableConditions;
0 51 2 orExpression Lorg/hsqldb/ExpressionLogical;
0 51 3 rangeVarIndex I
1 51 4 orExprList Lorg/hsqldb/lib/HsqlArrayList;
4 51 5 conditionsArray [Lorg/hsqldb/RangeVariable$RangeVariableConditions;
5 17 6 i I
7 15 7 exprList Lorg/hsqldb/lib/HsqlArrayList;
8 15 8 e Lorg/hsqldb/Expression;
11 15 9 c Lorg/hsqldb/RangeVariable$RangeVariableConditions;
18 51 6 exclude Lorg/hsqldb/Expression;
19 36 7 i I
21 34 8 c Lorg/hsqldb/RangeVariable$RangeVariableConditions;
25 34 9 e Lorg/hsqldb/Expression;
27 31 10 k I
MethodParameters:
Name Flags
conditions
orExpression
rangeVarIndex
private void setEqualityConditions(org.hsqldb.RangeVariable$RangeVariableConditions, org.hsqldb.lib.HsqlList, int);
descriptor: (Lorg/hsqldb/RangeVariable$RangeVariableConditions;Lorg/hsqldb/lib/HsqlList;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aconst_null
astore 4
start local 4 1: iload 3
ifne 5
aload 0
getfield org.hsqldb.RangeVariableResolver.sortAndSlice:Lorg/hsqldb/SortAndSlice;
getfield org.hsqldb.SortAndSlice.usingIndex:Z
ifeq 5
2: aload 0
getfield org.hsqldb.RangeVariableResolver.sortAndSlice:Lorg/hsqldb/SortAndSlice;
getfield org.hsqldb.SortAndSlice.primaryTableIndex:Lorg/hsqldb/index/Index;
astore 4
3: aload 4
ifnull 5
4: aload 1
aload 4
putfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeIndex:Lorg/hsqldb/index/Index;
5: StackMap locals: org.hsqldb.index.Index
StackMap stack:
aload 4
ifnonnull 29
6: aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeVar:Lorg/hsqldb/RangeVariable;
getfield org.hsqldb.RangeVariable.rangeTable:Lorg/hsqldb/Table;
aload 0
getfield org.hsqldb.RangeVariableResolver.session:Lorg/hsqldb/Session;
7: aload 0
getfield org.hsqldb.RangeVariableResolver.colIndexSetEqual:Lorg/hsqldb/lib/OrderedIntHashSet;
bipush 40
iconst_0
8: invokevirtual org.hsqldb.Table.getIndexForColumns:(Lorg/hsqldb/Session;Lorg/hsqldb/lib/OrderedIntHashSet;IZ)[Lorg/hsqldb/index/Index$IndexUse;
9: astore 5
start local 5 10: aload 5
arraylength
ifne 12
11: return
12: StackMap locals: org.hsqldb.index.Index$IndexUse[]
StackMap stack:
aload 5
iconst_0
aaload
getfield org.hsqldb.index.Index$IndexUse.index:Lorg/hsqldb/index/Index;
astore 4
13: ldc 1.7976931348623157E308
dstore 6
start local 6 14: aload 5
arraylength
iconst_1
if_icmple 29
15: iconst_0
istore 8
start local 8 16: goto 28
17: StackMap locals: double int
StackMap stack:
aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeVar:Lorg/hsqldb/RangeVariable;
getfield org.hsqldb.RangeVariable.rangeTable:Lorg/hsqldb/Table;
aload 0
getfield org.hsqldb.RangeVariableResolver.session:Lorg/hsqldb/Session;
invokevirtual org.hsqldb.Table.getRowStore:(Lorg/hsqldb/Session;)Lorg/hsqldb/persist/PersistentStore;
18: astore 9
start local 9 19: aload 9
aload 0
getfield org.hsqldb.RangeVariableResolver.session:Lorg/hsqldb/Session;
aload 5
iload 8
aaload
getfield org.hsqldb.index.Index$IndexUse.index:Lorg/hsqldb/index/Index;
20: aload 5
iload 8
aaload
getfield org.hsqldb.index.Index$IndexUse.columnCount:I
21: bipush 40
22: invokeinterface org.hsqldb.persist.PersistentStore.searchCost:(Lorg/hsqldb/Session;Lorg/hsqldb/index/Index;II)D
23: dstore 10
start local 10 24: dload 10
dload 6
dcmpg
ifge 27
25: dload 10
dstore 6
26: aload 5
iload 8
aaload
getfield org.hsqldb.index.Index$IndexUse.index:Lorg/hsqldb/index/Index;
astore 4
end local 10 end local 9 27: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
28: iload 8
aload 5
arraylength
if_icmplt 17
end local 8 end local 6 end local 5 29: StackMap locals:
StackMap stack:
aload 4
invokeinterface org.hsqldb.index.Index.getColumns:()[I
astore 5
start local 5 30: aload 5
arraylength
istore 6
start local 6 31: aload 5
arraylength
anewarray org.hsqldb.Expression
astore 7
start local 7 32: iconst_0
istore 8
start local 8 33: goto 52
34: StackMap locals: org.hsqldb.RangeVariableResolver org.hsqldb.RangeVariable$RangeVariableConditions org.hsqldb.lib.HsqlList int org.hsqldb.index.Index int[] int org.hsqldb.Expression[] int
StackMap stack:
aload 2
iload 8
invokeinterface org.hsqldb.lib.HsqlList.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.Expression
astore 9
start local 9 35: aload 9
ifnonnull 37
36: goto 51
37: StackMap locals: org.hsqldb.Expression
StackMap stack:
aload 9
invokevirtual org.hsqldb.Expression.getType:()I
istore 10
start local 10 38: iload 10
bipush 40
if_icmpeq 39
iload 10
bipush 47
if_icmpne 51
39: StackMap locals: int
StackMap stack:
aload 9
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getRangeVariable:()Lorg/hsqldb/RangeVariable;
40: aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeVar:Lorg/hsqldb/RangeVariable;
41: if_acmpeq 43
42: goto 51
43: StackMap locals:
StackMap stack:
aload 9
aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeVar:Lorg/hsqldb/RangeVariable;
invokevirtual org.hsqldb.Expression.isIndexable:(Lorg/hsqldb/RangeVariable;)Z
ifne 45
44: goto 51
45: StackMap locals:
StackMap stack:
aload 5
46: aload 9
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getColumnIndex:()I
47: invokestatic org.hsqldb.lib.ArrayUtil.find:([II)I
istore 11
start local 11 48: iload 11
iconst_m1
if_icmpeq 51
aload 7
iload 11
aaload
ifnonnull 51
49: aload 7
iload 11
aload 9
aastore
50: aload 2
iload 8
aconst_null
invokeinterface org.hsqldb.lib.HsqlList.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
end local 11 end local 10 end local 9 51: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
52: iload 8
aload 2
invokeinterface org.hsqldb.lib.HsqlList.size:()I
if_icmplt 34
end local 8 53: iconst_0
istore 8
start local 8 54: iconst_0
istore 9
start local 9 55: goto 66
56: StackMap locals: org.hsqldb.RangeVariableResolver org.hsqldb.RangeVariable$RangeVariableConditions org.hsqldb.lib.HsqlList int org.hsqldb.index.Index int[] int org.hsqldb.Expression[] int int
StackMap stack:
aload 7
iload 9
aaload
astore 10
start local 10 57: aload 10
ifnonnull 62
58: iload 6
aload 5
arraylength
if_icmpne 60
59: iload 9
istore 6
60: StackMap locals: org.hsqldb.Expression
StackMap stack:
iconst_1
istore 8
61: goto 65
62: StackMap locals:
StackMap stack:
iload 8
ifeq 65
63: aload 2
aload 10
invokeinterface org.hsqldb.lib.HsqlList.add:(Ljava/lang/Object;)Z
pop
64: aload 7
iload 9
aconst_null
aastore
end local 10 65: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
66: iload 9
aload 7
arraylength
if_icmplt 56
end local 9 67: iload 6
ifle 69
68: aload 1
aload 7
aload 4
iload 6
invokevirtual org.hsqldb.RangeVariable$RangeVariableConditions.addIndexCondition:([Lorg/hsqldb/Expression;Lorg/hsqldb/index/Index;I)V
69: StackMap locals:
StackMap stack:
return
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 70 0 this Lorg/hsqldb/RangeVariableResolver;
0 70 1 conditions Lorg/hsqldb/RangeVariable$RangeVariableConditions;
0 70 2 exprList Lorg/hsqldb/lib/HsqlList;
0 70 3 rangeVarIndex I
1 70 4 index Lorg/hsqldb/index/Index;
10 29 5 indexes [Lorg/hsqldb/index/Index$IndexUse;
14 29 6 cost D
16 29 8 i I
19 27 9 store Lorg/hsqldb/persist/PersistentStore;
24 27 10 currentCost D
30 70 5 cols [I
31 70 6 colCount I
32 70 7 firstRowExpressions [Lorg/hsqldb/Expression;
33 53 8 j I
35 51 9 e Lorg/hsqldb/Expression;
38 51 10 type I
48 51 11 offset I
54 70 8 hasNull Z
55 67 9 i I
57 65 10 e Lorg/hsqldb/Expression;
MethodParameters:
Name Flags
conditions
exprList
rangeVarIndex
private void setNonEqualityConditions(org.hsqldb.RangeVariable$RangeVariableConditions, org.hsqldb.lib.HsqlList, int);
descriptor: (Lorg/hsqldb/RangeVariable$RangeVariableConditions;Lorg/hsqldb/lib/HsqlList;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.hsqldb.RangeVariableResolver.colIndexSetOther:Lorg/hsqldb/lib/IntKeyIntValueHashMap;
invokevirtual org.hsqldb.lib.IntKeyIntValueHashMap.isEmpty:()Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 3: aconst_null
astore 5
start local 5 4: iload 3
ifne 6
aload 0
getfield org.hsqldb.RangeVariableResolver.sortAndSlice:Lorg/hsqldb/SortAndSlice;
getfield org.hsqldb.SortAndSlice.usingIndex:Z
ifeq 6
5: aload 0
getfield org.hsqldb.RangeVariableResolver.sortAndSlice:Lorg/hsqldb/SortAndSlice;
getfield org.hsqldb.SortAndSlice.primaryTableIndex:Lorg/hsqldb/index/Index;
astore 5
6: StackMap locals: int org.hsqldb.index.Index
StackMap stack:
aload 5
ifnonnull 20
7: aload 0
getfield org.hsqldb.RangeVariableResolver.colIndexSetOther:Lorg/hsqldb/lib/IntKeyIntValueHashMap;
invokevirtual org.hsqldb.lib.IntKeyIntValueHashMap.keySet:()Lorg/hsqldb/lib/Set;
invokeinterface org.hsqldb.lib.Set.iterator:()Lorg/hsqldb/lib/Iterator;
astore 6
start local 6 8: goto 19
9: StackMap locals: org.hsqldb.lib.Iterator
StackMap stack:
aload 6
invokeinterface org.hsqldb.lib.Iterator.nextInt:()I
istore 7
start local 7 10: aload 0
getfield org.hsqldb.RangeVariableResolver.colIndexSetOther:Lorg/hsqldb/lib/IntKeyIntValueHashMap;
iload 7
iconst_0
invokevirtual org.hsqldb.lib.IntKeyIntValueHashMap.get:(II)I
istore 8
start local 8 11: iload 8
iload 4
if_icmple 19
12: aload 1
getfield org.hsqldb.RangeVariable$RangeVariableConditions.rangeVar:Lorg/hsqldb/RangeVariable;
getfield org.hsqldb.RangeVariable.rangeTable:Lorg/hsqldb/Table;
13: aload 0
getfield org.hsqldb.RangeVariableResolver.session:Lorg/hsqldb/Session;
iload 7
14: invokevirtual org.hsqldb.Table.getIndexForColumn:(Lorg/hsqldb/Session;I)Lorg/hsqldb/index/Index;
15: astore 9
start local 9 16: aload 9
ifnull 19
17: aload 9
astore 5
18: iload 8
istore 4
end local 9 end local 8 end local 7 19: StackMap locals:
StackMap stack:
aload 6
invokeinterface org.hsqldb.lib.Iterator.hasNext:()Z
ifne 9
end local 6 20: StackMap locals:
StackMap stack:
aload 5
ifnonnull 22
21: return
22: StackMap locals:
StackMap stack:
aload 5
invokeinterface org.hsqldb.index.Index.getColumns:()[I
astore 7
start local 7 23: iconst_0
istore 8
start local 8 24: goto 49
25: StackMap locals: org.hsqldb.RangeVariableResolver org.hsqldb.RangeVariable$RangeVariableConditions org.hsqldb.lib.HsqlList int int org.hsqldb.index.Index top int[] int
StackMap stack:
aload 2
iload 8
invokeinterface org.hsqldb.lib.HsqlList.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.Expression
astore 9
start local 9 26: aload 9
ifnonnull 28
27: goto 48
28: StackMap locals: org.hsqldb.Expression
StackMap stack:
iconst_0
istore 10
start local 10 29: aload 9
invokevirtual org.hsqldb.Expression.getType:()I
tableswitch { // 41 - 48
41: 37
42: 37
43: 37
44: 37
45: 37
46: 41
47: 41
48: 30
default: 41
}
30: StackMap locals: int
StackMap stack:
aload 9
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getType:()I
bipush 47
if_icmpne 41
31: aload 7
iconst_0
iaload
32: aload 9
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
33: invokevirtual org.hsqldb.Expression.getColumnIndex:()I
34: if_icmpne 41
35: iconst_1
istore 10
36: goto 41
37: StackMap locals:
StackMap stack:
aload 7
iconst_0
iaload
aload 9
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getColumnIndex:()I
if_icmpne 41
38: aload 9
invokevirtual org.hsqldb.Expression.getRightNode:()Lorg/hsqldb/Expression;
ifnull 41
39: aload 9
invokevirtual org.hsqldb.Expression.getRightNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.isCorrelated:()Z
ifne 41
40: iconst_1
istore 10
41: StackMap locals:
StackMap stack:
iload 10
ifeq 48
42: aload 5
invokeinterface org.hsqldb.index.Index.getColumnCount:()I
anewarray org.hsqldb.Expression
43: astore 11
start local 11 44: aload 11
iconst_0
aload 9
aastore
45: aload 1
aload 11
aload 5
iconst_1
invokevirtual org.hsqldb.RangeVariable$RangeVariableConditions.addIndexCondition:([Lorg/hsqldb/Expression;Lorg/hsqldb/index/Index;I)V
46: aload 2
iload 8
aconst_null
invokeinterface org.hsqldb.lib.HsqlList.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
47: goto 50
end local 11 end local 10 end local 9 48: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
49: iload 8
aload 2
invokeinterface org.hsqldb.lib.HsqlList.size:()I
if_icmplt 25
end local 8 50: StackMap locals:
StackMap stack:
return
end local 7 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/hsqldb/RangeVariableResolver;
0 51 1 conditions Lorg/hsqldb/RangeVariable$RangeVariableConditions;
0 51 2 exprList Lorg/hsqldb/lib/HsqlList;
0 51 3 rangeVarIndex I
3 51 4 currentCount I
4 51 5 index Lorg/hsqldb/index/Index;
8 20 6 it Lorg/hsqldb/lib/Iterator;
10 19 7 colIndex I
11 19 8 colCount I
16 19 9 currentIndex Lorg/hsqldb/index/Index;
23 51 7 cols [I
24 50 8 j I
26 48 9 e Lorg/hsqldb/Expression;
29 48 10 isIndexed Z
44 48 11 firstRowExpressions [Lorg/hsqldb/Expression;
MethodParameters:
Name Flags
conditions
exprList
rangeVarIndex
void setInConditionsAsTables();
descriptor: ()V
flags: (0x0000)
Code:
stack=7, locals=17, args_size=1
start local 0 0: aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
iconst_1
isub
istore 1
start local 1 1: goto 66
2: StackMap locals: int
StackMap stack:
aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 1
aaload
astore 2
start local 2 3: aload 0
getfield org.hsqldb.RangeVariableResolver.inExpressions:[Lorg/hsqldb/Expression;
iload 1
aaload
checkcast org.hsqldb.ExpressionLogical
astore 3
start local 3 4: aload 3
ifnull 65
5: new org.hsqldb.lib.OrderedIntHashSet
dup
invokespecial org.hsqldb.lib.OrderedIntHashSet.<init>:()V
astore 4
start local 4 6: aload 3
aload 2
aload 4
invokevirtual org.hsqldb.ExpressionLogical.addLeftColumnsForAllAny:(Lorg/hsqldb/RangeVariable;Lorg/hsqldb/lib/OrderedIntHashSet;)V
7: aload 2
getfield org.hsqldb.RangeVariable.rangeTable:Lorg/hsqldb/Table;
aload 0
getfield org.hsqldb.RangeVariableResolver.session:Lorg/hsqldb/Session;
aload 4
8: bipush 40
iconst_0
9: invokevirtual org.hsqldb.Table.getIndexForColumns:(Lorg/hsqldb/Session;Lorg/hsqldb/lib/OrderedIntHashSet;IZ)[Lorg/hsqldb/index/Index$IndexUse;
10: astore 5
start local 5 11: aload 5
iconst_0
aaload
getfield org.hsqldb.index.Index$IndexUse.index:Lorg/hsqldb/index/Index;
astore 6
start local 6 12: iconst_0
istore 7
start local 7 13: iconst_0
istore 8
start local 8 14: goto 18
15: StackMap locals: org.hsqldb.RangeVariableResolver int org.hsqldb.RangeVariable org.hsqldb.ExpressionLogical org.hsqldb.lib.OrderedIntHashSet org.hsqldb.index.Index$IndexUse[] org.hsqldb.index.Index int int
StackMap stack:
aload 4
aload 6
invokeinterface org.hsqldb.index.Index.getColumns:()[I
iload 8
iaload
invokevirtual org.hsqldb.lib.OrderedIntHashSet.contains:(I)Z
ifeq 19
16: iinc 7 1
17: iinc 8 1
StackMap locals:
StackMap stack:
18: iload 8
aload 6
invokeinterface org.hsqldb.index.Index.getColumnCount:()I
if_icmplt 15
end local 8 19: StackMap locals:
StackMap stack:
new org.hsqldb.RangeVariable
dup
aload 3
invokevirtual org.hsqldb.ExpressionLogical.getRightNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getTable:()Lorg/hsqldb/Table;
aconst_null
20: aconst_null
aconst_null
aload 0
getfield org.hsqldb.RangeVariableResolver.compileContext:Lorg/hsqldb/ParserDQL$CompileContext;
21: invokespecial org.hsqldb.RangeVariable.<init>:(Lorg/hsqldb/Table;Lorg/hsqldb/HsqlNameManager$SimpleName;Lorg/hsqldb/lib/OrderedHashSet;[Lorg/hsqldb/HsqlNameManager$SimpleName;Lorg/hsqldb/ParserDQL$CompileContext;)V
22: astore 8
start local 8 23: aload 8
iconst_1
putfield org.hsqldb.RangeVariable.isGenerated:Z
24: aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
arraylength
iconst_1
iadd
anewarray org.hsqldb.RangeVariable
25: astore 9
start local 9 26: aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
aload 9
27: aload 8
iload 1
iconst_1
28: invokestatic org.hsqldb.lib.ArrayUtil.copyAdjustArray:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;II)V
29: aload 0
aload 9
putfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
30: aload 6
invokeinterface org.hsqldb.index.Index.getColumnCount:()I
anewarray org.hsqldb.Expression
31: astore 10
start local 10 32: iconst_0
istore 11
start local 11 33: goto 42
34: StackMap locals: org.hsqldb.RangeVariableResolver int org.hsqldb.RangeVariable org.hsqldb.ExpressionLogical org.hsqldb.lib.OrderedIntHashSet org.hsqldb.index.Index$IndexUse[] org.hsqldb.index.Index int org.hsqldb.RangeVariable org.hsqldb.RangeVariable[] org.hsqldb.Expression[] int
StackMap stack:
aload 6
invokeinterface org.hsqldb.index.Index.getColumns:()[I
iload 11
iaload
istore 12
start local 12 35: aload 4
iload 12
invokevirtual org.hsqldb.lib.OrderedIntHashSet.getIndex:(I)I
istore 13
start local 13 36: new org.hsqldb.ExpressionLogical
dup
aload 2
iload 12
37: aload 8
38: iload 13
39: invokespecial org.hsqldb.ExpressionLogical.<init>:(Lorg/hsqldb/RangeVariable;ILorg/hsqldb/RangeVariable;I)V
astore 14
start local 14 40: aload 10
iload 11
aload 14
aastore
end local 14 end local 13 end local 12 41: iinc 11 1
StackMap locals:
StackMap stack:
42: iload 11
iload 7
if_icmplt 34
end local 11 43: aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 1
aaload
getfield org.hsqldb.RangeVariable.isLeftJoin:Z
ifne 46
44: aload 0
getfield org.hsqldb.RangeVariableResolver.rangeVariables:[Lorg/hsqldb/RangeVariable;
iload 1
aaload
getfield org.hsqldb.RangeVariable.isRightJoin:Z
ifne 46
45: iconst_0
goto 47
StackMap locals:
StackMap stack:
46: iconst_1
StackMap locals:
StackMap stack: int
47: istore 11
start local 11 48: aload 0
getfield org.hsqldb.RangeVariableResolver.inInJoin:[Z
iload 1
baload
ifne 49
iload 11
ifeq 49
aload 2
getfield org.hsqldb.RangeVariable.whereConditions:[Lorg/hsqldb/RangeVariable$RangeVariableConditions;
iconst_0
aaload
goto 50
49: StackMap locals: int
StackMap stack:
aload 2
getfield org.hsqldb.RangeVariable.joinConditions:[Lorg/hsqldb/RangeVariable$RangeVariableConditions;
iconst_0
aaload
50: StackMap locals:
StackMap stack: org.hsqldb.RangeVariable$RangeVariableConditions
astore 12
start local 12 51: aload 12
aload 10
aload 6
52: iload 7
53: invokevirtual org.hsqldb.RangeVariable$RangeVariableConditions.addIndexCondition:([Lorg/hsqldb/Expression;Lorg/hsqldb/index/Index;I)V
54: iconst_0
istore 13
start local 13 55: goto 64
56: StackMap locals: org.hsqldb.RangeVariable$RangeVariableConditions int
StackMap stack:
aload 4
iload 13
invokevirtual org.hsqldb.lib.OrderedIntHashSet.get:(I)I
istore 14
start local 14 57: iload 13
istore 15
start local 15 58: new org.hsqldb.ExpressionLogical
dup
aload 2
iload 14
59: aload 8
60: iload 15
61: invokespecial org.hsqldb.ExpressionLogical.<init>:(Lorg/hsqldb/RangeVariable;ILorg/hsqldb/RangeVariable;I)V
astore 16
start local 16 62: aload 12
aload 16
invokevirtual org.hsqldb.RangeVariable$RangeVariableConditions.addCondition:(Lorg/hsqldb/Expression;)V
end local 16 end local 15 end local 14 63: iinc 13 1
StackMap locals:
StackMap stack:
64: iload 13
aload 4
invokevirtual org.hsqldb.lib.OrderedIntHashSet.size:()I
if_icmplt 56
end local 13 end local 12 end local 11 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 65: StackMap locals: org.hsqldb.RangeVariableResolver int
StackMap stack:
iinc 1 -1
StackMap locals:
StackMap stack:
66: iload 1
ifge 2
end local 1 67: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 68 0 this Lorg/hsqldb/RangeVariableResolver;
1 67 1 i I
3 65 2 rangeVar Lorg/hsqldb/RangeVariable;
4 65 3 in Lorg/hsqldb/ExpressionLogical;
6 65 4 set Lorg/hsqldb/lib/OrderedIntHashSet;
11 65 5 indexes [Lorg/hsqldb/index/Index$IndexUse;
12 65 6 index Lorg/hsqldb/index/Index;
13 65 7 indexedColCount I
14 19 8 j I
23 65 8 newRangeVar Lorg/hsqldb/RangeVariable;
26 65 9 newList [Lorg/hsqldb/RangeVariable;
32 65 10 firstRowExpressions [Lorg/hsqldb/Expression;
33 43 11 j I
35 41 12 leftIndex I
36 41 13 rightIndex I
40 41 14 e Lorg/hsqldb/Expression;
48 65 11 isOuter Z
51 65 12 conditions Lorg/hsqldb/RangeVariable$RangeVariableConditions;
55 65 13 j I
57 63 14 leftIndex I
58 63 15 rightIndex I
62 63 16 e Lorg/hsqldb/Expression;
private double searchCost(org.hsqldb.Session, org.hsqldb.Table, org.hsqldb.index.Index, int, int);
descriptor: (Lorg/hsqldb/Session;Lorg/hsqldb/Table;Lorg/hsqldb/index/Index;II)D
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 2
instanceof org.hsqldb.TableDerived
ifeq 2
1: ldc 1000.0
dreturn
2: StackMap locals:
StackMap stack:
aload 2
aload 1
invokevirtual org.hsqldb.Table.getRowStore:(Lorg/hsqldb/Session;)Lorg/hsqldb/persist/PersistentStore;
aload 1
aload 3
3: iload 4
iload 5
4: invokeinterface org.hsqldb.persist.PersistentStore.searchCost:(Lorg/hsqldb/Session;Lorg/hsqldb/index/Index;II)D
dreturn
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 5 0 this Lorg/hsqldb/RangeVariableResolver;
0 5 1 session Lorg/hsqldb/Session;
0 5 2 table Lorg/hsqldb/Table;
0 5 3 index Lorg/hsqldb/index/Index;
0 5 4 count I
0 5 5 opType I
MethodParameters:
Name Flags
session
table
index
count
opType
}
SourceFile: "RangeVariableResolver.java"
InnerClasses:
public SimpleName = org.hsqldb.HsqlNameManager$SimpleName of org.hsqldb.HsqlNameManager
public final CompileContext = org.hsqldb.ParserDQL$CompileContext of org.hsqldb.ParserDQL
public RangeVariableConditions = org.hsqldb.RangeVariable$RangeVariableConditions of org.hsqldb.RangeVariable
public IndexUse = org.hsqldb.index.Index$IndexUse of org.hsqldb.index.Index