public class org.h2.command.dml.Select extends org.h2.command.dml.Query
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.h2.command.dml.Select
super_class: org.h2.command.dml.Query
{
org.h2.table.TableFilter topTableFilter;
descriptor: Lorg/h2/table/TableFilter;
flags: (0x0000)
private final java.util.ArrayList<org.h2.table.TableFilter> filters;
descriptor: Ljava/util/ArrayList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/ArrayList<Lorg/h2/table/TableFilter;>;
private final java.util.ArrayList<org.h2.table.TableFilter> topFilters;
descriptor: Ljava/util/ArrayList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/ArrayList<Lorg/h2/table/TableFilter;>;
private org.h2.command.dml.Select parentSelect;
descriptor: Lorg/h2/command/dml/Select;
flags: (0x0002) ACC_PRIVATE
private org.h2.expression.Expression condition;
descriptor: Lorg/h2/expression/Expression;
flags: (0x0002) ACC_PRIVATE
private org.h2.expression.Expression having;
descriptor: Lorg/h2/expression/Expression;
flags: (0x0002) ACC_PRIVATE
private org.h2.expression.Expression qualify;
descriptor: Lorg/h2/expression/Expression;
flags: (0x0002) ACC_PRIVATE
int visibleColumnCount;
descriptor: I
flags: (0x0000)
private org.h2.expression.Expression[] distinctExpressions;
descriptor: [Lorg/h2/expression/Expression;
flags: (0x0002) ACC_PRIVATE
private int[] distinctIndexes;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private int distinctColumnCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.util.ArrayList<org.h2.expression.Expression> group;
descriptor: Ljava/util/ArrayList;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/ArrayList<Lorg/h2/expression/Expression;>;
int[] groupIndex;
descriptor: [I
flags: (0x0000)
boolean[] groupByExpression;
descriptor: [Z
flags: (0x0000)
org.h2.command.dml.SelectGroups groupData;
descriptor: Lorg/h2/command/dml/SelectGroups;
flags: (0x0000)
private int havingIndex;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int qualifyIndex;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int[] groupByCopies;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
boolean isGroupQuery;
descriptor: Z
flags: (0x0000)
private boolean isGroupSortedQuery;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean isWindowQuery;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean isForUpdate;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean isForUpdateMvcc;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private double cost;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private boolean isQuickAggregateQuery;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean isDistinctQuery;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean isPrepared;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean checkInit;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean sortUsingIndex;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean isGroupWindowStage2;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.util.HashMap<java.lang.String, org.h2.expression.analysis.Window> windows;
descriptor: Ljava/util/HashMap;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/HashMap<Ljava/lang/String;Lorg/h2/expression/analysis/Window;>;
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/command/dml/Select;
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.command.dml.Select.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.h2.engine.Session, org.h2.command.dml.Select);
descriptor: (Lorg/h2/engine/Session;Lorg/h2/command/dml/Select;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokespecial org.h2.command.dml.Query.<init>:(Lorg/h2/engine/Session;)V
1: aload 0
invokestatic org.h2.util.Utils.newSmallArrayList:()Ljava/util/ArrayList;
putfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
2: aload 0
invokestatic org.h2.util.Utils.newSmallArrayList:()Ljava/util/ArrayList;
putfield org.h2.command.dml.Select.topFilters:Ljava/util/ArrayList;
3: aload 0
aload 2
putfield org.h2.command.dml.Select.parentSelect:Lorg/h2/command/dml/Select;
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/h2/command/dml/Select;
0 5 1 session Lorg/h2/engine/Session;
0 5 2 parentSelect Lorg/h2/command/dml/Select;
MethodParameters:
Name Flags
session
parentSelect
public boolean isUnion();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/command/dml/Select;
public void addTableFilter(org.h2.table.TableFilter, boolean);
descriptor: (Lorg/h2/table/TableFilter;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
aload 1
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
1: iload 2
ifeq 3
2: aload 0
getfield org.h2.command.dml.Select.topFilters:Ljava/util/ArrayList;
aload 1
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
3: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/command/dml/Select;
0 4 1 filter Lorg/h2/table/TableFilter;
0 4 2 isTop Z
MethodParameters:
Name Flags
filter
isTop
public java.util.ArrayList<org.h2.table.TableFilter> getTopFilters();
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.command.dml.Select.topFilters:Ljava/util/ArrayList;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/command/dml/Select;
Signature: ()Ljava/util/ArrayList<Lorg/h2/table/TableFilter;>;
public void setExpressions(java.util.ArrayList<org.h2.expression.Expression>);
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
aload 1
putfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/command/dml/Select;
0 2 1 expressions Ljava/util/ArrayList<Lorg/h2/expression/Expression;>;
Signature: (Ljava/util/ArrayList<Lorg/h2/expression/Expression;>;)V
MethodParameters:
Name Flags
expressions
public void setWildcard();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
new java.util.ArrayList
dup
iconst_1
invokespecial java.util.ArrayList.<init>:(I)V
putfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
1: aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
new org.h2.expression.Wildcard
dup
aconst_null
aconst_null
invokespecial org.h2.expression.Wildcard.<init>:(Ljava/lang/String;Ljava/lang/String;)V
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/command/dml/Select;
public void setGroupQuery();
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.command.dml.Select.isGroupQuery:Z
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/command/dml/Select;
public void setWindowQuery();
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.command.dml.Select.isWindowQuery:Z
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/command/dml/Select;
public void setGroupBy(java.util.ArrayList<org.h2.expression.Expression>);
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
aload 1
putfield org.h2.command.dml.Select.group:Ljava/util/ArrayList;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/command/dml/Select;
0 2 1 group Ljava/util/ArrayList<Lorg/h2/expression/Expression;>;
Signature: (Ljava/util/ArrayList<Lorg/h2/expression/Expression;>;)V
MethodParameters:
Name Flags
group
public java.util.ArrayList<org.h2.expression.Expression> getGroupBy();
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.command.dml.Select.group:Ljava/util/ArrayList;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/command/dml/Select;
Signature: ()Ljava/util/ArrayList<Lorg/h2/expression/Expression;>;
public org.h2.command.dml.SelectGroups getGroupDataIfCurrent(boolean);
descriptor: (Z)Lorg/h2/command/dml/SelectGroups;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
ifnull 2
iload 1
ifne 1
aload 0
getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
invokevirtual org.h2.command.dml.SelectGroups.isCurrentGroup:()Z
ifeq 2
StackMap locals:
StackMap stack:
1: aload 0
getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
goto 3
StackMap locals:
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: org.h2.command.dml.SelectGroups
3: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/command/dml/Select;
0 4 1 window Z
MethodParameters:
Name Flags
window
public void setDistinct();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.command.dml.Select.distinctExpressions:[Lorg/h2/expression/Expression;
ifnull 2
1: ldc "DISTINCT ON together with DISTINCT"
invokestatic org.h2.message.DbException.getUnsupportedException:(Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.h2.command.dml.Select.distinct:Z
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/command/dml/Select;
public void setDistinct(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
getfield org.h2.command.dml.Select.distinct:Z
ifeq 2
1: ldc "DISTINCT ON together with DISTINCT"
invokestatic org.h2.message.DbException.getUnsupportedException:(Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield org.h2.command.dml.Select.distinctExpressions:[Lorg/h2/expression/Expression;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/command/dml/Select;
0 4 1 distinctExpressions [Lorg/h2/expression/Expression;
MethodParameters:
Name Flags
distinctExpressions
public void setDistinctIfPossible();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.h2.command.dml.Select.isAnyDistinct:()Z
ifne 2
aload 0
getfield org.h2.command.dml.Select.offsetExpr:Lorg/h2/expression/Expression;
ifnonnull 2
aload 0
getfield org.h2.command.dml.Select.limitExpr:Lorg/h2/expression/Expression;
ifnonnull 2
1: aload 0
iconst_1
putfield org.h2.command.dml.Select.distinct:Z
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/command/dml/Select;
public boolean isAnyDistinct();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.command.dml.Select.distinct:Z
ifne 1
aload 0
getfield org.h2.command.dml.Select.distinctExpressions:[Lorg/h2/expression/Expression;
ifnonnull 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/command/dml/Select;
public boolean addWindow(java.lang.String, org.h2.expression.analysis.Window);
descriptor: (Ljava/lang/String;Lorg/h2/expression/analysis/Window;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.h2.command.dml.Select.windows:Ljava/util/HashMap;
ifnonnull 2
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.h2.command.dml.Select.windows:Ljava/util/HashMap;
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.windows:Ljava/util/HashMap;
aload 1
aload 2
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
ifnonnull 3
iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/command/dml/Select;
0 4 1 name Ljava/lang/String;
0 4 2 window Lorg/h2/expression/analysis/Window;
MethodParameters:
Name Flags
name
window
public org.h2.expression.analysis.Window getWindow(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/h2/expression/analysis/Window;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.command.dml.Select.windows:Ljava/util/HashMap;
ifnull 1
aload 0
getfield org.h2.command.dml.Select.windows:Ljava/util/HashMap;
aload 1
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.h2.expression.analysis.Window
goto 2
StackMap locals:
StackMap stack:
1: aconst_null
StackMap locals:
StackMap stack: org.h2.expression.analysis.Window
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/command/dml/Select;
0 3 1 name Ljava/lang/String;
MethodParameters:
Name Flags
name
public void addCondition(org.h2.expression.Expression);
descriptor: (Lorg/h2/expression/Expression;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
ifnonnull 3
1: aload 0
aload 1
putfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
new org.h2.expression.condition.ConditionAndOr
dup
iconst_0
aload 1
aload 0
getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
invokespecial org.h2.expression.condition.ConditionAndOr.<init>:(ILorg/h2/expression/Expression;Lorg/h2/expression/Expression;)V
putfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/h2/command/dml/Select;
0 5 1 cond Lorg/h2/expression/Expression;
MethodParameters:
Name Flags
cond
public org.h2.expression.Expression getCondition();
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.command.dml.Select.condition:Lorg/h2/expression/Expression;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/command/dml/Select;
private org.h2.result.LazyResult queryGroupSorted(int, org.h2.result.ResultTarget, long, boolean);
descriptor: (ILorg/h2/result/ResultTarget;JZ)Lorg/h2/result/LazyResult;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 5 0: new org.h2.command.dml.Select$LazyResultGroupSorted
dup
aload 0
aload 0
getfield org.h2.command.dml.Select.expressionArray:[Lorg/h2/expression/Expression;
iload 1
invokespecial org.h2.command.dml.Select$LazyResultGroupSorted.<init>:(Lorg/h2/command/dml/Select;[Lorg/h2/expression/Expression;I)V
astore 6
start local 6 1: aload 6
lload 3
iload 5
invokestatic org.h2.command.dml.Select.skipOffset:(Lorg/h2/command/dml/Select$LazyResultSelect;JZ)V
2: aload 2
ifnonnull 5
3: aload 6
areturn
4: StackMap locals: org.h2.command.dml.Select$LazyResultGroupSorted
StackMap stack:
aload 2
aload 6
invokevirtual org.h2.command.dml.Select$LazyResultGroupSorted.currentRow:()[Lorg/h2/value/Value;
invokeinterface org.h2.result.ResultTarget.addRow:([Lorg/h2/value/Value;)V
5: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.h2.command.dml.Select$LazyResultGroupSorted.next:()Z
ifne 4
6: aconst_null
areturn
end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/h2/command/dml/Select;
0 7 1 columnCount I
0 7 2 result Lorg/h2/result/ResultTarget;
0 7 3 offset J
0 7 5 quickOffset Z
1 7 6 lazyResult Lorg/h2/command/dml/Select$LazyResultGroupSorted;
MethodParameters:
Name Flags
columnCount
result
offset
quickOffset
org.h2.value.Value[] createGroupSortedRow(org.h2.value.Value[], int);
descriptor: ([Lorg/h2/value/Value;I)[Lorg/h2/value/Value;
flags: (0x0000)
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: iload 2
anewarray org.h2.value.Value
astore 3
start local 3 1: iconst_0
istore 4
start local 4 2: goto 5
3: StackMap locals: org.h2.value.Value[] int
StackMap stack:
aload 3
aload 0
getfield org.h2.command.dml.Select.groupIndex:[I
iload 4
iaload
aload 1
iload 4
aaload
aastore
4: iinc 4 1
StackMap locals:
StackMap stack:
5: aload 0
getfield org.h2.command.dml.Select.groupIndex:[I
ifnull 6
iload 4
aload 0
getfield org.h2.command.dml.Select.groupIndex:[I
arraylength
if_icmplt 3
end local 4 6: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 7: goto 13
8: StackMap locals: int
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.groupByExpression:[Z
ifnull 10
aload 0
getfield org.h2.command.dml.Select.groupByExpression:[Z
iload 4
baload
ifeq 10
9: goto 12
10: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
iload 4
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Expression
astore 5
start local 5 11: aload 3
iload 4
aload 5
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.expression.Expression.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
aastore
end local 5 12: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
13: iload 4
iload 2
if_icmplt 8
end local 4 14: aload 0
aload 3
invokevirtual org.h2.command.dml.Select.isHavingNullOrFalse:([Lorg/h2/value/Value;)Z
ifeq 16
15: aconst_null
areturn
16: StackMap locals:
StackMap stack:
aload 0
aload 3
iload 2
invokevirtual org.h2.command.dml.Select.keepOnlyDistinct:([Lorg/h2/value/Value;I)[Lorg/h2/value/Value;
astore 3
17: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/h2/command/dml/Select;
0 18 1 keyValues [Lorg/h2/value/Value;
0 18 2 columnCount I
1 18 3 row [Lorg/h2/value/Value;
2 6 4 j I
7 14 4 j I
11 12 5 expr Lorg/h2/expression/Expression;
MethodParameters:
Name Flags
keyValues
columnCount
private org.h2.value.Value[] keepOnlyDistinct(org.h2.value.Value[], int);
descriptor: ([Lorg/h2/value/Value;I)[Lorg/h2/value/Value;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 2
aload 0
getfield org.h2.command.dml.Select.distinctColumnCount:I
if_icmpne 2
1: aload 1
areturn
2: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield org.h2.command.dml.Select.distinctColumnCount:I
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast org.h2.value.Value[]
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/command/dml/Select;
0 3 1 row [Lorg/h2/value/Value;
0 3 2 columnCount I
MethodParameters:
Name Flags
row
columnCount
private boolean isHavingNullOrFalse(org.h2.value.Value[]);
descriptor: ([Lorg/h2/value/Value;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.command.dml.Select.havingIndex:I
iflt 1
aload 1
aload 0
getfield org.h2.command.dml.Select.havingIndex:I
aaload
invokevirtual org.h2.value.Value.getBoolean:()Z
ifne 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/command/dml/Select;
0 2 1 row [Lorg/h2/value/Value;
MethodParameters:
Name Flags
row
private org.h2.index.Index getGroupSortedIndex();
descriptor: ()Lorg/h2/index/Index;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
getfield org.h2.command.dml.Select.groupIndex:[I
ifnull 1
aload 0
getfield org.h2.command.dml.Select.groupByExpression:[Z
ifnonnull 2
1: StackMap locals:
StackMap stack:
aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.getIndexes:()Ljava/util/ArrayList;
astore 1
start local 1 3: aload 1
ifnull 13
4: aload 1
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 3
goto 12
StackMap locals: org.h2.command.dml.Select java.util.ArrayList top java.util.Iterator
StackMap stack:
5: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.index.Index
astore 2
start local 2 6: aload 2
invokeinterface org.h2.index.Index.getIndexType:()Lorg/h2/index/IndexType;
invokevirtual org.h2.index.IndexType.isScan:()Z
ifeq 8
7: goto 12
8: StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.index.Index java.util.Iterator
StackMap stack:
aload 2
invokeinterface org.h2.index.Index.getIndexType:()Lorg/h2/index/IndexType;
invokevirtual org.h2.index.IndexType.isHash:()Z
ifeq 10
9: goto 12
10: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
aload 2
invokevirtual org.h2.command.dml.Select.isGroupSortedIndex:(Lorg/h2/table/TableFilter;Lorg/h2/index/Index;)Z
ifeq 12
11: aload 2
areturn
end local 2 12: StackMap locals: org.h2.command.dml.Select java.util.ArrayList top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
13: StackMap locals: org.h2.command.dml.Select java.util.ArrayList
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/h2/command/dml/Select;
3 14 1 indexes Ljava/util/ArrayList<Lorg/h2/index/Index;>;
6 12 2 index Lorg/h2/index/Index;
private boolean isGroupSortedIndex(org.h2.table.TableFilter, org.h2.index.Index);
descriptor: (Lorg/h2/table/TableFilter;Lorg/h2/index/Index;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface org.h2.index.Index.getColumns:()[Lorg/h2/table/Column;
astore 3
start local 3 1: aload 3
arraylength
newarray 4
astore 4
start local 4 2: iconst_0
istore 5
start local 5 3: aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
istore 6
start local 6 4: goto 21
5: StackMap locals: org.h2.command.dml.Select org.h2.table.TableFilter org.h2.index.Index org.h2.table.Column[] boolean[] int int
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.groupByExpression:[Z
iload 5
baload
ifne 7
6: goto 20
7: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
iload 5
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Expression
invokevirtual org.h2.expression.Expression.getNonAliasExpression:()Lorg/h2/expression/Expression;
astore 7
start local 7 8: aload 7
instanceof org.h2.expression.ExpressionColumn
ifne 10
9: iconst_0
ireturn
10: StackMap locals: org.h2.expression.Expression
StackMap stack:
aload 7
checkcast org.h2.expression.ExpressionColumn
astore 8
start local 8 11: iconst_0
istore 9
start local 9 12: goto 18
13: StackMap locals: org.h2.expression.ExpressionColumn int
StackMap stack:
aload 1
aload 8
invokevirtual org.h2.expression.ExpressionColumn.getTableFilter:()Lorg/h2/table/TableFilter;
if_acmpne 17
14: aload 3
iload 9
aaload
aload 8
invokevirtual org.h2.expression.ExpressionColumn.getColumn:()Lorg/h2/table/Column;
invokevirtual org.h2.table.Column.equals:(Ljava/lang/Object;)Z
ifeq 17
15: aload 4
iload 9
iconst_1
bastore
16: goto 20
17: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
18: iload 9
aload 3
arraylength
if_icmplt 13
end local 9 19: iconst_0
ireturn
end local 8 end local 7 20: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
21: iload 5
iload 6
if_icmplt 5
end local 6 end local 5 22: iconst_1
istore 5
start local 5 23: goto 27
24: StackMap locals:
StackMap stack:
aload 4
iload 5
iconst_1
isub
baload
ifne 26
aload 4
iload 5
baload
ifeq 26
25: iconst_0
ireturn
26: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
27: iload 5
aload 4
arraylength
if_icmplt 24
end local 5 28: iconst_1
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lorg/h2/command/dml/Select;
0 29 1 tableFilter Lorg/h2/table/TableFilter;
0 29 2 index Lorg/h2/index/Index;
1 29 3 indexColumns [Lorg/h2/table/Column;
2 29 4 grouped [Z
3 22 5 i I
4 22 6 size I
8 20 7 expr Lorg/h2/expression/Expression;
11 20 8 exprCol Lorg/h2/expression/ExpressionColumn;
12 19 9 j I
23 28 5 i I
MethodParameters:
Name Flags
tableFilter
index
private int getGroupByExpressionCount();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=1
start local 0 0: aload 0
getfield org.h2.command.dml.Select.groupByExpression:[Z
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
iconst_0
istore 1
start local 1 3: aload 0
getfield org.h2.command.dml.Select.groupByExpression:[Z
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 8
StackMap locals: org.h2.command.dml.Select int top int int boolean[]
StackMap stack:
4: aload 5
iload 3
baload
istore 2
start local 2 5: iload 2
ifeq 7
6: iinc 1 1
end local 2 7: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
8: iload 3
iload 4
if_icmplt 4
9: iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/h2/command/dml/Select;
3 10 1 count I
5 7 2 b Z
boolean isConditionMetForUpdate();
descriptor: ()Z
flags: (0x0000)
Code:
stack=3, locals=8, args_size=1
start local 0 0: aload 0
invokevirtual org.h2.command.dml.Select.isConditionMet:()Z
ifeq 20
1: aload 0
getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
istore 1
start local 1 2: iconst_1
istore 2
start local 2 3: iconst_0
istore 3
start local 3 4: goto 17
5: StackMap locals: int int int
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
iload 3
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.table.TableFilter
astore 4
start local 4 6: aload 4
invokevirtual org.h2.table.TableFilter.isJoinOuter:()Z
ifne 16
aload 4
invokevirtual org.h2.table.TableFilter.isJoinOuterIndirect:()Z
ifne 16
7: aload 4
invokevirtual org.h2.table.TableFilter.get:()Lorg/h2/result/Row;
astore 5
start local 5 8: aload 4
invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
astore 6
start local 6 9: aload 6
invokevirtual org.h2.table.Table.isMVStore:()Z
ifeq 16
10: aload 6
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
aload 5
invokevirtual org.h2.table.Table.lockRow:(Lorg/h2/engine/Session;Lorg/h2/result/Row;)Lorg/h2/result/Row;
astore 7
start local 7 11: aload 7
ifnonnull 13
12: iconst_0
ireturn
13: StackMap locals: org.h2.command.dml.Select int int int org.h2.table.TableFilter org.h2.result.Row org.h2.table.Table org.h2.result.Row
StackMap stack:
aload 5
aload 7
invokeinterface org.h2.result.Row.hasSharedData:(Lorg/h2/result/Row;)Z
ifne 16
14: aload 4
aload 7
invokevirtual org.h2.table.TableFilter.set:(Lorg/h2/result/Row;)V
15: iconst_0
istore 2
end local 7 end local 6 end local 5 end local 4 16: StackMap locals: org.h2.command.dml.Select int int int
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
17: iload 3
iload 1
if_icmplt 5
end local 3 18: iload 2
ifne 19
aload 0
invokevirtual org.h2.command.dml.Select.isConditionMet:()Z
ifne 19
iconst_0
ireturn
StackMap locals:
StackMap stack:
19: iconst_1
ireturn
end local 2 end local 1 20: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/h2/command/dml/Select;
2 20 1 count I
3 20 2 notChanged Z
4 18 3 i I
6 16 4 tableFilter Lorg/h2/table/TableFilter;
8 16 5 row Lorg/h2/result/Row;
9 16 6 table Lorg/h2/table/Table;
11 16 7 lockedRow Lorg/h2/result/Row;
boolean isConditionMet();
descriptor: ()Z
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
ifnull 1
aload 0
getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
aload 0
getfield org.h2.command.dml.Select.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 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/command/dml/Select;
private void queryWindow(int, org.h2.result.LocalResult, long, boolean);
descriptor: (ILorg/h2/result/LocalResult;JZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 5 0: aload 0
iload 1
invokevirtual org.h2.command.dml.Select.initGroupData:(I)V
1: aload 0
iload 1
iconst_2
invokevirtual org.h2.command.dml.Select.gatherGroup:(II)V
2: aload 0
iload 1
aload 2
lload 3
iload 5
iconst_0
invokevirtual org.h2.command.dml.Select.processGroupResult:(ILorg/h2/result/LocalResult;JZZ)V
3: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
4: astore 6
5: aload 0
getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
invokevirtual org.h2.command.dml.SelectGroups.reset:()V
6: aload 6
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
invokevirtual org.h2.command.dml.SelectGroups.reset:()V
8: return
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/h2/command/dml/Select;
0 9 1 columnCount I
0 9 2 result Lorg/h2/result/LocalResult;
0 9 3 offset J
0 9 5 quickOffset Z
Exception table:
from to target type
1 4 4 any
MethodParameters:
Name Flags
columnCount
result
offset
quickOffset
private void queryGroupWindow(int, org.h2.result.LocalResult, long, boolean);
descriptor: (ILorg/h2/result/LocalResult;JZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 5 0: aload 0
iload 1
invokevirtual org.h2.command.dml.Select.initGroupData:(I)V
1: aload 0
iload 1
iconst_1
invokevirtual org.h2.command.dml.Select.gatherGroup:(II)V
2: aload 0
iconst_1
putfield org.h2.command.dml.Select.isGroupWindowStage2:Z
3: goto 8
4: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.havingIndex:I
iflt 5
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
aload 0
getfield org.h2.command.dml.Select.havingIndex:I
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Expression
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.expression.Expression.getBooleanValue:(Lorg/h2/engine/Session;)Z
ifeq 7
5: StackMap locals:
StackMap stack:
aload 0
iload 1
iconst_2
invokevirtual org.h2.command.dml.Select.updateAgg:(II)V
6: goto 8
7: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
invokevirtual org.h2.command.dml.SelectGroups.remove:()V
8: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
invokevirtual org.h2.command.dml.SelectGroups.next:()Lorg/h2/value/ValueRow;
ifnonnull 4
9: aload 0
getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
invokevirtual org.h2.command.dml.SelectGroups.done:()V
10: aload 0
iload 1
aload 2
lload 3
iload 5
iconst_0
invokevirtual org.h2.command.dml.Select.processGroupResult:(ILorg/h2/result/LocalResult;JZZ)V
11: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 6
13: aload 0
iconst_0
putfield org.h2.command.dml.Select.isGroupWindowStage2:Z
14: aload 6
athrow
15: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield org.h2.command.dml.Select.isGroupWindowStage2:Z
16: goto 20
StackMap locals:
StackMap stack: java.lang.Throwable
17: astore 7
18: aload 0
getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
invokevirtual org.h2.command.dml.SelectGroups.reset:()V
19: aload 7
athrow
20: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
invokevirtual org.h2.command.dml.SelectGroups.reset:()V
21: return
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lorg/h2/command/dml/Select;
0 22 1 columnCount I
0 22 2 result Lorg/h2/result/LocalResult;
0 22 3 offset J
0 22 5 quickOffset Z
Exception table:
from to target type
2 12 12 any
1 17 17 any
MethodParameters:
Name Flags
columnCount
result
offset
quickOffset
private void queryGroup(int, org.h2.result.LocalResult, long, boolean);
descriptor: (ILorg/h2/result/LocalResult;JZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 5 0: aload 0
iload 1
invokevirtual org.h2.command.dml.Select.initGroupData:(I)V
1: aload 0
iload 1
iconst_1
invokevirtual org.h2.command.dml.Select.gatherGroup:(II)V
2: aload 0
iload 1
aload 2
lload 3
iload 5
iconst_1
invokevirtual org.h2.command.dml.Select.processGroupResult:(ILorg/h2/result/LocalResult;JZZ)V
3: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
4: astore 6
5: aload 0
getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
invokevirtual org.h2.command.dml.SelectGroups.reset:()V
6: aload 6
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
invokevirtual org.h2.command.dml.SelectGroups.reset:()V
8: return
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/h2/command/dml/Select;
0 9 1 columnCount I
0 9 2 result Lorg/h2/result/LocalResult;
0 9 3 offset J
0 9 5 quickOffset Z
Exception table:
from to target type
1 4 4 any
MethodParameters:
Name Flags
columnCount
result
offset
quickOffset
private void initGroupData(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
ifnonnull 3
1: aload 0
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
aload 0
getfield org.h2.command.dml.Select.isGroupQuery:Z
aload 0
getfield org.h2.command.dml.Select.groupIndex:[I
invokestatic org.h2.command.dml.SelectGroups.getInstance:(Lorg/h2/engine/Session;Ljava/util/ArrayList;Z[I)Lorg/h2/command/dml/SelectGroups;
invokevirtual org.h2.command.dml.Select.setGroupData:(Lorg/h2/command/dml/SelectGroups;)V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
iload 1
iconst_0
invokevirtual org.h2.command.dml.Select.updateAgg:(II)V
4: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
invokevirtual org.h2.command.dml.SelectGroups.reset:()V
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/h2/command/dml/Select;
0 6 1 columnCount I
MethodParameters:
Name Flags
columnCount
void setGroupData(org.h2.command.dml.SelectGroups);
descriptor: (Lorg/h2/command/dml/SelectGroups;)V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
1: aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
new org.h2.command.dml.Select$1
dup
aload 0
aload 1
invokespecial org.h2.command.dml.Select$1.<init>:(Lorg/h2/command/dml/Select;Lorg/h2/command/dml/SelectGroups;)V
invokevirtual org.h2.table.TableFilter.visit:(Lorg/h2/table/TableFilter$TableFilterVisitor;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/command/dml/Select;
0 3 1 groupData Lorg/h2/command/dml/SelectGroups;
MethodParameters:
Name Flags
groupData final
private void gatherGroup(int, int);
descriptor: (II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: lconst_0
lstore 3
start local 3 1: aload 0
lconst_0
invokevirtual org.h2.command.dml.Select.setCurrentRowNumber:(J)V
2: aload 0
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.command.dml.Select.getSampleSizeValue:(Lorg/h2/engine/Session;)I
istore 5
start local 5 3: goto 12
4: StackMap locals: long int
StackMap stack:
aload 0
lload 3
lconst_1
ladd
invokevirtual org.h2.command.dml.Select.setCurrentRowNumber:(J)V
5: aload 0
getfield org.h2.command.dml.Select.isForUpdateMvcc:Z
ifeq 6
aload 0
invokevirtual org.h2.command.dml.Select.isConditionMetForUpdate:()Z
ifeq 12
goto 7
StackMap locals:
StackMap stack:
6: aload 0
invokevirtual org.h2.command.dml.Select.isConditionMet:()Z
ifeq 12
7: StackMap locals:
StackMap stack:
lload 3
lconst_1
ladd
lstore 3
8: aload 0
getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
invokevirtual org.h2.command.dml.SelectGroups.nextSource:()V
9: aload 0
iload 1
iload 2
invokevirtual org.h2.command.dml.Select.updateAgg:(II)V
10: iload 5
ifle 12
lload 3
iload 5
i2l
lcmp
iflt 12
11: goto 13
12: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.next:()Z
ifne 4
13: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
invokevirtual org.h2.command.dml.SelectGroups.done:()V
14: return
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/h2/command/dml/Select;
0 15 1 columnCount I
0 15 2 stage I
1 15 3 rowNumber J
3 15 5 sampleSize I
MethodParameters:
Name Flags
columnCount
stage
void updateAgg(int, int);
descriptor: (II)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: goto 7
2: StackMap locals: int
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.groupByExpression:[Z
ifnull 3
aload 0
getfield org.h2.command.dml.Select.groupByExpression:[Z
iload 3
baload
ifne 6
3: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.groupByCopies:[I
ifnull 4
aload 0
getfield org.h2.command.dml.Select.groupByCopies:[I
iload 3
iaload
ifge 6
4: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
iload 3
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Expression
astore 4
start local 4 5: aload 4
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
iload 2
invokevirtual org.h2.expression.Expression.updateAggregate:(Lorg/h2/engine/Session;I)V
end local 4 6: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
7: iload 3
iload 1
if_icmplt 2
end local 3 8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/h2/command/dml/Select;
0 9 1 columnCount I
0 9 2 stage I
1 8 3 i I
5 6 4 expr Lorg/h2/expression/Expression;
MethodParameters:
Name Flags
columnCount
stage
private void processGroupResult(int, org.h2.result.LocalResult, long, boolean, boolean);
descriptor: (ILorg/h2/result/LocalResult;JZZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=12, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 5 start local 6 0: goto 30
start local 7 1: StackMap locals: org.h2.value.ValueRow
StackMap stack:
aload 7
invokevirtual org.h2.value.ValueRow.getList:()[Lorg/h2/value/Value;
astore 8
start local 8 2: iload 1
anewarray org.h2.value.Value
astore 9
start local 9 3: iconst_0
istore 10
start local 10 4: goto 7
5: StackMap locals: org.h2.value.Value[] org.h2.value.Value[] int
StackMap stack:
aload 9
aload 0
getfield org.h2.command.dml.Select.groupIndex:[I
iload 10
iaload
aload 8
iload 10
aaload
aastore
6: iinc 10 1
StackMap locals:
StackMap stack:
7: aload 0
getfield org.h2.command.dml.Select.groupIndex:[I
ifnull 8
iload 10
aload 0
getfield org.h2.command.dml.Select.groupIndex:[I
arraylength
if_icmplt 5
end local 10 8: StackMap locals:
StackMap stack:
iconst_0
istore 10
start local 10 9: goto 20
10: StackMap locals: int
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.groupByExpression:[Z
ifnull 12
aload 0
getfield org.h2.command.dml.Select.groupByExpression:[Z
iload 10
baload
ifeq 12
11: goto 19
12: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.groupByCopies:[I
ifnull 17
13: aload 0
getfield org.h2.command.dml.Select.groupByCopies:[I
iload 10
iaload
istore 11
start local 11 14: iload 11
iflt 17
15: aload 9
iload 10
aload 9
iload 11
aaload
aastore
16: goto 19
end local 11 17: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
iload 10
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Expression
astore 11
start local 11 18: aload 9
iload 10
aload 11
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.expression.Expression.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
aastore
end local 11 19: StackMap locals:
StackMap stack:
iinc 10 1
StackMap locals:
StackMap stack:
20: iload 10
iload 1
if_icmplt 10
end local 10 21: iload 6
ifeq 23
aload 0
aload 9
invokevirtual org.h2.command.dml.Select.isHavingNullOrFalse:([Lorg/h2/value/Value;)Z
ifeq 23
22: goto 30
23: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.qualifyIndex:I
iflt 25
aload 9
aload 0
getfield org.h2.command.dml.Select.qualifyIndex:I
aaload
invokevirtual org.h2.value.Value.getBoolean:()Z
ifne 25
24: goto 30
25: StackMap locals:
StackMap stack:
iload 5
ifeq 28
lload 3
lconst_0
lcmp
ifle 28
26: lload 3
lconst_1
lsub
lstore 3
27: goto 30
28: StackMap locals:
StackMap stack:
aload 0
aload 9
iload 1
invokevirtual org.h2.command.dml.Select.keepOnlyDistinct:([Lorg/h2/value/Value;I)[Lorg/h2/value/Value;
astore 9
29: aload 2
aload 9
invokeinterface org.h2.result.LocalResult.addRow:([Lorg/h2/value/Value;)V
end local 9 end local 8 end local 7 30: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.groupData:Lorg/h2/command/dml/SelectGroups;
invokevirtual org.h2.command.dml.SelectGroups.next:()Lorg/h2/value/ValueRow;
dup
astore 7
start local 7 31: ifnonnull 1
end local 7 32: return
end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lorg/h2/command/dml/Select;
0 33 1 columnCount I
0 33 2 result Lorg/h2/result/LocalResult;
0 33 3 offset J
0 33 5 quickOffset Z
0 33 6 withHaving Z
1 30 7 currentGroupsKey Lorg/h2/value/ValueRow;
31 32 7 currentGroupsKey Lorg/h2/value/ValueRow;
2 30 8 keyValues [Lorg/h2/value/Value;
3 30 9 row [Lorg/h2/value/Value;
4 8 10 j I
9 21 10 j I
14 17 11 original I
18 19 11 expr Lorg/h2/expression/Expression;
MethodParameters:
Name Flags
columnCount
result
offset
quickOffset
withHaving
private org.h2.index.Index getSortIndex();
descriptor: ()Lorg/h2/index/Index;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=12, args_size=1
start local 0 0: aload 0
getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
invokestatic org.h2.util.Utils.newSmallArrayList:()Ljava/util/ArrayList;
astore 1
start local 1 3: aload 0
getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
invokevirtual org.h2.result.SortOrder.getQueryColumnIndexes:()[I
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 18
StackMap locals: org.h2.command.dml.Select java.util.ArrayList top int int int[]
StackMap stack:
4: aload 5
iload 3
iaload
istore 2
start local 2 5: iload 2
iflt 6
iload 2
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
if_icmplt 7
6: StackMap locals: org.h2.command.dml.Select java.util.ArrayList int int int int[]
StackMap stack:
ldc "ORDER BY"
iload 2
iconst_1
iadd
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic org.h2.message.DbException.getInvalidValueException:(Ljava/lang/String;Ljava/lang/Object;)Lorg/h2/message/DbException;
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
iload 2
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Expression
astore 6
start local 6 8: aload 6
invokevirtual org.h2.expression.Expression.getNonAliasExpression:()Lorg/h2/expression/Expression;
astore 6
9: aload 6
invokevirtual org.h2.expression.Expression.isConstant:()Z
ifeq 11
10: goto 17
11: StackMap locals: org.h2.expression.Expression
StackMap stack:
aload 6
instanceof org.h2.expression.ExpressionColumn
ifne 13
12: aconst_null
areturn
13: StackMap locals:
StackMap stack:
aload 6
checkcast org.h2.expression.ExpressionColumn
astore 7
start local 7 14: aload 7
invokevirtual org.h2.expression.ExpressionColumn.getTableFilter:()Lorg/h2/table/TableFilter;
aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
if_acmpeq 16
15: aconst_null
areturn
16: StackMap locals: org.h2.expression.ExpressionColumn
StackMap stack:
aload 1
aload 7
invokevirtual org.h2.expression.ExpressionColumn.getColumn:()Lorg/h2/table/Column;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 7 end local 6 end local 2 17: StackMap locals: org.h2.command.dml.Select java.util.ArrayList top int int int[]
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
18: iload 3
iload 4
if_icmplt 4
19: aload 1
iconst_0
anewarray org.h2.table.Column
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast org.h2.table.Column[]
astore 2
start local 2 20: aload 2
arraylength
ifne 22
21: aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.table.Table.getScanIndex:(Lorg/h2/engine/Session;)Lorg/h2/index/Index;
areturn
22: StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.table.Column[]
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.getIndexes:()Ljava/util/ArrayList;
astore 3
start local 3 23: aload 3
ifnull 50
24: aload 0
getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
invokevirtual org.h2.result.SortOrder.getSortTypesWithNullPosition:()[I
astore 4
start local 4 25: aload 3
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 6
goto 49
StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.table.Column[] java.util.ArrayList int[] top java.util.Iterator
StackMap stack:
26: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.index.Index
astore 5
start local 5 27: aload 5
invokeinterface org.h2.index.Index.getCreateSQL:()Ljava/lang/String;
ifnonnull 29
28: goto 49
29: StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.table.Column[] java.util.ArrayList int[] org.h2.index.Index java.util.Iterator
StackMap stack:
aload 5
invokeinterface org.h2.index.Index.getIndexType:()Lorg/h2/index/IndexType;
invokevirtual org.h2.index.IndexType.isHash:()Z
ifeq 31
30: goto 49
31: StackMap locals:
StackMap stack:
aload 5
invokeinterface org.h2.index.Index.getIndexColumns:()[Lorg/h2/table/IndexColumn;
astore 7
start local 7 32: aload 7
arraylength
aload 2
arraylength
if_icmpge 34
33: goto 49
34: StackMap locals: org.h2.table.IndexColumn[]
StackMap stack:
iconst_1
istore 8
start local 8 35: iconst_0
istore 9
start local 9 36: goto 46
37: StackMap locals: int int
StackMap stack:
aload 7
iload 9
aaload
astore 10
start local 10 38: aload 2
iload 9
aaload
astore 11
start local 11 39: aload 10
getfield org.h2.table.IndexColumn.column:Lorg/h2/table/Column;
aload 11
if_acmpeq 42
40: iconst_0
istore 8
41: goto 47
42: StackMap locals: org.h2.table.IndexColumn org.h2.table.Column
StackMap stack:
aload 10
getfield org.h2.table.IndexColumn.sortType:I
invokestatic org.h2.result.SortOrder.addExplicitNullPosition:(I)I
aload 4
iload 9
iaload
if_icmpeq 45
43: iconst_0
istore 8
44: goto 47
end local 11 end local 10 45: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
46: iload 9
aload 2
arraylength
if_icmplt 37
end local 9 47: StackMap locals:
StackMap stack:
iload 8
ifeq 49
48: aload 5
areturn
end local 8 end local 7 end local 5 49: StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.table.Column[] java.util.ArrayList int[] top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 26
end local 4 50: StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.table.Column[] java.util.ArrayList
StackMap stack:
aload 2
arraylength
iconst_1
if_icmpne 54
aload 2
iconst_0
aaload
invokevirtual org.h2.table.Column.getColumnId:()I
iconst_m1
if_icmpne 54
51: aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.table.Table.getScanIndex:(Lorg/h2/engine/Session;)Lorg/h2/index/Index;
astore 4
start local 4 52: aload 4
invokeinterface org.h2.index.Index.isRowIdIndex:()Z
ifeq 54
53: aload 4
areturn
end local 4 54: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 55 0 this Lorg/h2/command/dml/Select;
3 55 1 sortColumns Ljava/util/ArrayList<Lorg/h2/table/Column;>;
5 17 2 idx I
8 17 6 expr Lorg/h2/expression/Expression;
14 17 7 exprCol Lorg/h2/expression/ExpressionColumn;
20 55 2 sortCols [Lorg/h2/table/Column;
23 55 3 list Ljava/util/ArrayList<Lorg/h2/index/Index;>;
25 50 4 sortTypes [I
27 49 5 index Lorg/h2/index/Index;
32 49 7 indexCols [Lorg/h2/table/IndexColumn;
35 49 8 ok Z
36 47 9 j I
38 45 10 idxCol Lorg/h2/table/IndexColumn;
39 45 11 sortCol Lorg/h2/table/Column;
52 54 4 index Lorg/h2/index/Index;
private void queryDistinct(org.h2.result.ResultTarget, long, long, boolean, boolean);
descriptor: (Lorg/h2/result/ResultTarget;JJZZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=18, args_size=6
start local 0 start local 1 start local 2 start local 4 start local 6 start local 7 0: lload 4
lconst_0
lcmp
ifle 4
lload 2
lconst_0
lcmp
ifle 4
1: lload 4
lload 2
ladd
lstore 4
2: lload 4
lconst_0
lcmp
ifge 4
3: ldc 9223372036854775807
lstore 4
4: StackMap locals:
StackMap stack:
lconst_0
lstore 8
start local 8 5: aload 0
lconst_0
invokevirtual org.h2.command.dml.Select.setCurrentRowNumber:(J)V
6: aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.getIndex:()Lorg/h2/index/Index;
astore 10
start local 10 7: aconst_null
astore 11
start local 11 8: aload 10
invokeinterface org.h2.index.Index.getColumns:()[Lorg/h2/table/Column;
iconst_0
aaload
invokevirtual org.h2.table.Column.getColumnId:()I
istore 12
start local 12 9: aload 0
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.command.dml.Select.getSampleSizeValue:(Lorg/h2/engine/Session;)I
istore 13
start local 13 10: iload 7
ifne 12
11: lconst_0
lstore 2
12: StackMap locals: org.h2.command.dml.Select org.h2.result.ResultTarget long long int int long org.h2.index.Index org.h2.result.SearchRow int int
StackMap stack:
aload 0
lload 8
lconst_1
ladd
dup2
lstore 8
invokevirtual org.h2.command.dml.Select.setCurrentRowNumber:(J)V
13: aload 10
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
aload 11
aconst_null
invokeinterface org.h2.index.Index.findNext:(Lorg/h2/engine/Session;Lorg/h2/result/SearchRow;Lorg/h2/result/SearchRow;)Lorg/h2/index/Cursor;
astore 14
start local 14 14: aload 14
invokeinterface org.h2.index.Cursor.next:()Z
ifne 16
15: goto 31
16: StackMap locals: org.h2.index.Cursor
StackMap stack:
aload 14
invokeinterface org.h2.index.Cursor.getSearchRow:()Lorg/h2/result/SearchRow;
astore 15
start local 15 17: aload 15
iload 12
invokeinterface org.h2.result.SearchRow.getValue:(I)Lorg/h2/value/Value;
astore 16
start local 16 18: aload 11
ifnonnull 20
19: aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
iconst_1
invokevirtual org.h2.table.Table.getTemplateSimpleRow:(Z)Lorg/h2/result/SearchRow;
astore 11
20: StackMap locals: org.h2.result.SearchRow org.h2.value.Value
StackMap stack:
aload 11
iload 12
aload 16
invokeinterface org.h2.result.SearchRow.setValue:(ILorg/h2/value/Value;)V
21: lload 2
lconst_0
lcmp
ifle 24
22: lload 2
lconst_1
lsub
lstore 2
23: goto 12
24: StackMap locals:
StackMap stack:
iconst_1
anewarray org.h2.value.Value
dup
iconst_0
aload 16
aastore
astore 17
start local 17 25: aload 1
aload 17
invokeinterface org.h2.result.ResultTarget.addRow:([Lorg/h2/value/Value;)V
26: aload 0
getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
ifnull 27
aload 0
getfield org.h2.command.dml.Select.sortUsingIndex:Z
ifeq 30
StackMap locals: org.h2.value.Value[]
StackMap stack:
27: lload 4
lconst_0
lcmp
ifle 30
28: lload 8
lload 4
lcmp
iflt 30
iload 6
ifne 30
29: goto 31
30: StackMap locals:
StackMap stack:
iload 13
ifle 12
lload 8
iload 13
i2l
lcmp
iflt 12
end local 17 end local 16 end local 15 end local 14 31: StackMap locals: org.h2.command.dml.Select org.h2.result.ResultTarget long long int int long org.h2.index.Index org.h2.result.SearchRow int int
StackMap stack:
return
end local 13 end local 12 end local 11 end local 10 end local 8 end local 7 end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lorg/h2/command/dml/Select;
0 32 1 result Lorg/h2/result/ResultTarget;
0 32 2 offset J
0 32 4 limitRows J
0 32 6 withTies Z
0 32 7 quickOffset Z
5 32 8 rowNumber J
7 32 10 index Lorg/h2/index/Index;
8 32 11 first Lorg/h2/result/SearchRow;
9 32 12 columnIndex I
10 32 13 sampleSize I
14 31 14 cursor Lorg/h2/index/Cursor;
17 31 15 found Lorg/h2/result/SearchRow;
18 31 16 value Lorg/h2/value/Value;
25 31 17 row [Lorg/h2/value/Value;
MethodParameters:
Name Flags
result
offset
limitRows
withTies
quickOffset
private org.h2.result.LazyResult queryFlat(int, org.h2.result.ResultTarget, long, long, boolean, boolean);
descriptor: (ILorg/h2/result/ResultTarget;JJZZ)Lorg/h2/result/LazyResult;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=13, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 5 start local 7 start local 8 0: lload 5
lconst_0
lcmp
ifle 4
lload 3
lconst_0
lcmp
ifle 4
iload 8
ifne 4
1: lload 5
lload 3
ladd
lstore 5
2: lload 5
lconst_0
lcmp
ifge 4
3: ldc 9223372036854775807
lstore 5
4: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.command.dml.Select.getSampleSizeValue:(Lorg/h2/engine/Session;)I
istore 9
start local 9 5: new org.h2.command.dml.Select$LazyResultQueryFlat
dup
aload 0
aload 0
getfield org.h2.command.dml.Select.expressionArray:[Lorg/h2/expression/Expression;
iload 1
iload 9
6: aload 0
getfield org.h2.command.dml.Select.isForUpdateMvcc:Z
7: invokespecial org.h2.command.dml.Select$LazyResultQueryFlat.<init>:(Lorg/h2/command/dml/Select;[Lorg/h2/expression/Expression;IIZ)V
astore 10
start local 10 8: aload 10
lload 3
iload 8
invokestatic org.h2.command.dml.Select.skipOffset:(Lorg/h2/command/dml/Select$LazyResultSelect;JZ)V
9: aload 2
ifnonnull 11
10: aload 10
areturn
11: StackMap locals: int org.h2.command.dml.Select$LazyResultQueryFlat
StackMap stack:
lload 5
lconst_0
lcmp
iflt 13
aload 0
getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
ifnull 12
aload 0
getfield org.h2.command.dml.Select.sortUsingIndex:Z
ifeq 13
StackMap locals:
StackMap stack:
12: iload 7
ifeq 14
iload 8
ifne 14
13: StackMap locals:
StackMap stack:
ldc 9223372036854775807
lstore 5
14: StackMap locals:
StackMap stack:
aconst_null
astore 11
start local 11 15: goto 18
16: StackMap locals: org.h2.value.Value[]
StackMap stack:
aload 10
invokevirtual org.h2.command.dml.Select$LazyResultQueryFlat.currentRow:()[Lorg/h2/value/Value;
astore 11
17: aload 2
aload 11
invokeinterface org.h2.result.ResultTarget.addRow:([Lorg/h2/value/Value;)V
18: StackMap locals:
StackMap stack:
aload 2
invokeinterface org.h2.result.ResultTarget.getRowCount:()I
i2l
lload 5
lcmp
ifge 19
aload 10
invokevirtual org.h2.command.dml.Select$LazyResultQueryFlat.next:()Z
ifne 16
19: StackMap locals:
StackMap stack:
lload 5
ldc 9223372036854775807
lcmp
ifeq 28
iload 7
ifeq 28
aload 0
getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
ifnull 28
aload 11
ifnull 28
20: aload 11
astore 12
start local 12 21: goto 26
22: StackMap locals: org.h2.value.Value[]
StackMap stack:
aload 10
invokevirtual org.h2.command.dml.Select$LazyResultQueryFlat.currentRow:()[Lorg/h2/value/Value;
astore 11
23: aload 0
getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
aload 12
aload 11
invokevirtual org.h2.result.SortOrder.compare:([Lorg/h2/value/Value;[Lorg/h2/value/Value;)I
ifeq 25
24: goto 27
25: StackMap locals:
StackMap stack:
aload 2
aload 11
invokeinterface org.h2.result.ResultTarget.addRow:([Lorg/h2/value/Value;)V
26: StackMap locals:
StackMap stack:
aload 10
invokevirtual org.h2.command.dml.Select$LazyResultQueryFlat.next:()Z
ifne 22
27: StackMap locals:
StackMap stack:
aload 2
invokeinterface org.h2.result.ResultTarget.limitsWereApplied:()V
end local 12 28: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 11 end local 10 end local 9 end local 8 end local 7 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lorg/h2/command/dml/Select;
0 29 1 columnCount I
0 29 2 result Lorg/h2/result/ResultTarget;
0 29 3 offset J
0 29 5 limitRows J
0 29 7 withTies Z
0 29 8 quickOffset Z
5 29 9 sampleSize I
8 29 10 lazyResult Lorg/h2/command/dml/Select$LazyResultQueryFlat;
15 29 11 row [Lorg/h2/value/Value;
21 28 12 expected [Lorg/h2/value/Value;
MethodParameters:
Name Flags
columnCount
result
offset
limitRows
withTies
quickOffset
private static void skipOffset(org.h2.command.dml.Select$LazyResultSelect, long, boolean);
descriptor: (Lorg/h2/command/dml/Select$LazyResultSelect;JZ)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 3 0: iload 3
ifeq 4
1: goto 3
2: StackMap locals:
StackMap stack:
lload 1
lconst_1
lsub
lstore 1
3: StackMap locals:
StackMap stack:
lload 1
lconst_0
lcmp
ifle 4
aload 0
invokevirtual org.h2.command.dml.Select$LazyResultSelect.skip:()Z
ifne 2
4: StackMap locals:
StackMap stack:
return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 lazyResult Lorg/h2/command/dml/Select$LazyResultSelect;
0 5 1 offset J
0 5 3 quickOffset Z
MethodParameters:
Name Flags
lazyResult
offset
quickOffset
private void queryQuick(int, org.h2.result.ResultTarget, boolean);
descriptor: (ILorg/h2/result/ResultTarget;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 1
anewarray org.h2.value.Value
astore 4
start local 4 1: iconst_0
istore 5
start local 5 2: goto 6
3: StackMap locals: org.h2.value.Value[] int
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
iload 5
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Expression
astore 6
start local 6 4: aload 4
iload 5
aload 6
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.expression.Expression.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
aastore
end local 6 5: iinc 5 1
StackMap locals:
StackMap stack:
6: iload 5
iload 1
if_icmplt 3
end local 5 7: iload 3
ifne 9
8: aload 2
aload 4
invokeinterface org.h2.result.ResultTarget.addRow:([Lorg/h2/value/Value;)V
9: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/h2/command/dml/Select;
0 10 1 columnCount I
0 10 2 result Lorg/h2/result/ResultTarget;
0 10 3 skipResult Z
1 10 4 row [Lorg/h2/value/Value;
2 7 5 i I
4 5 6 expr Lorg/h2/expression/Expression;
MethodParameters:
Name Flags
columnCount
result
skipResult
public org.h2.result.ResultInterface queryMeta();
descriptor: ()Lorg/h2/result/ResultInterface;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
invokevirtual org.h2.engine.Database.getResultFactory:()Lorg/h2/result/LocalResultFactory;
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
aload 0
getfield org.h2.command.dml.Select.expressionArray:[Lorg/h2/expression/Expression;
1: aload 0
getfield org.h2.command.dml.Select.visibleColumnCount:I
2: invokevirtual org.h2.result.LocalResultFactory.create:(Lorg/h2/engine/Session;[Lorg/h2/expression/Expression;I)Lorg/h2/result/LocalResult;
astore 1
start local 1 3: aload 1
invokeinterface org.h2.result.LocalResult.done:()V
4: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/h2/command/dml/Select;
3 5 1 result Lorg/h2/result/LocalResult;
protected org.h2.result.ResultInterface queryWithoutCache(int, org.h2.result.ResultTarget);
descriptor: (ILorg/h2/result/ResultTarget;)Lorg/h2/result/ResultInterface;
flags: (0x0004) ACC_PROTECTED
Code:
stack=9, locals=16, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
invokevirtual org.h2.command.dml.Select.disableLazyForJoinSubqueries:(Lorg/h2/table/TableFilter;)V
1: iload 1
ifne 2
iconst_m1
goto 3
StackMap locals:
StackMap stack:
2: iload 1
StackMap locals:
StackMap stack: int
3: istore 3
start local 3 4: aload 0
getfield org.h2.command.dml.Select.limitExpr:Lorg/h2/expression/Expression;
ifnull 14
5: aload 0
getfield org.h2.command.dml.Select.limitExpr:Lorg/h2/expression/Expression;
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.expression.Expression.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
astore 4
start local 4 6: aload 4
getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
if_acmpne 7
iconst_m1
goto 8
StackMap locals: int org.h2.value.Value
StackMap stack:
7: aload 4
invokevirtual org.h2.value.Value.getInt:()I
StackMap locals:
StackMap stack: int
8: istore 5
start local 5 9: iload 3
ifge 12
10: iload 5
istore 3
11: goto 14
StackMap locals: int
StackMap stack:
12: iload 5
iflt 14
13: iload 5
iload 3
invokestatic java.lang.Math.min:(II)I
istore 3
end local 5 end local 4 14: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.fetchPercent:Z
istore 4
start local 4 15: iload 4
ifeq 20
16: iload 3
iflt 17
iload 3
bipush 100
if_icmple 18
17: StackMap locals: int
StackMap stack:
ldc "FETCH PERCENT"
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic org.h2.message.DbException.getInvalidValueException:(Ljava/lang/String;Ljava/lang/Object;)Lorg/h2/message/DbException;
athrow
18: StackMap locals:
StackMap stack:
iload 3
ifne 20
19: iconst_0
istore 4
20: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.offsetExpr:Lorg/h2/expression/Expression;
ifnull 25
21: aload 0
getfield org.h2.command.dml.Select.offsetExpr:Lorg/h2/expression/Expression;
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.expression.Expression.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
invokevirtual org.h2.value.Value.getLong:()J
lstore 5
start local 5 22: lload 5
lconst_0
lcmp
ifge 26
23: lconst_0
lstore 5
24: goto 26
end local 5 25: StackMap locals:
StackMap stack:
lconst_0
lstore 5
start local 5 26: StackMap locals: long
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.engine.Session.isLazyQueryExecution:()Z
ifeq 30
27: aload 2
ifnonnull 30
aload 0
getfield org.h2.command.dml.Select.isForUpdate:Z
ifne 30
aload 0
getfield org.h2.command.dml.Select.isQuickAggregateQuery:Z
ifne 30
28: iload 3
ifeq 30
iload 4
ifne 30
aload 0
getfield org.h2.command.dml.Select.withTies:Z
ifne 30
lload 5
lconst_0
lcmp
ifne 30
aload 0
invokevirtual org.h2.command.dml.Select.isReadOnly:()Z
ifeq 30
29: iconst_1
goto 31
StackMap locals:
StackMap stack:
30: iconst_0
StackMap locals:
StackMap stack: int
31: istore 7
start local 7 32: aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
istore 8
start local 8 33: aconst_null
astore 9
start local 9 34: iload 7
ifne 37
aload 2
ifnull 36
35: aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
invokevirtual org.h2.engine.Database.getSettings:()Lorg/h2/engine/DbSettings;
getfield org.h2.engine.DbSettings.optimizeInsertFromSelect:Z
ifne 37
36: StackMap locals: int int org.h2.result.LocalResult
StackMap stack:
aload 0
aload 9
invokevirtual org.h2.command.dml.Select.createLocalResult:(Lorg/h2/result/LocalResult;)Lorg/h2/result/LocalResult;
astore 9
37: StackMap locals:
StackMap stack:
iload 4
ifeq 38
iconst_0
goto 39
StackMap locals:
StackMap stack:
38: iconst_1
StackMap locals:
StackMap stack: int
39: istore 10
start local 10 40: aload 0
getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
ifnull 45
aload 0
getfield org.h2.command.dml.Select.sortUsingIndex:Z
ifeq 41
aload 0
invokevirtual org.h2.command.dml.Select.isAnyDistinct:()Z
ifeq 45
41: StackMap locals: int
StackMap stack:
aload 0
aload 9
invokevirtual org.h2.command.dml.Select.createLocalResult:(Lorg/h2/result/LocalResult;)Lorg/h2/result/LocalResult;
astore 9
42: aload 9
aload 0
getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
invokeinterface org.h2.result.LocalResult.setSortOrder:(Lorg/h2/result/SortOrder;)V
43: aload 0
getfield org.h2.command.dml.Select.sortUsingIndex:Z
ifne 45
44: iconst_0
istore 10
45: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.distinct:Z
ifeq 51
46: aload 0
getfield org.h2.command.dml.Select.isDistinctQuery:Z
ifne 55
47: iconst_0
istore 10
48: aload 0
aload 9
invokevirtual org.h2.command.dml.Select.createLocalResult:(Lorg/h2/result/LocalResult;)Lorg/h2/result/LocalResult;
astore 9
49: aload 9
invokeinterface org.h2.result.LocalResult.setDistinct:()V
50: goto 55
StackMap locals:
StackMap stack:
51: aload 0
getfield org.h2.command.dml.Select.distinctExpressions:[Lorg/h2/expression/Expression;
ifnull 55
52: iconst_0
istore 10
53: aload 0
aload 9
invokevirtual org.h2.command.dml.Select.createLocalResult:(Lorg/h2/result/LocalResult;)Lorg/h2/result/LocalResult;
astore 9
54: aload 9
aload 0
getfield org.h2.command.dml.Select.distinctIndexes:[I
invokeinterface org.h2.result.LocalResult.setDistinct:([I)V
55: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.isWindowQuery:Z
ifne 56
aload 0
getfield org.h2.command.dml.Select.isGroupQuery:Z
ifeq 57
aload 0
getfield org.h2.command.dml.Select.isGroupSortedQuery:Z
ifne 57
56: StackMap locals:
StackMap stack:
aload 0
aload 9
invokevirtual org.h2.command.dml.Select.createLocalResult:(Lorg/h2/result/LocalResult;)Lorg/h2/result/LocalResult;
astore 9
57: StackMap locals:
StackMap stack:
iload 7
ifne 59
iload 3
ifge 58
lload 5
lconst_0
lcmp
ifle 59
58: StackMap locals:
StackMap stack:
aload 0
aload 9
invokevirtual org.h2.command.dml.Select.createLocalResult:(Lorg/h2/result/LocalResult;)Lorg/h2/result/LocalResult;
astore 9
59: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.table.TableFilter.startQuery:(Lorg/h2/engine/Session;)V
60: aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.reset:()V
61: aload 0
getfield org.h2.command.dml.Select.isForUpdate:Z
ifeq 62
aload 0
getfield org.h2.command.dml.Select.isForUpdateMvcc:Z
ifne 62
iconst_1
goto 63
StackMap locals:
StackMap stack:
62: iconst_0
StackMap locals:
StackMap stack: int
63: istore 11
start local 11 64: aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
iload 11
iload 11
invokevirtual org.h2.table.TableFilter.lock:(Lorg/h2/engine/Session;ZZ)V
65: aload 9
ifnull 66
aload 9
goto 67
StackMap locals: int
StackMap stack:
66: aload 2
StackMap locals:
StackMap stack: org.h2.result.ResultTarget
67: astore 12
start local 12 68: iload 7
aload 12
ifnonnull 69
iconst_1
goto 70
StackMap locals: org.h2.command.dml.Select int org.h2.result.ResultTarget int int long int int org.h2.result.LocalResult int int org.h2.result.ResultTarget
StackMap stack: int
69: iconst_0
StackMap locals: org.h2.command.dml.Select int org.h2.result.ResultTarget int int long int int org.h2.result.LocalResult int int org.h2.result.ResultTarget
StackMap stack: int int
70: iand
istore 7
71: aconst_null
astore 13
start local 13 72: iload 3
ifeq 106
73: iload 4
ifeq 74
iconst_m1
goto 75
StackMap locals: org.h2.result.LazyResult
StackMap stack:
74: iload 3
StackMap locals:
StackMap stack: int
75: istore 14
start local 14 76: aload 0
getfield org.h2.command.dml.Select.isQuickAggregateQuery:Z
ifeq 81
77: aload 0
iload 8
aload 12
iload 10
ifeq 78
lload 5
lconst_0
lcmp
ifle 78
iconst_1
goto 79
StackMap locals: org.h2.command.dml.Select int org.h2.result.ResultTarget int int long int int org.h2.result.LocalResult int int org.h2.result.ResultTarget org.h2.result.LazyResult int
StackMap stack: org.h2.command.dml.Select int org.h2.result.ResultTarget
78: iconst_0
StackMap locals: org.h2.command.dml.Select int org.h2.result.ResultTarget int int long int int org.h2.result.LocalResult int int org.h2.result.ResultTarget org.h2.result.LazyResult int
StackMap stack: org.h2.command.dml.Select int org.h2.result.ResultTarget int
79: invokevirtual org.h2.command.dml.Select.queryQuick:(ILorg/h2/result/ResultTarget;Z)V
80: goto 97
StackMap locals:
StackMap stack:
81: aload 0
getfield org.h2.command.dml.Select.isWindowQuery:Z
ifeq 87
82: aload 0
getfield org.h2.command.dml.Select.isGroupQuery:Z
ifeq 85
83: aload 0
iload 8
aload 9
lload 5
iload 10
invokevirtual org.h2.command.dml.Select.queryGroupWindow:(ILorg/h2/result/LocalResult;JZ)V
84: goto 97
85: StackMap locals:
StackMap stack:
aload 0
iload 8
aload 9
lload 5
iload 10
invokevirtual org.h2.command.dml.Select.queryWindow:(ILorg/h2/result/LocalResult;JZ)V
86: goto 97
StackMap locals:
StackMap stack:
87: aload 0
getfield org.h2.command.dml.Select.isGroupQuery:Z
ifeq 93
88: aload 0
getfield org.h2.command.dml.Select.isGroupSortedQuery:Z
ifeq 91
89: aload 0
iload 8
aload 12
lload 5
iload 10
invokevirtual org.h2.command.dml.Select.queryGroupSorted:(ILorg/h2/result/ResultTarget;JZ)Lorg/h2/result/LazyResult;
astore 13
90: goto 97
91: StackMap locals:
StackMap stack:
aload 0
iload 8
aload 9
lload 5
iload 10
invokevirtual org.h2.command.dml.Select.queryGroup:(ILorg/h2/result/LocalResult;JZ)V
92: goto 97
StackMap locals:
StackMap stack:
93: aload 0
getfield org.h2.command.dml.Select.isDistinctQuery:Z
ifeq 96
94: aload 0
aload 12
lload 5
iload 14
i2l
aload 0
getfield org.h2.command.dml.Select.withTies:Z
iload 10
invokevirtual org.h2.command.dml.Select.queryDistinct:(Lorg/h2/result/ResultTarget;JJZZ)V
95: goto 97
96: StackMap locals:
StackMap stack:
aload 0
iload 8
aload 12
lload 5
iload 14
i2l
aload 0
getfield org.h2.command.dml.Select.withTies:Z
iload 10
invokevirtual org.h2.command.dml.Select.queryFlat:(ILorg/h2/result/ResultTarget;JJZZ)Lorg/h2/result/LazyResult;
astore 13
97: StackMap locals:
StackMap stack:
iload 10
ifeq 104
98: lconst_0
lstore 5
99: goto 104
StackMap locals:
StackMap stack: java.lang.Throwable
100: astore 15
101: iload 7
ifne 103
102: aload 0
invokevirtual org.h2.command.dml.Select.resetJoinBatchAfterQuery:()V
103: StackMap locals: java.lang.Throwable
StackMap stack:
aload 15
athrow
104: StackMap locals:
StackMap stack:
iload 7
ifne 106
105: aload 0
invokevirtual org.h2.command.dml.Select.resetJoinBatchAfterQuery:()V
end local 14 106: StackMap locals:
StackMap stack:
getstatic org.h2.command.dml.Select.$assertionsDisabled:Z
ifne 109
iload 7
aload 13
ifnull 107
iconst_1
goto 108
StackMap locals:
StackMap stack: int
107: iconst_0
StackMap locals: org.h2.command.dml.Select int org.h2.result.ResultTarget int int long int int org.h2.result.LocalResult int int org.h2.result.ResultTarget org.h2.result.LazyResult
StackMap stack: int int
108: if_icmpeq 109
new java.lang.AssertionError
dup
iload 7
invokespecial java.lang.AssertionError.<init>:(Z)V
athrow
109: StackMap locals:
StackMap stack:
aload 13
ifnull 115
110: iload 3
ifle 112
111: aload 13
iload 3
invokevirtual org.h2.result.LazyResult.setLimit:(I)V
112: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.randomAccessResult:Z
ifeq 114
113: aload 0
aload 13
invokevirtual org.h2.command.dml.Select.convertToDistinct:(Lorg/h2/result/ResultInterface;)Lorg/h2/result/LocalResult;
areturn
114: StackMap locals:
StackMap stack:
aload 13
areturn
115: StackMap locals:
StackMap stack:
lload 5
lconst_0
lcmp
ifeq 119
116: lload 5
ldc 2147483647
lcmp
ifle 118
117: ldc "OFFSET"
lload 5
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokestatic org.h2.message.DbException.getInvalidValueException:(Ljava/lang/String;Ljava/lang/Object;)Lorg/h2/message/DbException;
athrow
118: StackMap locals:
StackMap stack:
aload 9
lload 5
l2i
invokeinterface org.h2.result.LocalResult.setOffset:(I)V
119: StackMap locals:
StackMap stack:
iload 3
iflt 124
120: aload 9
iload 3
invokeinterface org.h2.result.LocalResult.setLimit:(I)V
121: aload 9
iload 4
invokeinterface org.h2.result.LocalResult.setFetchPercent:(Z)V
122: aload 0
getfield org.h2.command.dml.Select.withTies:Z
ifeq 124
123: aload 9
aload 0
getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
invokeinterface org.h2.result.LocalResult.setWithTies:(Lorg/h2/result/SortOrder;)V
124: StackMap locals:
StackMap stack:
aload 9
ifnull 135
125: aload 9
invokeinterface org.h2.result.LocalResult.done:()V
126: aload 0
getfield org.h2.command.dml.Select.randomAccessResult:Z
ifeq 128
aload 0
getfield org.h2.command.dml.Select.distinct:Z
ifne 128
127: aload 0
aload 9
invokevirtual org.h2.command.dml.Select.convertToDistinct:(Lorg/h2/result/ResultInterface;)Lorg/h2/result/LocalResult;
astore 9
128: StackMap locals:
StackMap stack:
aload 2
ifnull 134
129: goto 131
130: StackMap locals:
StackMap stack:
aload 2
aload 9
invokeinterface org.h2.result.LocalResult.currentRow:()[Lorg/h2/value/Value;
invokeinterface org.h2.result.ResultTarget.addRow:([Lorg/h2/value/Value;)V
131: StackMap locals:
StackMap stack:
aload 9
invokeinterface org.h2.result.LocalResult.next:()Z
ifne 130
132: aload 9
invokeinterface org.h2.result.LocalResult.close:()V
133: aconst_null
areturn
134: StackMap locals:
StackMap stack:
aload 9
areturn
135: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 136 0 this Lorg/h2/command/dml/Select;
0 136 1 maxRows I
0 136 2 target Lorg/h2/result/ResultTarget;
4 136 3 limitRows I
6 14 4 v Lorg/h2/value/Value;
9 14 5 l I
15 136 4 fetchPercent Z
22 25 5 offset J
26 136 5 offset J
32 136 7 lazy Z
33 136 8 columnCount I
34 136 9 result Lorg/h2/result/LocalResult;
40 136 10 quickOffset Z
64 136 11 exclusive Z
68 136 12 to Lorg/h2/result/ResultTarget;
72 136 13 lazyResult Lorg/h2/result/LazyResult;
76 106 14 limit I
Exception table:
from to target type
76 100 100 any
MethodParameters:
Name Flags
maxRows
target
private void disableLazyForJoinSubqueries(org.h2.table.TableFilter);
descriptor: (Lorg/h2/table/TableFilter;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.engine.Session.isLazyQueryExecution:()Z
ifeq 2
1: aload 1
new org.h2.command.dml.Select$2
dup
aload 0
aload 1
invokespecial org.h2.command.dml.Select$2.<init>:(Lorg/h2/command/dml/Select;Lorg/h2/table/TableFilter;)V
invokevirtual org.h2.table.TableFilter.visit:(Lorg/h2/table/TableFilter$TableFilterVisitor;)V
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/command/dml/Select;
0 3 1 top Lorg/h2/table/TableFilter;
MethodParameters:
Name Flags
top final
void resetJoinBatchAfterQuery();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.h2.command.dml.Select.getJoinBatch:()Lorg/h2/table/JoinBatch;
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
iconst_0
invokevirtual org.h2.table.JoinBatch.reset:(Z)V
3: StackMap locals: org.h2.table.JoinBatch
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/command/dml/Select;
1 4 1 jb Lorg/h2/table/JoinBatch;
private org.h2.result.LocalResult createLocalResult(org.h2.result.LocalResult);
descriptor: (Lorg/h2/result/LocalResult;)Lorg/h2/result/LocalResult;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 1
aload 1
goto 4
StackMap locals:
StackMap stack:
1: aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
invokevirtual org.h2.engine.Database.getResultFactory:()Lorg/h2/result/LocalResultFactory;
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
aload 0
getfield org.h2.command.dml.Select.expressionArray:[Lorg/h2/expression/Expression;
2: aload 0
getfield org.h2.command.dml.Select.visibleColumnCount:I
3: invokevirtual org.h2.result.LocalResultFactory.create:(Lorg/h2/engine/Session;[Lorg/h2/expression/Expression;I)Lorg/h2/result/LocalResult;
StackMap locals:
StackMap stack: org.h2.result.LocalResult
4: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/h2/command/dml/Select;
0 5 1 old Lorg/h2/result/LocalResult;
MethodParameters:
Name Flags
old
private org.h2.result.LocalResult convertToDistinct(org.h2.result.ResultInterface);
descriptor: (Lorg/h2/result/ResultInterface;)Lorg/h2/result/LocalResult;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
invokevirtual org.h2.engine.Database.getResultFactory:()Lorg/h2/result/LocalResultFactory;
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
1: aload 0
getfield org.h2.command.dml.Select.expressionArray:[Lorg/h2/expression/Expression;
aload 0
getfield org.h2.command.dml.Select.visibleColumnCount:I
2: invokevirtual org.h2.result.LocalResultFactory.create:(Lorg/h2/engine/Session;[Lorg/h2/expression/Expression;I)Lorg/h2/result/LocalResult;
astore 2
start local 2 3: aload 2
invokeinterface org.h2.result.LocalResult.setDistinct:()V
4: aload 1
invokeinterface org.h2.result.ResultInterface.reset:()V
5: goto 7
6: StackMap locals: org.h2.result.LocalResult
StackMap stack:
aload 2
aload 1
invokeinterface org.h2.result.ResultInterface.currentRow:()[Lorg/h2/value/Value;
invokeinterface org.h2.result.LocalResult.addRow:([Lorg/h2/value/Value;)V
7: StackMap locals:
StackMap stack:
aload 1
invokeinterface org.h2.result.ResultInterface.next:()Z
ifne 6
8: aload 1
invokeinterface org.h2.result.ResultInterface.close:()V
9: aload 2
invokeinterface org.h2.result.LocalResult.done:()V
10: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/h2/command/dml/Select;
0 11 1 result Lorg/h2/result/ResultInterface;
3 11 2 distinctResult Lorg/h2/result/LocalResult;
MethodParameters:
Name Flags
result
private void expandColumnList();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=12, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 41
2: StackMap locals: int
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
iload 1
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Expression
astore 2
start local 2 3: aload 2
instanceof org.h2.expression.Wildcard
ifne 6
4: iinc 1 1
5: goto 41
6: StackMap locals: org.h2.expression.Expression
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
iload 1
invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
pop
7: aload 2
checkcast org.h2.expression.Wildcard
astore 3
start local 3 8: aload 3
invokevirtual org.h2.expression.Wildcard.getTableAlias:()Ljava/lang/String;
astore 4
start local 4 9: aload 3
invokevirtual org.h2.expression.Wildcard.getExceptColumns:()Ljava/util/ArrayList;
ifnull 10
iconst_1
goto 11
StackMap locals: org.h2.expression.Wildcard java.lang.String
StackMap stack:
10: iconst_0
StackMap locals:
StackMap stack: int
11: istore 5
start local 5 12: aconst_null
astore 6
start local 6 13: aload 4
ifnonnull 25
14: iload 5
ifeq 20
15: aload 0
getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 8
goto 18
StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression org.h2.expression.Wildcard java.lang.String int java.util.HashMap top java.util.Iterator
StackMap stack:
16: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.table.TableFilter
astore 7
start local 7 17: aload 3
aload 7
iconst_1
iconst_0
invokevirtual org.h2.expression.Wildcard.mapColumns:(Lorg/h2/table/ColumnResolver;II)V
end local 7 18: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 16
19: aload 3
invokevirtual org.h2.expression.Wildcard.mapExceptColumns:()Ljava/util/HashMap;
astore 6
20: StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression org.h2.expression.Wildcard java.lang.String int java.util.HashMap
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 8
goto 23
StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression org.h2.expression.Wildcard java.lang.String int java.util.HashMap top java.util.Iterator
StackMap stack:
21: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.table.TableFilter
astore 7
start local 7 22: aload 0
aload 7
iload 1
aload 6
invokevirtual org.h2.command.dml.Select.expandColumnList:(Lorg/h2/table/TableFilter;ILjava/util/HashMap;)I
istore 1
end local 7 23: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 21
24: goto 41
25: StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression org.h2.expression.Wildcard java.lang.String int java.util.HashMap
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
astore 7
start local 7 26: aload 3
invokevirtual org.h2.expression.Wildcard.getSchemaName:()Ljava/lang/String;
astore 8
start local 8 27: aconst_null
astore 9
start local 9 28: aload 0
getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 11
goto 37
StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression org.h2.expression.Wildcard java.lang.String int java.util.HashMap org.h2.engine.Database java.lang.String org.h2.table.TableFilter top java.util.Iterator
StackMap stack:
29: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.table.TableFilter
astore 10
start local 10 30: aload 7
aload 4
aload 10
invokevirtual org.h2.table.TableFilter.getTableAlias:()Ljava/lang/String;
invokevirtual org.h2.engine.Database.equalsIdentifiers:(Ljava/lang/String;Ljava/lang/String;)Z
ifeq 37
31: aload 8
ifnull 32
aload 7
aload 8
aload 10
invokevirtual org.h2.table.TableFilter.getSchemaName:()Ljava/lang/String;
invokevirtual org.h2.engine.Database.equalsIdentifiers:(Ljava/lang/String;Ljava/lang/String;)Z
ifeq 37
32: StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression org.h2.expression.Wildcard java.lang.String int java.util.HashMap org.h2.engine.Database java.lang.String org.h2.table.TableFilter org.h2.table.TableFilter java.util.Iterator
StackMap stack:
iload 5
ifeq 35
33: aload 3
aload 10
iconst_1
iconst_0
invokevirtual org.h2.expression.Wildcard.mapColumns:(Lorg/h2/table/ColumnResolver;II)V
34: aload 3
invokevirtual org.h2.expression.Wildcard.mapExceptColumns:()Ljava/util/HashMap;
astore 6
35: StackMap locals:
StackMap stack:
aload 10
astore 9
36: goto 38
end local 10 37: StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression org.h2.expression.Wildcard java.lang.String int java.util.HashMap org.h2.engine.Database java.lang.String org.h2.table.TableFilter top java.util.Iterator
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 29
38: StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression org.h2.expression.Wildcard java.lang.String int java.util.HashMap org.h2.engine.Database java.lang.String org.h2.table.TableFilter
StackMap stack:
aload 9
ifnonnull 40
39: ldc 42102
aload 4
invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
athrow
40: StackMap locals:
StackMap stack:
aload 0
aload 9
iload 1
aload 6
invokevirtual org.h2.command.dml.Select.expandColumnList:(Lorg/h2/table/TableFilter;ILjava/util/HashMap;)I
istore 1
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 41: StackMap locals: org.h2.command.dml.Select int
StackMap stack:
iload 1
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
if_icmplt 2
end local 1 42: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lorg/h2/command/dml/Select;
1 42 1 i I
3 41 2 expr Lorg/h2/expression/Expression;
8 41 3 w Lorg/h2/expression/Wildcard;
9 41 4 tableAlias Ljava/lang/String;
12 41 5 hasExceptColumns Z
13 41 6 exceptTableColumns Ljava/util/HashMap<Lorg/h2/table/Column;Lorg/h2/expression/ExpressionColumn;>;
17 18 7 filter Lorg/h2/table/TableFilter;
22 23 7 filter Lorg/h2/table/TableFilter;
26 41 7 db Lorg/h2/engine/Database;
27 41 8 schemaName Ljava/lang/String;
28 41 9 filter Lorg/h2/table/TableFilter;
30 37 10 f Lorg/h2/table/TableFilter;
private int expandColumnList(org.h2.table.TableFilter, int, java.util.HashMap<org.h2.table.Column, org.h2.expression.ExpressionColumn>);
descriptor: (Lorg/h2/table/TableFilter;ILjava/util/HashMap;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual org.h2.table.TableFilter.getTableAlias:()Ljava/lang/String;
astore 4
start local 4 1: aload 1
invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.getColumns:()[Lorg/h2/table/Column;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 17
StackMap locals: org.h2.command.dml.Select org.h2.table.TableFilter int java.util.HashMap java.lang.String top int int org.h2.table.Column[]
StackMap stack:
2: aload 8
iload 6
aaload
astore 5
start local 5 3: aload 3
ifnull 5
aload 3
aload 5
invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
ifnull 5
4: goto 16
5: StackMap locals: org.h2.command.dml.Select org.h2.table.TableFilter int java.util.HashMap java.lang.String org.h2.table.Column int int org.h2.table.Column[]
StackMap stack:
aload 5
invokevirtual org.h2.table.Column.getVisible:()Z
ifne 7
6: goto 16
7: StackMap locals:
StackMap stack:
aload 1
aload 5
invokevirtual org.h2.table.TableFilter.isNaturalJoinColumn:(Lorg/h2/table/Column;)Z
ifeq 9
8: goto 16
9: StackMap locals:
StackMap stack:
aload 1
aload 5
invokevirtual org.h2.table.TableFilter.getDerivedColumnName:(Lorg/h2/table/Column;)Ljava/lang/String;
astore 9
start local 9 10: new org.h2.expression.ExpressionColumn
dup
11: aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
aconst_null
aload 4
aload 9
ifnull 12
aload 9
goto 13
StackMap locals: org.h2.command.dml.Select org.h2.table.TableFilter int java.util.HashMap java.lang.String org.h2.table.Column int int org.h2.table.Column[] java.lang.String
StackMap stack: new 10 new 10 org.h2.engine.Database null java.lang.String
12: aload 5
invokevirtual org.h2.table.Column.getName:()Ljava/lang/String;
StackMap locals: org.h2.command.dml.Select org.h2.table.TableFilter int java.util.HashMap java.lang.String org.h2.table.Column int int org.h2.table.Column[] java.lang.String
StackMap stack: new 10 new 10 org.h2.engine.Database null java.lang.String java.lang.String
13: iconst_0
14: invokespecial org.h2.expression.ExpressionColumn.<init>:(Lorg/h2/engine/Database;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
astore 10
start local 10 15: aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
iload 2
iinc 2 1
aload 10
invokevirtual java.util.ArrayList.add:(ILjava/lang/Object;)V
end local 10 end local 9 end local 5 16: StackMap locals: org.h2.command.dml.Select org.h2.table.TableFilter int java.util.HashMap java.lang.String top int int org.h2.table.Column[]
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
17: iload 6
iload 7
if_icmplt 2
18: iload 2
ireturn
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/command/dml/Select;
0 19 1 filter Lorg/h2/table/TableFilter;
0 19 2 index I
0 19 3 except Ljava/util/HashMap<Lorg/h2/table/Column;Lorg/h2/expression/ExpressionColumn;>;
1 19 4 alias Ljava/lang/String;
3 16 5 c Lorg/h2/table/Column;
10 16 9 name Ljava/lang/String;
15 16 10 ec Lorg/h2/expression/ExpressionColumn;
Signature: (Lorg/h2/table/TableFilter;ILjava/util/HashMap<Lorg/h2/table/Column;Lorg/h2/expression/ExpressionColumn;>;)I
MethodParameters:
Name Flags
filter
index
except
public void init();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=11, args_size=1
start local 0 0: aload 0
getfield org.h2.command.dml.Select.checkInit:Z
ifeq 2
1: invokestatic org.h2.message.DbException.throwInternalError:()Ljava/lang/RuntimeException;
pop
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.command.dml.Select.expandColumnList:()V
3: aload 0
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
putfield org.h2.command.dml.Select.visibleColumnCount:I
4: aload 0
getfield org.h2.command.dml.Select.distinctExpressions:[Lorg/h2/expression/Expression;
ifnonnull 5
aload 0
getfield org.h2.command.dml.Select.orderList:Ljava/util/ArrayList;
ifnonnull 5
aload 0
getfield org.h2.command.dml.Select.group:Ljava/util/ArrayList;
ifnull 15
5: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
aload 0
getfield org.h2.command.dml.Select.visibleColumnCount:I
invokespecial java.util.ArrayList.<init>:(I)V
astore 1
start local 1 6: iconst_0
istore 2
start local 2 7: goto 13
8: StackMap locals: java.util.ArrayList int
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
iload 2
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Expression
astore 3
start local 3 9: aload 3
invokevirtual org.h2.expression.Expression.getNonAliasExpression:()Lorg/h2/expression/Expression;
astore 3
10: aload 3
iconst_1
invokevirtual org.h2.expression.Expression.getSQL:(Z)Ljava/lang/String;
astore 4
start local 4 11: aload 1
aload 4
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 4 end local 3 12: iinc 2 1
StackMap locals:
StackMap stack:
13: iload 2
aload 0
getfield org.h2.command.dml.Select.visibleColumnCount:I
if_icmplt 8
end local 2 14: goto 16
end local 1 15: StackMap locals:
StackMap stack:
aconst_null
astore 1
start local 1 16: StackMap locals: java.util.ArrayList
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.distinctExpressions:[Lorg/h2/expression/Expression;
ifnull 35
17: new java.util.BitSet
dup
invokespecial java.util.BitSet.<init>:()V
astore 2
start local 2 18: aload 0
getfield org.h2.command.dml.Select.distinctExpressions:[Lorg/h2/expression/Expression;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 24
StackMap locals: org.h2.command.dml.Select java.util.ArrayList java.util.BitSet top int int org.h2.expression.Expression[]
StackMap stack:
19: aload 6
iload 4
aaload
astore 3
start local 3 20: aload 2
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
aload 1
aload 3
aload 0
getfield org.h2.command.dml.Select.visibleColumnCount:I
iconst_0
21: aload 0
getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
22: invokestatic org.h2.command.dml.Select.initExpression:(Lorg/h2/engine/Session;Ljava/util/ArrayList;Ljava/util/ArrayList;Lorg/h2/expression/Expression;IZLjava/util/ArrayList;)I
invokevirtual java.util.BitSet.set:(I)V
end local 3 23: iinc 4 1
StackMap locals:
StackMap stack:
24: iload 4
iload 5
if_icmplt 19
25: iconst_0
istore 3
start local 3 26: aload 2
invokevirtual java.util.BitSet.cardinality:()I
istore 4
start local 4 27: aload 0
iload 4
newarray 10
putfield org.h2.command.dml.Select.distinctIndexes:[I
28: iconst_0
istore 5
start local 5 29: goto 34
30: StackMap locals: org.h2.command.dml.Select java.util.ArrayList java.util.BitSet int int int
StackMap stack:
aload 2
iload 3
invokevirtual java.util.BitSet.nextSetBit:(I)I
istore 3
31: aload 0
getfield org.h2.command.dml.Select.distinctIndexes:[I
iload 5
iload 3
iastore
32: iinc 3 1
33: iinc 5 1
StackMap locals:
StackMap stack:
34: iload 5
iload 4
if_icmplt 30
end local 5 end local 4 end local 3 end local 2 35: StackMap locals: org.h2.command.dml.Select java.util.ArrayList
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.orderList:Ljava/util/ArrayList;
ifnull 39
36: aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
aload 1
aload 0
getfield org.h2.command.dml.Select.orderList:Ljava/util/ArrayList;
37: aload 0
getfield org.h2.command.dml.Select.visibleColumnCount:I
aload 0
invokevirtual org.h2.command.dml.Select.isAnyDistinct:()Z
aload 0
getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
38: invokestatic org.h2.command.dml.Select.initOrder:(Lorg/h2/engine/Session;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/List;IZLjava/util/ArrayList;)V
39: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
putfield org.h2.command.dml.Select.distinctColumnCount:I
40: aload 0
getfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
ifnull 45
41: aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
aload 0
getfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
42: aload 0
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
iconst_1
isub
putfield org.h2.command.dml.Select.havingIndex:I
43: aload 0
aconst_null
putfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
44: goto 46
45: StackMap locals:
StackMap stack:
aload 0
iconst_m1
putfield org.h2.command.dml.Select.havingIndex:I
46: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
ifnull 51
47: aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
aload 0
getfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
48: aload 0
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
iconst_1
isub
putfield org.h2.command.dml.Select.qualifyIndex:I
49: aload 0
aconst_null
putfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
50: goto 52
51: StackMap locals:
StackMap stack:
aload 0
iconst_m1
putfield org.h2.command.dml.Select.qualifyIndex:I
52: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.withTies:Z
ifeq 54
aload 0
invokevirtual org.h2.command.dml.Select.hasOrder:()Z
ifne 54
53: ldc 90122
invokestatic org.h2.message.DbException.get:(I)Lorg/h2/message/DbException;
athrow
54: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
astore 2
start local 2 55: aload 0
getfield org.h2.command.dml.Select.group:Ljava/util/ArrayList;
ifnull 108
56: aload 0
getfield org.h2.command.dml.Select.group:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
istore 3
start local 3 57: aload 1
invokevirtual java.util.ArrayList.size:()I
istore 4
start local 4 58: aload 0
iload 3
newarray 10
putfield org.h2.command.dml.Select.groupIndex:[I
59: iconst_0
istore 5
start local 5 60: goto 92
61: StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.engine.Database int int int
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.group:Ljava/util/ArrayList;
iload 5
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Expression
astore 6
start local 6 62: aload 6
iconst_1
invokevirtual org.h2.expression.Expression.getSQL:(Z)Ljava/lang/String;
astore 7
start local 7 63: iconst_m1
istore 8
start local 8 64: iconst_0
istore 9
start local 9 65: goto 71
66: StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.engine.Database int int int org.h2.expression.Expression java.lang.String int int
StackMap stack:
aload 1
iload 9
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.lang.String
astore 10
start local 10 67: aload 2
aload 10
aload 7
invokevirtual org.h2.engine.Database.equalsIdentifiers:(Ljava/lang/String;Ljava/lang/String;)Z
ifeq 70
68: aload 0
aload 2
iload 9
aload 1
iconst_0
invokevirtual org.h2.command.dml.Select.mergeGroupByExpressions:(Lorg/h2/engine/Database;ILjava/util/ArrayList;Z)I
istore 8
69: goto 72
end local 10 70: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
71: iload 9
iload 4
if_icmplt 66
end local 9 72: StackMap locals:
StackMap stack:
iload 8
ifge 85
73: iconst_0
istore 9
start local 9 74: goto 84
75: StackMap locals: int
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
iload 9
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Expression
astore 10
start local 10 76: aload 2
aload 7
aload 10
invokevirtual org.h2.expression.Expression.getAlias:()Ljava/lang/String;
invokevirtual org.h2.engine.Database.equalsIdentifiers:(Ljava/lang/String;Ljava/lang/String;)Z
ifeq 79
77: aload 0
aload 2
iload 9
aload 1
iconst_1
invokevirtual org.h2.command.dml.Select.mergeGroupByExpressions:(Lorg/h2/engine/Database;ILjava/util/ArrayList;Z)I
istore 8
78: goto 85
79: StackMap locals: org.h2.expression.Expression
StackMap stack:
aload 6
invokevirtual org.h2.expression.Expression.getAlias:()Ljava/lang/String;
astore 7
80: aload 2
aload 7
aload 10
invokevirtual org.h2.expression.Expression.getAlias:()Ljava/lang/String;
invokevirtual org.h2.engine.Database.equalsIdentifiers:(Ljava/lang/String;Ljava/lang/String;)Z
ifeq 83
81: aload 0
aload 2
iload 9
aload 1
iconst_1
invokevirtual org.h2.command.dml.Select.mergeGroupByExpressions:(Lorg/h2/engine/Database;ILjava/util/ArrayList;Z)I
istore 8
82: goto 85
end local 10 83: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
84: iload 9
iload 4
if_icmplt 75
end local 9 85: StackMap locals:
StackMap stack:
iload 8
ifge 90
86: aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
istore 9
start local 9 87: aload 0
getfield org.h2.command.dml.Select.groupIndex:[I
iload 5
iload 9
iastore
88: aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
aload 6
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 9 89: goto 91
90: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.groupIndex:[I
iload 5
iload 8
iastore
end local 8 end local 7 end local 6 91: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
92: iload 5
iload 3
if_icmplt 61
end local 5 93: aload 0
getfield org.h2.command.dml.Select.groupByCopies:[I
ifnull 101
94: aload 0
getfield org.h2.command.dml.Select.groupByCopies:[I
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 99
StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.engine.Database int int top int int int[]
StackMap stack:
95: aload 8
iload 6
iaload
istore 5
start local 5 96: iload 5
iflt 98
97: goto 101
end local 5 98: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
99: iload 6
iload 7
if_icmplt 95
100: aload 0
aconst_null
putfield org.h2.command.dml.Select.groupByCopies:[I
101: StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.engine.Database int int
StackMap stack:
aload 0
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
newarray 4
putfield org.h2.command.dml.Select.groupByExpression:[Z
102: aload 0
getfield org.h2.command.dml.Select.groupIndex:[I
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 106
StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.engine.Database int int top int int int[]
StackMap stack:
103: aload 8
iload 6
iaload
istore 5
start local 5 104: aload 0
getfield org.h2.command.dml.Select.groupByExpression:[Z
iload 5
iconst_1
bastore
end local 5 105: iinc 6 1
StackMap locals:
StackMap stack:
106: iload 6
iload 7
if_icmplt 103
107: aload 0
aconst_null
putfield org.h2.command.dml.Select.group:Ljava/util/ArrayList;
end local 4 end local 3 108: StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.engine.Database
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 4
goto 111
StackMap locals: org.h2.command.dml.Select java.util.ArrayList org.h2.engine.Database top java.util.Iterator
StackMap stack:
109: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.table.TableFilter
astore 3
start local 3 110: aload 0
aload 3
iconst_0
invokevirtual org.h2.command.dml.Select.mapColumns:(Lorg/h2/table/ColumnResolver;I)V
end local 3 111: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 109
112: aload 0
aload 0
getfield org.h2.command.dml.Select.havingIndex:I
invokevirtual org.h2.command.dml.Select.mapCondition:(I)V
113: aload 0
aload 0
getfield org.h2.command.dml.Select.qualifyIndex:I
invokevirtual org.h2.command.dml.Select.mapCondition:(I)V
114: aload 0
iconst_1
putfield org.h2.command.dml.Select.checkInit:Z
115: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 116 0 this Lorg/h2/command/dml/Select;
6 15 1 expressionSQL Ljava/util/ArrayList<Ljava/lang/String;>;
16 116 1 expressionSQL Ljava/util/ArrayList<Ljava/lang/String;>;
7 14 2 i I
9 12 3 expr Lorg/h2/expression/Expression;
11 12 4 sql Ljava/lang/String;
18 35 2 set Ljava/util/BitSet;
20 23 3 e Lorg/h2/expression/Expression;
26 35 3 idx I
27 35 4 cnt I
29 35 5 i I
55 116 2 db Lorg/h2/engine/Database;
57 108 3 size I
58 108 4 expSize I
60 93 5 i I
62 91 6 expr Lorg/h2/expression/Expression;
63 91 7 sql Ljava/lang/String;
64 91 8 found I
65 72 9 j I
67 70 10 s2 Ljava/lang/String;
74 85 9 j I
76 83 10 e Lorg/h2/expression/Expression;
87 89 9 index I
96 98 5 i I
104 105 5 gi I
110 111 3 f Lorg/h2/table/TableFilter;
private void mapCondition(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: iload 1
iflt 4
1: aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
iload 1
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Expression
astore 2
start local 2 2: new org.h2.command.dml.SelectListColumnResolver
dup
aload 0
invokespecial org.h2.command.dml.SelectListColumnResolver.<init>:(Lorg/h2/command/dml/Select;)V
astore 3
start local 3 3: aload 2
aload 3
iconst_0
iconst_0
invokevirtual org.h2.expression.Expression.mapColumns:(Lorg/h2/table/ColumnResolver;II)V
end local 3 end local 2 4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/h2/command/dml/Select;
0 5 1 index I
2 4 2 expr Lorg/h2/expression/Expression;
3 4 3 res Lorg/h2/command/dml/SelectListColumnResolver;
MethodParameters:
Name Flags
index
private int mergeGroupByExpressions(org.h2.engine.Database, int, java.util.ArrayList<java.lang.String>, );
descriptor: (Lorg/h2/engine/Database;ILjava/util/ArrayList;Z)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield org.h2.command.dml.Select.groupByCopies:[I
ifnull 6
1: aload 0
getfield org.h2.command.dml.Select.groupByCopies:[I
iload 2
iaload
istore 5
start local 5 2: iload 5
iflt 4
3: iload 5
ireturn
4: StackMap locals: int
StackMap stack:
iload 5
bipush -2
if_icmpne 8
5: iload 2
ireturn
end local 5 6: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual java.util.ArrayList.size:()I
newarray 10
putfield org.h2.command.dml.Select.groupByCopies:[I
7: aload 0
getfield org.h2.command.dml.Select.groupByCopies:[I
iconst_m1
invokestatic java.util.Arrays.fill:([II)V
8: StackMap locals:
StackMap stack:
aload 3
iload 2
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.lang.String
astore 5
start local 5 9: iload 4
ifeq 17
10: iconst_0
istore 6
start local 6 11: goto 16
12: StackMap locals: java.lang.String int
StackMap stack:
aload 1
aload 5
aload 3
iload 6
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual org.h2.engine.Database.equalsIdentifiers:(Ljava/lang/String;Ljava/lang/String;)Z
ifeq 15
13: iload 6
istore 2
14: goto 17
15: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
16: iload 6
iload 2
if_icmplt 12
end local 6 17: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.util.ArrayList.size:()I
istore 6
start local 6 18: iload 2
iconst_1
iadd
istore 7
start local 7 19: goto 23
20: StackMap locals: int int
StackMap stack:
aload 1
aload 5
aload 3
iload 7
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual org.h2.engine.Database.equalsIdentifiers:(Ljava/lang/String;Ljava/lang/String;)Z
ifeq 22
21: aload 0
getfield org.h2.command.dml.Select.groupByCopies:[I
iload 7
iload 2
iastore
22: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
23: iload 7
iload 6
if_icmplt 20
end local 7 24: aload 0
getfield org.h2.command.dml.Select.groupByCopies:[I
iload 2
bipush -2
iastore
25: iload 2
ireturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lorg/h2/command/dml/Select;
0 26 1 db Lorg/h2/engine/Database;
0 26 2 index I
0 26 3 expressionSQL Ljava/util/ArrayList<Ljava/lang/String;>;
0 26 4 scanPrevious Z
2 6 5 c I
9 26 5 sql Ljava/lang/String;
11 17 6 i I
18 26 6 l I
19 24 7 i I
Signature: (Lorg/h2/engine/Database;ILjava/util/ArrayList<Ljava/lang/String;>;Z)I
MethodParameters:
Name Flags
db
index
expressionSQL
scanPrevious
public void prepare();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=1
start local 0 0: aload 0
getfield org.h2.command.dml.Select.isPrepared:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.checkInit:Z
ifne 4
3: ldc "not initialized"
invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
pop
4: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.orderList:Ljava/util/ArrayList;
ifnull 7
5: aload 0
aload 0
aload 0
getfield org.h2.command.dml.Select.orderList:Ljava/util/ArrayList;
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
invokevirtual org.h2.command.dml.Select.prepareOrder:(Ljava/util/ArrayList;I)Lorg/h2/result/SortOrder;
putfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
6: aload 0
aconst_null
putfield org.h2.command.dml.Select.orderList:Ljava/util/ArrayList;
7: StackMap locals:
StackMap stack:
new org.h2.util.ColumnNamer
dup
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokespecial org.h2.util.ColumnNamer.<init>:(Lorg/h2/engine/Session;)V
astore 1
start local 1 8: iconst_0
istore 2
start local 2 9: goto 17
10: StackMap locals: org.h2.util.ColumnNamer int
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
iload 2
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Expression
astore 3
start local 3 11: aload 3
invokevirtual org.h2.expression.Expression.getAlias:()Ljava/lang/String;
astore 4
start local 4 12: aload 1
aload 3
iload 2
aload 4
invokevirtual org.h2.util.ColumnNamer.getColumnName:(Lorg/h2/expression/Expression;ILjava/lang/String;)Ljava/lang/String;
astore 5
start local 5 13: aload 5
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 15
14: new org.h2.expression.Alias
dup
aload 3
aload 5
iconst_1
invokespecial org.h2.expression.Alias.<init>:(Lorg/h2/expression/Expression;Ljava/lang/String;Z)V
astore 3
15: StackMap locals: org.h2.expression.Expression java.lang.String java.lang.String
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
iload 2
aload 3
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.expression.Expression.optimize:(Lorg/h2/engine/Session;)Lorg/h2/expression/Expression;
invokevirtual java.util.ArrayList.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
end local 5 end local 4 end local 3 16: iinc 2 1
StackMap locals:
StackMap stack:
17: iload 2
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
if_icmplt 10
end local 2 18: aload 0
getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
ifnull 25
19: aload 0
aload 0
getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.expression.Expression.optimize:(Lorg/h2/engine/Session;)Lorg/h2/expression/Expression;
putfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
20: aload 0
getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 3
goto 24
StackMap locals: org.h2.command.dml.Select org.h2.util.ColumnNamer top java.util.Iterator
StackMap stack:
21: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.table.TableFilter
astore 2
start local 2 22: aload 2
invokevirtual org.h2.table.TableFilter.isJoinOuter:()Z
ifne 24
aload 2
invokevirtual org.h2.table.TableFilter.isJoinOuterIndirect:()Z
ifne 24
23: aload 0
getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
aload 2
invokevirtual org.h2.expression.Expression.createIndexConditions:(Lorg/h2/engine/Session;Lorg/h2/table/TableFilter;)V
end local 2 24: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 21
25: StackMap locals: org.h2.command.dml.Select org.h2.util.ColumnNamer
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.isGroupQuery:Z
ifeq 28
aload 0
getfield org.h2.command.dml.Select.groupIndex:[I
ifnonnull 28
aload 0
getfield org.h2.command.dml.Select.havingIndex:I
ifge 28
aload 0
getfield org.h2.command.dml.Select.qualifyIndex:I
ifge 28
aload 0
getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
ifnonnull 28
26: aload 0
getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
iconst_1
if_icmpne 28
27: aload 0
aload 0
aload 0
getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
iconst_0
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.table.TableFilter
invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
invokestatic org.h2.expression.ExpressionVisitor.getOptimizableVisitor:(Lorg/h2/table/Table;)Lorg/h2/expression/ExpressionVisitor;
invokevirtual org.h2.command.dml.Select.isEverything:(Lorg/h2/expression/ExpressionVisitor;)Z
putfield org.h2.command.dml.Select.isQuickAggregateQuery:Z
28: StackMap locals:
StackMap stack:
aload 0
aload 0
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.engine.Session.isParsingCreateView:()Z
invokevirtual org.h2.command.dml.Select.preparePlan:(Z)D
putfield org.h2.command.dml.Select.cost:D
29: aload 0
getfield org.h2.command.dml.Select.distinct:Z
ifeq 60
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
invokevirtual org.h2.engine.Database.getSettings:()Lorg/h2/engine/DbSettings;
getfield org.h2.engine.DbSettings.optimizeDistinct:Z
ifeq 60
30: aload 0
getfield org.h2.command.dml.Select.isGroupQuery:Z
ifne 60
aload 0
getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
iconst_1
if_icmpne 60
31: aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
iconst_1
if_icmpne 60
aload 0
getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
ifnonnull 60
32: aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
iconst_0
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Expression
astore 2
start local 2 33: aload 2
invokevirtual org.h2.expression.Expression.getNonAliasExpression:()Lorg/h2/expression/Expression;
astore 2
34: aload 2
instanceof org.h2.expression.ExpressionColumn
ifeq 60
35: aload 2
checkcast org.h2.expression.ExpressionColumn
invokevirtual org.h2.expression.ExpressionColumn.getColumn:()Lorg/h2/table/Column;
astore 3
start local 3 36: aload 3
invokevirtual org.h2.table.Column.getSelectivity:()I
istore 4
start local 4 37: aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
38: aload 3
iconst_0
iconst_1
invokevirtual org.h2.table.Table.getIndexForColumn:(Lorg/h2/table/Column;ZZ)Lorg/h2/index/Index;
39: astore 5
start local 5 40: aload 5
ifnull 60
41: iload 4
bipush 50
if_icmpeq 60
42: iload 4
bipush 20
if_icmpge 60
43: aload 5
44: invokeinterface org.h2.index.Index.getIndexColumns:()[Lorg/h2/table/IndexColumn;
iconst_0
45: aaload
46: getfield org.h2.table.IndexColumn.sortType:I
47: ifne 48
iconst_1
goto 49
StackMap locals: org.h2.command.dml.Select org.h2.util.ColumnNamer org.h2.expression.Expression org.h2.table.Column int org.h2.index.Index
StackMap stack:
48: iconst_0
StackMap locals:
StackMap stack: int
49: istore 6
start local 6 50: aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.getIndex:()Lorg/h2/index/Index;
astore 7
start local 7 51: aload 5
invokeinterface org.h2.index.Index.canFindNext:()Z
ifeq 60
iload 6
ifeq 60
52: aload 7
ifnull 55
53: aload 7
invokeinterface org.h2.index.Index.getIndexType:()Lorg/h2/index/IndexType;
invokevirtual org.h2.index.IndexType.isScan:()Z
ifne 55
54: aload 5
aload 7
if_acmpne 60
55: StackMap locals: int org.h2.index.Index
StackMap stack:
aload 5
invokeinterface org.h2.index.Index.getIndexType:()Lorg/h2/index/IndexType;
astore 8
start local 8 56: aload 8
invokevirtual org.h2.index.IndexType.isHash:()Z
ifne 60
aload 8
invokevirtual org.h2.index.IndexType.isUnique:()Z
ifeq 58
57: aload 5
invokeinterface org.h2.index.Index.getColumns:()[Lorg/h2/table/Column;
arraylength
iconst_1
if_icmple 60
58: StackMap locals: org.h2.index.IndexType
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
aload 5
invokevirtual org.h2.table.TableFilter.setIndex:(Lorg/h2/index/Index;)V
59: aload 0
iconst_1
putfield org.h2.command.dml.Select.isDistinctQuery:Z
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 60: StackMap locals: org.h2.command.dml.Select org.h2.util.ColumnNamer
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
ifnull 89
aload 0
getfield org.h2.command.dml.Select.isQuickAggregateQuery:Z
ifne 89
aload 0
getfield org.h2.command.dml.Select.isGroupQuery:Z
ifne 89
61: aload 0
invokevirtual org.h2.command.dml.Select.getSortIndex:()Lorg/h2/index/Index;
astore 2
start local 2 62: aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.getIndex:()Lorg/h2/index/Index;
astore 3
start local 3 63: aload 2
ifnull 87
aload 3
ifnull 87
64: aload 3
invokeinterface org.h2.index.Index.getIndexType:()Lorg/h2/index/IndexType;
invokevirtual org.h2.index.IndexType.isScan:()Z
ifne 65
aload 3
aload 2
if_acmpne 69
65: StackMap locals: org.h2.index.Index org.h2.index.Index
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
aload 2
invokevirtual org.h2.table.TableFilter.setIndex:(Lorg/h2/index/Index;)V
66: aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.hasInComparisons:()Z
ifne 87
67: aload 0
iconst_1
putfield org.h2.command.dml.Select.sortUsingIndex:Z
68: goto 87
StackMap locals:
StackMap stack:
69: aload 2
invokeinterface org.h2.index.Index.getIndexColumns:()[Lorg/h2/table/IndexColumn;
ifnull 87
70: aload 2
invokeinterface org.h2.index.Index.getIndexColumns:()[Lorg/h2/table/IndexColumn;
arraylength
aload 3
71: invokeinterface org.h2.index.Index.getIndexColumns:()[Lorg/h2/table/IndexColumn;
arraylength
if_icmplt 87
72: aload 2
invokeinterface org.h2.index.Index.getIndexColumns:()[Lorg/h2/table/IndexColumn;
astore 4
start local 4 73: aload 3
invokeinterface org.h2.index.Index.getIndexColumns:()[Lorg/h2/table/IndexColumn;
astore 5
start local 5 74: iconst_0
istore 6
start local 6 75: iconst_0
istore 7
start local 7 76: goto 83
77: StackMap locals: org.h2.command.dml.Select org.h2.util.ColumnNamer org.h2.index.Index org.h2.index.Index org.h2.table.IndexColumn[] org.h2.table.IndexColumn[] int int
StackMap stack:
aload 4
iload 7
aaload
getfield org.h2.table.IndexColumn.column:Lorg/h2/table/Column;
aload 5
iload 7
aaload
getfield org.h2.table.IndexColumn.column:Lorg/h2/table/Column;
if_acmpeq 80
78: iconst_0
istore 6
79: goto 84
80: StackMap locals:
StackMap stack:
aload 4
iload 7
aaload
getfield org.h2.table.IndexColumn.sortType:I
aload 5
iload 7
aaload
getfield org.h2.table.IndexColumn.sortType:I
if_icmpeq 82
81: iconst_1
istore 6
82: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
83: iload 7
aload 5
arraylength
if_icmplt 77
end local 7 84: StackMap locals:
StackMap stack:
iload 6
ifeq 87
85: aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
aload 2
invokevirtual org.h2.table.TableFilter.setIndex:(Lorg/h2/index/Index;)V
86: aload 0
iconst_1
putfield org.h2.command.dml.Select.sortUsingIndex:Z
end local 6 end local 5 end local 4 87: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.sortUsingIndex:Z
ifeq 89
aload 0
getfield org.h2.command.dml.Select.isForUpdateMvcc:Z
ifeq 89
aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.getIndex:()Lorg/h2/index/Index;
invokeinterface org.h2.index.Index.isRowIdIndex:()Z
ifne 89
88: aload 0
iconst_0
putfield org.h2.command.dml.Select.sortUsingIndex:Z
end local 3 end local 2 89: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.isQuickAggregateQuery:Z
ifne 97
aload 0
getfield org.h2.command.dml.Select.isGroupQuery:Z
ifeq 97
90: aload 0
invokevirtual org.h2.command.dml.Select.getGroupByExpressionCount:()I
ifle 97
91: aload 0
invokevirtual org.h2.command.dml.Select.getGroupSortedIndex:()Lorg/h2/index/Index;
astore 2
start local 2 92: aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.getIndex:()Lorg/h2/index/Index;
astore 3
start local 3 93: aload 2
ifnull 97
aload 3
ifnull 97
aload 3
invokeinterface org.h2.index.Index.getIndexType:()Lorg/h2/index/IndexType;
invokevirtual org.h2.index.IndexType.isScan:()Z
ifne 95
94: aload 3
aload 2
if_acmpne 97
95: StackMap locals: org.h2.index.Index org.h2.index.Index
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
aload 2
invokevirtual org.h2.table.TableFilter.setIndex:(Lorg/h2/index/Index;)V
96: aload 0
iconst_1
putfield org.h2.command.dml.Select.isGroupSortedQuery:Z
end local 3 end local 2 97: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
iconst_0
anewarray org.h2.expression.Expression
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast org.h2.expression.Expression[]
putfield org.h2.command.dml.Select.expressionArray:[Lorg/h2/expression/Expression;
98: aload 0
iconst_1
putfield org.h2.command.dml.Select.isPrepared:Z
99: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 100 0 this Lorg/h2/command/dml/Select;
8 100 1 columnNamer Lorg/h2/util/ColumnNamer;
9 18 2 i I
11 16 3 e Lorg/h2/expression/Expression;
12 16 4 proposedColumnName Ljava/lang/String;
13 16 5 columnName Ljava/lang/String;
22 24 2 f Lorg/h2/table/TableFilter;
33 60 2 expr Lorg/h2/expression/Expression;
36 60 3 column Lorg/h2/table/Column;
37 60 4 selectivity I
40 60 5 columnIndex Lorg/h2/index/Index;
50 60 6 ascending Z
51 60 7 current Lorg/h2/index/Index;
56 60 8 type Lorg/h2/index/IndexType;
62 89 2 index Lorg/h2/index/Index;
63 89 3 current Lorg/h2/index/Index;
73 87 4 sortColumns [Lorg/h2/table/IndexColumn;
74 87 5 currentColumns [Lorg/h2/table/IndexColumn;
75 87 6 swapIndex Z
76 84 7 i I
92 97 2 index Lorg/h2/index/Index;
93 97 3 current Lorg/h2/index/Index;
public void prepareJoinBatch();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: aload 0
invokevirtual org.h2.command.dml.Select.getTopTableFilter:()Lorg/h2/table/TableFilter;
astore 2
start local 2 2: StackMap locals: java.util.ArrayList org.h2.table.TableFilter
StackMap stack:
aload 2
invokevirtual org.h2.table.TableFilter.getNestedJoin:()Lorg/h2/table/TableFilter;
ifnull 4
3: return
4: StackMap locals:
StackMap stack:
aload 1
aload 2
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
5: aload 2
invokevirtual org.h2.table.TableFilter.getJoin:()Lorg/h2/table/TableFilter;
astore 2
6: aload 2
ifnonnull 2
7: aload 1
iconst_0
anewarray org.h2.table.TableFilter
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast org.h2.table.TableFilter[]
astore 3
start local 3 8: aconst_null
astore 4
start local 4 9: aload 3
arraylength
iconst_1
isub
istore 5
start local 5 10: goto 13
11: StackMap locals: org.h2.table.TableFilter[] org.h2.table.JoinBatch int
StackMap stack:
aload 3
iload 5
aaload
aload 4
aload 3
iload 5
invokevirtual org.h2.table.TableFilter.prepareJoinBatch:(Lorg/h2/table/JoinBatch;[Lorg/h2/table/TableFilter;I)Lorg/h2/table/JoinBatch;
astore 4
12: iinc 5 -1
StackMap locals:
StackMap stack:
13: iload 5
ifge 11
end local 5 14: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/h2/command/dml/Select;
1 15 1 list Ljava/util/ArrayList<Lorg/h2/table/TableFilter;>;
2 15 2 f Lorg/h2/table/TableFilter;
8 15 3 fs [Lorg/h2/table/TableFilter;
9 15 4 jb Lorg/h2/table/JoinBatch;
10 14 5 i I
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
invokevirtual org.h2.command.dml.Select.getTopTableFilter:()Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.getJoinBatch:()Lorg/h2/table/JoinBatch;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/command/dml/Select;
public double getCost();
descriptor: ()D
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.command.dml.Select.cost:D
dreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/command/dml/Select;
public java.util.HashSet<org.h2.table.Table> getTables();
descriptor: ()Ljava/util/HashSet;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 1
start local 1 1: aload 0
getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: org.h2.command.dml.Select java.util.HashSet top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.table.TableFilter
astore 2
start local 2 3: aload 1
aload 2
invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/h2/command/dml/Select;
1 6 1 set Ljava/util/HashSet<Lorg/h2/table/Table;>;
3 4 2 filter Lorg/h2/table/TableFilter;
Signature: ()Ljava/util/HashSet<Lorg/h2/table/Table;>;
public void fireBeforeSelectTriggers();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 2
goto 3
StackMap locals: org.h2.command.dml.Select top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.table.TableFilter
astore 1
start local 1 2: aload 1
invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
bipush 8
iconst_1
invokevirtual org.h2.table.Table.fire:(Lorg/h2/engine/Session;IZ)V
end local 1 3: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/h2/command/dml/Select;
2 3 1 filter Lorg/h2/table/TableFilter;
private double preparePlan(boolean);
descriptor: (Z)D
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.command.dml.Select.topFilters:Ljava/util/ArrayList;
iconst_0
anewarray org.h2.table.TableFilter
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast org.h2.table.TableFilter[]
astore 2
start local 2 1: aload 2
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 6
StackMap locals: org.h2.command.dml.Select int org.h2.table.TableFilter[] top int int org.h2.table.TableFilter[]
StackMap stack:
2: aload 6
iload 4
aaload
astore 3
start local 3 3: aload 3
invokevirtual org.h2.table.TableFilter.createIndexConditions:()V
4: aload 3
aload 0
getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
invokevirtual org.h2.table.TableFilter.setFullCondition:(Lorg/h2/expression/Expression;)V
end local 3 5: iinc 4 1
StackMap locals:
StackMap stack:
6: iload 4
iload 5
if_icmplt 2
7: new org.h2.command.dml.Optimizer
dup
aload 2
aload 0
getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokespecial org.h2.command.dml.Optimizer.<init>:([Lorg/h2/table/TableFilter;Lorg/h2/expression/Expression;Lorg/h2/engine/Session;)V
astore 3
start local 3 8: aload 3
iload 1
invokevirtual org.h2.command.dml.Optimizer.optimize:(Z)V
9: aload 0
aload 3
invokevirtual org.h2.command.dml.Optimizer.getTopFilter:()Lorg/h2/table/TableFilter;
putfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
10: aload 3
invokevirtual org.h2.command.dml.Optimizer.getCost:()D
dstore 4
start local 4 11: aload 0
aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
invokevirtual org.h2.command.dml.Select.setEvaluatableRecursive:(Lorg/h2/table/TableFilter;)V
12: iload 1
ifne 14
13: aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
invokevirtual org.h2.table.TableFilter.prepare:()V
14: StackMap locals: org.h2.command.dml.Select int org.h2.table.TableFilter[] org.h2.command.dml.Optimizer double
StackMap stack:
dload 4
dreturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/h2/command/dml/Select;
0 15 1 parse Z
1 15 2 topArray [Lorg/h2/table/TableFilter;
3 5 3 t Lorg/h2/table/TableFilter;
8 15 3 optimizer Lorg/h2/command/dml/Optimizer;
11 15 4 planCost D
MethodParameters:
Name Flags
parse
private void setEvaluatableRecursive(org.h2.table.TableFilter);
descriptor: (Lorg/h2/table/TableFilter;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: goto 24
1: StackMap locals:
StackMap stack:
aload 1
aload 1
iconst_1
invokevirtual org.h2.table.TableFilter.setEvaluatable:(Lorg/h2/table/TableFilter;Z)V
2: aload 0
getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
ifnull 4
3: aload 0
getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
aload 1
iconst_1
invokevirtual org.h2.expression.Expression.setEvaluatable:(Lorg/h2/table/TableFilter;Z)V
4: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.h2.table.TableFilter.getNestedJoin:()Lorg/h2/table/TableFilter;
astore 2
start local 2 5: aload 2
ifnull 7
6: aload 0
aload 2
invokevirtual org.h2.command.dml.Select.setEvaluatableRecursive:(Lorg/h2/table/TableFilter;)V
7: StackMap locals: org.h2.table.TableFilter
StackMap stack:
aload 1
invokevirtual org.h2.table.TableFilter.getJoinCondition:()Lorg/h2/expression/Expression;
astore 3
start local 3 8: aload 3
ifnull 14
9: aload 3
getstatic org.h2.expression.ExpressionVisitor.EVALUATABLE_VISITOR:Lorg/h2/expression/ExpressionVisitor;
invokevirtual org.h2.expression.Expression.isEverything:(Lorg/h2/expression/ExpressionVisitor;)Z
ifne 14
10: aload 3
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.expression.Expression.optimize:(Lorg/h2/engine/Session;)Lorg/h2/expression/Expression;
astore 3
11: aload 1
invokevirtual org.h2.table.TableFilter.isJoinOuter:()Z
ifne 14
aload 1
invokevirtual org.h2.table.TableFilter.isJoinOuterIndirect:()Z
ifne 14
12: aload 1
invokevirtual org.h2.table.TableFilter.removeJoinCondition:()V
13: aload 0
aload 3
invokevirtual org.h2.command.dml.Select.addCondition:(Lorg/h2/expression/Expression;)V
14: StackMap locals: org.h2.expression.Expression
StackMap stack:
aload 1
invokevirtual org.h2.table.TableFilter.getFilterCondition:()Lorg/h2/expression/Expression;
astore 3
15: aload 3
ifnull 19
16: aload 3
getstatic org.h2.expression.ExpressionVisitor.EVALUATABLE_VISITOR:Lorg/h2/expression/ExpressionVisitor;
invokevirtual org.h2.expression.Expression.isEverything:(Lorg/h2/expression/ExpressionVisitor;)Z
ifne 19
17: aload 1
invokevirtual org.h2.table.TableFilter.removeFilterCondition:()V
18: aload 0
aload 3
invokevirtual org.h2.command.dml.Select.addCondition:(Lorg/h2/expression/Expression;)V
19: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 5
goto 22
StackMap locals: org.h2.command.dml.Select org.h2.table.TableFilter org.h2.table.TableFilter org.h2.expression.Expression top java.util.Iterator
StackMap stack:
20: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.expression.Expression
astore 4
start local 4 21: aload 4
aload 1
iconst_1
invokevirtual org.h2.expression.Expression.setEvaluatable:(Lorg/h2/table/TableFilter;Z)V
end local 4 22: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 20
end local 3 end local 2 23: aload 1
invokevirtual org.h2.table.TableFilter.getJoin:()Lorg/h2/table/TableFilter;
astore 1
StackMap locals: org.h2.command.dml.Select org.h2.table.TableFilter
StackMap stack:
24: aload 1
ifnonnull 1
25: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lorg/h2/command/dml/Select;
0 26 1 f Lorg/h2/table/TableFilter;
5 23 2 n Lorg/h2/table/TableFilter;
8 23 3 on Lorg/h2/expression/Expression;
21 22 4 e Lorg/h2/expression/Expression;
MethodParameters:
Name Flags
f
public java.lang.String getPlanSQL(boolean);
descriptor: (Z)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
iconst_0
anewarray org.h2.expression.Expression
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast org.h2.expression.Expression[]
astore 2
start local 2 1: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 3
start local 3 2: aload 0
getfield org.h2.command.dml.Select.topFilters:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 5
goto 16
StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder top java.util.Iterator
StackMap stack:
3: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.table.TableFilter
astore 4
start local 4 4: aload 4
invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
astore 6
start local 6 5: aload 6
invokevirtual org.h2.table.Table.isView:()Z
ifeq 6
aload 6
checkcast org.h2.table.TableView
goto 7
StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder org.h2.table.TableFilter java.util.Iterator org.h2.table.Table
StackMap stack:
6: aconst_null
StackMap locals:
StackMap stack: org.h2.table.TableView
7: astore 7
start local 7 8: aload 7
ifnull 16
aload 7
invokevirtual org.h2.table.TableView.isRecursive:()Z
ifeq 16
aload 7
invokevirtual org.h2.table.TableView.isTableExpression:()Z
ifeq 16
9: aload 7
invokevirtual org.h2.table.TableView.isTemporary:()Z
ifeq 16
10: aload 3
ldc "WITH RECURSIVE "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
11: aload 6
invokevirtual org.h2.table.Table.getSchema:()Lorg/h2/schema/Schema;
aload 3
iload 1
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
12: aload 3
aload 6
invokevirtual org.h2.table.Table.getName:()Ljava/lang/String;
iload 1
invokestatic org.h2.command.Parser.quoteIdentifier:(Ljava/lang/StringBuilder;Ljava/lang/String;Z)Ljava/lang/StringBuilder;
bipush 40
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
13: aload 3
aload 6
invokevirtual org.h2.table.Table.getColumns:()[Lorg/h2/table/Column;
iload 1
invokestatic org.h2.table.Column.writeColumns:(Ljava/lang/StringBuilder;[Lorg/h2/table/Column;Z)Ljava/lang/StringBuilder;
pop
14: aload 3
ldc ") AS "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
15: aload 6
aload 3
iload 1
invokevirtual org.h2.table.Table.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
end local 7 end local 6 end local 4 16: StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
17: aload 3
ldc "SELECT"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
18: aload 0
invokevirtual org.h2.command.dml.Select.isAnyDistinct:()Z
ifeq 24
19: aload 3
ldc " DISTINCT"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
20: aload 0
getfield org.h2.command.dml.Select.distinctExpressions:[Lorg/h2/expression/Expression;
ifnull 24
21: aload 3
ldc " ON("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
22: aload 3
aload 0
getfield org.h2.command.dml.Select.distinctExpressions:[Lorg/h2/expression/Expression;
iload 1
invokestatic org.h2.expression.Expression.writeExpressions:(Ljava/lang/StringBuilder;[Lorg/h2/expression/Expression;Z)V
23: aload 3
bipush 41
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
24: StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder
StackMap stack:
iconst_0
istore 4
start local 4 25: goto 31
26: StackMap locals: int
StackMap stack:
iload 4
ifle 28
27: aload 3
bipush 44
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
28: StackMap locals:
StackMap stack:
aload 3
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
29: aload 3
aload 2
iload 4
aaload
iload 1
invokevirtual org.h2.expression.Expression.getSQL:(Z)Ljava/lang/String;
iconst_4
iconst_0
invokestatic org.h2.util.StringUtils.indent:(Ljava/lang/StringBuilder;Ljava/lang/String;IZ)Ljava/lang/StringBuilder;
pop
30: iinc 4 1
StackMap locals:
StackMap stack:
31: iload 4
aload 0
getfield org.h2.command.dml.Select.visibleColumnCount:I
if_icmplt 26
end local 4 32: aload 3
ldc "\nFROM "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
33: aload 0
getfield org.h2.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
astore 4
start local 4 34: aload 4
ifnull 44
35: iconst_0
istore 5
start local 5 36: StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder org.h2.table.TableFilter int
StackMap stack:
iload 5
ifle 38
37: aload 3
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
38: StackMap locals:
StackMap stack:
aload 4
aload 3
iload 5
iinc 5 1
ifle 39
iconst_1
goto 40
StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder org.h2.table.TableFilter int
StackMap stack: org.h2.table.TableFilter java.lang.StringBuilder
39: iconst_0
StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder org.h2.table.TableFilter int
StackMap stack: org.h2.table.TableFilter java.lang.StringBuilder int
40: iload 1
invokevirtual org.h2.table.TableFilter.getPlanSQL:(Ljava/lang/StringBuilder;ZZ)Ljava/lang/StringBuilder;
pop
41: aload 4
invokevirtual org.h2.table.TableFilter.getJoin:()Lorg/h2/table/TableFilter;
astore 4
42: aload 4
ifnonnull 36
end local 5 43: goto 55
44: StackMap locals:
StackMap stack:
iconst_0
istore 5
start local 5 45: aload 0
getfield org.h2.command.dml.Select.topFilters:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 7
goto 54
StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder org.h2.table.TableFilter int top java.util.Iterator
StackMap stack:
46: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.table.TableFilter
astore 6
start local 6 47: StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder org.h2.table.TableFilter int org.h2.table.TableFilter java.util.Iterator
StackMap stack:
iload 5
ifle 49
48: aload 3
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
49: StackMap locals:
StackMap stack:
aload 6
aload 3
iload 5
iinc 5 1
ifle 50
iconst_1
goto 51
StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder org.h2.table.TableFilter int org.h2.table.TableFilter java.util.Iterator
StackMap stack: org.h2.table.TableFilter java.lang.StringBuilder
50: iconst_0
StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder org.h2.table.TableFilter int org.h2.table.TableFilter java.util.Iterator
StackMap stack: org.h2.table.TableFilter java.lang.StringBuilder int
51: iload 1
invokevirtual org.h2.table.TableFilter.getPlanSQL:(Ljava/lang/StringBuilder;ZZ)Ljava/lang/StringBuilder;
pop
52: aload 6
invokevirtual org.h2.table.TableFilter.getJoin:()Lorg/h2/table/TableFilter;
astore 6
53: aload 6
ifnonnull 47
end local 6 54: StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder org.h2.table.TableFilter int top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 46
end local 5 55: StackMap locals: org.h2.command.dml.Select int org.h2.expression.Expression[] java.lang.StringBuilder org.h2.table.TableFilter
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
ifnull 58
56: aload 3
ldc "\nWHERE "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
57: aload 0
getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
aload 3
iload 1
invokevirtual org.h2.expression.Expression.getUnenclosedSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
pop
58: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.groupIndex:[I
ifnull 69
59: aload 3
ldc "\nGROUP BY "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
60: iconst_0
istore 5
start local 5 61: aload 0
getfield org.h2.command.dml.Select.groupIndex:[I
arraylength
istore 6
start local 6 62: goto 67
63: StackMap locals: int int
StackMap stack:
iload 5
ifle 65
64: aload 3
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
65: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield org.h2.command.dml.Select.groupIndex:[I
iload 5
iaload
aaload
invokevirtual org.h2.expression.Expression.getNonAliasExpression:()Lorg/h2/expression/Expression;
aload 3
iload 1
invokevirtual org.h2.expression.Expression.getUnenclosedSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
pop
66: iinc 5 1
StackMap locals:
StackMap stack:
67: iload 5
iload 6
if_icmplt 63
end local 6 end local 5 68: goto 79
StackMap locals:
StackMap stack:
69: aload 0
getfield org.h2.command.dml.Select.group:Ljava/util/ArrayList;
ifnull 79
70: aload 3
ldc "\nGROUP BY "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
71: iconst_0
istore 5
start local 5 72: aload 0
getfield org.h2.command.dml.Select.group:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
istore 6
start local 6 73: goto 78
74: StackMap locals: int int
StackMap stack:
iload 5
ifle 76
75: aload 3
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
76: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.group:Ljava/util/ArrayList;
iload 5
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Expression
aload 3
iload 1
invokevirtual org.h2.expression.Expression.getUnenclosedSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
pop
77: iinc 5 1
StackMap locals:
StackMap stack:
78: iload 5
iload 6
if_icmplt 74
end local 6 end local 5 79: StackMap locals:
StackMap stack:
aload 3
ldc "\nHAVING "
aload 2
aload 0
getfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
aload 0
getfield org.h2.command.dml.Select.havingIndex:I
invokestatic org.h2.command.dml.Select.getFilterSQL:(Ljava/lang/StringBuilder;Ljava/lang/String;[Lorg/h2/expression/Expression;Lorg/h2/expression/Expression;I)V
80: aload 3
ldc "\nQUALIFY "
aload 2
aload 0
getfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
aload 0
getfield org.h2.command.dml.Select.qualifyIndex:I
invokestatic org.h2.command.dml.Select.getFilterSQL:(Ljava/lang/StringBuilder;Ljava/lang/String;[Lorg/h2/expression/Expression;Lorg/h2/expression/Expression;I)V
81: aload 0
getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
ifnull 85
82: aload 3
ldc "\nORDER BY "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
83: aload 0
getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
aload 2
aload 0
getfield org.h2.command.dml.Select.visibleColumnCount:I
iload 1
invokevirtual org.h2.result.SortOrder.getSQL:([Lorg/h2/expression/Expression;IZ)Ljava/lang/String;
84: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
85: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.orderList:Ljava/util/ArrayList;
ifnull 95
86: aload 3
ldc "\nORDER BY "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
87: iconst_0
istore 5
start local 5 88: aload 0
getfield org.h2.command.dml.Select.orderList:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
istore 6
start local 6 89: goto 94
90: StackMap locals: int int
StackMap stack:
iload 5
ifle 92
91: aload 3
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
92: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.orderList:Ljava/util/ArrayList;
iload 5
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.command.dml.SelectOrderBy
aload 3
iload 1
invokevirtual org.h2.command.dml.SelectOrderBy.getSQL:(Ljava/lang/StringBuilder;Z)V
93: iinc 5 1
StackMap locals:
StackMap stack:
94: iload 5
iload 6
if_icmplt 90
end local 6 end local 5 95: StackMap locals:
StackMap stack:
aload 0
aload 3
iload 1
invokevirtual org.h2.command.dml.Select.appendLimitToSQL:(Ljava/lang/StringBuilder;Z)V
96: aload 0
getfield org.h2.command.dml.Select.sampleSizeExpr:Lorg/h2/expression/Expression;
ifnull 99
97: aload 3
ldc "\nSAMPLE_SIZE "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
98: aload 0
getfield org.h2.command.dml.Select.sampleSizeExpr:Lorg/h2/expression/Expression;
aload 3
iload 1
invokevirtual org.h2.expression.Expression.getUnenclosedSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
pop
99: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.isForUpdate:Z
ifeq 101
100: aload 3
ldc "\nFOR UPDATE"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
101: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.isQuickAggregateQuery:Z
ifeq 103
102: aload 3
ldc "\n/* direct lookup */"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
103: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.isDistinctQuery:Z
ifeq 105
104: aload 3
ldc "\n/* distinct */"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
105: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.sortUsingIndex:Z
ifeq 107
106: aload 3
ldc "\n/* index sorted */"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
107: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.isGroupQuery:Z
ifeq 110
108: aload 0
getfield org.h2.command.dml.Select.isGroupSortedQuery:Z
ifeq 110
109: aload 3
ldc "\n/* group sorted */"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
110: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 111 0 this Lorg/h2/command/dml/Select;
0 111 1 alwaysQuote Z
1 111 2 exprList [Lorg/h2/expression/Expression;
2 111 3 builder Ljava/lang/StringBuilder;
4 16 4 f Lorg/h2/table/TableFilter;
5 16 6 t Lorg/h2/table/Table;
8 16 7 tableView Lorg/h2/table/TableView;
25 32 4 i I
34 111 4 filter Lorg/h2/table/TableFilter;
36 43 5 i I
45 55 5 i I
47 54 6 f Lorg/h2/table/TableFilter;
61 68 5 i I
62 68 6 l I
72 79 5 i I
73 79 6 l I
88 95 5 i I
89 95 6 l I
MethodParameters:
Name Flags
alwaysQuote
private static void getFilterSQL(java.lang.StringBuilder, java.lang.String, org.h2.expression.Expression[], org.h2.expression.Expression, int);
descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;[Lorg/h2/expression/Expression;Lorg/h2/expression/Expression;I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 3
ifnull 4
1: aload 0
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
2: aload 3
aload 0
iconst_1
invokevirtual org.h2.expression.Expression.getUnenclosedSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
pop
3: goto 7
StackMap locals:
StackMap stack:
4: iload 4
iflt 7
5: aload 0
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
6: aload 2
iload 4
aaload
aload 0
iconst_1
invokevirtual org.h2.expression.Expression.getUnenclosedSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
pop
7: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 builder Ljava/lang/StringBuilder;
0 8 1 sql Ljava/lang/String;
0 8 2 exprList [Lorg/h2/expression/Expression;
0 8 3 condition Lorg/h2/expression/Expression;
0 8 4 conditionIndex I
MethodParameters:
Name Flags
builder
sql
exprList
condition
conditionIndex
public void setHaving(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.command.dml.Select.having:Lorg/h2/expression/Expression;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/command/dml/Select;
0 2 1 having Lorg/h2/expression/Expression;
MethodParameters:
Name Flags
having
public org.h2.expression.Expression getHaving();
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.command.dml.Select.having:Lorg/h2/expression/Expression;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/command/dml/Select;
public void setQualify(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.command.dml.Select.qualify:Lorg/h2/expression/Expression;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/command/dml/Select;
0 2 1 qualify Lorg/h2/expression/Expression;
MethodParameters:
Name Flags
qualify
public org.h2.expression.Expression getQualify();
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.command.dml.Select.qualify:Lorg/h2/expression/Expression;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/command/dml/Select;
public int getColumnCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.command.dml.Select.visibleColumnCount:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/command/dml/Select;
public org.h2.table.TableFilter getTopTableFilter();
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.command.dml.Select.topTableFilter:Lorg/h2/table/TableFilter;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/command/dml/Select;
public void setForUpdate(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifeq 2
aload 0
invokevirtual org.h2.command.dml.Select.isAnyDistinct:()Z
ifne 1
aload 0
getfield org.h2.command.dml.Select.isGroupQuery:Z
ifeq 2
1: StackMap locals:
StackMap stack:
ldc 90145
invokestatic org.h2.message.DbException.get:(I)Lorg/h2/message/DbException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield org.h2.command.dml.Select.isForUpdate:Z
3: aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
invokevirtual org.h2.engine.Database.isMVStore:()Z
ifeq 5
4: aload 0
iload 1
putfield org.h2.command.dml.Select.isForUpdateMvcc:Z
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/h2/command/dml/Select;
0 6 1 b Z
MethodParameters:
Name Flags
b
public void mapColumns(org.h2.table.ColumnResolver, int);
descriptor: (Lorg/h2/table/ColumnResolver;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 4
goto 3
StackMap locals: org.h2.command.dml.Select org.h2.table.ColumnResolver int top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.expression.Expression
astore 3
start local 3 2: aload 3
aload 1
iload 2
iconst_0
invokevirtual org.h2.expression.Expression.mapColumns:(Lorg/h2/table/ColumnResolver;II)V
end local 3 3: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: aload 0
getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
ifnull 6
5: aload 0
getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
aload 1
iload 2
iconst_0
invokevirtual org.h2.expression.Expression.mapColumns:(Lorg/h2/table/ColumnResolver;II)V
6: StackMap locals: org.h2.command.dml.Select org.h2.table.ColumnResolver int
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/h2/command/dml/Select;
0 7 1 resolver Lorg/h2/table/ColumnResolver;
0 7 2 level I
2 3 3 e Lorg/h2/expression/Expression;
MethodParameters:
Name Flags
resolver
level
public void setEvaluatable(org.h2.table.TableFilter, boolean);
descriptor: (Lorg/h2/table/TableFilter;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 4
goto 3
StackMap locals: org.h2.command.dml.Select org.h2.table.TableFilter int top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.expression.Expression
astore 3
start local 3 2: aload 3
aload 1
iload 2
invokevirtual org.h2.expression.Expression.setEvaluatable:(Lorg/h2/table/TableFilter;Z)V
end local 3 3: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: aload 0
getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
ifnull 6
5: aload 0
getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
aload 1
iload 2
invokevirtual org.h2.expression.Expression.setEvaluatable:(Lorg/h2/table/TableFilter;Z)V
6: StackMap locals: org.h2.command.dml.Select org.h2.table.TableFilter int
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/h2/command/dml/Select;
0 7 1 tableFilter Lorg/h2/table/TableFilter;
0 7 2 b Z
2 3 3 e Lorg/h2/expression/Expression;
MethodParameters:
Name Flags
tableFilter
b
public boolean isQuickAggregateQuery();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.command.dml.Select.isQuickAggregateQuery:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/command/dml/Select;
public boolean isGroupQuery();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.command.dml.Select.isGroupQuery:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/command/dml/Select;
public boolean isWindowQuery();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.command.dml.Select.isWindowQuery:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/command/dml/Select;
public boolean isGroupWindowStage2();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.command.dml.Select.isGroupWindowStage2:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/command/dml/Select;
public void addGlobalCondition(org.h2.expression.Parameter, int, int);
descriptor: (Lorg/h2/expression/Parameter;II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokevirtual org.h2.command.dml.Select.addParameter:(Lorg/h2/expression/Parameter;)V
1: aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
iload 2
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Expression
astore 5
start local 5 2: aload 5
invokevirtual org.h2.expression.Expression.getNonAliasExpression:()Lorg/h2/expression/Expression;
astore 5
3: aload 5
getstatic org.h2.expression.ExpressionVisitor.QUERY_COMPARABLE_VISITOR:Lorg/h2/expression/ExpressionVisitor;
invokevirtual org.h2.expression.Expression.isEverything:(Lorg/h2/expression/ExpressionVisitor;)Z
ifeq 6
4: new org.h2.expression.condition.Comparison
dup
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
iload 3
aload 5
aload 1
invokespecial org.h2.expression.condition.Comparison.<init>:(Lorg/h2/engine/Session;ILorg/h2/expression/Expression;Lorg/h2/expression/Expression;)V
astore 4
start local 4 5: goto 7
end local 4 6: StackMap locals: org.h2.command.dml.Select org.h2.expression.Parameter int int top org.h2.expression.Expression
StackMap stack:
new org.h2.expression.condition.Comparison
dup
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
bipush 16
aload 1
aload 1
invokespecial org.h2.expression.condition.Comparison.<init>:(Lorg/h2/engine/Session;ILorg/h2/expression/Expression;Lorg/h2/expression/Expression;)V
astore 4
start local 4 7: StackMap locals: org.h2.command.dml.Select org.h2.expression.Parameter int int org.h2.expression.Expression org.h2.expression.Expression
StackMap stack:
aload 4
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.expression.Expression.optimize:(Lorg/h2/engine/Session;)Lorg/h2/expression/Expression;
astore 4
8: iconst_1
istore 6
start local 6 9: aload 0
getfield org.h2.command.dml.Select.isWindowQuery:Z
ifeq 15
10: aload 0
getfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
ifnonnull 13
11: aload 0
aload 4
putfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
12: goto 14
13: StackMap locals: int
StackMap stack:
aload 0
new org.h2.expression.condition.ConditionAndOr
dup
iconst_0
aload 4
aload 0
getfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
invokespecial org.h2.expression.condition.ConditionAndOr.<init>:(ILorg/h2/expression/Expression;Lorg/h2/expression/Expression;)V
putfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
14: StackMap locals:
StackMap stack:
return
15: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.isGroupQuery:Z
ifeq 31
16: iconst_0
istore 6
17: iconst_0
istore 7
start local 7 18: goto 23
19: StackMap locals: int
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.groupIndex:[I
iload 7
iaload
iload 2
if_icmpne 22
20: iconst_1
istore 6
21: goto 24
22: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
23: aload 0
getfield org.h2.command.dml.Select.groupIndex:[I
ifnull 24
iload 7
aload 0
getfield org.h2.command.dml.Select.groupIndex:[I
arraylength
if_icmplt 19
end local 7 24: StackMap locals:
StackMap stack:
iload 6
ifne 31
25: aload 0
getfield org.h2.command.dml.Select.havingIndex:I
iflt 27
26: aload 0
aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
aload 0
getfield org.h2.command.dml.Select.havingIndex:I
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Expression
putfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
27: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
ifnonnull 30
28: aload 0
aload 4
putfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
29: goto 31
30: StackMap locals:
StackMap stack:
aload 0
new org.h2.expression.condition.ConditionAndOr
dup
iconst_0
aload 0
getfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
aload 4
invokespecial org.h2.expression.condition.ConditionAndOr.<init>:(ILorg/h2/expression/Expression;Lorg/h2/expression/Expression;)V
putfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
31: StackMap locals:
StackMap stack:
iload 6
ifeq 36
32: aload 0
getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
ifnonnull 35
33: aload 0
aload 4
putfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
34: goto 36
35: StackMap locals:
StackMap stack:
aload 0
new org.h2.expression.condition.ConditionAndOr
dup
iconst_0
aload 0
getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
aload 4
invokespecial org.h2.expression.condition.ConditionAndOr.<init>:(ILorg/h2/expression/Expression;Lorg/h2/expression/Expression;)V
putfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
36: StackMap locals:
StackMap stack:
return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lorg/h2/command/dml/Select;
0 37 1 param Lorg/h2/expression/Parameter;
0 37 2 columnId I
0 37 3 comparisonType I
5 6 4 comp Lorg/h2/expression/Expression;
7 37 4 comp Lorg/h2/expression/Expression;
2 37 5 col Lorg/h2/expression/Expression;
9 37 6 addToCondition Z
18 24 7 i I
MethodParameters:
Name Flags
param
columnId
comparisonType
public void updateAggregate(org.h2.engine.Session, int);
descriptor: (Lorg/h2/engine/Session;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 4
goto 3
StackMap locals: org.h2.command.dml.Select org.h2.engine.Session int top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.expression.Expression
astore 3
start local 3 2: aload 3
aload 1
iload 2
invokevirtual org.h2.expression.Expression.updateAggregate:(Lorg/h2/engine/Session;I)V
end local 3 3: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: aload 0
getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
ifnull 6
5: aload 0
getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
aload 1
iload 2
invokevirtual org.h2.expression.Expression.updateAggregate:(Lorg/h2/engine/Session;I)V
6: StackMap locals: org.h2.command.dml.Select org.h2.engine.Session int
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
ifnull 8
7: aload 0
getfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
aload 1
iload 2
invokevirtual org.h2.expression.Expression.updateAggregate:(Lorg/h2/engine/Session;I)V
8: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
ifnull 10
9: aload 0
getfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
aload 1
iload 2
invokevirtual org.h2.expression.Expression.updateAggregate:(Lorg/h2/engine/Session;I)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/command/dml/Select;
0 11 1 s Lorg/h2/engine/Session;
0 11 2 stage I
2 3 3 e Lorg/h2/expression/Expression;
MethodParameters:
Name Flags
s
stage
public boolean isEverything(org.h2.expression.ExpressionVisitor);
descriptor: (Lorg/h2/expression/ExpressionVisitor;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.h2.expression.ExpressionVisitor.getType:()I
tableswitch { // 2 - 7
2: 1
3: 15
4: 9
5: 23
6: 23
7: 17
default: 23
}
1: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.isForUpdate:Z
ifeq 3
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 3
goto 7
StackMap locals: org.h2.command.dml.Select org.h2.expression.ExpressionVisitor top java.util.Iterator
StackMap stack:
4: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.table.TableFilter
astore 2
start local 2 5: aload 2
invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.isDeterministic:()Z
ifne 7
6: iconst_0
ireturn
end local 2 7: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
8: goto 23
9: StackMap locals: org.h2.command.dml.Select org.h2.expression.ExpressionVisitor
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 3
goto 13
StackMap locals: org.h2.command.dml.Select org.h2.expression.ExpressionVisitor top java.util.Iterator
StackMap stack:
10: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.table.TableFilter
astore 2
start local 2 11: aload 2
invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
invokevirtual org.h2.table.Table.getMaxDataModificationId:()J
lstore 4
start local 4 12: aload 1
lload 4
invokevirtual org.h2.expression.ExpressionVisitor.addDataModificationId:(J)V
end local 4 end local 2 13: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
14: goto 23
15: StackMap locals: org.h2.command.dml.Select org.h2.expression.ExpressionVisitor
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.session:Lorg/h2/engine/Session;
invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
invokevirtual org.h2.engine.Database.getSettings:()Lorg/h2/engine/DbSettings;
getfield org.h2.engine.DbSettings.optimizeEvaluatableSubqueries:Z
ifne 23
16: iconst_0
ireturn
17: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.filters:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 3
goto 22
StackMap locals: org.h2.command.dml.Select org.h2.expression.ExpressionVisitor top java.util.Iterator
StackMap stack:
18: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.table.TableFilter
astore 2
start local 2 19: aload 2
invokevirtual org.h2.table.TableFilter.getTable:()Lorg/h2/table/Table;
astore 4
start local 4 20: aload 1
aload 4
invokevirtual org.h2.expression.ExpressionVisitor.addDependency:(Lorg/h2/engine/DbObject;)V
21: aload 4
aload 1
invokevirtual org.h2.expression.ExpressionVisitor.getDependencies:()Ljava/util/HashSet;
invokevirtual org.h2.table.Table.addDependencies:(Ljava/util/HashSet;)V
end local 4 end local 2 22: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 18
23: StackMap locals: org.h2.command.dml.Select org.h2.expression.ExpressionVisitor
StackMap stack:
aload 1
iconst_1
invokevirtual org.h2.expression.ExpressionVisitor.incrementQueryLevel:(I)Lorg/h2/expression/ExpressionVisitor;
astore 2
start local 2 24: aload 0
getfield org.h2.command.dml.Select.expressions:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 4
goto 28
StackMap locals: org.h2.command.dml.Select org.h2.expression.ExpressionVisitor org.h2.expression.ExpressionVisitor top java.util.Iterator
StackMap stack:
25: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.expression.Expression
astore 3
start local 3 26: aload 3
aload 2
invokevirtual org.h2.expression.Expression.isEverything:(Lorg/h2/expression/ExpressionVisitor;)Z
ifne 28
27: iconst_0
ireturn
end local 3 28: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 25
29: aload 0
getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
ifnull 31
aload 0
getfield org.h2.command.dml.Select.condition:Lorg/h2/expression/Expression;
aload 2
invokevirtual org.h2.expression.Expression.isEverything:(Lorg/h2/expression/ExpressionVisitor;)Z
ifne 31
30: iconst_0
ireturn
31: StackMap locals: org.h2.command.dml.Select org.h2.expression.ExpressionVisitor org.h2.expression.ExpressionVisitor
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
ifnull 33
aload 0
getfield org.h2.command.dml.Select.having:Lorg/h2/expression/Expression;
aload 2
invokevirtual org.h2.expression.Expression.isEverything:(Lorg/h2/expression/ExpressionVisitor;)Z
ifne 33
32: iconst_0
ireturn
33: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
ifnull 35
aload 0
getfield org.h2.command.dml.Select.qualify:Lorg/h2/expression/Expression;
aload 2
invokevirtual org.h2.expression.Expression.isEverything:(Lorg/h2/expression/ExpressionVisitor;)Z
ifne 35
34: iconst_0
ireturn
35: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lorg/h2/command/dml/Select;
0 36 1 visitor Lorg/h2/expression/ExpressionVisitor;
5 7 2 f Lorg/h2/table/TableFilter;
11 13 2 f Lorg/h2/table/TableFilter;
12 13 4 m J
19 22 2 f Lorg/h2/table/TableFilter;
20 22 4 table Lorg/h2/table/Table;
24 36 2 v2 Lorg/h2/expression/ExpressionVisitor;
26 28 3 e Lorg/h2/expression/Expression;
MethodParameters:
Name Flags
visitor
public boolean isReadOnly();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic org.h2.expression.ExpressionVisitor.READONLY_VISITOR:Lorg/h2/expression/ExpressionVisitor;
invokevirtual org.h2.command.dml.Select.isEverything:(Lorg/h2/expression/ExpressionVisitor;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/command/dml/Select;
public boolean isCacheable();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.command.dml.Select.isForUpdate:Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/command/dml/Select;
public boolean allowGlobalConditions();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.command.dml.Select.offsetExpr:Lorg/h2/expression/Expression;
ifnonnull 3
aload 0
getfield org.h2.command.dml.Select.limitExpr:Lorg/h2/expression/Expression;
ifnonnull 1
aload 0
getfield org.h2.command.dml.Select.distinctExpressions:[Lorg/h2/expression/Expression;
ifnull 2
StackMap locals:
StackMap stack:
1: aload 0
getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
ifnonnull 3
StackMap locals:
StackMap stack:
2: iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/command/dml/Select;
public org.h2.result.SortOrder getSortOrder();
descriptor: ()Lorg/h2/result/SortOrder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.command.dml.Select.sort:Lorg/h2/result/SortOrder;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/command/dml/Select;
public org.h2.command.dml.Select getParentSelect();
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.command.dml.Select.parentSelect:Lorg/h2/command/dml/Select;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/command/dml/Select;
}
SourceFile: "Select.java"
NestMembers:
org.h2.command.dml.Select$1 org.h2.command.dml.Select$2 org.h2.command.dml.Select$LazyResultGroupSorted org.h2.command.dml.Select$LazyResultQueryFlat org.h2.command.dml.Select$LazyResultSelect
InnerClasses:
org.h2.command.dml.Select$1
org.h2.command.dml.Select$2
private final LazyResultGroupSorted = org.h2.command.dml.Select$LazyResultGroupSorted of org.h2.command.dml.Select
private final LazyResultQueryFlat = org.h2.command.dml.Select$LazyResultQueryFlat of org.h2.command.dml.Select
private abstract LazyResultSelect = org.h2.command.dml.Select$LazyResultSelect of org.h2.command.dml.Select
public abstract TableFilterVisitor = org.h2.table.TableFilter$TableFilterVisitor of org.h2.table.TableFilter