public final class org.hsqldb.SortAndSlice
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.hsqldb.SortAndSlice
super_class: java.lang.Object
{
static final org.hsqldb.SortAndSlice noSort;
descriptor: Lorg/hsqldb/SortAndSlice;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final int[] defaultLimits;
descriptor: [I
flags: (0x0018) ACC_STATIC, ACC_FINAL
public int[] sortOrder;
descriptor: [I
flags: (0x0001) ACC_PUBLIC
public boolean[] sortDescending;
descriptor: [Z
flags: (0x0001) ACC_PUBLIC
public boolean[] sortNullsLast;
descriptor: [Z
flags: (0x0001) ACC_PUBLIC
public org.hsqldb.types.Collation[] collations;
descriptor: [Lorg/hsqldb/types/Collation;
flags: (0x0001) ACC_PUBLIC
boolean sortUnion;
descriptor: Z
flags: (0x0000)
org.hsqldb.lib.HsqlArrayList exprList;
descriptor: Lorg/hsqldb/lib/HsqlArrayList;
flags: (0x0000)
org.hsqldb.ExpressionOp limitCondition;
descriptor: Lorg/hsqldb/ExpressionOp;
flags: (0x0000)
public int columnCount;
descriptor: I
flags: (0x0001) ACC_PUBLIC
boolean hasNullsLast;
descriptor: Z
flags: (0x0000)
boolean strictLimit;
descriptor: Z
flags: (0x0000)
boolean zeroLimit;
descriptor: Z
flags: (0x0000)
boolean usingIndex;
descriptor: Z
flags: (0x0000)
boolean allDescending;
descriptor: Z
flags: (0x0000)
public boolean skipSort;
descriptor: Z
flags: (0x0001) ACC_PUBLIC
public boolean skipFullResult;
descriptor: Z
flags: (0x0001) ACC_PUBLIC
public org.hsqldb.index.Index index;
descriptor: Lorg/hsqldb/index/Index;
flags: (0x0001) ACC_PUBLIC
public org.hsqldb.Table primaryTable;
descriptor: Lorg/hsqldb/Table;
flags: (0x0001) ACC_PUBLIC
public org.hsqldb.index.Index primaryTableIndex;
descriptor: Lorg/hsqldb/index/Index;
flags: (0x0001) ACC_PUBLIC
public int[] colIndexes;
descriptor: [I
flags: (0x0001) ACC_PUBLIC
public boolean isGenerated;
descriptor: Z
flags: (0x0001) ACC_PUBLIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: new org.hsqldb.SortAndSlice
dup
invokespecial org.hsqldb.SortAndSlice.<init>:()V
putstatic org.hsqldb.SortAndSlice.noSort:Lorg/hsqldb/SortAndSlice;
1: iconst_3
newarray 10
dup
iconst_1
2: ldc 2147483647
iastore
dup
iconst_2
ldc 2147483647
iastore
3: putstatic org.hsqldb.SortAndSlice.defaultLimits:[I
4: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new org.hsqldb.lib.HsqlArrayList
dup
invokespecial org.hsqldb.lib.HsqlArrayList.<init>:()V
putfield org.hsqldb.SortAndSlice.exprList:Lorg/hsqldb/lib/HsqlArrayList;
2: aload 0
iconst_0
putfield org.hsqldb.SortAndSlice.skipSort:Z
3: aload 0
iconst_0
putfield org.hsqldb.SortAndSlice.skipFullResult:Z
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/hsqldb/SortAndSlice;
public org.hsqldb.lib.HsqlArrayList getExpressionList();
descriptor: ()Lorg/hsqldb/lib/HsqlArrayList;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.hsqldb.SortAndSlice.exprList:Lorg/hsqldb/lib/HsqlArrayList;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hsqldb/SortAndSlice;
public boolean hasOrder();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.hsqldb.SortAndSlice.exprList:Lorg/hsqldb/lib/HsqlArrayList;
invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/hsqldb/SortAndSlice;
public boolean hasLimit();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.hsqldb.SortAndSlice.limitCondition:Lorg/hsqldb/ExpressionOp;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/hsqldb/SortAndSlice;
public int getOrderLength();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.hsqldb.SortAndSlice.exprList:Lorg/hsqldb/lib/HsqlArrayList;
invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hsqldb/SortAndSlice;
public void addOrderExpression(org.hsqldb.Expression);
descriptor: (Lorg/hsqldb/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.hsqldb.SortAndSlice.exprList:Lorg/hsqldb/lib/HsqlArrayList;
aload 1
invokevirtual org.hsqldb.lib.HsqlArrayList.add:(Ljava/lang/Object;)Z
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/hsqldb/SortAndSlice;
0 2 1 e Lorg/hsqldb/Expression;
MethodParameters:
Name Flags
e
public void addLimitCondition(org.hsqldb.ExpressionOp);
descriptor: (Lorg/hsqldb/ExpressionOp;)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.hsqldb.SortAndSlice.limitCondition:Lorg/hsqldb/ExpressionOp;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/hsqldb/SortAndSlice;
0 2 1 expression Lorg/hsqldb/ExpressionOp;
MethodParameters:
Name Flags
expression
public void setStrictLimit();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield org.hsqldb.SortAndSlice.strictLimit:Z
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/hsqldb/SortAndSlice;
public void setZeroLimit();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield org.hsqldb.SortAndSlice.zeroLimit:Z
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/hsqldb/SortAndSlice;
public void setUsingIndex();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield org.hsqldb.SortAndSlice.usingIndex:Z
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/hsqldb/SortAndSlice;
public void prepareSingleColumn(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iconst_1
newarray 10
putfield org.hsqldb.SortAndSlice.sortOrder:[I
1: aload 0
iconst_1
newarray 4
putfield org.hsqldb.SortAndSlice.sortDescending:[Z
2: aload 0
iconst_1
newarray 4
putfield org.hsqldb.SortAndSlice.sortNullsLast:[Z
3: aload 0
getfield org.hsqldb.SortAndSlice.sortOrder:[I
iconst_0
iload 1
iastore
4: aload 0
iconst_1
putfield org.hsqldb.SortAndSlice.columnCount:I
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/hsqldb/SortAndSlice;
0 6 1 colIndex I
MethodParameters:
Name Flags
colIndex
public void prepareMultiColumn(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
iload 1
newarray 10
putfield org.hsqldb.SortAndSlice.sortOrder:[I
1: aload 0
iload 1
newarray 4
putfield org.hsqldb.SortAndSlice.sortDescending:[Z
2: aload 0
iload 1
newarray 4
putfield org.hsqldb.SortAndSlice.sortNullsLast:[Z
3: aload 0
iload 1
putfield org.hsqldb.SortAndSlice.columnCount:I
4: iconst_0
istore 2
start local 2 5: goto 8
6: StackMap locals: int
StackMap stack:
aload 0
getfield org.hsqldb.SortAndSlice.sortOrder:[I
iload 2
iload 2
iastore
7: iinc 2 1
StackMap locals:
StackMap stack:
8: iload 2
iload 1
if_icmplt 6
end local 2 9: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/hsqldb/SortAndSlice;
0 10 1 count I
5 9 2 i I
MethodParameters:
Name Flags
count
public void prepareExtraColumn(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 0
getfield org.hsqldb.SortAndSlice.exprList:Lorg/hsqldb/lib/HsqlArrayList;
invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
putfield org.hsqldb.SortAndSlice.columnCount:I
1: aload 0
getfield org.hsqldb.SortAndSlice.columnCount:I
ifne 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.hsqldb.SortAndSlice.columnCount:I
iload 1
iadd
newarray 10
putfield org.hsqldb.SortAndSlice.sortOrder:[I
4: aload 0
aload 0
getfield org.hsqldb.SortAndSlice.columnCount:I
iload 1
iadd
newarray 4
putfield org.hsqldb.SortAndSlice.sortDescending:[Z
5: aload 0
aload 0
getfield org.hsqldb.SortAndSlice.columnCount:I
iload 1
iadd
newarray 4
putfield org.hsqldb.SortAndSlice.sortNullsLast:[Z
6: aload 0
getfield org.hsqldb.SortAndSlice.sortOrder:[I
invokestatic org.hsqldb.lib.ArrayUtil.fillSequence:([I)V
7: iconst_0
istore 2
start local 2 8: goto 14
9: StackMap locals: int
StackMap stack:
aload 0
getfield org.hsqldb.SortAndSlice.exprList:Lorg/hsqldb/lib/HsqlArrayList;
iload 2
invokevirtual org.hsqldb.lib.HsqlArrayList.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.ExpressionOrderBy
astore 3
start local 3 10: aload 0
getfield org.hsqldb.SortAndSlice.sortDescending:[Z
iload 2
aload 3
invokevirtual org.hsqldb.ExpressionOrderBy.isDescending:()Z
bastore
11: aload 0
getfield org.hsqldb.SortAndSlice.sortNullsLast:[Z
iload 2
aload 3
invokevirtual org.hsqldb.ExpressionOrderBy.isNullsLast:()Z
bastore
12: aload 0
dup
getfield org.hsqldb.SortAndSlice.hasNullsLast:Z
aload 0
getfield org.hsqldb.SortAndSlice.sortNullsLast:[Z
iload 2
baload
ior
putfield org.hsqldb.SortAndSlice.hasNullsLast:Z
end local 3 13: iinc 2 1
StackMap locals:
StackMap stack:
14: iload 2
aload 0
getfield org.hsqldb.SortAndSlice.columnCount:I
if_icmplt 9
end local 2 15: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/hsqldb/SortAndSlice;
0 16 1 degree I
8 15 2 i I
10 13 3 sort Lorg/hsqldb/ExpressionOrderBy;
MethodParameters:
Name Flags
degree
public void prepare(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 0
getfield org.hsqldb.SortAndSlice.exprList:Lorg/hsqldb/lib/HsqlArrayList;
invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
putfield org.hsqldb.SortAndSlice.columnCount:I
1: aload 0
getfield org.hsqldb.SortAndSlice.columnCount:I
ifne 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.hsqldb.SortAndSlice.columnCount:I
newarray 10
putfield org.hsqldb.SortAndSlice.sortOrder:[I
4: aload 0
aload 0
getfield org.hsqldb.SortAndSlice.columnCount:I
newarray 4
putfield org.hsqldb.SortAndSlice.sortDescending:[Z
5: aload 0
aload 0
getfield org.hsqldb.SortAndSlice.columnCount:I
newarray 4
putfield org.hsqldb.SortAndSlice.sortNullsLast:[Z
6: iconst_0
istore 2
start local 2 7: goto 21
8: StackMap locals: int
StackMap stack:
aload 0
getfield org.hsqldb.SortAndSlice.exprList:Lorg/hsqldb/lib/HsqlArrayList;
iload 2
invokevirtual org.hsqldb.lib.HsqlArrayList.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.ExpressionOrderBy
astore 3
start local 3 9: aload 3
invokevirtual org.hsqldb.ExpressionOrderBy.getLeftNode:()Lorg/hsqldb/Expression;
getfield org.hsqldb.Expression.queryTableColumnIndex:I
iconst_m1
if_icmpne 12
10: aload 0
getfield org.hsqldb.SortAndSlice.sortOrder:[I
iload 2
iload 1
iload 2
iadd
iastore
11: goto 13
12: StackMap locals: org.hsqldb.ExpressionOrderBy
StackMap stack:
aload 0
getfield org.hsqldb.SortAndSlice.sortOrder:[I
iload 2
aload 3
invokevirtual org.hsqldb.ExpressionOrderBy.getLeftNode:()Lorg/hsqldb/Expression;
getfield org.hsqldb.Expression.queryTableColumnIndex:I
iastore
13: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.SortAndSlice.sortDescending:[Z
iload 2
aload 3
invokevirtual org.hsqldb.ExpressionOrderBy.isDescending:()Z
bastore
14: aload 0
getfield org.hsqldb.SortAndSlice.sortNullsLast:[Z
iload 2
aload 3
invokevirtual org.hsqldb.ExpressionOrderBy.isNullsLast:()Z
bastore
15: aload 0
dup
getfield org.hsqldb.SortAndSlice.hasNullsLast:Z
aload 0
getfield org.hsqldb.SortAndSlice.sortNullsLast:[Z
iload 2
baload
ior
putfield org.hsqldb.SortAndSlice.hasNullsLast:Z
16: aload 3
getfield org.hsqldb.ExpressionOrderBy.collation:Lorg/hsqldb/types/Collation;
ifnull 20
17: aload 0
getfield org.hsqldb.SortAndSlice.collations:[Lorg/hsqldb/types/Collation;
ifnonnull 19
18: aload 0
aload 0
getfield org.hsqldb.SortAndSlice.columnCount:I
anewarray org.hsqldb.types.Collation
putfield org.hsqldb.SortAndSlice.collations:[Lorg/hsqldb/types/Collation;
19: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.SortAndSlice.collations:[Lorg/hsqldb/types/Collation;
iload 2
aload 3
getfield org.hsqldb.ExpressionOrderBy.collation:Lorg/hsqldb/types/Collation;
aastore
end local 3 20: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
21: iload 2
aload 0
getfield org.hsqldb.SortAndSlice.columnCount:I
if_icmplt 8
end local 2 22: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lorg/hsqldb/SortAndSlice;
0 23 1 startColumn I
7 22 2 i I
9 20 3 sort Lorg/hsqldb/ExpressionOrderBy;
MethodParameters:
Name Flags
startColumn
void setSortIndex(org.hsqldb.QuerySpecification);
descriptor: (Lorg/hsqldb/QuerySpecification;)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getstatic org.hsqldb.SortAndSlice.noSort:Lorg/hsqldb/SortAndSlice;
if_acmpne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.SortAndSlice.isGenerated:Z
ifeq 4
3: return
4: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 5: goto 11
6: StackMap locals: int
StackMap stack:
aload 0
getfield org.hsqldb.SortAndSlice.exprList:Lorg/hsqldb/lib/HsqlArrayList;
iload 2
invokevirtual org.hsqldb.lib.HsqlArrayList.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.ExpressionOrderBy
astore 3
start local 3 7: aload 3
invokevirtual org.hsqldb.ExpressionOrderBy.getLeftNode:()Lorg/hsqldb/Expression;
invokevirtual org.hsqldb.Expression.getDataType:()Lorg/hsqldb/types/Type;
astore 4
start local 4 8: aload 4
invokevirtual org.hsqldb.types.Type.isArrayType:()Z
ifne 9
aload 4
invokevirtual org.hsqldb.types.Type.isLobType:()Z
ifeq 10
9: StackMap locals: org.hsqldb.ExpressionOrderBy org.hsqldb.types.Type
StackMap stack:
sipush 5534
invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
athrow
end local 4 end local 3 10: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
11: iload 2
aload 0
getfield org.hsqldb.SortAndSlice.columnCount:I
if_icmplt 6
end local 2 12: aload 1
ifnonnull 14
13: return
14: StackMap locals:
StackMap stack:
aload 1
getfield org.hsqldb.QuerySpecification.isDistinctSelect:Z
ifne 16
aload 1
getfield org.hsqldb.QuerySpecification.isGrouped:Z
ifne 16
15: aload 1
getfield org.hsqldb.QuerySpecification.isAggregated:Z
ifeq 18
16: StackMap locals:
StackMap stack:
aload 1
getfield org.hsqldb.QuerySpecification.isSimpleDistinct:Z
ifne 18
17: return
18: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.SortAndSlice.columnCount:I
ifne 23
19: aload 0
getfield org.hsqldb.SortAndSlice.limitCondition:Lorg/hsqldb/ExpressionOp;
ifnonnull 21
20: return
21: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.hsqldb.SortAndSlice.skipFullResult:Z
22: return
23: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.SortAndSlice.collations:[Lorg/hsqldb/types/Collation;
ifnull 25
24: return
25: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.hsqldb.SortAndSlice.columnCount:I
newarray 10
putfield org.hsqldb.SortAndSlice.colIndexes:[I
26: iconst_0
istore 2
start local 2 27: iconst_0
istore 3
start local 3 28: goto 38
29: StackMap locals: int int
StackMap stack:
aload 0
getfield org.hsqldb.SortAndSlice.exprList:Lorg/hsqldb/lib/HsqlArrayList;
iload 3
invokevirtual org.hsqldb.lib.HsqlArrayList.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.Expression
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
astore 4
start local 4 30: aload 4
invokevirtual org.hsqldb.Expression.getType:()I
iconst_2
if_icmpeq 32
31: return
32: StackMap locals: org.hsqldb.Expression
StackMap stack:
aload 4
invokevirtual org.hsqldb.Expression.getRangeVariable:()Lorg/hsqldb/RangeVariable;
aload 1
getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
iconst_0
aaload
if_acmpeq 34
33: return
34: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.SortAndSlice.colIndexes:[I
iload 3
aload 4
getfield org.hsqldb.Expression.columnIndex:I
iastore
35: aload 4
invokevirtual org.hsqldb.Expression.getColumn:()Lorg/hsqldb/ColumnSchema;
invokevirtual org.hsqldb.ColumnSchema.getNullability:()B
ifeq 37
36: iconst_1
istore 2
end local 4 37: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
38: iload 3
aload 0
getfield org.hsqldb.SortAndSlice.columnCount:I
if_icmplt 29
end local 3 39: aload 0
getfield org.hsqldb.SortAndSlice.hasNullsLast:Z
ifeq 41
iload 2
ifeq 41
40: return
41: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.SortAndSlice.sortDescending:[Z
invokestatic org.hsqldb.lib.ArrayUtil.countTrueElements:([Z)I
istore 3
start local 3 42: aload 0
iload 3
aload 0
getfield org.hsqldb.SortAndSlice.columnCount:I
if_icmpne 43
iconst_1
goto 44
StackMap locals: org.hsqldb.SortAndSlice org.hsqldb.QuerySpecification int int
StackMap stack: org.hsqldb.SortAndSlice
43: iconst_0
StackMap locals: org.hsqldb.SortAndSlice org.hsqldb.QuerySpecification int int
StackMap stack: org.hsqldb.SortAndSlice int
44: putfield org.hsqldb.SortAndSlice.allDescending:Z
45: aload 0
getfield org.hsqldb.SortAndSlice.allDescending:Z
ifne 47
iload 3
ifle 47
46: return
47: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
iconst_0
aaload
invokevirtual org.hsqldb.RangeVariable.getTable:()Lorg/hsqldb/Table;
putfield org.hsqldb.SortAndSlice.primaryTable:Lorg/hsqldb/Table;
48: aload 0
aload 0
getfield org.hsqldb.SortAndSlice.primaryTable:Lorg/hsqldb/Table;
aload 0
getfield org.hsqldb.SortAndSlice.colIndexes:[I
invokevirtual org.hsqldb.Table.getFullIndexForColumns:([I)Lorg/hsqldb/index/Index;
putfield org.hsqldb.SortAndSlice.primaryTableIndex:Lorg/hsqldb/index/Index;
49: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 50 0 this Lorg/hsqldb/SortAndSlice;
0 50 1 select Lorg/hsqldb/QuerySpecification;
5 12 2 i I
7 10 3 sort Lorg/hsqldb/ExpressionOrderBy;
8 10 4 dataType Lorg/hsqldb/types/Type;
27 50 2 isNullable Z
28 39 3 i I
30 37 4 e Lorg/hsqldb/Expression;
42 50 3 count I
MethodParameters:
Name Flags
select
void setSortRange(org.hsqldb.QuerySpecification);
descriptor: (Lorg/hsqldb/QuerySpecification;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getstatic org.hsqldb.SortAndSlice.noSort:Lorg/hsqldb/SortAndSlice;
if_acmpne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.SortAndSlice.primaryTableIndex:Lorg/hsqldb/index/Index;
ifnonnull 7
3: aload 1
getfield org.hsqldb.QuerySpecification.isSimpleDistinct:Z
ifeq 5
4: aload 0
aload 1
invokevirtual org.hsqldb.SortAndSlice.setSortIndex:(Lorg/hsqldb/QuerySpecification;)V
5: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.SortAndSlice.primaryTableIndex:Lorg/hsqldb/index/Index;
ifnonnull 7
6: return
7: StackMap locals:
StackMap stack:
aload 1
getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
iconst_0
aaload
invokevirtual org.hsqldb.RangeVariable.getSortIndex:()Lorg/hsqldb/index/Index;
astore 2
start local 2 8: aload 2
ifnonnull 10
9: return
10: StackMap locals: org.hsqldb.index.Index
StackMap stack:
aload 0
getfield org.hsqldb.SortAndSlice.primaryTable:Lorg/hsqldb/Table;
aload 1
getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
iconst_0
aaload
getfield org.hsqldb.RangeVariable.rangeTable:Lorg/hsqldb/Table;
if_acmpeq 12
11: return
12: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield org.hsqldb.SortAndSlice.primaryTableIndex:Lorg/hsqldb/index/Index;
if_acmpne 20
13: aload 0
getfield org.hsqldb.SortAndSlice.allDescending:Z
ifeq 17
14: aload 1
getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
iconst_0
aaload
invokevirtual org.hsqldb.RangeVariable.reverseOrder:()Z
istore 3
start local 3 15: iload 3
ifne 17
16: return
end local 3 17: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.hsqldb.SortAndSlice.skipSort:Z
18: aload 0
iconst_1
putfield org.hsqldb.SortAndSlice.skipFullResult:Z
19: goto 28
StackMap locals:
StackMap stack:
20: aload 1
getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
iconst_0
aaload
getfield org.hsqldb.RangeVariable.joinConditions:[Lorg/hsqldb/RangeVariable$RangeVariableConditions;
iconst_0
aaload
21: invokevirtual org.hsqldb.RangeVariable$RangeVariableConditions.hasIndexCondition:()Z
ifne 28
22: aload 1
getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
iconst_0
aaload
aload 0
getfield org.hsqldb.SortAndSlice.primaryTableIndex:Lorg/hsqldb/index/Index;
23: aload 0
getfield org.hsqldb.SortAndSlice.allDescending:Z
24: invokevirtual org.hsqldb.RangeVariable.setSortIndex:(Lorg/hsqldb/index/Index;Z)Z
25: ifeq 28
26: aload 0
iconst_1
putfield org.hsqldb.SortAndSlice.skipSort:Z
27: aload 0
iconst_1
putfield org.hsqldb.SortAndSlice.skipFullResult:Z
28: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lorg/hsqldb/SortAndSlice;
0 29 1 select Lorg/hsqldb/QuerySpecification;
8 29 2 rangeIndex Lorg/hsqldb/index/Index;
15 17 3 reversed Z
MethodParameters:
Name Flags
select
public boolean prepareSpecial(org.hsqldb.Session, org.hsqldb.QuerySpecification);
descriptor: (Lorg/hsqldb/Session;Lorg/hsqldb/QuerySpecification;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 2
getfield org.hsqldb.QuerySpecification.exprColumns:[Lorg/hsqldb/Expression;
aload 2
getfield org.hsqldb.QuerySpecification.indexStartAggregates:I
aaload
astore 3
start local 3 1: aload 3
invokevirtual org.hsqldb.Expression.getType:()I
istore 4
start local 4 2: aload 3
invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
astore 3
3: aload 3
invokevirtual org.hsqldb.Expression.getType:()I
iconst_2
if_icmpeq 5
4: iconst_0
ireturn
5: StackMap locals: org.hsqldb.Expression int
StackMap stack:
aload 3
invokevirtual org.hsqldb.Expression.getRangeVariable:()Lorg/hsqldb/RangeVariable;
aload 2
getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
iconst_0
aaload
if_acmpeq 7
6: iconst_0
ireturn
7: StackMap locals:
StackMap stack:
aload 2
getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
iconst_0
aaload
invokevirtual org.hsqldb.RangeVariable.getSortIndex:()Lorg/hsqldb/index/Index;
astore 5
start local 5 8: aload 5
ifnonnull 10
9: iconst_0
ireturn
10: StackMap locals: org.hsqldb.index.Index
StackMap stack:
aload 2
getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
iconst_0
aaload
invokevirtual org.hsqldb.RangeVariable.hasAnyTerminalCondition:()Z
ifeq 12
11: iconst_0
ireturn
12: StackMap locals:
StackMap stack:
aload 2
getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
iconst_0
aaload
invokevirtual org.hsqldb.RangeVariable.hasSingleIndexCondition:()Z
ifeq 19
13: aload 5
invokeinterface org.hsqldb.index.Index.getColumns:()[I
astore 6
start local 6 14: aload 6
iconst_0
iaload
aload 3
invokevirtual org.hsqldb.Expression.getColumnIndex:()I
if_icmpeq 16
15: iconst_0
ireturn
16: StackMap locals: int[]
StackMap stack:
iload 4
bipush 77
if_icmpne 33
17: aload 2
getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
iconst_0
aaload
invokevirtual org.hsqldb.RangeVariable.reverseOrder:()Z
pop
end local 6 18: goto 33
StackMap locals:
StackMap stack:
19: aload 2
getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
iconst_0
aaload
invokevirtual org.hsqldb.RangeVariable.hasAnyIndexCondition:()Z
ifeq 21
20: iconst_0
ireturn
21: StackMap locals:
StackMap stack:
aload 2
getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
iconst_0
aaload
invokevirtual org.hsqldb.RangeVariable.getTable:()Lorg/hsqldb/Table;
astore 6
start local 6 22: aload 6
aload 1
aload 3
invokevirtual org.hsqldb.Expression.getColumnIndex:()I
invokevirtual org.hsqldb.Table.getIndexForColumn:(Lorg/hsqldb/Session;I)Lorg/hsqldb/index/Index;
astore 7
start local 7 23: aload 7
ifnonnull 25
24: iconst_0
ireturn
25: StackMap locals: org.hsqldb.Table org.hsqldb.index.Index
StackMap stack:
iconst_1
anewarray org.hsqldb.Expression
dup
iconst_0
26: aload 3
invokestatic org.hsqldb.ExpressionLogical.newNotNullCondition:(Lorg/hsqldb/Expression;)Lorg/hsqldb/ExpressionLogical;
aastore
27: astore 8
start local 8 28: aload 2
getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
iconst_0
aaload
getfield org.hsqldb.RangeVariable.joinConditions:[Lorg/hsqldb/RangeVariable$RangeVariableConditions;
iconst_0
aaload
29: aload 8
aload 7
iconst_1
30: invokevirtual org.hsqldb.RangeVariable$RangeVariableConditions.addIndexCondition:([Lorg/hsqldb/Expression;Lorg/hsqldb/index/Index;I)V
31: iload 4
bipush 77
if_icmpne 33
32: aload 2
getfield org.hsqldb.QuerySpecification.rangeVariables:[Lorg/hsqldb/RangeVariable;
iconst_0
aaload
invokevirtual org.hsqldb.RangeVariable.reverseOrder:()Z
pop
end local 8 end local 7 end local 6 33: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.hsqldb.SortAndSlice.columnCount:I
34: aload 0
aload 0
getfield org.hsqldb.SortAndSlice.columnCount:I
newarray 10
putfield org.hsqldb.SortAndSlice.sortOrder:[I
35: aload 0
aload 0
getfield org.hsqldb.SortAndSlice.columnCount:I
newarray 4
putfield org.hsqldb.SortAndSlice.sortDescending:[Z
36: aload 0
aload 0
getfield org.hsqldb.SortAndSlice.columnCount:I
newarray 4
putfield org.hsqldb.SortAndSlice.sortNullsLast:[Z
37: aload 0
iconst_1
putfield org.hsqldb.SortAndSlice.skipSort:Z
38: aload 0
iconst_1
putfield org.hsqldb.SortAndSlice.skipFullResult:Z
39: iconst_1
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lorg/hsqldb/SortAndSlice;
0 40 1 session Lorg/hsqldb/Session;
0 40 2 select Lorg/hsqldb/QuerySpecification;
1 40 3 e Lorg/hsqldb/Expression;
2 40 4 opType I
8 40 5 rangeIndex Lorg/hsqldb/index/Index;
14 18 6 colIndexes [I
22 33 6 table Lorg/hsqldb/Table;
23 33 7 index Lorg/hsqldb/index/Index;
28 33 8 conditions [Lorg/hsqldb/Expression;
MethodParameters:
Name Flags
session
select
int[] getLimits(org.hsqldb.Session, org.hsqldb.QueryExpression, int);
descriptor: (Lorg/hsqldb/Session;Lorg/hsqldb/QueryExpression;I)[I
flags: (0x0000)
Code:
stack=4, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getstatic org.hsqldb.SortAndSlice.noSort:Lorg/hsqldb/SortAndSlice;
if_acmpne 2
iload 3
ifne 2
1: getstatic org.hsqldb.SortAndSlice.defaultLimits:[I
areturn
2: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 3: ldc 2147483647
istore 5
start local 5 4: ldc 2147483647
istore 6
start local 6 5: iconst_0
istore 7
start local 7 6: aload 0
invokevirtual org.hsqldb.SortAndSlice.hasLimit:()Z
ifeq 26
7: aload 0
getfield org.hsqldb.SortAndSlice.limitCondition:Lorg/hsqldb/ExpressionOp;
invokevirtual org.hsqldb.ExpressionOp.getLeftNode:()Lorg/hsqldb/Expression;
aload 1
invokevirtual org.hsqldb.Expression.getValue:(Lorg/hsqldb/Session;)Ljava/lang/Object;
checkcast java.lang.Integer
8: astore 8
start local 8 9: aload 8
ifnull 10
aload 8
invokevirtual java.lang.Integer.intValue:()I
ifge 11
10: StackMap locals: org.hsqldb.SortAndSlice org.hsqldb.Session org.hsqldb.QueryExpression int int int int int java.lang.Integer
StackMap stack:
sipush 3453
invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
athrow
11: StackMap locals:
StackMap stack:
aload 8
invokevirtual java.lang.Integer.intValue:()I
istore 4
12: iload 4
ifeq 13
iconst_1
goto 14
StackMap locals:
StackMap stack:
13: iconst_0
StackMap locals:
StackMap stack: int
14: istore 7
15: aload 0
getfield org.hsqldb.SortAndSlice.limitCondition:Lorg/hsqldb/ExpressionOp;
invokevirtual org.hsqldb.ExpressionOp.getRightNode:()Lorg/hsqldb/Expression;
ifnull 26
16: aload 0
getfield org.hsqldb.SortAndSlice.limitCondition:Lorg/hsqldb/ExpressionOp;
invokevirtual org.hsqldb.ExpressionOp.getRightNode:()Lorg/hsqldb/Expression;
aload 1
invokevirtual org.hsqldb.Expression.getValue:(Lorg/hsqldb/Session;)Ljava/lang/Object;
checkcast java.lang.Integer
17: astore 8
18: aload 8
ifnull 20
aload 8
invokevirtual java.lang.Integer.intValue:()I
iflt 20
19: aload 0
getfield org.hsqldb.SortAndSlice.strictLimit:Z
ifeq 21
aload 8
invokevirtual java.lang.Integer.intValue:()I
ifne 21
20: StackMap locals:
StackMap stack:
sipush 3452
invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
athrow
21: StackMap locals:
StackMap stack:
aload 8
invokevirtual java.lang.Integer.intValue:()I
ifne 24
aload 0
getfield org.hsqldb.SortAndSlice.zeroLimit:Z
ifne 24
22: ldc 2147483647
istore 5
23: goto 26
24: StackMap locals:
StackMap stack:
aload 8
invokevirtual java.lang.Integer.intValue:()I
istore 5
25: iconst_1
istore 7
end local 8 26: StackMap locals:
StackMap stack:
iload 3
ifeq 30
27: iload 3
iload 5
if_icmpge 29
28: iload 3
istore 5
29: StackMap locals:
StackMap stack:
iconst_1
istore 7
30: StackMap locals:
StackMap stack:
iconst_0
istore 8
start local 8 31: aload 2
instanceof org.hsqldb.QuerySpecification
ifeq 37
32: aload 2
checkcast org.hsqldb.QuerySpecification
astore 9
start local 9 33: aload 9
getfield org.hsqldb.QuerySpecification.isDistinctSelect:Z
ifne 35
aload 9
getfield org.hsqldb.QuerySpecification.isGrouped:Z
ifne 35
34: iconst_1
istore 8
35: StackMap locals: int org.hsqldb.QuerySpecification
StackMap stack:
aload 9
getfield org.hsqldb.QuerySpecification.isSimpleDistinct:Z
ifeq 37
36: iconst_1
istore 8
end local 9 37: StackMap locals:
StackMap stack:
iload 7
ifeq 45
38: iload 8
ifeq 42
aload 0
invokevirtual org.hsqldb.SortAndSlice.hasOrder:()Z
ifeq 39
aload 0
getfield org.hsqldb.SortAndSlice.skipSort:Z
ifeq 42
39: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.hsqldb.SortAndSlice.hasLimit:()Z
ifeq 40
aload 0
getfield org.hsqldb.SortAndSlice.skipFullResult:Z
ifeq 42
40: StackMap locals:
StackMap stack:
iload 6
iload 4
isub
iload 5
if_icmple 42
41: iload 4
iload 5
iadd
istore 6
42: StackMap locals:
StackMap stack:
iconst_3
newarray 10
dup
iconst_0
43: iload 4
iastore
dup
iconst_1
iload 5
iastore
dup
iconst_2
iload 6
iastore
44: areturn
45: StackMap locals:
StackMap stack:
getstatic org.hsqldb.SortAndSlice.defaultLimits:[I
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 this Lorg/hsqldb/SortAndSlice;
0 46 1 session Lorg/hsqldb/Session;
0 46 2 qe Lorg/hsqldb/QueryExpression;
0 46 3 maxRows I
3 46 4 skipRows I
4 46 5 limitRows I
5 46 6 limitFetch I
6 46 7 hasLimits Z
9 26 8 value Ljava/lang/Integer;
31 46 8 simpleLimit Z
33 37 9 select Lorg/hsqldb/QuerySpecification;
MethodParameters:
Name Flags
session
qe
maxRows
public void setIndex(org.hsqldb.Session, org.hsqldb.TableBase);
descriptor: (Lorg/hsqldb/Session;Lorg/hsqldb/TableBase;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 0
aload 1
aload 2
invokevirtual org.hsqldb.SortAndSlice.getNewIndex:(Lorg/hsqldb/Session;Lorg/hsqldb/TableBase;)Lorg/hsqldb/index/Index;
putfield org.hsqldb.SortAndSlice.index:Lorg/hsqldb/index/Index;
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/hsqldb/SortAndSlice;
0 2 1 session Lorg/hsqldb/Session;
0 2 2 table Lorg/hsqldb/TableBase;
MethodParameters:
Name Flags
session
table
public org.hsqldb.index.Index getNewIndex(org.hsqldb.Session, org.hsqldb.TableBase);
descriptor: (Lorg/hsqldb/Session;Lorg/hsqldb/TableBase;)Lorg/hsqldb/index/Index;
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.hsqldb.SortAndSlice.hasOrder:()Z
ifeq 18
1: aload 2
aload 1
aconst_null
2: aload 0
getfield org.hsqldb.SortAndSlice.sortOrder:[I
aload 0
getfield org.hsqldb.SortAndSlice.sortDescending:[Z
aload 0
getfield org.hsqldb.SortAndSlice.sortNullsLast:[Z
iconst_0
iconst_0
iconst_0
3: invokevirtual org.hsqldb.TableBase.createAndAddIndexStructure:(Lorg/hsqldb/Session;Lorg/hsqldb/HsqlNameManager$HsqlName;[I[Z[ZZZZ)Lorg/hsqldb/index/Index;
astore 3
start local 3 4: aload 0
getfield org.hsqldb.SortAndSlice.collations:[Lorg/hsqldb/types/Collation;
ifnull 17
5: iconst_0
istore 4
start local 4 6: goto 16
7: StackMap locals: org.hsqldb.index.Index int
StackMap stack:
aload 0
getfield org.hsqldb.SortAndSlice.collations:[Lorg/hsqldb/types/Collation;
iload 4
aaload
ifnull 15
8: aload 3
invokeinterface org.hsqldb.index.Index.getColumnTypes:()[Lorg/hsqldb/types/Type;
iload 4
aaload
astore 5
start local 5 9: aload 5
getfield org.hsqldb.types.Type.typeCode:I
10: aload 5
invokevirtual org.hsqldb.types.Type.getCharacterSet:()Lorg/hsqldb/types/Charset;
11: aload 0
getfield org.hsqldb.SortAndSlice.collations:[Lorg/hsqldb/types/Collation;
iload 4
aaload
aload 5
getfield org.hsqldb.types.Type.precision:J
12: aload 5
getfield org.hsqldb.types.Type.scale:I
13: invokestatic org.hsqldb.types.Type.getType:(ILorg/hsqldb/types/Charset;Lorg/hsqldb/types/Collation;JI)Lorg/hsqldb/types/Type;
astore 5
14: aload 3
invokeinterface org.hsqldb.index.Index.getColumnTypes:()[Lorg/hsqldb/types/Type;
iload 4
aload 5
aastore
end local 5 15: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
16: iload 4
aload 0
getfield org.hsqldb.SortAndSlice.columnCount:I
if_icmplt 7
end local 4 17: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 18: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/hsqldb/SortAndSlice;
0 19 1 session Lorg/hsqldb/Session;
0 19 2 table Lorg/hsqldb/TableBase;
4 18 3 orderIndex Lorg/hsqldb/index/Index;
6 17 4 i I
9 15 5 type Lorg/hsqldb/types/Type;
MethodParameters:
Name Flags
session
table
}
SourceFile: "SortAndSlice.java"
InnerClasses:
public final HsqlName = org.hsqldb.HsqlNameManager$HsqlName of org.hsqldb.HsqlNameManager
public RangeVariableConditions = org.hsqldb.RangeVariable$RangeVariableConditions of org.hsqldb.RangeVariable