public class org.h2.table.TableFilter implements org.h2.table.ColumnResolver
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.h2.table.TableFilter
super_class: java.lang.Object
{
private static final int BEFORE_FIRST;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int FOUND;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int AFTER_LAST;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int NULL_ROW;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
protected boolean joinOuterIndirect;
descriptor: Z
flags: (0x0004) ACC_PROTECTED
private org.h2.engine.Session session;
descriptor: Lorg/h2/engine/Session;
flags: (0x0002) ACC_PRIVATE
private final org.h2.table.Table table;
descriptor: Lorg/h2/table/Table;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.h2.command.dml.Select select;
descriptor: Lorg/h2/command/dml/Select;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.lang.String alias;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private org.h2.index.Index index;
descriptor: Lorg/h2/index/Index;
flags: (0x0002) ACC_PRIVATE
private final org.h2.table.IndexHints indexHints;
descriptor: Lorg/h2/table/IndexHints;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int[] masks;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private int scanCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean evaluatable;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private org.h2.table.JoinBatch joinBatch;
descriptor: Lorg/h2/table/JoinBatch;
flags: (0x0002) ACC_PRIVATE
private int joinFilterId;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean used;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final org.h2.index.IndexCursor cursor;
descriptor: Lorg/h2/index/IndexCursor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.ArrayList<org.h2.index.IndexCondition> indexConditions;
descriptor: Ljava/util/ArrayList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/ArrayList<Lorg/h2/index/IndexCondition;>;
private boolean doneWithIndexConditions;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private org.h2.expression.Expression filterCondition;
descriptor: Lorg/h2/expression/Expression;
flags: (0x0002) ACC_PRIVATE
private org.h2.expression.Expression joinCondition;
descriptor: Lorg/h2/expression/Expression;
flags: (0x0002) ACC_PRIVATE
private org.h2.result.SearchRow currentSearchRow;
descriptor: Lorg/h2/result/SearchRow;
flags: (0x0002) ACC_PRIVATE
private org.h2.result.Row current;
descriptor: Lorg/h2/result/Row;
flags: (0x0002) ACC_PRIVATE
private int state;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private org.h2.table.TableFilter join;
descriptor: Lorg/h2/table/TableFilter;
flags: (0x0002) ACC_PRIVATE
private boolean joinOuter;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private org.h2.table.TableFilter nestedJoin;
descriptor: Lorg/h2/table/TableFilter;
flags: (0x0002) ACC_PRIVATE
private java.util.ArrayList<org.h2.table.Column> naturalJoinColumns;
descriptor: Ljava/util/ArrayList;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/ArrayList<Lorg/h2/table/Column;>;
private boolean foundOne;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private org.h2.expression.Expression fullCondition;
descriptor: Lorg/h2/expression/Expression;
flags: (0x0002) ACC_PRIVATE
private final int hashCode;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int orderInFrom;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.util.LinkedHashMap<org.h2.table.Column, java.lang.String> derivedColumnMap;
descriptor: Ljava/util/LinkedHashMap;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/LinkedHashMap<Lorg/h2/table/Column;Ljava/lang/String;>;
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/h2/table/TableFilter;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic org.h2.table.TableFilter.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.h2.engine.Session, org.h2.table.Table, java.lang.String, boolean, org.h2.command.dml.Select, int, org.h2.table.IndexHints);
descriptor: (Lorg/h2/engine/Session;Lorg/h2/table/Table;Ljava/lang/String;ZLorg/h2/command/dml/Select;ILorg/h2/table/IndexHints;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=8, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_m1
putfield org.h2.table.TableFilter.joinFilterId:I
2: aload 0
invokestatic org.h2.util.Utils.newSmallArrayList:()Ljava/util/ArrayList;
putfield org.h2.table.TableFilter.indexConditions:Ljava/util/ArrayList;
3: aload 0
aload 1
putfield org.h2.table.TableFilter.session:Lorg/h2/engine/Session;
4: aload 0
aload 2
putfield org.h2.table.TableFilter.table:Lorg/h2/table/Table;
5: aload 0
aload 3
putfield org.h2.table.TableFilter.alias:Ljava/lang/String;
6: aload 0
aload 5
putfield org.h2.table.TableFilter.select:Lorg/h2/command/dml/Select;
7: aload 0
new org.h2.index.IndexCursor
dup
aload 0
invokespecial org.h2.index.IndexCursor.<init>:(Lorg/h2/table/TableFilter;)V
putfield org.h2.table.TableFilter.cursor:Lorg/h2/index/IndexCursor;
8: iload 4
ifne 10
9: aload 1
invokevirtual org.h2.engine.Session.getUser:()Lorg/h2/engine/User;
aload 2
iconst_1
invokevirtual org.h2.engine.User.checkRight:(Lorg/h2/table/Table;I)V
10: StackMap locals: org.h2.table.TableFilter org.h2.engine.Session org.h2.table.Table java.lang.String int org.h2.command.dml.Select int org.h2.table.IndexHints
StackMap stack:
aload 0
aload 1
invokevirtual org.h2.engine.Session.nextObjectId:()I
putfield org.h2.table.TableFilter.hashCode:I
11: aload 0
iload 6
putfield org.h2.table.TableFilter.orderInFrom:I
12: aload 0
aload 7
putfield org.h2.table.TableFilter.indexHints:Lorg/h2/table/IndexHints;
13: 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 14 0 this Lorg/h2/table/TableFilter;
0 14 1 session Lorg/h2/engine/Session;
0 14 2 table Lorg/h2/table/Table;
0 14 3 alias Ljava/lang/String;
0 14 4 rightsChecked Z
0 14 5 select Lorg/h2/command/dml/Select;
0 14 6 orderInFrom I
0 14 7 indexHints Lorg/h2/table/IndexHints;
MethodParameters:
Name Flags
session
table
alias
rightsChecked
select
orderInFrom
indexHints
public int getOrderInFrom();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.orderInFrom:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableFilter;
public org.h2.index.IndexCursor getIndexCursor();
descriptor: ()Lorg/h2/index/IndexCursor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.cursor:Lorg/h2/index/IndexCursor;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableFilter;
public org.h2.command.dml.Select getSelect();
descriptor: ()Lorg/h2/command/dml/Select;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.select:Lorg/h2/command/dml/Select;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableFilter;
public org.h2.table.Table getTable();
descriptor: ()Lorg/h2/table/Table;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.table:Lorg/h2/table/Table;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableFilter;
public void lock(org.h2.engine.Session, boolean, boolean);
descriptor: (Lorg/h2/engine/Session;ZZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.h2.table.TableFilter.table:Lorg/h2/table/Table;
aload 1
iload 2
iload 3
invokevirtual org.h2.table.Table.lock:(Lorg/h2/engine/Session;ZZ)Z
pop
1: aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
ifnull 3
2: aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
aload 1
iload 2
iload 3
invokevirtual org.h2.table.TableFilter.lock:(Lorg/h2/engine/Session;ZZ)V
3: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/table/TableFilter;
0 4 1 s Lorg/h2/engine/Session;
0 4 2 exclusive Z
0 4 3 forceLockEvenInMvcc Z
MethodParameters:
Name Flags
s
exclusive
forceLockEvenInMvcc
public org.h2.table.PlanItem getBestPlanItem(org.h2.engine.Session, org.h2.table.TableFilter[], int, org.h2.command.dml.AllColumnsForPlan);
descriptor: (Lorg/h2/engine/Session;[Lorg/h2/table/TableFilter;ILorg/h2/command/dml/AllColumnsForPlan;)Lorg/h2/table/PlanItem;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=12, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aconst_null
astore 5
start local 5 1: aconst_null
astore 6
start local 6 2: aload 0
getfield org.h2.table.TableFilter.select:Lorg/h2/command/dml/Select;
ifnull 4
3: aload 0
getfield org.h2.table.TableFilter.select:Lorg/h2/command/dml/Select;
invokevirtual org.h2.command.dml.Select.getSortOrder:()Lorg/h2/result/SortOrder;
astore 6
4: StackMap locals: org.h2.table.PlanItem org.h2.result.SortOrder
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.indexConditions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.isEmpty:()Z
ifeq 12
5: new org.h2.table.PlanItem
dup
invokespecial org.h2.table.PlanItem.<init>:()V
astore 5
6: aload 5
aload 0
getfield org.h2.table.TableFilter.table:Lorg/h2/table/Table;
aload 1
aconst_null
aload 2
iload 3
7: aload 6
aload 4
8: invokevirtual org.h2.table.Table.getScanIndex:(Lorg/h2/engine/Session;[I[Lorg/h2/table/TableFilter;ILorg/h2/result/SortOrder;Lorg/h2/command/dml/AllColumnsForPlan;)Lorg/h2/index/Index;
invokevirtual org.h2.table.PlanItem.setIndex:(Lorg/h2/index/Index;)V
9: aload 5
aload 5
invokevirtual org.h2.table.PlanItem.getIndex:()Lorg/h2/index/Index;
aload 1
aconst_null
aload 2
iload 3
10: aload 6
aload 4
11: invokeinterface org.h2.index.Index.getCost:(Lorg/h2/engine/Session;[I[Lorg/h2/table/TableFilter;ILorg/h2/result/SortOrder;Lorg/h2/command/dml/AllColumnsForPlan;)D
putfield org.h2.table.PlanItem.cost:D
12: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.table:Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.getColumns:()[Lorg/h2/table/Column;
arraylength
istore 7
start local 7 13: iload 7
newarray 10
astore 8
start local 8 14: aload 0
getfield org.h2.table.TableFilter.indexConditions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 10
goto 23
StackMap locals: org.h2.table.TableFilter org.h2.engine.Session org.h2.table.TableFilter[] int org.h2.command.dml.AllColumnsForPlan org.h2.table.PlanItem org.h2.result.SortOrder int int[] top java.util.Iterator
StackMap stack:
15: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.index.IndexCondition
astore 9
start local 9 16: aload 9
invokevirtual org.h2.index.IndexCondition.isEvaluatable:()Z
ifeq 23
17: aload 9
invokevirtual org.h2.index.IndexCondition.isAlwaysFalse:()Z
ifeq 20
18: aconst_null
astore 8
19: goto 24
20: StackMap locals: org.h2.table.TableFilter org.h2.engine.Session org.h2.table.TableFilter[] int org.h2.command.dml.AllColumnsForPlan org.h2.table.PlanItem org.h2.result.SortOrder int int[] org.h2.index.IndexCondition java.util.Iterator
StackMap stack:
aload 9
invokevirtual org.h2.index.IndexCondition.getColumn:()Lorg/h2/table/Column;
invokevirtual org.h2.table.Column.getColumnId:()I
istore 11
start local 11 21: iload 11
iflt 23
22: aload 8
iload 11
dup2
iaload
aload 9
aload 0
getfield org.h2.table.TableFilter.indexConditions:Ljava/util/ArrayList;
invokevirtual org.h2.index.IndexCondition.getMask:(Ljava/util/ArrayList;)I
ior
iastore
end local 11 end local 9 23: StackMap locals: org.h2.table.TableFilter org.h2.engine.Session org.h2.table.TableFilter[] int org.h2.command.dml.AllColumnsForPlan org.h2.table.PlanItem org.h2.result.SortOrder int int[] top java.util.Iterator
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 15
24: StackMap locals: org.h2.table.TableFilter org.h2.engine.Session org.h2.table.TableFilter[] int org.h2.command.dml.AllColumnsForPlan org.h2.table.PlanItem org.h2.result.SortOrder int int[]
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.table:Lorg/h2/table/Table;
aload 1
aload 8
aload 2
iload 3
aload 6
aload 4
invokevirtual org.h2.table.Table.getBestPlanItem:(Lorg/h2/engine/Session;[I[Lorg/h2/table/TableFilter;ILorg/h2/result/SortOrder;Lorg/h2/command/dml/AllColumnsForPlan;)Lorg/h2/table/PlanItem;
astore 9
start local 9 25: aload 9
aload 8
invokevirtual org.h2.table.PlanItem.setMasks:([I)V
26: aload 9
dup
getfield org.h2.table.PlanItem.cost:D
aload 9
getfield org.h2.table.PlanItem.cost:D
aload 0
getfield org.h2.table.TableFilter.indexConditions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
i2d
dmul
ldc 100.0
ddiv
iload 3
iconst_1
iadd
i2d
ddiv
dsub
putfield org.h2.table.PlanItem.cost:D
27: aload 5
ifnull 29
aload 5
getfield org.h2.table.PlanItem.cost:D
aload 9
getfield org.h2.table.PlanItem.cost:D
dcmpg
ifge 29
28: aload 5
astore 9
29: StackMap locals: org.h2.table.PlanItem
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
ifnull 33
30: aload 0
iconst_1
invokevirtual org.h2.table.TableFilter.setEvaluatable:(Z)V
31: aload 9
aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
aload 1
aload 2
iload 3
aload 4
invokevirtual org.h2.table.TableFilter.getBestPlanItem:(Lorg/h2/engine/Session;[Lorg/h2/table/TableFilter;ILorg/h2/command/dml/AllColumnsForPlan;)Lorg/h2/table/PlanItem;
invokevirtual org.h2.table.PlanItem.setNestedJoinPlan:(Lorg/h2/table/PlanItem;)V
32: aload 9
dup
getfield org.h2.table.PlanItem.cost:D
aload 9
getfield org.h2.table.PlanItem.cost:D
aload 9
invokevirtual org.h2.table.PlanItem.getNestedJoinPlan:()Lorg/h2/table/PlanItem;
getfield org.h2.table.PlanItem.cost:D
dmul
dadd
putfield org.h2.table.PlanItem.cost:D
33: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
ifnull 39
34: aload 0
iconst_1
invokevirtual org.h2.table.TableFilter.setEvaluatable:(Z)V
35: StackMap locals:
StackMap stack:
iinc 3 1
36: aload 2
iload 3
aaload
aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
if_acmpne 35
37: aload 9
aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
aload 1
aload 2
iload 3
aload 4
invokevirtual org.h2.table.TableFilter.getBestPlanItem:(Lorg/h2/engine/Session;[Lorg/h2/table/TableFilter;ILorg/h2/command/dml/AllColumnsForPlan;)Lorg/h2/table/PlanItem;
invokevirtual org.h2.table.PlanItem.setJoinPlan:(Lorg/h2/table/PlanItem;)V
38: aload 9
dup
getfield org.h2.table.PlanItem.cost:D
aload 9
getfield org.h2.table.PlanItem.cost:D
aload 9
invokevirtual org.h2.table.PlanItem.getJoinPlan:()Lorg/h2/table/PlanItem;
getfield org.h2.table.PlanItem.cost:D
dmul
dadd
putfield org.h2.table.PlanItem.cost:D
39: StackMap locals:
StackMap stack:
aload 9
areturn
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lorg/h2/table/TableFilter;
0 40 1 s Lorg/h2/engine/Session;
0 40 2 filters [Lorg/h2/table/TableFilter;
0 40 3 filter I
0 40 4 allColumnsSet Lorg/h2/command/dml/AllColumnsForPlan;
1 40 5 item1 Lorg/h2/table/PlanItem;
2 40 6 sortOrder Lorg/h2/result/SortOrder;
13 40 7 len I
14 40 8 masks [I
16 23 9 condition Lorg/h2/index/IndexCondition;
21 23 11 id I
25 40 9 item Lorg/h2/table/PlanItem;
MethodParameters:
Name Flags
s
filters
filter
allColumnsSet
public void setPlanItem(org.h2.table.PlanItem);
descriptor: (Lorg/h2/table/PlanItem;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.h2.table.PlanItem.getIndex:()Lorg/h2/index/Index;
invokevirtual org.h2.table.TableFilter.setIndex:(Lorg/h2/index/Index;)V
3: aload 0
aload 1
invokevirtual org.h2.table.PlanItem.getMasks:()[I
putfield org.h2.table.TableFilter.masks:[I
4: aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
ifnull 9
5: aload 1
invokevirtual org.h2.table.PlanItem.getNestedJoinPlan:()Lorg/h2/table/PlanItem;
ifnull 8
6: aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
aload 1
invokevirtual org.h2.table.PlanItem.getNestedJoinPlan:()Lorg/h2/table/PlanItem;
invokevirtual org.h2.table.TableFilter.setPlanItem:(Lorg/h2/table/PlanItem;)V
7: goto 9
8: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.setScanIndexes:()V
9: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
ifnull 14
10: aload 1
invokevirtual org.h2.table.PlanItem.getJoinPlan:()Lorg/h2/table/PlanItem;
ifnull 13
11: aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
aload 1
invokevirtual org.h2.table.PlanItem.getJoinPlan:()Lorg/h2/table/PlanItem;
invokevirtual org.h2.table.TableFilter.setPlanItem:(Lorg/h2/table/PlanItem;)V
12: goto 14
13: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.setScanIndexes:()V
14: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/h2/table/TableFilter;
0 15 1 item Lorg/h2/table/PlanItem;
MethodParameters:
Name Flags
item
private void setScanIndexes();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.index:Lorg/h2/index/Index;
ifnonnull 2
1: aload 0
aload 0
getfield org.h2.table.TableFilter.table:Lorg/h2/table/Table;
aload 0
getfield org.h2.table.TableFilter.session:Lorg/h2/engine/Session;
invokevirtual org.h2.table.Table.getScanIndex:(Lorg/h2/engine/Session;)Lorg/h2/index/Index;
invokevirtual org.h2.table.TableFilter.setIndex:(Lorg/h2/index/Index;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
ifnull 4
3: aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.setScanIndexes:()V
4: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
ifnull 6
5: aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.setScanIndexes:()V
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/h2/table/TableFilter;
public void prepare();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 10
2: StackMap locals: int
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.indexConditions:Ljava/util/ArrayList;
iload 1
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.index.IndexCondition
astore 2
start local 2 3: aload 2
invokevirtual org.h2.index.IndexCondition.isAlwaysFalse:()Z
ifne 9
4: aload 2
invokevirtual org.h2.index.IndexCondition.getColumn:()Lorg/h2/table/Column;
astore 3
start local 3 5: aload 3
invokevirtual org.h2.table.Column.getColumnId:()I
iflt 9
6: aload 0
getfield org.h2.table.TableFilter.index:Lorg/h2/index/Index;
aload 3
invokeinterface org.h2.index.Index.getColumnIndex:(Lorg/h2/table/Column;)I
ifge 9
7: aload 0
getfield org.h2.table.TableFilter.indexConditions:Ljava/util/ArrayList;
iload 1
invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
pop
8: iinc 1 -1
end local 3 end local 2 9: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
10: iload 1
aload 0
getfield org.h2.table.TableFilter.indexConditions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
if_icmplt 2
end local 1 11: aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
ifnull 15
12: aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
aload 0
if_acmpne 14
13: ldc "self join"
invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
pop
14: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.prepare:()V
15: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
ifnull 19
16: aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
aload 0
if_acmpne 18
17: ldc "self join"
invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
pop
18: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.prepare:()V
19: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.filterCondition:Lorg/h2/expression/Expression;
ifnull 21
20: aload 0
aload 0
getfield org.h2.table.TableFilter.filterCondition:Lorg/h2/expression/Expression;
aload 0
getfield org.h2.table.TableFilter.session:Lorg/h2/engine/Session;
invokevirtual org.h2.expression.Expression.optimize:(Lorg/h2/engine/Session;)Lorg/h2/expression/Expression;
putfield org.h2.table.TableFilter.filterCondition:Lorg/h2/expression/Expression;
21: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.joinCondition:Lorg/h2/expression/Expression;
ifnull 23
22: aload 0
aload 0
getfield org.h2.table.TableFilter.joinCondition:Lorg/h2/expression/Expression;
aload 0
getfield org.h2.table.TableFilter.session:Lorg/h2/engine/Session;
invokevirtual org.h2.expression.Expression.optimize:(Lorg/h2/engine/Session;)Lorg/h2/expression/Expression;
putfield org.h2.table.TableFilter.joinCondition:Lorg/h2/expression/Expression;
23: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/h2/table/TableFilter;
1 11 1 i I
3 9 2 condition Lorg/h2/index/IndexCondition;
5 9 3 col Lorg/h2/table/Column;
public void startQuery(org.h2.engine.Session);
descriptor: (Lorg/h2/engine/Session;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.h2.table.TableFilter.session:Lorg/h2/engine/Session;
1: aload 0
iconst_0
putfield org.h2.table.TableFilter.scanCount:I
2: aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
ifnull 4
3: aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
aload 1
invokevirtual org.h2.table.TableFilter.startQuery:(Lorg/h2/engine/Session;)V
4: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
ifnull 6
5: aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
aload 1
invokevirtual org.h2.table.TableFilter.startQuery:(Lorg/h2/engine/Session;)V
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/h2/table/TableFilter;
0 7 1 s Lorg/h2/engine/Session;
MethodParameters:
Name Flags
s
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.joinBatch:Lorg/h2/table/JoinBatch;
ifnull 3
aload 0
getfield org.h2.table.TableFilter.joinFilterId:I
ifne 3
1: aload 0
getfield org.h2.table.TableFilter.joinBatch:Lorg/h2/table/JoinBatch;
iconst_1
invokevirtual org.h2.table.JoinBatch.reset:(Z)V
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
ifnull 5
4: aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.reset:()V
5: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
ifnull 7
6: aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.reset:()V
7: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield org.h2.table.TableFilter.state:I
8: aload 0
iconst_0
putfield org.h2.table.TableFilter.foundOne:Z
9: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/h2/table/TableFilter;
private boolean isAlwaysTopTableFilter(int);
descriptor: (I)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=3, args_size=2
start local 0 start local 1 0: iload 1
ifeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.session:Lorg/h2/engine/Session;
invokevirtual org.h2.engine.Session.getSubQueryInfo:()Lorg/h2/table/SubQueryInfo;
astore 2
start local 2 3: StackMap locals: org.h2.table.SubQueryInfo
StackMap stack:
aload 2
ifnonnull 5
4: iconst_1
ireturn
5: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.h2.table.SubQueryInfo.getFilter:()I
ifeq 7
6: iconst_0
ireturn
7: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.h2.table.SubQueryInfo.getUpper:()Lorg/h2/table/SubQueryInfo;
astore 2
8: goto 3
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/h2/table/TableFilter;
0 9 1 filter I
3 9 2 info Lorg/h2/table/SubQueryInfo;
MethodParameters:
Name Flags
filter
public org.h2.table.JoinBatch prepareJoinBatch(org.h2.table.JoinBatch, org.h2.table.TableFilter[], int);
descriptor: (Lorg/h2/table/JoinBatch;[Lorg/h2/table/TableFilter;I)Lorg/h2/table/JoinBatch;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic org.h2.table.TableFilter.$assertionsDisabled:Z
ifne 1
aload 2
iload 3
aaload
aload 0
if_acmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield org.h2.table.TableFilter.joinBatch:Lorg/h2/table/JoinBatch;
2: aload 0
iconst_m1
putfield org.h2.table.TableFilter.joinFilterId:I
3: aload 0
invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.isView:()Z
ifeq 11
4: aload 0
getfield org.h2.table.TableFilter.session:Lorg/h2/engine/Session;
aload 0
getfield org.h2.table.TableFilter.masks:[I
aload 2
iload 3
aload 0
getfield org.h2.table.TableFilter.select:Lorg/h2/command/dml/Select;
invokevirtual org.h2.command.dml.Select.getSortOrder:()Lorg/h2/result/SortOrder;
invokevirtual org.h2.engine.Session.pushSubQueryInfo:([I[Lorg/h2/table/TableFilter;ILorg/h2/result/SortOrder;)V
5: aload 0
getfield org.h2.table.TableFilter.index:Lorg/h2/index/Index;
checkcast org.h2.index.ViewIndex
invokevirtual org.h2.index.ViewIndex.getQuery:()Lorg/h2/command/dml/Query;
invokevirtual org.h2.command.dml.Query.prepareJoinBatch:()V
6: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
7: astore 4
8: aload 0
getfield org.h2.table.TableFilter.session:Lorg/h2/engine/Session;
invokevirtual org.h2.engine.Session.popSubQueryInfo:()V
9: aload 4
athrow
10: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.session:Lorg/h2/engine/Session;
invokevirtual org.h2.engine.Session.popSubQueryInfo:()V
11: StackMap locals:
StackMap stack:
aconst_null
astore 4
start local 4 12: aload 1
ifnonnull 16
aload 0
getfield org.h2.table.TableFilter.select:Lorg/h2/command/dml/Select;
ifnull 16
aload 0
iload 3
invokevirtual org.h2.table.TableFilter.isAlwaysTopTableFilter:(I)Z
ifne 16
13: aload 0
getfield org.h2.table.TableFilter.index:Lorg/h2/index/Index;
aload 2
iload 3
invokeinterface org.h2.index.Index.createLookupBatch:([Lorg/h2/table/TableFilter;I)Lorg/h2/index/IndexLookupBatch;
astore 4
14: aload 4
ifnull 16
15: new org.h2.table.JoinBatch
dup
iload 3
iconst_1
iadd
aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
invokespecial org.h2.table.JoinBatch.<init>:(ILorg/h2/table/TableFilter;)V
astore 1
16: StackMap locals: org.h2.index.IndexLookupBatch
StackMap stack:
aload 1
ifnull 26
17: aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
ifnull 19
18: invokestatic org.h2.message.DbException.throwInternalError:()Ljava/lang/RuntimeException;
athrow
19: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield org.h2.table.TableFilter.joinBatch:Lorg/h2/table/JoinBatch;
20: aload 0
iload 3
putfield org.h2.table.TableFilter.joinFilterId:I
21: aload 4
ifnonnull 25
aload 0
iload 3
invokevirtual org.h2.table.TableFilter.isAlwaysTopTableFilter:(I)Z
ifne 25
22: aload 0
getfield org.h2.table.TableFilter.index:Lorg/h2/index/Index;
aload 2
iload 3
invokeinterface org.h2.index.Index.createLookupBatch:([Lorg/h2/table/TableFilter;I)Lorg/h2/index/IndexLookupBatch;
astore 4
23: aload 4
ifnonnull 25
24: aload 0
invokestatic org.h2.table.JoinBatch.createFakeIndexLookupBatch:(Lorg/h2/table/TableFilter;)Lorg/h2/index/IndexLookupBatch;
astore 4
25: StackMap locals:
StackMap stack:
aload 1
aload 0
aload 4
invokevirtual org.h2.table.JoinBatch.register:(Lorg/h2/table/TableFilter;Lorg/h2/index/IndexLookupBatch;)V
26: StackMap locals:
StackMap stack:
aload 1
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lorg/h2/table/TableFilter;
0 27 1 jb Lorg/h2/table/JoinBatch;
0 27 2 filters [Lorg/h2/table/TableFilter;
0 27 3 filter I
12 27 4 lookupBatch Lorg/h2/index/IndexLookupBatch;
Exception table:
from to target type
5 7 7 any
MethodParameters:
Name Flags
jb
filters
filter
public int getJoinFilterId();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.joinFilterId:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableFilter;
public org.h2.table.JoinBatch getJoinBatch();
descriptor: ()Lorg/h2/table/JoinBatch;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.joinBatch:Lorg/h2/table/JoinBatch;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableFilter;
public boolean next();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.joinBatch:Lorg/h2/table/JoinBatch;
ifnull 2
1: aload 0
getfield org.h2.table.TableFilter.joinBatch:Lorg/h2/table/JoinBatch;
invokevirtual org.h2.table.JoinBatch.next:()Z
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.state:I
iconst_2
if_icmpne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.state:I
ifne 12
5: aload 0
getfield org.h2.table.TableFilter.cursor:Lorg/h2/index/IndexCursor;
aload 0
getfield org.h2.table.TableFilter.session:Lorg/h2/engine/Session;
aload 0
getfield org.h2.table.TableFilter.indexConditions:Ljava/util/ArrayList;
invokevirtual org.h2.index.IndexCursor.find:(Lorg/h2/engine/Session;Ljava/util/ArrayList;)V
6: aload 0
getfield org.h2.table.TableFilter.cursor:Lorg/h2/index/IndexCursor;
invokevirtual org.h2.index.IndexCursor.isAlwaysFalse:()Z
ifne 14
7: aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
ifnull 9
8: aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.reset:()V
9: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
ifnull 14
10: aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.reset:()V
11: goto 14
12: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
ifnull 14
aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.next:()Z
ifeq 14
13: iconst_1
ireturn
14: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.state:I
iconst_3
if_icmpne 16
15: goto 51
16: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.cursor:Lorg/h2/index/IndexCursor;
invokevirtual org.h2.index.IndexCursor.isAlwaysFalse:()Z
ifeq 19
17: aload 0
iconst_2
putfield org.h2.table.TableFilter.state:I
18: goto 31
StackMap locals:
StackMap stack:
19: aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
ifnull 23
20: aload 0
getfield org.h2.table.TableFilter.state:I
ifne 31
21: aload 0
iconst_1
putfield org.h2.table.TableFilter.state:I
22: goto 31
23: StackMap locals:
StackMap stack:
aload 0
dup
getfield org.h2.table.TableFilter.scanCount:I
iconst_1
iadd
dup_x1
putfield org.h2.table.TableFilter.scanCount:I
sipush 4095
iand
ifne 25
24: aload 0
invokevirtual org.h2.table.TableFilter.checkTimeout:()V
25: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.cursor:Lorg/h2/index/IndexCursor;
invokevirtual org.h2.index.IndexCursor.next:()Z
ifeq 30
26: aload 0
aload 0
getfield org.h2.table.TableFilter.cursor:Lorg/h2/index/IndexCursor;
invokevirtual org.h2.index.IndexCursor.getSearchRow:()Lorg/h2/result/SearchRow;
putfield org.h2.table.TableFilter.currentSearchRow:Lorg/h2/result/SearchRow;
27: aload 0
aconst_null
putfield org.h2.table.TableFilter.current:Lorg/h2/result/Row;
28: aload 0
iconst_1
putfield org.h2.table.TableFilter.state:I
29: goto 31
30: StackMap locals:
StackMap stack:
aload 0
iconst_2
putfield org.h2.table.TableFilter.state:I
31: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
ifnull 36
aload 0
getfield org.h2.table.TableFilter.state:I
iconst_1
if_icmpne 36
32: aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.next:()Z
ifne 36
33: aload 0
iconst_2
putfield org.h2.table.TableFilter.state:I
34: aload 0
getfield org.h2.table.TableFilter.joinOuter:Z
ifeq 14
aload 0
getfield org.h2.table.TableFilter.foundOne:Z
ifeq 36
35: goto 14
36: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.state:I
iconst_2
if_icmpne 39
37: aload 0
getfield org.h2.table.TableFilter.joinOuter:Z
ifeq 51
aload 0
getfield org.h2.table.TableFilter.foundOne:Z
ifne 51
38: aload 0
invokevirtual org.h2.table.TableFilter.setNullRow:()V
39: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.h2.table.TableFilter.filterCondition:Lorg/h2/expression/Expression;
invokevirtual org.h2.table.TableFilter.isOk:(Lorg/h2/expression/Expression;)Z
ifne 41
40: goto 14
41: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.h2.table.TableFilter.joinCondition:Lorg/h2/expression/Expression;
invokevirtual org.h2.table.TableFilter.isOk:(Lorg/h2/expression/Expression;)Z
istore 1
start local 1 42: aload 0
getfield org.h2.table.TableFilter.state:I
iconst_1
if_icmpne 45
43: iload 1
ifeq 14
44: aload 0
iconst_1
putfield org.h2.table.TableFilter.foundOne:Z
45: StackMap locals: int
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
ifnull 49
46: aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.reset:()V
47: aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.next:()Z
ifne 49
48: goto 14
49: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.state:I
iconst_3
if_icmpeq 50
iload 1
ifeq 14
50: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 51: StackMap locals:
StackMap stack:
aload 0
iconst_2
putfield org.h2.table.TableFilter.state:I
52: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 53 0 this Lorg/h2/table/TableFilter;
42 51 1 joinConditionOk Z
protected void setNullRow();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
iconst_3
putfield org.h2.table.TableFilter.state:I
1: aload 0
aload 0
getfield org.h2.table.TableFilter.table:Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.getNullRow:()Lorg/h2/result/Row;
putfield org.h2.table.TableFilter.current:Lorg/h2/result/Row;
2: aload 0
aload 0
getfield org.h2.table.TableFilter.current:Lorg/h2/result/Row;
putfield org.h2.table.TableFilter.currentSearchRow:Lorg/h2/result/SearchRow;
3: aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
ifnull 5
4: aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
new org.h2.table.TableFilter$1
dup
aload 0
invokespecial org.h2.table.TableFilter$1.<init>:(Lorg/h2/table/TableFilter;)V
invokevirtual org.h2.table.TableFilter.visit:(Lorg/h2/table/TableFilter$TableFilterVisitor;)V
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/h2/table/TableFilter;
private void checkTimeout();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.session:Lorg/h2/engine/Session;
invokevirtual org.h2.engine.Session.checkCanceled:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/table/TableFilter;
boolean isOk(org.h2.expression.Expression);
descriptor: (Lorg/h2/expression/Expression;)Z
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 1
aload 1
aload 0
getfield org.h2.table.TableFilter.session:Lorg/h2/engine/Session;
invokevirtual org.h2.expression.Expression.getBooleanValue:(Lorg/h2/engine/Session;)Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/table/TableFilter;
0 2 1 condition Lorg/h2/expression/Expression;
MethodParameters:
Name Flags
condition
public org.h2.result.Row get();
descriptor: ()Lorg/h2/result/Row;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.current:Lorg/h2/result/Row;
ifnonnull 2
aload 0
getfield org.h2.table.TableFilter.currentSearchRow:Lorg/h2/result/SearchRow;
ifnull 2
1: aload 0
aload 0
getfield org.h2.table.TableFilter.cursor:Lorg/h2/index/IndexCursor;
invokevirtual org.h2.index.IndexCursor.get:()Lorg/h2/result/Row;
putfield org.h2.table.TableFilter.current:Lorg/h2/result/Row;
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.current:Lorg/h2/result/Row;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/table/TableFilter;
public void set(org.h2.result.Row);
descriptor: (Lorg/h2/result/Row;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.h2.table.TableFilter.current:Lorg/h2/result/Row;
1: aload 0
aload 1
putfield org.h2.table.TableFilter.currentSearchRow:Lorg/h2/result/SearchRow;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/table/TableFilter;
0 3 1 current Lorg/h2/result/Row;
MethodParameters:
Name Flags
current
public java.lang.String getTableAlias();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.alias:Ljava/lang/String;
ifnull 2
1: aload 0
getfield org.h2.table.TableFilter.alias:Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.table:Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.getName:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/table/TableFilter;
public void addIndexCondition(org.h2.index.IndexCondition);
descriptor: (Lorg/h2/index/IndexCondition;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.table.TableFilter.doneWithIndexConditions:Z
ifne 2
1: aload 0
getfield org.h2.table.TableFilter.indexConditions:Ljava/util/ArrayList;
aload 1
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/table/TableFilter;
0 3 1 condition Lorg/h2/index/IndexCondition;
MethodParameters:
Name Flags
condition
public void doneWithIndexConditions();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield org.h2.table.TableFilter.doneWithIndexConditions:Z
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/table/TableFilter;
public void addFilterCondition(org.h2.expression.Expression, boolean);
descriptor: (Lorg/h2/expression/Expression;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 2
ifeq 8
1: aload 0
getfield org.h2.table.TableFilter.joinCondition:Lorg/h2/expression/Expression;
ifnonnull 4
2: aload 0
aload 1
putfield org.h2.table.TableFilter.joinCondition:Lorg/h2/expression/Expression;
3: goto 14
4: StackMap locals:
StackMap stack:
aload 0
new org.h2.expression.condition.ConditionAndOr
dup
iconst_0
5: aload 0
getfield org.h2.table.TableFilter.joinCondition:Lorg/h2/expression/Expression;
aload 1
invokespecial org.h2.expression.condition.ConditionAndOr.<init>:(ILorg/h2/expression/Expression;Lorg/h2/expression/Expression;)V
6: putfield org.h2.table.TableFilter.joinCondition:Lorg/h2/expression/Expression;
7: goto 14
8: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.filterCondition:Lorg/h2/expression/Expression;
ifnonnull 11
9: aload 0
aload 1
putfield org.h2.table.TableFilter.filterCondition:Lorg/h2/expression/Expression;
10: goto 14
11: StackMap locals:
StackMap stack:
aload 0
new org.h2.expression.condition.ConditionAndOr
dup
iconst_0
12: aload 0
getfield org.h2.table.TableFilter.filterCondition:Lorg/h2/expression/Expression;
aload 1
invokespecial org.h2.expression.condition.ConditionAndOr.<init>:(ILorg/h2/expression/Expression;Lorg/h2/expression/Expression;)V
13: putfield org.h2.table.TableFilter.filterCondition:Lorg/h2/expression/Expression;
14: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/h2/table/TableFilter;
0 15 1 condition Lorg/h2/expression/Expression;
0 15 2 isJoin Z
MethodParameters:
Name Flags
condition
isJoin
public void addJoin(org.h2.table.TableFilter, boolean, org.h2.expression.Expression);
descriptor: (Lorg/h2/table/TableFilter;ZLorg/h2/expression/Expression;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
ifnull 5
1: aload 3
aload 0
iconst_0
iconst_0
invokevirtual org.h2.expression.Expression.mapColumns:(Lorg/h2/table/ColumnResolver;II)V
2: new org.h2.table.TableFilter$MapColumnsVisitor
dup
aload 3
invokespecial org.h2.table.TableFilter$MapColumnsVisitor.<init>:(Lorg/h2/expression/Expression;)V
astore 4
start local 4 3: aload 0
aload 4
invokevirtual org.h2.table.TableFilter.visit:(Lorg/h2/table/TableFilter$TableFilterVisitor;)V
4: aload 1
aload 4
invokevirtual org.h2.table.TableFilter.visit:(Lorg/h2/table/TableFilter$TableFilterVisitor;)V
end local 4 5: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
ifnonnull 13
6: aload 0
aload 1
putfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
7: aload 1
iload 2
putfield org.h2.table.TableFilter.joinOuter:Z
8: iload 2
ifeq 10
9: aload 1
new org.h2.table.TableFilter$JOIVisitor
dup
invokespecial org.h2.table.TableFilter$JOIVisitor.<init>:()V
invokevirtual org.h2.table.TableFilter.visit:(Lorg/h2/table/TableFilter$TableFilterVisitor;)V
10: StackMap locals:
StackMap stack:
aload 3
ifnull 14
11: aload 1
aload 3
invokevirtual org.h2.table.TableFilter.mapAndAddFilter:(Lorg/h2/expression/Expression;)V
12: goto 14
13: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
aload 1
iload 2
aload 3
invokevirtual org.h2.table.TableFilter.addJoin:(Lorg/h2/table/TableFilter;ZLorg/h2/expression/Expression;)V
14: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/h2/table/TableFilter;
0 15 1 filter Lorg/h2/table/TableFilter;
0 15 2 outer Z
0 15 3 on Lorg/h2/expression/Expression;
3 5 4 visitor Lorg/h2/table/TableFilter$TableFilterVisitor;
MethodParameters:
Name Flags
filter
outer
on
public void setNestedJoin(org.h2.table.TableFilter);
descriptor: (Lorg/h2/table/TableFilter;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/table/TableFilter;
0 2 1 filter Lorg/h2/table/TableFilter;
MethodParameters:
Name Flags
filter
public void mapAndAddFilter(org.h2.expression.Expression);
descriptor: (Lorg/h2/expression/Expression;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
iconst_0
iconst_0
invokevirtual org.h2.expression.Expression.mapColumns:(Lorg/h2/table/ColumnResolver;II)V
1: aload 0
aload 1
iconst_1
invokevirtual org.h2.table.TableFilter.addFilterCondition:(Lorg/h2/expression/Expression;Z)V
2: aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
ifnull 4
3: aload 1
aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
iconst_0
iconst_0
invokevirtual org.h2.expression.Expression.mapColumns:(Lorg/h2/table/ColumnResolver;II)V
4: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
ifnull 6
5: aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
aload 1
invokevirtual org.h2.table.TableFilter.mapAndAddFilter:(Lorg/h2/expression/Expression;)V
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/h2/table/TableFilter;
0 7 1 on Lorg/h2/expression/Expression;
MethodParameters:
Name Flags
on
public void createIndexConditions();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.joinCondition:Lorg/h2/expression/Expression;
ifnull 5
1: aload 0
aload 0
getfield org.h2.table.TableFilter.joinCondition:Lorg/h2/expression/Expression;
aload 0
getfield org.h2.table.TableFilter.session:Lorg/h2/engine/Session;
invokevirtual org.h2.expression.Expression.optimize:(Lorg/h2/engine/Session;)Lorg/h2/expression/Expression;
putfield org.h2.table.TableFilter.joinCondition:Lorg/h2/expression/Expression;
2: aload 0
getfield org.h2.table.TableFilter.joinCondition:Lorg/h2/expression/Expression;
aload 0
getfield org.h2.table.TableFilter.session:Lorg/h2/engine/Session;
aload 0
invokevirtual org.h2.expression.Expression.createIndexConditions:(Lorg/h2/engine/Session;Lorg/h2/table/TableFilter;)V
3: aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
ifnull 5
4: aload 0
getfield org.h2.table.TableFilter.joinCondition:Lorg/h2/expression/Expression;
aload 0
getfield org.h2.table.TableFilter.session:Lorg/h2/engine/Session;
aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
invokevirtual org.h2.expression.Expression.createIndexConditions:(Lorg/h2/engine/Session;Lorg/h2/table/TableFilter;)V
5: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
ifnull 7
6: aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.createIndexConditions:()V
7: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
ifnull 9
8: aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.createIndexConditions:()V
9: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/h2/table/TableFilter;
public org.h2.table.TableFilter getJoin();
descriptor: ()Lorg/h2/table/TableFilter;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableFilter;
public boolean isJoinOuter();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.joinOuter:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableFilter;
public boolean isJoinOuterIndirect();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.joinOuterIndirect:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableFilter;
public java.lang.StringBuilder getPlanSQL(java.lang.StringBuilder, boolean, boolean);
descriptor: (Ljava/lang/StringBuilder;ZZ)Ljava/lang/StringBuilder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
ifeq 5
1: aload 0
getfield org.h2.table.TableFilter.joinOuter:Z
ifeq 4
2: aload 1
ldc "LEFT OUTER JOIN "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: goto 5
4: StackMap locals:
StackMap stack:
aload 1
ldc "INNER JOIN "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
ifnull 29
6: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 4
start local 4 7: aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
astore 5
start local 5 8: StackMap locals: java.lang.StringBuilder org.h2.table.TableFilter
StackMap stack:
aload 5
aload 4
aload 5
aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
if_acmpeq 9
iconst_1
goto 10
StackMap locals: org.h2.table.TableFilter java.lang.StringBuilder int int java.lang.StringBuilder org.h2.table.TableFilter
StackMap stack: org.h2.table.TableFilter java.lang.StringBuilder
9: iconst_0
StackMap locals: org.h2.table.TableFilter java.lang.StringBuilder int int java.lang.StringBuilder org.h2.table.TableFilter
StackMap stack: org.h2.table.TableFilter java.lang.StringBuilder int
10: iload 3
invokevirtual org.h2.table.TableFilter.getPlanSQL:(Ljava/lang/StringBuilder;ZZ)Ljava/lang/StringBuilder;
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
11: aload 5
invokevirtual org.h2.table.TableFilter.getJoin:()Lorg/h2/table/TableFilter;
astore 5
12: aload 5
ifnonnull 8
13: aload 4
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 6
start local 6 14: aload 6
ldc "("
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 15
iconst_0
goto 16
StackMap locals: java.lang.String
StackMap stack:
15: iconst_1
StackMap locals:
StackMap stack: int
16: istore 7
start local 7 17: iload 7
ifeq 19
18: aload 1
ldc "(\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
19: StackMap locals: int
StackMap stack:
aload 1
aload 6
iconst_4
iconst_0
invokestatic org.h2.util.StringUtils.indent:(Ljava/lang/StringBuilder;Ljava/lang/String;IZ)Ljava/lang/StringBuilder;
pop
20: iload 7
ifeq 22
21: aload 1
bipush 41
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
22: StackMap locals:
StackMap stack:
iload 2
ifeq 28
23: aload 1
ldc " ON "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
24: aload 0
getfield org.h2.table.TableFilter.joinCondition:Lorg/h2/expression/Expression;
ifnonnull 27
25: aload 1
ldc "1=1"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
26: goto 28
27: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.joinCondition:Lorg/h2/expression/Expression;
aload 1
iload 3
invokevirtual org.h2.expression.Expression.getUnenclosedSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
pop
28: StackMap locals:
StackMap stack:
aload 1
areturn
end local 7 end local 6 end local 5 end local 4 29: StackMap locals: org.h2.table.TableFilter java.lang.StringBuilder int int
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.table:Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.isView:()Z
ifeq 33
aload 0
getfield org.h2.table.TableFilter.table:Lorg/h2/table/Table;
checkcast org.h2.table.TableView
invokevirtual org.h2.table.TableView.isRecursive:()Z
ifeq 33
30: aload 0
getfield org.h2.table.TableFilter.table:Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.getSchema:()Lorg/h2/schema/Schema;
aload 1
iload 3
invokevirtual org.h2.schema.Schema.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
bipush 46
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
31: aload 1
aload 0
getfield org.h2.table.TableFilter.table:Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.getName:()Ljava/lang/String;
iload 3
invokestatic org.h2.command.Parser.quoteIdentifier:(Ljava/lang/StringBuilder;Ljava/lang/String;Z)Ljava/lang/StringBuilder;
pop
32: goto 34
33: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.table:Lorg/h2/table/Table;
aload 1
iload 3
invokevirtual org.h2.table.Table.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
pop
34: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.table:Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.isView:()Z
ifeq 36
aload 0
getfield org.h2.table.TableFilter.table:Lorg/h2/table/Table;
checkcast org.h2.table.TableView
invokevirtual org.h2.table.TableView.isInvalid:()Z
ifeq 36
35: ldc 90109
iconst_2
anewarray java.lang.String
dup
iconst_0
aload 0
getfield org.h2.table.TableFilter.table:Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.getName:()Ljava/lang/String;
aastore
dup
iconst_1
ldc "not compiled"
aastore
invokestatic org.h2.message.DbException.get:(I[Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
36: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.alias:Ljava/lang/String;
ifnull 50
37: aload 1
bipush 32
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
38: aload 1
aload 0
getfield org.h2.table.TableFilter.alias:Ljava/lang/String;
iload 3
invokestatic org.h2.command.Parser.quoteIdentifier:(Ljava/lang/StringBuilder;Ljava/lang/String;Z)Ljava/lang/StringBuilder;
pop
39: aload 0
getfield org.h2.table.TableFilter.derivedColumnMap:Ljava/util/LinkedHashMap;
ifnull 50
40: aload 1
bipush 40
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
41: iconst_0
istore 4
start local 4 42: aload 0
getfield org.h2.table.TableFilter.derivedColumnMap:Ljava/util/LinkedHashMap;
invokevirtual java.util.LinkedHashMap.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 6
goto 48
StackMap locals: org.h2.table.TableFilter java.lang.StringBuilder int int int top java.util.Iterator
StackMap stack:
43: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 5
start local 5 44: iload 4
ifeq 46
45: aload 1
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
46: StackMap locals: org.h2.table.TableFilter java.lang.StringBuilder int int int java.lang.String java.util.Iterator
StackMap stack:
iconst_1
istore 4
47: aload 1
aload 5
iload 3
invokestatic org.h2.command.Parser.quoteIdentifier:(Ljava/lang/StringBuilder;Ljava/lang/String;Z)Ljava/lang/StringBuilder;
pop
end local 5 48: StackMap locals: org.h2.table.TableFilter java.lang.StringBuilder int int int top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 43
49: aload 1
bipush 41
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
end local 4 50: StackMap locals: org.h2.table.TableFilter java.lang.StringBuilder int int
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.indexHints:Lorg/h2/table/IndexHints;
ifnull 62
51: aload 1
ldc " USE INDEX ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
52: iconst_1
istore 4
start local 4 53: aload 0
getfield org.h2.table.TableFilter.indexHints:Lorg/h2/table/IndexHints;
invokevirtual org.h2.table.IndexHints.getAllowedIndexes:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 6
goto 60
StackMap locals: org.h2.table.TableFilter java.lang.StringBuilder int int int top java.util.Iterator
StackMap stack:
54: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 5
start local 5 55: iload 4
ifne 58
56: aload 1
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
57: goto 59
58: StackMap locals: org.h2.table.TableFilter java.lang.StringBuilder int int int java.lang.String java.util.Iterator
StackMap stack:
iconst_0
istore 4
59: StackMap locals:
StackMap stack:
aload 1
aload 5
iload 3
invokestatic org.h2.command.Parser.quoteIdentifier:(Ljava/lang/StringBuilder;Ljava/lang/String;Z)Ljava/lang/StringBuilder;
pop
end local 5 60: StackMap locals: org.h2.table.TableFilter java.lang.StringBuilder int int int top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 54
61: aload 1
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 4 62: StackMap locals: org.h2.table.TableFilter java.lang.StringBuilder int int
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.index:Lorg/h2/index/Index;
ifnull 88
63: aload 1
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
64: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 4
start local 4 65: aload 0
getfield org.h2.table.TableFilter.joinBatch:Lorg/h2/table/JoinBatch;
ifnull 71
66: aload 0
getfield org.h2.table.TableFilter.joinBatch:Lorg/h2/table/JoinBatch;
aload 0
getfield org.h2.table.TableFilter.joinFilterId:I
invokevirtual org.h2.table.JoinBatch.getLookupBatch:(I)Lorg/h2/index/IndexLookupBatch;
astore 5
start local 5 67: aload 5
ifnonnull 70
68: aload 0
getfield org.h2.table.TableFilter.joinFilterId:I
ifeq 71
69: aload 0
getfield org.h2.table.TableFilter.joinFilterId:I
invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
70: StackMap locals: java.lang.StringBuilder org.h2.index.IndexLookupBatch
StackMap stack:
aload 4
ldc "batched:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokeinterface org.h2.index.IndexLookupBatch.getPlanSQL:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 32
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
end local 5 71: StackMap locals:
StackMap stack:
aload 4
aload 0
getfield org.h2.table.TableFilter.index:Lorg/h2/index/Index;
invokeinterface org.h2.index.Index.getPlanSQL:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
72: aload 0
getfield org.h2.table.TableFilter.indexConditions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.isEmpty:()Z
ifne 82
73: aload 4
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
74: iconst_0
istore 5
start local 5 75: aload 0
getfield org.h2.table.TableFilter.indexConditions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
istore 6
start local 6 76: goto 81
77: StackMap locals: int int
StackMap stack:
iload 5
ifle 79
78: aload 4
ldc "\n AND "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
79: StackMap locals:
StackMap stack:
aload 4
aload 0
getfield org.h2.table.TableFilter.indexConditions:Ljava/util/ArrayList;
iload 5
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.index.IndexCondition
iconst_0
invokevirtual org.h2.index.IndexCondition.getSQL:(Z)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
80: iinc 5 1
StackMap locals:
StackMap stack:
81: iload 5
iload 6
if_icmplt 77
end local 6 end local 5 82: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.h2.util.StringUtils.quoteRemarkSQL:(Ljava/lang/String;)Ljava/lang/String;
astore 5
start local 5 83: aload 4
iconst_0
invokevirtual java.lang.StringBuilder.setLength:(I)V
84: aload 4
ldc "/* "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
85: aload 5
bipush 10
invokevirtual java.lang.String.indexOf:(I)I
iflt 87
86: aload 4
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
87: StackMap locals: java.lang.String
StackMap stack:
aload 1
aload 4
ldc " */"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_4
iconst_0
invokestatic org.h2.util.StringUtils.indent:(Ljava/lang/StringBuilder;Ljava/lang/String;IZ)Ljava/lang/StringBuilder;
pop
end local 5 end local 4 88: StackMap locals:
StackMap stack:
iload 2
ifeq 94
89: aload 1
ldc "\n ON "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
90: aload 0
getfield org.h2.table.TableFilter.joinCondition:Lorg/h2/expression/Expression;
ifnonnull 93
91: aload 1
ldc "1=1"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
92: goto 94
93: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.joinCondition:Lorg/h2/expression/Expression;
aload 1
iload 3
invokevirtual org.h2.expression.Expression.getUnenclosedSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
pop
94: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.filterCondition:Lorg/h2/expression/Expression;
ifnull 99
95: aload 1
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
96: aload 0
getfield org.h2.table.TableFilter.filterCondition:Lorg/h2/expression/Expression;
iconst_0
invokevirtual org.h2.expression.Expression.getSQL:(Z)Ljava/lang/String;
invokestatic org.h2.util.StringUtils.unEnclose:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 97: new java.lang.StringBuilder
dup
ldc "/* WHERE "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokestatic org.h2.util.StringUtils.quoteRemarkSQL:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\n*/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
98: aload 1
aload 4
iconst_4
iconst_0
invokestatic org.h2.util.StringUtils.indent:(Ljava/lang/StringBuilder;Ljava/lang/String;IZ)Ljava/lang/StringBuilder;
pop
end local 4 99: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.scanCount:I
ifle 101
100: aload 1
ldc "\n /* scanCount: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.h2.table.TableFilter.scanCount:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " */"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
101: StackMap locals:
StackMap stack:
aload 1
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 102 0 this Lorg/h2/table/TableFilter;
0 102 1 builder Ljava/lang/StringBuilder;
0 102 2 isJoin Z
0 102 3 alwaysQuote Z
7 29 4 buffNested Ljava/lang/StringBuilder;
8 29 5 n Lorg/h2/table/TableFilter;
14 29 6 nested Ljava/lang/String;
17 29 7 enclose Z
42 50 4 f Z
44 48 5 name Ljava/lang/String;
53 62 4 first Z
55 60 5 index Ljava/lang/String;
65 88 4 planBuilder Ljava/lang/StringBuilder;
67 71 5 lookupBatch Lorg/h2/index/IndexLookupBatch;
75 82 5 i I
76 82 6 size I
83 88 5 plan Ljava/lang/String;
97 99 4 condition Ljava/lang/String;
MethodParameters:
Name Flags
builder
isJoin
alwaysQuote
void removeUnusableIndexConditions();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 6
2: StackMap locals: int
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.indexConditions:Ljava/util/ArrayList;
iload 1
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.index.IndexCondition
astore 2
start local 2 3: aload 2
invokevirtual org.h2.index.IndexCondition.isEvaluatable:()Z
ifne 5
4: aload 0
getfield org.h2.table.TableFilter.indexConditions:Ljava/util/ArrayList;
iload 1
iinc 1 -1
invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
pop
end local 2 5: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
6: iload 1
aload 0
getfield org.h2.table.TableFilter.indexConditions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
if_icmplt 2
end local 1 7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/h2/table/TableFilter;
1 7 1 i I
3 5 2 cond Lorg/h2/index/IndexCondition;
public int[] getMasks();
descriptor: ()[I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.masks:[I
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableFilter;
public java.util.ArrayList<org.h2.index.IndexCondition> getIndexConditions();
descriptor: ()Ljava/util/ArrayList;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.indexConditions:Ljava/util/ArrayList;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableFilter;
Signature: ()Ljava/util/ArrayList<Lorg/h2/index/IndexCondition;>;
public org.h2.index.Index getIndex();
descriptor: ()Lorg/h2/index/Index;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.index:Lorg/h2/index/Index;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableFilter;
public void setIndex(org.h2.index.Index);
descriptor: (Lorg/h2/index/Index;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.h2.table.TableFilter.index:Lorg/h2/index/Index;
1: aload 0
getfield org.h2.table.TableFilter.cursor:Lorg/h2/index/IndexCursor;
aload 1
invokevirtual org.h2.index.IndexCursor.setIndex:(Lorg/h2/index/Index;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/table/TableFilter;
0 3 1 index Lorg/h2/index/Index;
MethodParameters:
Name Flags
index
public void setUsed(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.h2.table.TableFilter.used:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/table/TableFilter;
0 2 1 used Z
MethodParameters:
Name Flags
used
public boolean isUsed();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.used:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableFilter;
void setSession(org.h2.engine.Session);
descriptor: (Lorg/h2/engine/Session;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.h2.table.TableFilter.session:Lorg/h2/engine/Session;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/table/TableFilter;
0 2 1 session Lorg/h2/engine/Session;
MethodParameters:
Name Flags
session
public void removeJoin();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
putfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/table/TableFilter;
public org.h2.expression.Expression getJoinCondition();
descriptor: ()Lorg/h2/expression/Expression;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.joinCondition:Lorg/h2/expression/Expression;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableFilter;
public void removeJoinCondition();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
putfield org.h2.table.TableFilter.joinCondition:Lorg/h2/expression/Expression;
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/table/TableFilter;
public org.h2.expression.Expression getFilterCondition();
descriptor: ()Lorg/h2/expression/Expression;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.filterCondition:Lorg/h2/expression/Expression;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableFilter;
public void removeFilterCondition();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
putfield org.h2.table.TableFilter.filterCondition:Lorg/h2/expression/Expression;
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/table/TableFilter;
public void setFullCondition(org.h2.expression.Expression);
descriptor: (Lorg/h2/expression/Expression;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.h2.table.TableFilter.fullCondition:Lorg/h2/expression/Expression;
1: aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
ifnull 3
2: aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
aload 1
invokevirtual org.h2.table.TableFilter.setFullCondition:(Lorg/h2/expression/Expression;)V
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/table/TableFilter;
0 4 1 condition Lorg/h2/expression/Expression;
MethodParameters:
Name Flags
condition
void optimizeFullCondition(boolean);
descriptor: (Z)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.table.TableFilter.fullCondition:Lorg/h2/expression/Expression;
ifnull 12
1: aload 0
getfield org.h2.table.TableFilter.fullCondition:Lorg/h2/expression/Expression;
aload 0
iload 1
ifne 2
aload 0
getfield org.h2.table.TableFilter.joinOuter:Z
ifne 2
iconst_0
goto 3
StackMap locals: org.h2.table.TableFilter int
StackMap stack: org.h2.expression.Expression org.h2.table.TableFilter
2: iconst_1
StackMap locals: org.h2.table.TableFilter int
StackMap stack: org.h2.expression.Expression org.h2.table.TableFilter int
3: invokevirtual org.h2.expression.Expression.addFilterConditions:(Lorg/h2/table/TableFilter;Z)V
4: aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
ifnull 8
5: aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
iload 1
ifne 6
aload 0
getfield org.h2.table.TableFilter.joinOuter:Z
ifne 6
iconst_0
goto 7
StackMap locals:
StackMap stack: org.h2.table.TableFilter
6: iconst_1
StackMap locals: org.h2.table.TableFilter int
StackMap stack: org.h2.table.TableFilter int
7: invokevirtual org.h2.table.TableFilter.optimizeFullCondition:(Z)V
8: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
ifnull 12
9: aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
iload 1
ifne 10
aload 0
getfield org.h2.table.TableFilter.joinOuter:Z
ifne 10
iconst_0
goto 11
StackMap locals:
StackMap stack: org.h2.table.TableFilter
10: iconst_1
StackMap locals: org.h2.table.TableFilter int
StackMap stack: org.h2.table.TableFilter int
11: invokevirtual org.h2.table.TableFilter.optimizeFullCondition:(Z)V
12: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/h2/table/TableFilter;
0 13 1 fromOuterJoin Z
MethodParameters:
Name Flags
fromOuterJoin
public void setEvaluatable(org.h2.table.TableFilter, boolean);
descriptor: (Lorg/h2/table/TableFilter;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
iload 2
invokevirtual org.h2.table.TableFilter.setEvaluatable:(Z)V
1: aload 0
getfield org.h2.table.TableFilter.filterCondition:Lorg/h2/expression/Expression;
ifnull 3
2: aload 0
getfield org.h2.table.TableFilter.filterCondition:Lorg/h2/expression/Expression;
aload 1
iload 2
invokevirtual org.h2.expression.Expression.setEvaluatable:(Lorg/h2/table/TableFilter;Z)V
3: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.joinCondition:Lorg/h2/expression/Expression;
ifnull 5
4: aload 0
getfield org.h2.table.TableFilter.joinCondition:Lorg/h2/expression/Expression;
aload 1
iload 2
invokevirtual org.h2.expression.Expression.setEvaluatable:(Lorg/h2/table/TableFilter;Z)V
5: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
ifnull 8
6: aload 0
aload 1
if_acmpne 8
7: aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
iload 2
invokevirtual org.h2.table.TableFilter.setEvaluatable:(Lorg/h2/table/TableFilter;Z)V
8: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
ifnull 10
9: aload 0
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
aload 1
iload 2
invokevirtual org.h2.table.TableFilter.setEvaluatable:(Lorg/h2/table/TableFilter;Z)V
10: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/h2/table/TableFilter;
0 11 1 filter Lorg/h2/table/TableFilter;
0 11 2 b Z
MethodParameters:
Name Flags
filter
b
public void setEvaluatable(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.h2.table.TableFilter.evaluatable:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/table/TableFilter;
0 2 1 evaluatable Z
MethodParameters:
Name Flags
evaluatable
public java.lang.String getSchemaName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.table:Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.getSchema:()Lorg/h2/schema/Schema;
invokevirtual org.h2.schema.Schema.getName:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableFilter;
public org.h2.table.Column[] getColumns();
descriptor: ()[Lorg/h2/table/Column;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.table:Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.getColumns:()[Lorg/h2/table/Column;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableFilter;
public java.lang.String getDerivedColumnName(org.h2.table.Column);
descriptor: (Lorg/h2/table/Column;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.table.TableFilter.derivedColumnMap:Ljava/util/LinkedHashMap;
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
aload 1
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
goto 3
StackMap locals: java.util.HashMap
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: java.lang.String
3: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/table/TableFilter;
0 4 1 column Lorg/h2/table/Column;
1 4 2 map Ljava/util/HashMap<Lorg/h2/table/Column;Ljava/lang/String;>;
MethodParameters:
Name Flags
column
public org.h2.table.Column[] getSystemColumns();
descriptor: ()[Lorg/h2/table/Column;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.session:Lorg/h2/engine/Session;
invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
invokevirtual org.h2.engine.Database.getMode:()Lorg/h2/engine/Mode;
getfield org.h2.engine.Mode.systemColumns:Z
ifne 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
iconst_3
anewarray org.h2.table.Column
astore 1
start local 1 3: aload 1
iconst_0
new org.h2.table.Column
dup
ldc "oid"
iconst_4
invokespecial org.h2.table.Column.<init>:(Ljava/lang/String;I)V
aastore
4: aload 1
iconst_0
aaload
aload 0
getfield org.h2.table.TableFilter.table:Lorg/h2/table/Table;
iconst_0
invokevirtual org.h2.table.Column.setTable:(Lorg/h2/table/Table;I)V
5: aload 1
iconst_1
new org.h2.table.Column
dup
ldc "ctid"
bipush 13
invokespecial org.h2.table.Column.<init>:(Ljava/lang/String;I)V
aastore
6: aload 1
iconst_1
aaload
aload 0
getfield org.h2.table.TableFilter.table:Lorg/h2/table/Table;
iconst_0
invokevirtual org.h2.table.Column.setTable:(Lorg/h2/table/Table;I)V
7: aload 1
iconst_2
new org.h2.table.Column
dup
ldc "CTID"
bipush 13
invokespecial org.h2.table.Column.<init>:(Ljava/lang/String;I)V
aastore
8: aload 1
iconst_2
aaload
aload 0
getfield org.h2.table.TableFilter.table:Lorg/h2/table/Table;
iconst_0
invokevirtual org.h2.table.Column.setTable:(Lorg/h2/table/Table;I)V
9: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/h2/table/TableFilter;
3 10 1 sys [Lorg/h2/table/Column;
public org.h2.table.Column getRowIdColumn();
descriptor: ()Lorg/h2/table/Column;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.table:Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.getRowIdColumn:()Lorg/h2/table/Column;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableFilter;
public org.h2.value.Value getValue(org.h2.table.Column);
descriptor: (Lorg/h2/table/Column;)Lorg/h2/value/Value;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.table.TableFilter.joinBatch:Lorg/h2/table/JoinBatch;
ifnull 2
1: aload 0
getfield org.h2.table.TableFilter.joinBatch:Lorg/h2/table/JoinBatch;
aload 0
getfield org.h2.table.TableFilter.joinFilterId:I
aload 1
invokevirtual org.h2.table.JoinBatch.getValue:(ILorg/h2/table/Column;)Lorg/h2/value/Value;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.currentSearchRow:Lorg/h2/result/SearchRow;
ifnonnull 4
3: aconst_null
areturn
4: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.h2.table.Column.getColumnId:()I
istore 2
start local 2 5: iload 2
iconst_m1
if_icmpne 7
6: aload 0
getfield org.h2.table.TableFilter.currentSearchRow:Lorg/h2/result/SearchRow;
invokeinterface org.h2.result.SearchRow.getKey:()J
invokestatic org.h2.value.ValueLong.get:(J)Lorg/h2/value/ValueLong;
areturn
7: StackMap locals: int
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.current:Lorg/h2/result/Row;
ifnonnull 14
8: aload 0
getfield org.h2.table.TableFilter.currentSearchRow:Lorg/h2/result/SearchRow;
iload 2
invokeinterface org.h2.result.SearchRow.getValue:(I)Lorg/h2/value/Value;
astore 3
start local 3 9: aload 3
ifnull 11
10: aload 3
areturn
11: StackMap locals: org.h2.value.Value
StackMap stack:
aload 0
aload 0
getfield org.h2.table.TableFilter.cursor:Lorg/h2/index/IndexCursor;
invokevirtual org.h2.index.IndexCursor.get:()Lorg/h2/result/Row;
putfield org.h2.table.TableFilter.current:Lorg/h2/result/Row;
12: aload 0
getfield org.h2.table.TableFilter.current:Lorg/h2/result/Row;
ifnonnull 14
13: getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
areturn
end local 3 14: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.current:Lorg/h2/result/Row;
iload 2
invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/h2/table/TableFilter;
0 15 1 column Lorg/h2/table/Column;
5 15 2 columnId I
9 14 3 v Lorg/h2/value/Value;
MethodParameters:
Name Flags
column
public org.h2.table.TableFilter getTableFilter();
descriptor: ()Lorg/h2/table/TableFilter;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableFilter;
public void setAlias(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.h2.table.TableFilter.alias:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/table/TableFilter;
0 2 1 alias Ljava/lang/String;
MethodParameters:
Name Flags
alias
public void setDerivedColumns(java.util.ArrayList<java.lang.String>);
descriptor: (Ljava/util/ArrayList;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=8, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.h2.table.TableFilter.getColumns:()[Lorg/h2/table/Column;
astore 2
start local 2 1: aload 2
arraylength
istore 3
start local 3 2: iload 3
aload 1
invokevirtual java.util.ArrayList.size:()I
if_icmpeq 4
3: sipush 21002
invokestatic org.h2.message.DbException.get:(I)Lorg/h2/message/DbException;
athrow
4: StackMap locals: org.h2.table.Column[] int
StackMap stack:
new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
astore 4
start local 4 5: iconst_0
istore 5
start local 5 6: goto 16
7: StackMap locals: java.util.LinkedHashMap int
StackMap stack:
aload 1
iload 5
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.lang.String
astore 6
start local 6 8: iconst_0
istore 7
start local 7 9: goto 13
10: StackMap locals: java.lang.String int
StackMap stack:
aload 6
aload 1
iload 7
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 12
11: ldc 42121
aload 6
invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
athrow
12: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
13: iload 7
iload 5
if_icmplt 10
end local 7 14: aload 4
aload 2
iload 5
aaload
aload 6
invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 6 15: iinc 5 1
StackMap locals:
StackMap stack:
16: iload 5
iload 3
if_icmplt 7
end local 5 17: aload 0
aload 4
putfield org.h2.table.TableFilter.derivedColumnMap:Ljava/util/LinkedHashMap;
18: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/h2/table/TableFilter;
0 19 1 derivedColumnNames Ljava/util/ArrayList<Ljava/lang/String;>;
1 19 2 columns [Lorg/h2/table/Column;
2 19 3 count I
5 19 4 map Ljava/util/LinkedHashMap<Lorg/h2/table/Column;Ljava/lang/String;>;
6 17 5 i I
8 15 6 alias Ljava/lang/String;
9 14 7 j I
Signature: (Ljava/util/ArrayList<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
derivedColumnNames
public org.h2.expression.Expression optimize(org.h2.expression.ExpressionColumn, org.h2.table.Column);
descriptor: (Lorg/h2/expression/ExpressionColumn;Lorg/h2/table/Column;)Lorg/h2/expression/Expression;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableFilter;
0 1 1 expressionColumn Lorg/h2/expression/ExpressionColumn;
0 1 2 column Lorg/h2/table/Column;
MethodParameters:
Name Flags
expressionColumn
column
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.alias:Ljava/lang/String;
ifnull 1
aload 0
getfield org.h2.table.TableFilter.alias:Ljava/lang/String;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield org.h2.table.TableFilter.table:Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.toString:()Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/table/TableFilter;
public void addNaturalJoinColumn(org.h2.table.Column);
descriptor: (Lorg/h2/table/Column;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.table.TableFilter.naturalJoinColumns:Ljava/util/ArrayList;
ifnonnull 2
1: aload 0
invokestatic org.h2.util.Utils.newSmallArrayList:()Ljava/util/ArrayList;
putfield org.h2.table.TableFilter.naturalJoinColumns:Ljava/util/ArrayList;
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableFilter.naturalJoinColumns:Ljava/util/ArrayList;
aload 1
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/table/TableFilter;
0 4 1 c Lorg/h2/table/Column;
MethodParameters:
Name Flags
c
public boolean isNaturalJoinColumn(org.h2.table.Column);
descriptor: (Lorg/h2/table/Column;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.table.TableFilter.naturalJoinColumns:Ljava/util/ArrayList;
ifnull 1
aload 0
getfield org.h2.table.TableFilter.naturalJoinColumns:Ljava/util/ArrayList;
aload 1
invokevirtual java.util.ArrayList.contains:(Ljava/lang/Object;)Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/table/TableFilter;
0 2 1 c Lorg/h2/table/Column;
MethodParameters:
Name Flags
c
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.hashCode:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableFilter;
public boolean hasInComparisons();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.indexConditions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 2
goto 5
StackMap locals: org.h2.table.TableFilter top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.index.IndexCondition
astore 1
start local 1 2: aload 1
invokevirtual org.h2.index.IndexCondition.getCompareType:()I
istore 3
start local 3 3: iload 3
bipush 10
if_icmpeq 4
iload 3
bipush 9
if_icmpne 5
4: StackMap locals: org.h2.table.TableFilter org.h2.index.IndexCondition java.util.Iterator int
StackMap stack:
iconst_1
ireturn
end local 3 end local 1 5: StackMap locals: org.h2.table.TableFilter top java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
6: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/h2/table/TableFilter;
2 5 1 cond Lorg/h2/index/IndexCondition;
3 5 3 compareType I
public void lockRowAdd(java.util.ArrayList<org.h2.result.Row>);
descriptor: (Ljava/util/ArrayList;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.table.TableFilter.state:I
iconst_1
if_icmpne 2
1: aload 1
aload 0
invokevirtual org.h2.table.TableFilter.get:()Lorg/h2/result/Row;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/table/TableFilter;
0 3 1 rows Ljava/util/ArrayList<Lorg/h2/result/Row;>;
Signature: (Ljava/util/ArrayList<Lorg/h2/result/Row;>;)V
MethodParameters:
Name Flags
rows
public org.h2.table.TableFilter getNestedJoin();
descriptor: ()Lorg/h2/table/TableFilter;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableFilter;
public void visit(org.h2.table.TableFilter$TableFilterVisitor);
descriptor: (Lorg/h2/table/TableFilter$TableFilterVisitor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
astore 2
start local 2 1: StackMap locals: org.h2.table.TableFilter
StackMap stack:
aload 1
aload 2
invokeinterface org.h2.table.TableFilter$TableFilterVisitor.accept:(Lorg/h2/table/TableFilter;)V
2: aload 2
getfield org.h2.table.TableFilter.nestedJoin:Lorg/h2/table/TableFilter;
astore 3
start local 3 3: aload 3
ifnull 5
4: aload 3
aload 1
invokevirtual org.h2.table.TableFilter.visit:(Lorg/h2/table/TableFilter$TableFilterVisitor;)V
5: StackMap locals: org.h2.table.TableFilter
StackMap stack:
aload 2
getfield org.h2.table.TableFilter.join:Lorg/h2/table/TableFilter;
astore 2
end local 3 6: aload 2
ifnonnull 1
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/h2/table/TableFilter;
0 8 1 visitor Lorg/h2/table/TableFilter$TableFilterVisitor;
1 8 2 f Lorg/h2/table/TableFilter;
3 6 3 n Lorg/h2/table/TableFilter;
MethodParameters:
Name Flags
visitor
public boolean isEvaluatable();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.evaluatable:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableFilter;
public org.h2.engine.Session getSession();
descriptor: ()Lorg/h2/engine/Session;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.session:Lorg/h2/engine/Session;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableFilter;
public org.h2.table.IndexHints getIndexHints();
descriptor: ()Lorg/h2/table/IndexHints;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableFilter.indexHints:Lorg/h2/table/IndexHints;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableFilter;
}
SourceFile: "TableFilter.java"
NestMembers:
org.h2.table.TableFilter$1 org.h2.table.TableFilter$JOIVisitor org.h2.table.TableFilter$MapColumnsVisitor org.h2.table.TableFilter$TableFilterVisitor
InnerClasses:
org.h2.table.TableFilter$1
private final JOIVisitor = org.h2.table.TableFilter$JOIVisitor of org.h2.table.TableFilter
private final MapColumnsVisitor = org.h2.table.TableFilter$MapColumnsVisitor of org.h2.table.TableFilter
public abstract TableFilterVisitor = org.h2.table.TableFilter$TableFilterVisitor of org.h2.table.TableFilter