public class org.hibernate.dialect.pagination.SQLServer2005LimitHandler extends org.hibernate.dialect.pagination.AbstractLimitHandler
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.hibernate.dialect.pagination.SQLServer2005LimitHandler
super_class: org.hibernate.dialect.pagination.AbstractLimitHandler
{
private static final java.lang.String SELECT;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "select"
private static final java.lang.String FROM;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "from"
private static final java.lang.String DISTINCT;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "distinct"
private static final java.lang.String ORDER_BY;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "order by"
private static final java.lang.String SELECT_DISTINCT;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "select distinct"
private static final java.lang.String SELECT_DISTINCT_SPACE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "select distinct "
final java.lang.String SELECT_SPACE;
descriptor: Ljava/lang/String;
flags: (0x0010) ACC_FINAL
ConstantValue: "select "
private static final java.util.regex.Pattern SELECT_DISTINCT_PATTERN;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.regex.Pattern SELECT_PATTERN;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.regex.Pattern FROM_PATTERN;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.regex.Pattern DISTINCT_PATTERN;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.regex.Pattern ORDER_BY_PATTERN;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.regex.Pattern COMMA_PATTERN;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.regex.Pattern ALIAS_PATTERN;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String SPACE_NEWLINE_LINEFEED;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "[\\s\\t\\n\\r]*"
private static final java.util.regex.Pattern WITH_CTE;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.regex.Pattern WITH_EXPRESSION_NAME;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.regex.Pattern WITH_COLUMN_NAMES_START;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.regex.Pattern WITH_COLUMN_NAMES_END;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.regex.Pattern WITH_AS;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.regex.Pattern WITH_COMMA;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private boolean topAdded;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean isCTE;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc "select distinct "
iconst_1
invokestatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.buildShallowIndexPattern:(Ljava/lang/String;Z)Ljava/util/regex/Pattern;
putstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.SELECT_DISTINCT_PATTERN:Ljava/util/regex/Pattern;
1: ldc "select(.*)"
iconst_1
invokestatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.buildShallowIndexPattern:(Ljava/lang/String;Z)Ljava/util/regex/Pattern;
putstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.SELECT_PATTERN:Ljava/util/regex/Pattern;
2: ldc "from"
iconst_1
invokestatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.buildShallowIndexPattern:(Ljava/lang/String;Z)Ljava/util/regex/Pattern;
putstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.FROM_PATTERN:Ljava/util/regex/Pattern;
3: ldc "distinct"
iconst_1
invokestatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.buildShallowIndexPattern:(Ljava/lang/String;Z)Ljava/util/regex/Pattern;
putstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.DISTINCT_PATTERN:Ljava/util/regex/Pattern;
4: ldc "order by"
iconst_1
invokestatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.buildShallowIndexPattern:(Ljava/lang/String;Z)Ljava/util/regex/Pattern;
putstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.ORDER_BY_PATTERN:Ljava/util/regex/Pattern;
5: ldc ","
iconst_0
invokestatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.buildShallowIndexPattern:(Ljava/lang/String;Z)Ljava/util/regex/Pattern;
putstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.COMMA_PATTERN:Ljava/util/regex/Pattern;
6: ldc "(?![^\\[]*(\\]))\\S+\\s*(\\s(?i)as\\s)\\s*(\\S+)*\\s*$|(?![^\\[]*(\\]))\\s+(\\S+)$"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
7: putstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.ALIAS_PATTERN:Ljava/util/regex/Pattern;
8: ldc "(^[\\s\\t\\n\\r]*WITH[\\s\\t\\n\\r]*)"
iconst_2
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;I)Ljava/util/regex/Pattern;
putstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.WITH_CTE:Ljava/util/regex/Pattern;
9: ldc "(^[\\s\\t\\n\\r]*[a-zA-Z0-9]*[\\s\\t\\n\\r]*)"
iconst_2
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;I)Ljava/util/regex/Pattern;
putstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.WITH_EXPRESSION_NAME:Ljava/util/regex/Pattern;
10: ldc "(^[\\s\\t\\n\\r]*\\()"
iconst_2
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;I)Ljava/util/regex/Pattern;
putstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.WITH_COLUMN_NAMES_START:Ljava/util/regex/Pattern;
11: ldc "(\\))"
iconst_2
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;I)Ljava/util/regex/Pattern;
putstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.WITH_COLUMN_NAMES_END:Ljava/util/regex/Pattern;
12: ldc "(^[\\s\\t\\n\\r]*AS[\\s\\t\\n\\r]*)"
iconst_2
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;I)Ljava/util/regex/Pattern;
putstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.WITH_AS:Ljava/util/regex/Pattern;
13: ldc "(^[\\s\\t\\n\\r]*,)"
iconst_2
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;I)Ljava/util/regex/Pattern;
putstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.WITH_COMMA:Ljava/util/regex/Pattern;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.hibernate.dialect.pagination.AbstractLimitHandler.<init>:()V
1: aload 0
ldc "select "
putfield org.hibernate.dialect.pagination.SQLServer2005LimitHandler.SELECT_SPACE:Ljava/lang/String;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/hibernate/dialect/pagination/SQLServer2005LimitHandler;
public boolean supportsLimit();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hibernate/dialect/pagination/SQLServer2005LimitHandler;
public boolean useMaxForLimit();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hibernate/dialect/pagination/SQLServer2005LimitHandler;
public boolean supportsLimitOffset();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hibernate/dialect/pagination/SQLServer2005LimitHandler;
public boolean supportsVariableLimit();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hibernate/dialect/pagination/SQLServer2005LimitHandler;
public int convertToFirstRowValue(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
iconst_1
iadd
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hibernate/dialect/pagination/SQLServer2005LimitHandler;
0 1 1 zeroBasedFirstResult I
MethodParameters:
Name Flags
zeroBasedFirstResult
public java.lang.String processSql(java.lang.String, org.hibernate.engine.spi.RowSelection);
descriptor: (Ljava/lang/String;Lorg/hibernate/engine/spi/RowSelection;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.StringBuilder
dup
aload 1
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 3
start local 3 1: aload 3
aload 3
invokevirtual java.lang.StringBuilder.length:()I
iconst_1
isub
invokevirtual java.lang.StringBuilder.charAt:(I)C
bipush 59
if_icmpne 3
2: aload 3
aload 3
invokevirtual java.lang.StringBuilder.length:()I
iconst_1
isub
invokevirtual java.lang.StringBuilder.setLength:(I)V
3: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 0
aload 3
invokevirtual org.hibernate.dialect.pagination.SQLServer2005LimitHandler.getStatementIndex:(Ljava/lang/StringBuilder;)I
istore 4
start local 4 4: aload 2
invokestatic org.hibernate.dialect.pagination.LimitHelper.hasFirstRow:(Lorg/hibernate/engine/spi/RowSelection;)Z
ifne 7
5: aload 0
aload 3
iload 4
invokevirtual org.hibernate.dialect.pagination.SQLServer2005LimitHandler.addTopExpression:(Ljava/lang/StringBuilder;I)V
6: goto 16
7: StackMap locals: int
StackMap stack:
aload 0
aload 3
iload 4
invokevirtual org.hibernate.dialect.pagination.SQLServer2005LimitHandler.fillAliasInSelectClause:(Ljava/lang/StringBuilder;I)Ljava/lang/String;
astore 5
start local 5 8: aload 3
getstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.ORDER_BY_PATTERN:Ljava/util/regex/Pattern;
iload 4
invokestatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.shallowIndexOfPattern:(Ljava/lang/StringBuilder;Ljava/util/regex/Pattern;I)I
ifle 10
9: aload 0
aload 3
iload 4
invokevirtual org.hibernate.dialect.pagination.SQLServer2005LimitHandler.addTopExpression:(Ljava/lang/StringBuilder;I)V
10: StackMap locals: java.lang.String
StackMap stack:
aload 0
aload 3
iload 4
invokevirtual org.hibernate.dialect.pagination.SQLServer2005LimitHandler.encloseWithOuterQuery:(Ljava/lang/StringBuilder;I)V
11: aload 3
iload 4
aload 0
getfield org.hibernate.dialect.pagination.SQLServer2005LimitHandler.isCTE:Z
ifne 12
ldc "WITH query AS ("
goto 13
StackMap locals: org.hibernate.dialect.pagination.SQLServer2005LimitHandler java.lang.String org.hibernate.engine.spi.RowSelection java.lang.StringBuilder int java.lang.String
StackMap stack: java.lang.StringBuilder int
12: ldc ", query AS ("
StackMap locals: org.hibernate.dialect.pagination.SQLServer2005LimitHandler java.lang.String org.hibernate.engine.spi.RowSelection java.lang.StringBuilder int java.lang.String
StackMap stack: java.lang.StringBuilder int java.lang.String
13: invokevirtual java.lang.StringBuilder.insert:(ILjava/lang/String;)Ljava/lang/StringBuilder;
pop
14: aload 3
ldc ") SELECT "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " FROM query "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
15: aload 3
ldc "WHERE __hibernate_row_nr__ >= ? AND __hibernate_row_nr__ < ?"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 5 16: 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 17 0 this Lorg/hibernate/dialect/pagination/SQLServer2005LimitHandler;
0 17 1 sql Ljava/lang/String;
0 17 2 selection Lorg/hibernate/engine/spi/RowSelection;
1 17 3 sb Ljava/lang/StringBuilder;
4 17 4 offset I
8 16 5 selectClause Ljava/lang/String;
MethodParameters:
Name Flags
sql
selection
public int bindLimitParametersAtStartOfQuery(org.hibernate.engine.spi.RowSelection, java.sql.PreparedStatement, int);
descriptor: (Lorg/hibernate/engine/spi/RowSelection;Ljava/sql/PreparedStatement;I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.hibernate.dialect.pagination.SQLServer2005LimitHandler.topAdded:Z
ifeq 3
1: aload 2
iload 3
aload 0
aload 1
invokevirtual org.hibernate.dialect.pagination.SQLServer2005LimitHandler.getMaxOrLimit:(Lorg/hibernate/engine/spi/RowSelection;)I
iconst_1
isub
invokeinterface java.sql.PreparedStatement.setInt:(II)V
2: iconst_1
ireturn
3: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/hibernate/dialect/pagination/SQLServer2005LimitHandler;
0 4 1 selection Lorg/hibernate/engine/spi/RowSelection;
0 4 2 statement Ljava/sql/PreparedStatement;
0 4 3 index I
Exceptions:
throws java.sql.SQLException
MethodParameters:
Name Flags
selection
statement
index
public int bindLimitParametersAtEndOfQuery(org.hibernate.engine.spi.RowSelection, java.sql.PreparedStatement, int);
descriptor: (Lorg/hibernate/engine/spi/RowSelection;Ljava/sql/PreparedStatement;I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokestatic org.hibernate.dialect.pagination.LimitHelper.hasFirstRow:(Lorg/hibernate/engine/spi/RowSelection;)Z
ifeq 1
aload 0
aload 1
aload 2
iload 3
invokespecial org.hibernate.dialect.pagination.AbstractLimitHandler.bindLimitParametersAtEndOfQuery:(Lorg/hibernate/engine/spi/RowSelection;Ljava/sql/PreparedStatement;I)I
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/hibernate/dialect/pagination/SQLServer2005LimitHandler;
0 3 1 selection Lorg/hibernate/engine/spi/RowSelection;
0 3 2 statement Ljava/sql/PreparedStatement;
0 3 3 index I
Exceptions:
throws java.sql.SQLException
MethodParameters:
Name Flags
selection
statement
index
protected java.lang.String fillAliasInSelectClause(java.lang.StringBuilder, int);
descriptor: (Ljava/lang/StringBuilder;I)Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=14, args_size=3
start local 0 start local 1 start local 2 0: invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
astore 3
start local 3 1: new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 4
start local 4 2: aload 0
aload 1
iload 2
invokevirtual org.hibernate.dialect.pagination.SQLServer2005LimitHandler.getSelectColumnsStartPosition:(Ljava/lang/StringBuilder;I)I
istore 5
start local 5 3: aload 1
getstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.FROM_PATTERN:Ljava/util/regex/Pattern;
iload 5
invokestatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.shallowIndexOfPattern:(Ljava/lang/StringBuilder;Ljava/util/regex/Pattern;I)I
istore 6
start local 6 4: iload 5
istore 7
start local 7 5: iload 5
istore 8
start local 8 6: iconst_0
istore 9
start local 9 7: iconst_0
istore 10
start local 10 8: goto 28
9: StackMap locals: org.hibernate.dialect.pagination.SQLServer2005LimitHandler java.lang.StringBuilder int java.lang.String java.util.List int int int int int int
StackMap stack:
iload 7
istore 8
10: aload 1
getstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.COMMA_PATTERN:Ljava/util/regex/Pattern;
iload 7
invokestatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.shallowIndexOfPattern:(Ljava/lang/StringBuilder;Ljava/util/regex/Pattern;I)I
istore 7
11: iload 7
iload 6
if_icmple 13
12: goto 29
13: StackMap locals:
StackMap stack:
iload 7
iconst_m1
if_icmpeq 28
14: aload 1
iload 8
iload 7
invokevirtual java.lang.StringBuilder.substring:(II)Ljava/lang/String;
astore 11
start local 11 15: aload 0
aload 11
invokevirtual org.hibernate.dialect.pagination.SQLServer2005LimitHandler.selectsMultipleColumns:(Ljava/lang/String;)Z
ifeq 18
16: iconst_1
istore 10
17: goto 27
18: StackMap locals: java.lang.String
StackMap stack:
aload 0
aload 11
invokevirtual org.hibernate.dialect.pagination.SQLServer2005LimitHandler.getAlias:(Ljava/lang/String;)Ljava/lang/String;
astore 12
start local 12 19: aload 12
ifnonnull 26
20: ldc "page"
iload 9
invokestatic org.hibernate.internal.util.StringHelper.generateAlias:(Ljava/lang/String;I)Ljava/lang/String;
astore 12
21: aload 1
iload 7
new java.lang.StringBuilder
dup
ldc " as "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 12
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.insert:(ILjava/lang/String;)Ljava/lang/StringBuilder;
pop
22: new java.lang.StringBuilder
dup
ldc " as "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 12
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.String.length:()I
istore 13
start local 13 23: iinc 9 1
24: iload 7
iload 13
iadd
istore 7
25: iload 6
iload 13
iadd
istore 6
end local 13 26: StackMap locals: java.lang.String
StackMap stack:
aload 4
aload 12
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 12 27: StackMap locals:
StackMap stack:
iinc 7 1
end local 11 28: StackMap locals:
StackMap stack:
iload 7
iconst_m1
if_icmpne 9
29: StackMap locals:
StackMap stack:
aload 1
getstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.FROM_PATTERN:Ljava/util/regex/Pattern;
iload 5
invokestatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.shallowIndexOfPattern:(Ljava/lang/StringBuilder;Ljava/util/regex/Pattern;I)I
istore 6
30: aload 1
iload 8
iload 6
invokevirtual java.lang.StringBuilder.substring:(II)Ljava/lang/String;
astore 11
start local 11 31: aload 0
aload 11
invokevirtual org.hibernate.dialect.pagination.SQLServer2005LimitHandler.selectsMultipleColumns:(Ljava/lang/String;)Z
ifeq 34
32: iconst_1
istore 10
33: goto 42
34: StackMap locals: java.lang.String
StackMap stack:
aload 0
aload 11
invokevirtual org.hibernate.dialect.pagination.SQLServer2005LimitHandler.getAlias:(Ljava/lang/String;)Ljava/lang/String;
astore 12
start local 12 35: aload 12
ifnonnull 41
36: ldc "page"
iload 9
invokestatic org.hibernate.internal.util.StringHelper.generateAlias:(Ljava/lang/String;I)Ljava/lang/String;
astore 12
37: aload 1
iload 6
aload 3
invokevirtual java.lang.String.length:()I
isub
invokevirtual java.lang.StringBuilder.substring:(I)Ljava/lang/String;
aload 3
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
istore 13
start local 13 38: aload 1
iload 6
iload 13
ifeq 39
iconst_2
goto 40
StackMap locals: org.hibernate.dialect.pagination.SQLServer2005LimitHandler java.lang.StringBuilder int java.lang.String java.util.List int int int int int int java.lang.String java.lang.String int
StackMap stack: java.lang.StringBuilder int
39: iconst_1
StackMap locals: org.hibernate.dialect.pagination.SQLServer2005LimitHandler java.lang.StringBuilder int java.lang.String java.util.List int int int int int int java.lang.String java.lang.String int
StackMap stack: java.lang.StringBuilder int int
40: isub
new java.lang.StringBuilder
dup
ldc " as "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 12
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.insert:(ILjava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 13 41: StackMap locals:
StackMap stack:
aload 4
aload 12
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 12 42: StackMap locals:
StackMap stack:
iload 10
ifeq 43
ldc "*"
goto 44
StackMap locals:
StackMap stack:
43: ldc ", "
aload 4
invokestatic java.lang.String.join:(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
44: areturn
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 45 0 this Lorg/hibernate/dialect/pagination/SQLServer2005LimitHandler;
0 45 1 sb Ljava/lang/StringBuilder;
0 45 2 offset I
1 45 3 separator Ljava/lang/String;
2 45 4 aliases Ljava/util/List<Ljava/lang/String;>;
3 45 5 startPos I
4 45 6 endPos I
5 45 7 nextComa I
6 45 8 prevComa I
7 45 9 unique I
8 45 10 selectsMultipleColumns Z
15 28 11 expression Ljava/lang/String;
19 27 12 alias Ljava/lang/String;
23 26 13 aliasExprLength I
31 45 11 expression Ljava/lang/String;
35 42 12 alias Ljava/lang/String;
38 41 13 endWithSeparator Z
MethodParameters:
Name Flags
sb
offset
private int getSelectColumnsStartPosition(java.lang.StringBuilder, int);
descriptor: (Ljava/lang/StringBuilder;I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
invokevirtual org.hibernate.dialect.pagination.SQLServer2005LimitHandler.getSelectStartPosition:(Ljava/lang/StringBuilder;I)I
istore 3
start local 3 1: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iload 3
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
astore 4
start local 4 2: aload 4
ldc "select distinct "
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 4
3: iload 3
ldc "select distinct "
invokevirtual java.lang.String.length:()I
iadd
ireturn
4: StackMap locals: int java.lang.String
StackMap stack:
aload 4
ldc "select "
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 6
5: iload 3
ldc "select "
invokevirtual java.lang.String.length:()I
iadd
ireturn
6: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/hibernate/dialect/pagination/SQLServer2005LimitHandler;
0 7 1 sb Ljava/lang/StringBuilder;
0 7 2 offset I
1 7 3 startPos I
2 7 4 sql Ljava/lang/String;
MethodParameters:
Name Flags
sb
offset
private int getSelectStartPosition(java.lang.StringBuilder, int);
descriptor: (Ljava/lang/StringBuilder;I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.SELECT_PATTERN:Ljava/util/regex/Pattern;
iload 2
invokestatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.shallowIndexOfPattern:(Ljava/lang/StringBuilder;Ljava/util/regex/Pattern;I)I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hibernate/dialect/pagination/SQLServer2005LimitHandler;
0 1 1 sb Ljava/lang/StringBuilder;
0 1 2 offset I
MethodParameters:
Name Flags
sb
offset
private boolean selectsMultipleColumns(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.String.trim:()Ljava/lang/String;
ldc "(?i)(.)*\\s"
ldc ""
invokevirtual java.lang.String.replaceFirst:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 2
start local 2 1: ldc "*"
aload 2
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 2
aload 2
ldc ".*"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifne 2
iconst_0
ireturn
StackMap locals: java.lang.String
StackMap stack:
2: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/hibernate/dialect/pagination/SQLServer2005LimitHandler;
0 3 1 expression Ljava/lang/String;
1 3 2 lastExpr Ljava/lang/String;
MethodParameters:
Name Flags
expression
private java.lang.String getAlias(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ldc "(\\((.)*\\))"
ldc ""
invokevirtual java.lang.String.replaceFirst:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 1
1: getstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.ALIAS_PATTERN:Ljava/util/regex/Pattern;
aload 1
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 2
start local 2 2: aconst_null
astore 3
start local 3 3: aload 2
invokevirtual java.util.regex.Matcher.find:()Z
ifeq 7
aload 2
invokevirtual java.util.regex.Matcher.groupCount:()I
iconst_1
if_icmple 7
4: aload 2
iconst_3
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
astore 3
5: aload 3
ifnonnull 7
6: aload 2
iconst_0
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
astore 3
7: StackMap locals: java.util.regex.Matcher java.lang.String
StackMap stack:
aload 3
ifnull 8
aload 3
invokevirtual java.lang.String.trim:()Ljava/lang/String;
goto 9
StackMap locals:
StackMap stack:
8: aconst_null
StackMap locals:
StackMap stack: java.lang.String
9: areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/hibernate/dialect/pagination/SQLServer2005LimitHandler;
0 10 1 expression Ljava/lang/String;
2 10 2 matcher Ljava/util/regex/Matcher;
3 10 3 alias Ljava/lang/String;
MethodParameters:
Name Flags
expression
protected void encloseWithOuterQuery(java.lang.StringBuilder, int);
descriptor: (Ljava/lang/StringBuilder;I)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
iload 2
ldc "SELECT inner_query.*, ROW_NUMBER() OVER (ORDER BY CURRENT_TIMESTAMP) as __hibernate_row_nr__ FROM ( "
invokevirtual java.lang.StringBuilder.insert:(ILjava/lang/String;)Ljava/lang/StringBuilder;
pop
1: aload 1
ldc " ) inner_query "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/hibernate/dialect/pagination/SQLServer2005LimitHandler;
0 3 1 sql Ljava/lang/StringBuilder;
0 3 2 offset I
MethodParameters:
Name Flags
sql
offset
protected void addTopExpression(java.lang.StringBuilder, int);
descriptor: (Ljava/lang/StringBuilder;I)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.SELECT_PATTERN:Ljava/util/regex/Pattern;
iload 2
invokestatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.shallowIndexOfPattern:(Ljava/lang/StringBuilder;Ljava/util/regex/Pattern;I)I
istore 3
start local 3 1: aload 1
getstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.SELECT_DISTINCT_PATTERN:Ljava/util/regex/Pattern;
iload 2
invokestatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.shallowIndexOfPattern:(Ljava/lang/StringBuilder;Ljava/util/regex/Pattern;I)I
istore 4
start local 4 2: iload 3
iload 4
if_icmpne 5
3: aload 1
iload 4
ldc "select distinct"
invokevirtual java.lang.String.length:()I
iadd
ldc " TOP(?)"
invokevirtual java.lang.StringBuilder.insert:(ILjava/lang/String;)Ljava/lang/StringBuilder;
pop
4: goto 6
5: StackMap locals: int int
StackMap stack:
aload 1
iload 3
ldc "select"
invokevirtual java.lang.String.length:()I
iadd
ldc " TOP(?)"
invokevirtual java.lang.StringBuilder.insert:(ILjava/lang/String;)Ljava/lang/StringBuilder;
pop
6: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.hibernate.dialect.pagination.SQLServer2005LimitHandler.topAdded:Z
7: 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 this Lorg/hibernate/dialect/pagination/SQLServer2005LimitHandler;
0 8 1 sql Ljava/lang/StringBuilder;
0 8 2 offset I
1 8 3 selectPos I
2 8 4 selectDistinctPos I
MethodParameters:
Name Flags
sql
offset
private static int shallowIndexOfPattern(java.lang.StringBuilder, java.util.regex.Pattern, int);
descriptor: (Ljava/lang/StringBuilder;Ljava/util/regex/Pattern;I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=8, args_size=3
start local 0 start local 1 start local 2 0: iconst_m1
istore 3
start local 3 1: aload 0
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
start local 4 2: aload 4
invokevirtual java.lang.String.length:()I
iload 2
if_icmplt 3
iload 2
ifge 4
3: StackMap locals: int java.lang.String
StackMap stack:
iconst_m1
ireturn
4: StackMap locals:
StackMap stack:
aload 4
invokestatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.generateIgnoreRanges:(Ljava/lang/String;)Ljava/util/List;
astore 5
start local 5 5: aload 1
aload 4
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 6
start local 6 6: aload 6
iload 2
aload 4
invokevirtual java.lang.String.length:()I
invokevirtual java.util.regex.Matcher.region:(II)Ljava/util/regex/Matcher;
pop
7: aload 5
invokeinterface java.util.List.isEmpty:()Z
ifeq 15
8: aload 6
invokevirtual java.util.regex.Matcher.find:()Z
ifeq 16
aload 6
invokevirtual java.util.regex.Matcher.groupCount:()I
ifle 16
9: aload 6
invokevirtual java.util.regex.Matcher.start:()I
istore 3
10: goto 16
11: StackMap locals: java.util.List java.util.regex.Matcher
StackMap stack:
aload 6
invokevirtual java.util.regex.Matcher.start:()I
istore 7
start local 7 12: aload 5
iload 7
invokestatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.isPositionIgnorable:(Ljava/util/List;I)Z
ifne 15
13: iload 7
istore 3
14: goto 16
end local 7 15: StackMap locals:
StackMap stack:
aload 6
invokevirtual java.util.regex.Matcher.find:()Z
ifeq 16
aload 6
invokevirtual java.util.regex.Matcher.groupCount:()I
ifgt 11
16: StackMap locals:
StackMap stack:
iload 3
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 17 0 sb Ljava/lang/StringBuilder;
0 17 1 pattern Ljava/util/regex/Pattern;
0 17 2 fromIndex I
1 17 3 index I
2 17 4 matchString Ljava/lang/String;
5 17 5 ignoreRangeList Ljava/util/List<Lorg/hibernate/dialect/pagination/SQLServer2005LimitHandler$IgnoreRange;>;
6 17 6 matcher Ljava/util/regex/Matcher;
12 15 7 position I
MethodParameters:
Name Flags
sb final
pattern final
fromIndex
private static java.util.regex.Pattern buildShallowIndexPattern(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Ljava/util/regex/Pattern;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
ldc "("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
1: iload 1
ifeq 2
ldc "\\b"
goto 3
StackMap locals:
StackMap stack: java.lang.StringBuilder
2: ldc ""
StackMap locals: java.lang.String int
StackMap stack: java.lang.StringBuilder java.lang.String
3: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
4: aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: iload 1
ifeq 6
ldc "\\b"
goto 7
StackMap locals:
StackMap stack: java.lang.StringBuilder
6: ldc ""
StackMap locals: java.lang.String int
StackMap stack: java.lang.StringBuilder java.lang.String
7: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
8: ldc ")(?![^\\(|\\[]*(\\)|\\]))"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: iconst_2
11: invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;I)Ljava/util/regex/Pattern;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 pattern Ljava/lang/String;
0 12 1 wordBoundary Z
MethodParameters:
Name Flags
pattern
wordBoundary
private static java.util.List<org.hibernate.dialect.pagination.SQLServer2005LimitHandler$IgnoreRange> generateIgnoreRanges(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/List;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=7, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: iconst_m1
istore 3
start local 3 3: iconst_0
istore 4
start local 4 4: iconst_0
istore 5
start local 5 5: goto 26
6: StackMap locals: java.lang.String java.util.List int int int int
StackMap stack:
aload 0
iload 5
invokevirtual java.lang.String.charAt:(I)C
istore 6
start local 6 7: iload 6
bipush 39
if_icmpne 12
8: iload 4
ifeq 9
iconst_0
goto 10
StackMap locals: int
StackMap stack:
9: iconst_1
StackMap locals:
StackMap stack: int
10: istore 4
11: goto 25
12: StackMap locals:
StackMap stack:
iload 6
bipush 40
if_icmpne 17
iload 4
ifne 17
13: iinc 2 1
14: iload 2
iconst_1
if_icmpne 25
15: iload 5
istore 3
16: goto 25
17: StackMap locals:
StackMap stack:
iload 6
bipush 41
if_icmpne 25
iload 4
ifne 25
18: iload 2
ifle 24
19: iload 2
iconst_1
if_icmpne 22
20: aload 1
new org.hibernate.dialect.pagination.SQLServer2005LimitHandler$IgnoreRange
dup
iload 3
iload 5
invokespecial org.hibernate.dialect.pagination.SQLServer2005LimitHandler$IgnoreRange.<init>:(II)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
21: iconst_m1
istore 3
22: StackMap locals:
StackMap stack:
iinc 2 -1
23: goto 25
24: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Found an unmatched ')' at position "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 6 25: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
26: iload 5
aload 0
invokevirtual java.lang.String.length:()I
if_icmplt 6
end local 5 27: iload 2
ifeq 29
28: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Unmatched parenthesis in rendered SQL ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " depth): "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
29: StackMap locals:
StackMap stack:
aload 1
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 sql Ljava/lang/String;
1 30 1 ignoreRangeList Ljava/util/List<Lorg/hibernate/dialect/pagination/SQLServer2005LimitHandler$IgnoreRange;>;
2 30 2 depth I
3 30 3 start I
4 30 4 insideAStringValue Z
5 27 5 i I
7 25 6 ch C
Signature: (Ljava/lang/String;)Ljava/util/List<Lorg/hibernate/dialect/pagination/SQLServer2005LimitHandler$IgnoreRange;>;
MethodParameters:
Name Flags
sql
private static boolean isPositionIgnorable(java.util.List<org.hibernate.dialect.pagination.SQLServer2005LimitHandler$IgnoreRange>, );
descriptor: (Ljava/util/List;I)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: java.util.List int top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.hibernate.dialect.pagination.SQLServer2005LimitHandler$IgnoreRange
astore 2
start local 2 2: aload 2
iload 1
invokevirtual org.hibernate.dialect.pagination.SQLServer2005LimitHandler$IgnoreRange.isWithinRange:(I)Z
ifeq 4
3: iconst_1
ireturn
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 ignoreRangeList Ljava/util/List<Lorg/hibernate/dialect/pagination/SQLServer2005LimitHandler$IgnoreRange;>;
0 6 1 position I
2 4 2 ignoreRange Lorg/hibernate/dialect/pagination/SQLServer2005LimitHandler$IgnoreRange;
Signature: (Ljava/util/List<Lorg/hibernate/dialect/pagination/SQLServer2005LimitHandler$IgnoreRange;>;I)Z
MethodParameters:
Name Flags
ignoreRangeList
position
private int getStatementIndex(java.lang.StringBuilder);
descriptor: (Ljava/lang/StringBuilder;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: getstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.WITH_CTE:Ljava/util/regex/Pattern;
aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 2
start local 2 1: aload 2
invokevirtual java.util.regex.Matcher.find:()Z
ifeq 4
aload 2
invokevirtual java.util.regex.Matcher.groupCount:()I
ifle 4
2: aload 0
iconst_1
putfield org.hibernate.dialect.pagination.SQLServer2005LimitHandler.isCTE:Z
3: aload 0
aload 1
aload 2
invokevirtual java.util.regex.Matcher.end:()I
invokevirtual org.hibernate.dialect.pagination.SQLServer2005LimitHandler.locateQueryInCTEStatement:(Ljava/lang/StringBuilder;I)I
ireturn
4: StackMap locals: java.util.regex.Matcher
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/hibernate/dialect/pagination/SQLServer2005LimitHandler;
0 5 1 sql Ljava/lang/StringBuilder;
1 5 2 matcher Ljava/util/regex/Matcher;
MethodParameters:
Name Flags
sql
private int locateQueryInCTEStatement(java.lang.StringBuilder, int);
descriptor: (Ljava/lang/StringBuilder;I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=4, args_size=3
start local 0 start local 1 start local 2 0: StackMap locals:
StackMap stack:
getstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.WITH_EXPRESSION_NAME:Ljava/util/regex/Pattern;
aload 1
iload 2
invokevirtual java.lang.StringBuilder.substring:(I)Ljava/lang/String;
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 3
start local 3 1: aload 3
invokevirtual java.util.regex.Matcher.find:()Z
ifeq 38
aload 3
invokevirtual java.util.regex.Matcher.groupCount:()I
ifle 38
2: iload 2
aload 3
invokevirtual java.util.regex.Matcher.end:()I
iadd
istore 2
3: getstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.WITH_COLUMN_NAMES_START:Ljava/util/regex/Pattern;
aload 1
iload 2
invokevirtual java.lang.StringBuilder.substring:(I)Ljava/lang/String;
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 3
4: aload 3
invokevirtual java.util.regex.Matcher.find:()Z
ifeq 22
aload 3
invokevirtual java.util.regex.Matcher.groupCount:()I
ifle 22
5: iload 2
aload 3
invokevirtual java.util.regex.Matcher.end:()I
iadd
istore 2
6: getstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.WITH_COLUMN_NAMES_END:Ljava/util/regex/Pattern;
aload 1
iload 2
invokevirtual java.lang.StringBuilder.substring:(I)Ljava/lang/String;
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 3
7: aload 3
invokevirtual java.util.regex.Matcher.find:()Z
ifeq 15
aload 3
invokevirtual java.util.regex.Matcher.groupCount:()I
ifle 15
8: iload 2
aload 3
invokevirtual java.util.regex.Matcher.end:()I
iadd
istore 2
9: iload 2
aload 0
aload 1
iload 2
invokevirtual org.hibernate.dialect.pagination.SQLServer2005LimitHandler.advanceOverCTEInnerQuery:(Ljava/lang/StringBuilder;I)I
iadd
istore 2
10: getstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.WITH_COMMA:Ljava/util/regex/Pattern;
aload 1
iload 2
invokevirtual java.lang.StringBuilder.substring:(I)Ljava/lang/String;
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 3
11: aload 3
invokevirtual java.util.regex.Matcher.find:()Z
ifeq 14
aload 3
invokevirtual java.util.regex.Matcher.groupCount:()I
ifle 14
12: iload 2
aload 3
invokevirtual java.util.regex.Matcher.end:()I
iadd
istore 2
13: goto 0
14: StackMap locals: java.util.regex.Matcher
StackMap stack:
iload 2
ireturn
15: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
16: getstatic java.util.Locale.ROOT:Ljava/util/Locale;
17: ldc "Failed to parse CTE expression columns at offset %d, SQL [%s]"
iconst_2
anewarray java.lang.Object
dup
iconst_0
18: iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
19: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
20: invokestatic java.lang.String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
21: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
22: StackMap locals:
StackMap stack:
getstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.WITH_AS:Ljava/util/regex/Pattern;
aload 1
iload 2
invokevirtual java.lang.StringBuilder.substring:(I)Ljava/lang/String;
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 3
23: aload 3
invokevirtual java.util.regex.Matcher.find:()Z
ifeq 31
aload 3
invokevirtual java.util.regex.Matcher.groupCount:()I
ifle 31
24: iload 2
aload 3
invokevirtual java.util.regex.Matcher.end:()I
iadd
istore 2
25: iload 2
aload 0
aload 1
iload 2
invokevirtual org.hibernate.dialect.pagination.SQLServer2005LimitHandler.advanceOverCTEInnerQuery:(Ljava/lang/StringBuilder;I)I
iadd
istore 2
26: getstatic org.hibernate.dialect.pagination.SQLServer2005LimitHandler.WITH_COMMA:Ljava/util/regex/Pattern;
aload 1
iload 2
invokevirtual java.lang.StringBuilder.substring:(I)Ljava/lang/String;
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 3
27: aload 3
invokevirtual java.util.regex.Matcher.find:()Z
ifeq 30
aload 3
invokevirtual java.util.regex.Matcher.groupCount:()I
ifle 30
28: iload 2
aload 3
invokevirtual java.util.regex.Matcher.end:()I
iadd
istore 2
29: goto 0
30: StackMap locals:
StackMap stack:
iload 2
ireturn
31: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
32: getstatic java.util.Locale.ROOT:Ljava/util/Locale;
33: ldc "Failed to locate AS keyword in CTE query at offset %d, SQL [%s]"
iconst_2
anewarray java.lang.Object
dup
iconst_0
34: iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
35: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
36: invokestatic java.lang.String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
37: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
38: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
39: getstatic java.util.Locale.ROOT:Ljava/util/Locale;
40: ldc "Failed to locate CTE expression name at offset %d, SQL [%s]"
iconst_2
anewarray java.lang.Object
dup
iconst_0
41: iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
42: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
43: invokestatic java.lang.String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
44: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 45 0 this Lorg/hibernate/dialect/pagination/SQLServer2005LimitHandler;
0 45 1 sql Ljava/lang/StringBuilder;
0 45 2 offset I
1 45 3 matcher Ljava/util/regex/Matcher;
MethodParameters:
Name Flags
sql
offset
private int advanceOverCTEInnerQuery(java.lang.StringBuilder, int);
descriptor: (Ljava/lang/StringBuilder;I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: iload 2
istore 4
start local 4 2: iconst_0
istore 5
start local 5 3: goto 18
4: StackMap locals: int int int
StackMap stack:
aload 1
iload 4
invokevirtual java.lang.StringBuilder.charAt:(I)C
bipush 39
if_icmpne 7
5: iconst_1
istore 5
6: goto 17
7: StackMap locals:
StackMap stack:
aload 1
iload 4
invokevirtual java.lang.StringBuilder.charAt:(I)C
bipush 39
if_icmpne 10
iload 5
ifeq 10
8: iconst_0
istore 5
9: goto 17
10: StackMap locals:
StackMap stack:
aload 1
iload 4
invokevirtual java.lang.StringBuilder.charAt:(I)C
bipush 40
if_icmpne 13
iload 5
ifne 13
11: iinc 3 1
12: goto 17
13: StackMap locals:
StackMap stack:
aload 1
iload 4
invokevirtual java.lang.StringBuilder.charAt:(I)C
bipush 41
if_icmpne 17
iload 5
ifne 17
14: iinc 3 -1
15: iload 3
ifne 17
16: goto 19
17: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
18: iload 4
aload 1
invokevirtual java.lang.StringBuilder.length:()I
if_icmplt 4
19: StackMap locals:
StackMap stack:
iload 3
ifle 23
20: new java.lang.IllegalArgumentException
dup
21: ldc "Failed to parse the CTE query inner query because closing ')' was not found."
22: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
23: StackMap locals:
StackMap stack:
iload 4
iload 2
isub
iconst_1
iadd
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 24 0 this Lorg/hibernate/dialect/pagination/SQLServer2005LimitHandler;
0 24 1 sql Ljava/lang/StringBuilder;
0 24 2 offset I
1 24 3 brackets I
2 24 4 index I
3 24 5 inString Z
MethodParameters:
Name Flags
sql
offset
}
SourceFile: "SQLServer2005LimitHandler.java"
NestMembers:
org.hibernate.dialect.pagination.SQLServer2005LimitHandler$IgnoreRange
InnerClasses:
IgnoreRange = org.hibernate.dialect.pagination.SQLServer2005LimitHandler$IgnoreRange of org.hibernate.dialect.pagination.SQLServer2005LimitHandler