class org.h2.expression.aggregate.AggregateDataSelectivity extends org.h2.expression.aggregate.AggregateData
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.h2.expression.aggregate.AggregateDataSelectivity
super_class: org.h2.expression.aggregate.AggregateData
{
private final boolean distinct;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private long count;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private org.h2.util.IntIntHashMap distinctHashes;
descriptor: Lorg/h2/util/IntIntHashMap;
flags: (0x0002) ACC_PRIVATE
private double m2;
descriptor: D
flags: (0x0002) ACC_PRIVATE
void <init>(boolean);
descriptor: (Z)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial org.h2.expression.aggregate.AggregateData.<init>:()V
1: aload 0
iload 1
putfield org.h2.expression.aggregate.AggregateDataSelectivity.distinct:Z
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/expression/aggregate/AggregateDataSelectivity;
0 3 1 distinct Z
MethodParameters:
Name Flags
distinct
void add(org.h2.engine.Database, org.h2.value.Value);
descriptor: (Lorg/h2/engine/Database;Lorg/h2/value/Value;)V
flags: (0x0000)
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
dup
getfield org.h2.expression.aggregate.AggregateDataSelectivity.count:J
lconst_1
ladd
putfield org.h2.expression.aggregate.AggregateDataSelectivity.count:J
1: aload 0
getfield org.h2.expression.aggregate.AggregateDataSelectivity.distinctHashes:Lorg/h2/util/IntIntHashMap;
ifnonnull 3
2: aload 0
new org.h2.util.IntIntHashMap
dup
invokespecial org.h2.util.IntIntHashMap.<init>:()V
putfield org.h2.expression.aggregate.AggregateDataSelectivity.distinctHashes:Lorg/h2/util/IntIntHashMap;
3: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.expression.aggregate.AggregateDataSelectivity.distinctHashes:Lorg/h2/util/IntIntHashMap;
invokevirtual org.h2.util.IntIntHashMap.size:()I
istore 3
start local 3 4: iload 3
sipush 10000
if_icmple 7
5: aload 0
new org.h2.util.IntIntHashMap
dup
invokespecial org.h2.util.IntIntHashMap.<init>:()V
putfield org.h2.expression.aggregate.AggregateDataSelectivity.distinctHashes:Lorg/h2/util/IntIntHashMap;
6: aload 0
dup
getfield org.h2.expression.aggregate.AggregateDataSelectivity.m2:D
iload 3
i2d
dadd
putfield org.h2.expression.aggregate.AggregateDataSelectivity.m2:D
7: StackMap locals: int
StackMap stack:
aload 2
invokevirtual org.h2.value.Value.hashCode:()I
istore 4
start local 4 8: aload 0
getfield org.h2.expression.aggregate.AggregateDataSelectivity.distinctHashes:Lorg/h2/util/IntIntHashMap;
iload 4
iconst_1
invokevirtual org.h2.util.IntIntHashMap.put:(II)V
9: 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/expression/aggregate/AggregateDataSelectivity;
0 10 1 database Lorg/h2/engine/Database;
0 10 2 v Lorg/h2/value/Value;
4 10 3 size I
8 10 4 hash I
MethodParameters:
Name Flags
database
v
org.h2.value.Value getValue(org.h2.engine.Database, int);
descriptor: (Lorg/h2/engine/Database;I)Lorg/h2/value/Value;
flags: (0x0000)
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.h2.expression.aggregate.AggregateDataSelectivity.distinct:Z
ifeq 2
1: aload 0
lconst_0
putfield org.h2.expression.aggregate.AggregateDataSelectivity.count:J
2: StackMap locals:
StackMap stack:
aconst_null
astore 3
start local 3 3: iconst_0
istore 4
start local 4 4: aload 0
getfield org.h2.expression.aggregate.AggregateDataSelectivity.count:J
lconst_0
lcmp
ifne 7
5: iconst_0
istore 4
6: goto 14
7: StackMap locals: org.h2.value.Value int
StackMap stack:
aload 0
dup
getfield org.h2.expression.aggregate.AggregateDataSelectivity.m2:D
aload 0
getfield org.h2.expression.aggregate.AggregateDataSelectivity.distinctHashes:Lorg/h2/util/IntIntHashMap;
invokevirtual org.h2.util.IntIntHashMap.size:()I
i2d
dadd
putfield org.h2.expression.aggregate.AggregateDataSelectivity.m2:D
8: aload 0
ldc 100.0
aload 0
getfield org.h2.expression.aggregate.AggregateDataSelectivity.m2:D
dmul
aload 0
getfield org.h2.expression.aggregate.AggregateDataSelectivity.count:J
l2d
ddiv
putfield org.h2.expression.aggregate.AggregateDataSelectivity.m2:D
9: aload 0
getfield org.h2.expression.aggregate.AggregateDataSelectivity.m2:D
d2i
istore 4
10: iload 4
ifgt 11
iconst_1
goto 13
StackMap locals:
StackMap stack:
11: iload 4
bipush 100
if_icmple 12
bipush 100
goto 13
StackMap locals:
StackMap stack:
12: iload 4
StackMap locals:
StackMap stack: int
13: istore 4
14: StackMap locals:
StackMap stack:
iload 4
invokestatic org.h2.value.ValueInt.get:(I)Lorg/h2/value/ValueInt;
astore 3
15: aload 3
iload 2
invokevirtual org.h2.value.Value.convertTo:(I)Lorg/h2/value/Value;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/h2/expression/aggregate/AggregateDataSelectivity;
0 16 1 database Lorg/h2/engine/Database;
0 16 2 dataType I
3 16 3 v Lorg/h2/value/Value;
4 16 4 s I
MethodParameters:
Name Flags
database
dataType
}
SourceFile: "AggregateDataSelectivity.java"