public class org.h2.table.TableView extends org.h2.table.Table
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.h2.table.TableView
super_class: org.h2.table.Table
{
private static final long ROW_COUNT_APPROXIMATION;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 100
private java.lang.String querySQL;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.util.ArrayList<org.h2.table.Table> tables;
descriptor: Ljava/util/ArrayList;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/ArrayList<Lorg/h2/table/Table;>;
private org.h2.table.Column[] columnTemplates;
descriptor: [Lorg/h2/table/Column;
flags: (0x0002) ACC_PRIVATE
private org.h2.command.dml.Query viewQuery;
descriptor: Lorg/h2/command/dml/Query;
flags: (0x0002) ACC_PRIVATE
private org.h2.index.ViewIndex index;
descriptor: Lorg/h2/index/ViewIndex;
flags: (0x0002) ACC_PRIVATE
private boolean allowRecursive;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private org.h2.message.DbException createException;
descriptor: Lorg/h2/message/DbException;
flags: (0x0002) ACC_PRIVATE
private long lastModificationCheck;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long maxDataModificationId;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private org.h2.engine.User owner;
descriptor: Lorg/h2/engine/User;
flags: (0x0002) ACC_PRIVATE
private org.h2.command.dml.Query topQuery;
descriptor: Lorg/h2/command/dml/Query;
flags: (0x0002) ACC_PRIVATE
private org.h2.result.ResultInterface recursiveResult;
descriptor: Lorg/h2/result/ResultInterface;
flags: (0x0002) ACC_PRIVATE
private boolean isRecursiveQueryDetected;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean isTableExpression;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
public void <init>(org.h2.schema.Schema, int, java.lang.String, java.lang.String, java.util.ArrayList<org.h2.expression.Parameter>, org.h2.table.Column[], org.h2.engine.Session, boolean, boolean, boolean, );
descriptor: (Lorg/h2/schema/Schema;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;[Lorg/h2/table/Column;Lorg/h2/engine/Session;ZZZZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=12, args_size=12
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 start local 10 start local 11 0: aload 0
aload 1
iload 2
aload 3
iconst_0
iconst_1
invokespecial org.h2.table.Table.<init>:(Lorg/h2/schema/Schema;ILjava/lang/String;ZZ)V
1: aload 0
iload 11
invokevirtual org.h2.table.TableView.setTemporary:(Z)V
2: aload 0
aload 4
aload 5
aload 6
aload 7
iload 8
iload 9
iload 10
invokevirtual org.h2.table.TableView.init:(Ljava/lang/String;Ljava/util/ArrayList;[Lorg/h2/table/Column;Lorg/h2/engine/Session;ZZZ)V
3: return
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 4 0 this Lorg/h2/table/TableView;
0 4 1 schema Lorg/h2/schema/Schema;
0 4 2 id I
0 4 3 name Ljava/lang/String;
0 4 4 querySQL Ljava/lang/String;
0 4 5 params Ljava/util/ArrayList<Lorg/h2/expression/Parameter;>;
0 4 6 columnTemplates [Lorg/h2/table/Column;
0 4 7 session Lorg/h2/engine/Session;
0 4 8 allowRecursive Z
0 4 9 literalsChecked Z
0 4 10 isTableExpression Z
0 4 11 isTemporary Z
Signature: (Lorg/h2/schema/Schema;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList<Lorg/h2/expression/Parameter;>;[Lorg/h2/table/Column;Lorg/h2/engine/Session;ZZZZ)V
MethodParameters:
Name Flags
schema
id
name
querySQL
params
columnTemplates
session
allowRecursive
literalsChecked
isTableExpression
isTemporary
public void replace(java.lang.String, org.h2.table.Column[], org.h2.engine.Session, boolean, boolean, boolean);
descriptor: (Ljava/lang/String;[Lorg/h2/table/Column;Lorg/h2/engine/Session;ZZZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=11, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
getfield org.h2.table.TableView.querySQL:Ljava/lang/String;
astore 7
start local 7 1: aload 0
getfield org.h2.table.TableView.columnTemplates:[Lorg/h2/table/Column;
astore 8
start local 8 2: aload 0
getfield org.h2.table.TableView.allowRecursive:Z
istore 9
start local 9 3: aload 0
aload 1
aconst_null
4: aload 2
ifnonnull 5
aload 0
getfield org.h2.table.TableView.columnTemplates:[Lorg/h2/table/Column;
goto 6
5: StackMap locals: org.h2.table.TableView java.lang.String org.h2.table.Column[] org.h2.engine.Session int int int java.lang.String org.h2.table.Column[] int
StackMap stack: org.h2.table.TableView java.lang.String null
aload 2
6: StackMap locals: org.h2.table.TableView java.lang.String org.h2.table.Column[] org.h2.engine.Session int int int java.lang.String org.h2.table.Column[] int
StackMap stack: org.h2.table.TableView java.lang.String null org.h2.table.Column[]
aload 3
iload 4
iload 6
aload 0
getfield org.h2.table.TableView.isTableExpression:Z
7: invokevirtual org.h2.table.TableView.init:(Ljava/lang/String;Ljava/util/ArrayList;[Lorg/h2/table/Column;Lorg/h2/engine/Session;ZZZ)V
8: aload 0
aload 3
iload 5
iconst_1
invokevirtual org.h2.table.TableView.recompile:(Lorg/h2/engine/Session;ZZ)Lorg/h2/message/DbException;
astore 10
start local 10 9: aload 10
ifnull 15
10: aload 0
aload 7
aconst_null
aload 8
aload 3
iload 9
11: iload 6
aload 0
getfield org.h2.table.TableView.isTableExpression:Z
12: invokevirtual org.h2.table.TableView.init:(Ljava/lang/String;Ljava/util/ArrayList;[Lorg/h2/table/Column;Lorg/h2/engine/Session;ZZZ)V
13: aload 0
aload 3
iconst_1
iconst_0
invokevirtual org.h2.table.TableView.recompile:(Lorg/h2/engine/Session;ZZ)Lorg/h2/message/DbException;
pop
14: aload 10
athrow
15: StackMap locals: org.h2.message.DbException
StackMap stack:
return
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 16 0 this Lorg/h2/table/TableView;
0 16 1 querySQL Ljava/lang/String;
0 16 2 newColumnTemplates [Lorg/h2/table/Column;
0 16 3 session Lorg/h2/engine/Session;
0 16 4 recursive Z
0 16 5 force Z
0 16 6 literalsChecked Z
1 16 7 oldQuerySQL Ljava/lang/String;
2 16 8 oldColumnTemplates [Lorg/h2/table/Column;
3 16 9 oldRecursive Z
9 16 10 e Lorg/h2/message/DbException;
MethodParameters:
Name Flags
querySQL
newColumnTemplates
session
recursive
force
literalsChecked
private synchronized void init(java.lang.String, java.util.ArrayList<org.h2.expression.Parameter>, org.h2.table.Column[], org.h2.engine.Session, boolean, boolean, );
descriptor: (Ljava/lang/String;Ljava/util/ArrayList;[Lorg/h2/table/Column;Lorg/h2/engine/Session;ZZZ)V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=7, locals=8, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
aload 1
putfield org.h2.table.TableView.querySQL:Ljava/lang/String;
1: aload 0
aload 3
putfield org.h2.table.TableView.columnTemplates:[Lorg/h2/table/Column;
2: aload 0
iload 5
putfield org.h2.table.TableView.allowRecursive:Z
3: aload 0
iconst_0
putfield org.h2.table.TableView.isRecursiveQueryDetected:Z
4: aload 0
iload 7
putfield org.h2.table.TableView.isTableExpression:Z
5: aload 0
new org.h2.index.ViewIndex
dup
aload 0
aload 1
aload 2
iload 5
invokespecial org.h2.index.ViewIndex.<init>:(Lorg/h2/table/TableView;Ljava/lang/String;Ljava/util/ArrayList;Z)V
putfield org.h2.table.TableView.index:Lorg/h2/index/ViewIndex;
6: aload 0
aload 4
iload 6
invokevirtual org.h2.table.TableView.initColumnsAndTables:(Lorg/h2/engine/Session;Z)V
7: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/h2/table/TableView;
0 8 1 querySQL Ljava/lang/String;
0 8 2 params Ljava/util/ArrayList<Lorg/h2/expression/Parameter;>;
0 8 3 columnTemplates [Lorg/h2/table/Column;
0 8 4 session Lorg/h2/engine/Session;
0 8 5 allowRecursive Z
0 8 6 literalsChecked Z
0 8 7 isTableExpression Z
Signature: (Ljava/lang/String;Ljava/util/ArrayList<Lorg/h2/expression/Parameter;>;[Lorg/h2/table/Column;Lorg/h2/engine/Session;ZZZ)V
MethodParameters:
Name Flags
querySQL
params
columnTemplates
session
allowRecursive
literalsChecked
isTableExpression
private org.h2.command.dml.Query compileViewQuery(org.h2.engine.Session, java.lang.String, boolean, java.lang.String);
descriptor: (Lorg/h2/engine/Session;Ljava/lang/String;ZLjava/lang/String;)Lorg/h2/command/dml/Query;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
iconst_1
aload 4
invokevirtual org.h2.engine.Session.setParsingCreateView:(ZLjava/lang/String;)V
1: aload 1
aload 2
iconst_0
iload 3
invokevirtual org.h2.engine.Session.prepare:(Ljava/lang/String;ZZ)Lorg/h2/command/Prepared;
astore 5
start local 5 2: goto 6
end local 5 StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 6
4: aload 1
iconst_0
aload 4
invokevirtual org.h2.engine.Session.setParsingCreateView:(ZLjava/lang/String;)V
5: aload 6
athrow
start local 5 6: StackMap locals: org.h2.command.Prepared
StackMap stack:
aload 1
iconst_0
aload 4
invokevirtual org.h2.engine.Session.setParsingCreateView:(ZLjava/lang/String;)V
7: aload 5
instanceof org.h2.command.dml.Query
ifne 9
8: aload 2
iconst_0
invokestatic org.h2.message.DbException.getSyntaxError:(Ljava/lang/String;I)Lorg/h2/message/DbException;
athrow
9: StackMap locals:
StackMap stack:
aload 5
checkcast org.h2.command.dml.Query
astore 6
start local 6 10: aload 0
getfield org.h2.table.TableView.isTableExpression:Z
ifeq 12
aload 0
getfield org.h2.table.TableView.allowRecursive:Z
ifeq 12
11: aload 6
iconst_1
invokevirtual org.h2.command.dml.Query.setNeverLazy:(Z)V
12: StackMap locals: org.h2.command.dml.Query
StackMap stack:
aload 6
areturn
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 13 0 this Lorg/h2/table/TableView;
0 13 1 session Lorg/h2/engine/Session;
0 13 2 sql Ljava/lang/String;
0 13 3 literalsChecked Z
0 13 4 viewName Ljava/lang/String;
2 3 5 p Lorg/h2/command/Prepared;
6 13 5 p Lorg/h2/command/Prepared;
10 13 6 q Lorg/h2/command/dml/Query;
Exception table:
from to target type
1 3 3 any
MethodParameters:
Name Flags
session
sql
literalsChecked
viewName
public synchronized org.h2.message.DbException recompile(org.h2.engine.Session, boolean, boolean);
descriptor: (Lorg/h2/engine/Session;ZZ)Lorg/h2/message/DbException;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 0
getfield org.h2.table.TableView.querySQL:Ljava/lang/String;
iconst_0
aload 0
invokevirtual org.h2.table.TableView.getName:()Ljava/lang/String;
invokevirtual org.h2.table.TableView.compileViewQuery:(Lorg/h2/engine/Session;Ljava/lang/String;ZLjava/lang/String;)Lorg/h2/command/dml/Query;
pop
1: goto 5
StackMap locals:
StackMap stack: org.h2.message.DbException
2: astore 4
start local 4 3: iload 2
ifne 5
4: aload 4
areturn
end local 4 5: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
aload 0
invokevirtual org.h2.table.TableView.getDependentViews:()Ljava/util/concurrent/CopyOnWriteArrayList;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 4
start local 4 6: aload 0
aload 1
iconst_0
invokevirtual org.h2.table.TableView.initColumnsAndTables:(Lorg/h2/engine/Session;Z)V
7: aload 4
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 6
goto 12
StackMap locals: org.h2.table.TableView org.h2.engine.Session int int java.util.ArrayList top java.util.Iterator
StackMap stack:
8: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.table.TableView
astore 5
start local 5 9: aload 5
aload 1
iload 2
iconst_0
invokevirtual org.h2.table.TableView.recompile:(Lorg/h2/engine/Session;ZZ)Lorg/h2/message/DbException;
astore 7
start local 7 10: aload 7
ifnull 12
iload 2
ifne 12
11: aload 7
areturn
end local 7 end local 5 12: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
13: iload 3
ifeq 15
14: aload 0
getfield org.h2.table.TableView.database:Lorg/h2/engine/Database;
invokestatic org.h2.table.TableView.clearIndexCaches:(Lorg/h2/engine/Database;)V
15: StackMap locals: org.h2.table.TableView org.h2.engine.Session int int java.util.ArrayList
StackMap stack:
iload 2
ifeq 16
aconst_null
goto 17
StackMap locals:
StackMap stack:
16: aload 0
getfield org.h2.table.TableView.createException:Lorg/h2/message/DbException;
StackMap locals:
StackMap stack: org.h2.message.DbException
17: areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/h2/table/TableView;
0 18 1 session Lorg/h2/engine/Session;
0 18 2 force Z
0 18 3 clearIndexCache Z
3 5 4 e Lorg/h2/message/DbException;
6 18 4 dependentViews Ljava/util/ArrayList<Lorg/h2/table/TableView;>;
9 12 5 v Lorg/h2/table/TableView;
10 12 7 e Lorg/h2/message/DbException;
Exception table:
from to target type
0 1 2 Class org.h2.message.DbException
MethodParameters:
Name Flags
session
force
clearIndexCache
private void initColumnsAndTables(org.h2.engine.Session, boolean);
descriptor: (Lorg/h2/engine/Session;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=16, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.h2.table.TableView.removeCurrentViewFromOtherTables:()V
1: aload 0
aload 0
getfield org.h2.table.TableView.isTableExpression:Z
invokevirtual org.h2.table.TableView.setTableExpression:(Z)V
2: aload 0
aload 1
aload 0
getfield org.h2.table.TableView.querySQL:Ljava/lang/String;
iload 2
aload 0
invokevirtual org.h2.table.TableView.getName:()Ljava/lang/String;
invokevirtual org.h2.table.TableView.compileViewQuery:(Lorg/h2/engine/Session;Ljava/lang/String;ZLjava/lang/String;)Lorg/h2/command/dml/Query;
astore 4
start local 4 3: aload 0
aload 4
iconst_1
invokevirtual org.h2.command.dml.Query.getPlanSQL:(Z)Ljava/lang/String;
putfield org.h2.table.TableView.querySQL:Ljava/lang/String;
4: aload 0
new java.util.ArrayList
dup
aload 4
invokevirtual org.h2.command.dml.Query.getTables:()Ljava/util/HashSet;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
putfield org.h2.table.TableView.tables:Ljava/util/ArrayList;
5: aload 4
invokevirtual org.h2.command.dml.Query.getExpressions:()Ljava/util/ArrayList;
astore 5
start local 5 6: new org.h2.util.ColumnNamer
dup
aload 1
invokespecial org.h2.util.ColumnNamer.<init>:(Lorg/h2/engine/Session;)V
astore 6
start local 6 7: aload 4
invokevirtual org.h2.command.dml.Query.getColumnCount:()I
istore 7
start local 7 8: new java.util.ArrayList
dup
iload 7
invokespecial java.util.ArrayList.<init>:(I)V
astore 8
start local 8 9: iconst_0
istore 9
start local 9 10: goto 40
11: StackMap locals: org.h2.table.TableView org.h2.engine.Session int top org.h2.command.dml.Query java.util.ArrayList org.h2.util.ColumnNamer int java.util.ArrayList int
StackMap stack:
aload 5
iload 9
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Expression
astore 10
start local 10 12: aconst_null
astore 11
start local 11 13: getstatic org.h2.value.TypeInfo.TYPE_UNKNOWN:Lorg/h2/value/TypeInfo;
astore 12
start local 12 14: aload 0
getfield org.h2.table.TableView.columnTemplates:[Lorg/h2/table/Column;
ifnull 17
aload 0
getfield org.h2.table.TableView.columnTemplates:[Lorg/h2/table/Column;
arraylength
iload 9
if_icmple 17
15: aload 0
getfield org.h2.table.TableView.columnTemplates:[Lorg/h2/table/Column;
iload 9
aaload
invokevirtual org.h2.table.Column.getName:()Ljava/lang/String;
astore 11
16: aload 0
getfield org.h2.table.TableView.columnTemplates:[Lorg/h2/table/Column;
iload 9
aaload
invokevirtual org.h2.table.Column.getType:()Lorg/h2/value/TypeInfo;
astore 12
17: StackMap locals: org.h2.expression.Expression java.lang.String org.h2.value.TypeInfo
StackMap stack:
aload 11
ifnonnull 19
18: aload 10
invokevirtual org.h2.expression.Expression.getAlias:()Ljava/lang/String;
astore 11
19: StackMap locals:
StackMap stack:
aload 6
aload 10
iload 9
aload 11
invokevirtual org.h2.util.ColumnNamer.getColumnName:(Lorg/h2/expression/Expression;ILjava/lang/String;)Ljava/lang/String;
astore 11
20: aload 12
invokevirtual org.h2.value.TypeInfo.getValueType:()I
iconst_m1
if_icmpne 22
21: aload 10
invokevirtual org.h2.expression.Expression.getType:()Lorg/h2/value/TypeInfo;
astore 12
22: StackMap locals:
StackMap stack:
new org.h2.table.Column
dup
aload 11
aload 12
invokespecial org.h2.table.Column.<init>:(Ljava/lang/String;Lorg/h2/value/TypeInfo;)V
astore 13
start local 13 23: aload 13
aload 0
iload 9
invokevirtual org.h2.table.Column.setTable:(Lorg/h2/table/Table;I)V
24: aconst_null
astore 14
start local 14 25: aload 10
instanceof org.h2.expression.ExpressionColumn
ifeq 28
26: aload 10
checkcast org.h2.expression.ExpressionColumn
astore 14
27: goto 32
StackMap locals: org.h2.table.Column org.h2.expression.ExpressionColumn
StackMap stack:
28: aload 10
instanceof org.h2.expression.Alias
ifeq 32
29: aload 10
invokevirtual org.h2.expression.Expression.getNonAliasExpression:()Lorg/h2/expression/Expression;
astore 15
start local 15 30: aload 15
instanceof org.h2.expression.ExpressionColumn
ifeq 32
31: aload 15
checkcast org.h2.expression.ExpressionColumn
astore 14
end local 15 32: StackMap locals:
StackMap stack:
aload 14
ifnull 38
33: aload 14
invokevirtual org.h2.expression.ExpressionColumn.getColumn:()Lorg/h2/table/Column;
34: aload 1
aload 11
invokevirtual org.h2.table.Column.getCheckConstraint:(Lorg/h2/engine/Session;Ljava/lang/String;)Lorg/h2/expression/Expression;
35: astore 15
start local 15 36: aload 15
ifnull 38
37: aload 13
aload 1
aload 15
invokevirtual org.h2.table.Column.addCheckConstraint:(Lorg/h2/engine/Session;Lorg/h2/expression/Expression;)V
end local 15 38: StackMap locals:
StackMap stack:
aload 8
aload 13
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 14 end local 13 end local 12 end local 11 end local 10 39: iinc 9 1
StackMap locals: org.h2.table.TableView org.h2.engine.Session int top org.h2.command.dml.Query java.util.ArrayList org.h2.util.ColumnNamer int java.util.ArrayList int
StackMap stack:
40: iload 9
iload 7
if_icmplt 11
end local 9 41: aload 8
iconst_0
anewarray org.h2.table.Column
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast org.h2.table.Column[]
astore 3
start local 3 42: aload 0
aconst_null
putfield org.h2.table.TableView.createException:Lorg/h2/message/DbException;
43: aload 0
aload 4
putfield org.h2.table.TableView.viewQuery:Lorg/h2/command/dml/Query;
end local 8 end local 7 end local 6 end local 5 end local 4 44: goto 61
end local 3 StackMap locals: org.h2.table.TableView org.h2.engine.Session int
StackMap stack: org.h2.message.DbException
45: astore 4
start local 4 46: aload 4
aload 0
invokevirtual org.h2.table.TableView.getCreateSQL:()Ljava/lang/String;
invokevirtual org.h2.message.DbException.addSQL:(Ljava/lang/String;)Lorg/h2/message/DbException;
pop
47: aload 0
aload 4
putfield org.h2.table.TableView.createException:Lorg/h2/message/DbException;
48: aload 0
aload 0
getfield org.h2.table.TableView.createException:Lorg/h2/message/DbException;
invokevirtual org.h2.table.TableView.isRecursiveQueryExceptionDetected:(Lorg/h2/message/DbException;)Z
ifeq 50
49: aload 0
iconst_1
putfield org.h2.table.TableView.isRecursiveQueryDetected:Z
50: StackMap locals: org.h2.table.TableView org.h2.engine.Session int top org.h2.message.DbException
StackMap stack:
aload 0
invokestatic org.h2.util.Utils.newSmallArrayList:()Ljava/util/ArrayList;
putfield org.h2.table.TableView.tables:Ljava/util/ArrayList;
51: iconst_0
anewarray org.h2.table.Column
astore 3
start local 3 52: aload 0
getfield org.h2.table.TableView.allowRecursive:Z
ifeq 61
aload 0
getfield org.h2.table.TableView.columnTemplates:[Lorg/h2/table/Column;
ifnull 61
53: aload 0
getfield org.h2.table.TableView.columnTemplates:[Lorg/h2/table/Column;
arraylength
anewarray org.h2.table.Column
astore 3
54: iconst_0
istore 5
start local 5 55: goto 58
56: StackMap locals: org.h2.table.TableView org.h2.engine.Session int org.h2.table.Column[] org.h2.message.DbException int
StackMap stack:
aload 3
iload 5
aload 0
getfield org.h2.table.TableView.columnTemplates:[Lorg/h2/table/Column;
iload 5
aaload
invokevirtual org.h2.table.Column.getClone:()Lorg/h2/table/Column;
aastore
57: iinc 5 1
StackMap locals:
StackMap stack:
58: iload 5
aload 0
getfield org.h2.table.TableView.columnTemplates:[Lorg/h2/table/Column;
arraylength
if_icmplt 56
end local 5 59: aload 0
getfield org.h2.table.TableView.index:Lorg/h2/index/ViewIndex;
iconst_1
invokevirtual org.h2.index.ViewIndex.setRecursive:(Z)V
60: aload 0
aconst_null
putfield org.h2.table.TableView.createException:Lorg/h2/message/DbException;
end local 4 61: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual org.h2.table.TableView.setColumns:([Lorg/h2/table/Column;)V
62: aload 0
invokevirtual org.h2.table.TableView.getId:()I
ifeq 64
63: aload 0
invokevirtual org.h2.table.TableView.addDependentViewToTables:()V
64: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 65 0 this Lorg/h2/table/TableView;
0 65 1 session Lorg/h2/engine/Session;
0 65 2 literalsChecked Z
42 45 3 cols [Lorg/h2/table/Column;
52 65 3 cols [Lorg/h2/table/Column;
3 44 4 compiledQuery Lorg/h2/command/dml/Query;
6 44 5 expressions Ljava/util/ArrayList<Lorg/h2/expression/Expression;>;
7 44 6 columnNamer Lorg/h2/util/ColumnNamer;
8 44 7 count I
9 44 8 list Ljava/util/ArrayList<Lorg/h2/table/Column;>;
10 41 9 i I
12 39 10 expr Lorg/h2/expression/Expression;
13 39 11 name Ljava/lang/String;
14 39 12 type Lorg/h2/value/TypeInfo;
23 39 13 col Lorg/h2/table/Column;
25 39 14 fromColumn Lorg/h2/expression/ExpressionColumn;
30 32 15 aliasExpr Lorg/h2/expression/Expression;
36 38 15 checkExpression Lorg/h2/expression/Expression;
46 61 4 e Lorg/h2/message/DbException;
55 59 5 i I
Exception table:
from to target type
2 44 45 Class org.h2.message.DbException
MethodParameters:
Name Flags
session
literalsChecked
public boolean isView();
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/h2/table/TableView;
public boolean isInvalid();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableView.createException:Lorg/h2/message/DbException;
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/h2/table/TableView;
public org.h2.table.PlanItem getBestPlanItem(org.h2.engine.Session, int[], org.h2.table.TableFilter[], int, org.h2.result.SortOrder, org.h2.command.dml.AllColumnsForPlan);
descriptor: (Lorg/h2/engine/Session;[I[Lorg/h2/table/TableFilter;ILorg/h2/result/SortOrder;Lorg/h2/command/dml/AllColumnsForPlan;)Lorg/h2/table/PlanItem;
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=11, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: new org.h2.table.TableView$CacheKey
dup
aload 2
aload 0
invokespecial org.h2.table.TableView$CacheKey.<init>:([ILorg/h2/table/TableView;)V
astore 7
start local 7 1: aload 1
aload 0
getfield org.h2.table.TableView.topQuery:Lorg/h2/command/dml/Query;
ifnull 2
iconst_1
goto 3
StackMap locals: org.h2.table.TableView org.h2.engine.Session int[] org.h2.table.TableFilter[] int org.h2.result.SortOrder org.h2.command.dml.AllColumnsForPlan org.h2.table.TableView$CacheKey
StackMap stack: org.h2.engine.Session
2: iconst_0
StackMap locals: org.h2.table.TableView org.h2.engine.Session int[] org.h2.table.TableFilter[] int org.h2.result.SortOrder org.h2.command.dml.AllColumnsForPlan org.h2.table.TableView$CacheKey
StackMap stack: org.h2.engine.Session int
3: invokevirtual org.h2.engine.Session.getViewIndexCache:(Z)Ljava/util/Map;
astore 8
start local 8 4: aload 8
aload 7
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.h2.index.ViewIndex
astore 9
start local 9 5: aload 9
ifnull 6
aload 9
invokevirtual org.h2.index.ViewIndex.isExpired:()Z
ifeq 8
6: StackMap locals: java.util.Map org.h2.index.ViewIndex
StackMap stack:
new org.h2.index.ViewIndex
dup
aload 0
aload 0
getfield org.h2.table.TableView.index:Lorg/h2/index/ViewIndex;
aload 1
aload 2
aload 3
iload 4
aload 5
invokespecial org.h2.index.ViewIndex.<init>:(Lorg/h2/table/TableView;Lorg/h2/index/ViewIndex;Lorg/h2/engine/Session;[I[Lorg/h2/table/TableFilter;ILorg/h2/result/SortOrder;)V
astore 9
7: aload 8
aload 7
aload 9
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: StackMap locals:
StackMap stack:
new org.h2.table.PlanItem
dup
invokespecial org.h2.table.PlanItem.<init>:()V
astore 10
start local 10 9: aload 10
aload 9
aload 1
aload 2
aload 3
iload 4
aload 5
aload 6
invokevirtual org.h2.index.ViewIndex.getCost:(Lorg/h2/engine/Session;[I[Lorg/h2/table/TableFilter;ILorg/h2/result/SortOrder;Lorg/h2/command/dml/AllColumnsForPlan;)D
putfield org.h2.table.PlanItem.cost:D
10: aload 10
aload 9
invokevirtual org.h2.table.PlanItem.setIndex:(Lorg/h2/index/Index;)V
11: aload 10
areturn
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 12 0 this Lorg/h2/table/TableView;
0 12 1 session Lorg/h2/engine/Session;
0 12 2 masks [I
0 12 3 filters [Lorg/h2/table/TableFilter;
0 12 4 filter I
0 12 5 sortOrder Lorg/h2/result/SortOrder;
0 12 6 allColumnsSet Lorg/h2/command/dml/AllColumnsForPlan;
1 12 7 cacheKey Lorg/h2/table/TableView$CacheKey;
4 12 8 indexCache Ljava/util/Map<Ljava/lang/Object;Lorg/h2/index/ViewIndex;>;
5 12 9 i Lorg/h2/index/ViewIndex;
9 12 10 item Lorg/h2/table/PlanItem;
MethodParameters:
Name Flags
session
masks
filters
filter
sortOrder
allColumnsSet
public boolean isQueryComparable();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
invokespecial org.h2.table.Table.isQueryComparable:()Z
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableView.tables:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 2
goto 6
StackMap locals: org.h2.table.TableView top java.util.Iterator
StackMap stack:
3: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.table.Table
astore 1
start local 1 4: aload 1
invokevirtual org.h2.table.Table.isQueryComparable:()Z
ifne 6
5: iconst_0
ireturn
end local 1 6: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
7: aload 0
getfield org.h2.table.TableView.topQuery:Lorg/h2/command/dml/Query;
ifnull 10
8: aload 0
getfield org.h2.table.TableView.topQuery:Lorg/h2/command/dml/Query;
getstatic org.h2.expression.ExpressionVisitor.QUERY_COMPARABLE_VISITOR:Lorg/h2/expression/ExpressionVisitor;
invokevirtual org.h2.command.dml.Query.isEverything:(Lorg/h2/expression/ExpressionVisitor;)Z
ifne 10
9: iconst_0
ireturn
10: StackMap locals: org.h2.table.TableView
StackMap stack:
iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/h2/table/TableView;
4 6 1 t Lorg/h2/table/Table;
public org.h2.command.dml.Query getTopQuery();
descriptor: ()Lorg/h2/command/dml/Query;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableView.topQuery:Lorg/h2/command/dml/Query;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
public java.lang.String getDropSQL();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "DROP VIEW IF EXISTS "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
iconst_1
invokevirtual org.h2.table.TableView.getSQL:(Z)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " CASCADE"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
public java.lang.String getCreateSQLForCopy(org.h2.table.Table, java.lang.String);
descriptor: (Lorg/h2/table/Table;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iconst_0
iconst_1
aload 2
invokevirtual org.h2.table.TableView.getCreateSQL:(ZZLjava/lang/String;)Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
0 1 1 table Lorg/h2/table/Table;
0 1 2 quotedName Ljava/lang/String;
MethodParameters:
Name Flags
table
quotedName
public java.lang.String getCreateSQL();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
iconst_1
invokevirtual org.h2.table.TableView.getCreateSQL:(ZZ)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
public java.lang.String getCreateSQL(boolean, boolean);
descriptor: (ZZ)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
iload 2
aload 0
iconst_1
invokevirtual org.h2.table.TableView.getSQL:(Z)Ljava/lang/String;
invokevirtual org.h2.table.TableView.getCreateSQL:(ZZLjava/lang/String;)Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
0 1 1 orReplace Z
0 1 2 force Z
MethodParameters:
Name Flags
orReplace
force
private java.lang.String getCreateSQL(boolean, boolean, java.lang.String);
descriptor: (ZZLjava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.lang.StringBuilder
dup
ldc "CREATE "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 4
start local 4 1: iload 1
ifeq 3
2: aload 4
ldc "OR REPLACE "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: StackMap locals: java.lang.StringBuilder
StackMap stack:
iload 2
ifeq 5
4: aload 4
ldc "FORCE "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: StackMap locals:
StackMap stack:
aload 4
ldc "VIEW "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
6: aload 0
getfield org.h2.table.TableView.isTableExpression:Z
ifeq 8
7: aload 4
ldc "TABLE_EXPRESSION "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: StackMap locals:
StackMap stack:
aload 4
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: aload 0
getfield org.h2.table.TableView.comment:Ljava/lang/String;
ifnull 12
10: aload 4
ldc " COMMENT "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
11: aload 4
aload 0
getfield org.h2.table.TableView.comment:Ljava/lang/String;
invokestatic org.h2.util.StringUtils.quoteStringSQL:(Ljava/lang/StringBuilder;Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableView.columns:[Lorg/h2/table/Column;
ifnull 17
aload 0
getfield org.h2.table.TableView.columns:[Lorg/h2/table/Column;
arraylength
ifle 17
13: aload 4
bipush 40
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
14: aload 4
aload 0
getfield org.h2.table.TableView.columns:[Lorg/h2/table/Column;
iconst_1
invokestatic org.h2.table.Column.writeColumns:(Ljava/lang/StringBuilder;[Lorg/h2/table/Column;Z)Ljava/lang/StringBuilder;
pop
15: aload 4
bipush 41
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
16: goto 21
StackMap locals:
StackMap stack:
17: aload 0
getfield org.h2.table.TableView.columnTemplates:[Lorg/h2/table/Column;
ifnull 21
18: aload 4
bipush 40
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
19: aload 4
aload 0
getfield org.h2.table.TableView.columnTemplates:[Lorg/h2/table/Column;
iconst_1
invokestatic org.h2.table.Column.writeColumns:(Ljava/lang/StringBuilder;[Lorg/h2/table/Column;Z)Ljava/lang/StringBuilder;
pop
20: aload 4
bipush 41
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
21: StackMap locals:
StackMap stack:
aload 4
ldc " AS\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.h2.table.TableView.querySQL:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
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 22 0 this Lorg/h2/table/TableView;
0 22 1 orReplace Z
0 22 2 force Z
0 22 3 quotedName Ljava/lang/String;
1 22 4 builder Ljava/lang/StringBuilder;
MethodParameters:
Name Flags
orReplace
force
quotedName
public void checkRename();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
public boolean lock(org.h2.engine.Session, boolean, boolean);
descriptor: (Lorg/h2/engine/Session;ZZ)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
0 1 1 session Lorg/h2/engine/Session;
0 1 2 exclusive Z
0 1 3 forceLockEvenInMvcc Z
MethodParameters:
Name Flags
session
exclusive
forceLockEvenInMvcc
public void close(org.h2.engine.Session);
descriptor: (Lorg/h2/engine/Session;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
0 1 1 session Lorg/h2/engine/Session;
MethodParameters:
Name Flags
session
public void unlock(org.h2.engine.Session);
descriptor: (Lorg/h2/engine/Session;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
0 1 1 s Lorg/h2/engine/Session;
MethodParameters:
Name Flags
s
public boolean isLockedExclusively();
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/table/TableView;
public org.h2.index.Index addIndex(org.h2.engine.Session, java.lang.String, int, org.h2.table.IndexColumn[], org.h2.index.IndexType, boolean, java.lang.String);
descriptor: (Lorg/h2/engine/Session;Ljava/lang/String;I[Lorg/h2/table/IndexColumn;Lorg/h2/index/IndexType;ZLjava/lang/String;)Lorg/h2/index/Index;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=8, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: ldc "VIEW"
invokestatic org.h2.message.DbException.getUnsupportedException:(Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
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 1 0 this Lorg/h2/table/TableView;
0 1 1 session Lorg/h2/engine/Session;
0 1 2 indexName Ljava/lang/String;
0 1 3 indexId I
0 1 4 cols [Lorg/h2/table/IndexColumn;
0 1 5 indexType Lorg/h2/index/IndexType;
0 1 6 create Z
0 1 7 indexComment Ljava/lang/String;
MethodParameters:
Name Flags
session
indexName
indexId
cols
indexType
create
indexComment
public void removeRow(org.h2.engine.Session, org.h2.result.Row);
descriptor: (Lorg/h2/engine/Session;Lorg/h2/result/Row;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: ldc "VIEW"
invokestatic org.h2.message.DbException.getUnsupportedException:(Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
0 1 1 session Lorg/h2/engine/Session;
0 1 2 row Lorg/h2/result/Row;
MethodParameters:
Name Flags
session
row
public void addRow(org.h2.engine.Session, org.h2.result.Row);
descriptor: (Lorg/h2/engine/Session;Lorg/h2/result/Row;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: ldc "VIEW"
invokestatic org.h2.message.DbException.getUnsupportedException:(Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
0 1 1 session Lorg/h2/engine/Session;
0 1 2 row Lorg/h2/result/Row;
MethodParameters:
Name Flags
session
row
public void checkSupportAlter();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "VIEW"
invokestatic org.h2.message.DbException.getUnsupportedException:(Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
public void truncate(org.h2.engine.Session);
descriptor: (Lorg/h2/engine/Session;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: ldc "VIEW"
invokestatic org.h2.message.DbException.getUnsupportedException:(Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
0 1 1 session Lorg/h2/engine/Session;
MethodParameters:
Name Flags
session
public long getRowCount(org.h2.engine.Session);
descriptor: (Lorg/h2/engine/Session;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.h2.table.TableView.toString:()Ljava/lang/String;
invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
0 1 1 session Lorg/h2/engine/Session;
MethodParameters:
Name Flags
session
public boolean canGetRowCount();
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/table/TableView;
public boolean canDrop();
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/h2/table/TableView;
public org.h2.table.TableType getTableType();
descriptor: ()Lorg/h2/table/TableType;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic org.h2.table.TableType.VIEW:Lorg/h2/table/TableType;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
public void removeChildrenAndResources(org.h2.engine.Session);
descriptor: (Lorg/h2/engine/Session;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.h2.table.TableView.removeCurrentViewFromOtherTables:()V
1: aload 0
aload 1
invokespecial org.h2.table.Table.removeChildrenAndResources:(Lorg/h2/engine/Session;)V
2: aload 0
getfield org.h2.table.TableView.database:Lorg/h2/engine/Database;
aload 1
aload 0
invokevirtual org.h2.table.TableView.getId:()I
invokevirtual org.h2.engine.Database.removeMeta:(Lorg/h2/engine/Session;I)V
3: aload 0
aconst_null
putfield org.h2.table.TableView.querySQL:Ljava/lang/String;
4: aload 0
aconst_null
putfield org.h2.table.TableView.index:Lorg/h2/index/ViewIndex;
5: aload 0
getfield org.h2.table.TableView.database:Lorg/h2/engine/Database;
invokestatic org.h2.table.TableView.clearIndexCaches:(Lorg/h2/engine/Database;)V
6: aload 0
invokevirtual org.h2.table.TableView.invalidate:()V
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/h2/table/TableView;
0 8 1 session Lorg/h2/engine/Session;
MethodParameters:
Name Flags
session
public static void clearIndexCaches(org.h2.engine.Database);
descriptor: (Lorg/h2/engine/Database;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=5, args_size=1
start local 0 0: aload 0
iconst_1
invokevirtual org.h2.engine.Database.getSessions:(Z)[Lorg/h2/engine/Session;
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 4
StackMap locals: org.h2.engine.Database top int int org.h2.engine.Session[]
StackMap stack:
1: aload 4
iload 2
aaload
astore 1
start local 1 2: aload 1
invokevirtual org.h2.engine.Session.clearViewIndexCache:()V
end local 1 3: iinc 2 1
StackMap locals:
StackMap stack:
4: iload 2
iload 3
if_icmplt 1
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 database Lorg/h2/engine/Database;
2 3 1 s Lorg/h2/engine/Session;
MethodParameters:
Name Flags
database
public java.lang.StringBuilder getSQL(java.lang.StringBuilder, boolean);
descriptor: (Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.h2.table.TableView.isTemporary:()Z
ifeq 3
aload 0
getfield org.h2.table.TableView.querySQL:Ljava/lang/String;
ifnull 3
1: aload 1
ldc "(\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
2: aload 1
aload 0
getfield org.h2.table.TableView.querySQL:Ljava/lang/String;
iconst_4
iconst_1
invokestatic org.h2.util.StringUtils.indent:(Ljava/lang/StringBuilder;Ljava/lang/String;IZ)Ljava/lang/StringBuilder;
bipush 41
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
areturn
3: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
invokespecial org.h2.table.Table.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/table/TableView;
0 4 1 builder Ljava/lang/StringBuilder;
0 4 2 alwaysQuote Z
MethodParameters:
Name Flags
builder
alwaysQuote
public java.lang.String getQuery();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableView.querySQL:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
public org.h2.index.Index getScanIndex(org.h2.engine.Session);
descriptor: (Lorg/h2/engine/Session;)Lorg/h2/index/Index;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
aconst_null
iconst_m1
aconst_null
aconst_null
invokevirtual org.h2.table.TableView.getBestPlanItem:(Lorg/h2/engine/Session;[I[Lorg/h2/table/TableFilter;ILorg/h2/result/SortOrder;Lorg/h2/command/dml/AllColumnsForPlan;)Lorg/h2/table/PlanItem;
invokevirtual org.h2.table.PlanItem.getIndex:()Lorg/h2/index/Index;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
0 1 1 session Lorg/h2/engine/Session;
MethodParameters:
Name Flags
session
public org.h2.index.Index getScanIndex(org.h2.engine.Session, int[], org.h2.table.TableFilter[], int, org.h2.result.SortOrder, org.h2.command.dml.AllColumnsForPlan);
descriptor: (Lorg/h2/engine/Session;[I[Lorg/h2/table/TableFilter;ILorg/h2/result/SortOrder;Lorg/h2/command/dml/AllColumnsForPlan;)Lorg/h2/index/Index;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=8, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
getfield org.h2.table.TableView.createException:Lorg/h2/message/DbException;
ifnull 5
1: aload 0
getfield org.h2.table.TableView.createException:Lorg/h2/message/DbException;
invokevirtual org.h2.message.DbException.getMessage:()Ljava/lang/String;
astore 7
start local 7 2: ldc 90109
3: aload 0
getfield org.h2.table.TableView.createException:Lorg/h2/message/DbException;
iconst_2
anewarray java.lang.String
dup
iconst_0
aload 0
iconst_0
invokevirtual org.h2.table.TableView.getSQL:(Z)Ljava/lang/String;
aastore
dup
iconst_1
aload 7
aastore
4: invokestatic org.h2.message.DbException.get:(ILjava/lang/Throwable;[Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 7 5: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
iload 4
aload 5
aload 6
invokevirtual org.h2.table.TableView.getBestPlanItem:(Lorg/h2/engine/Session;[I[Lorg/h2/table/TableFilter;ILorg/h2/result/SortOrder;Lorg/h2/command/dml/AllColumnsForPlan;)Lorg/h2/table/PlanItem;
astore 7
start local 7 6: aload 7
invokevirtual org.h2.table.PlanItem.getIndex:()Lorg/h2/index/Index;
areturn
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 7 0 this Lorg/h2/table/TableView;
0 7 1 session Lorg/h2/engine/Session;
0 7 2 masks [I
0 7 3 filters [Lorg/h2/table/TableFilter;
0 7 4 filter I
0 7 5 sortOrder Lorg/h2/result/SortOrder;
0 7 6 allColumnsSet Lorg/h2/command/dml/AllColumnsForPlan;
2 5 7 msg Ljava/lang/String;
6 7 7 item Lorg/h2/table/PlanItem;
MethodParameters:
Name Flags
session
masks
filters
filter
sortOrder
allColumnsSet
public boolean canReference();
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/table/TableView;
public java.util.ArrayList<org.h2.index.Index> getIndexes();
descriptor: ()Ljava/util/ArrayList;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
Signature: ()Ljava/util/ArrayList<Lorg/h2/index/Index;>;
public long getMaxDataModificationId();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableView.createException:Lorg/h2/message/DbException;
ifnull 2
1: ldc 9223372036854775807
lreturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableView.viewQuery:Lorg/h2/command/dml/Query;
ifnonnull 4
3: ldc 9223372036854775807
lreturn
4: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableView.database:Lorg/h2/engine/Database;
invokevirtual org.h2.engine.Database.getModificationDataId:()J
lstore 1
start local 1 5: lload 1
aload 0
getfield org.h2.table.TableView.lastModificationCheck:J
lcmp
ifle 8
aload 0
getfield org.h2.table.TableView.maxDataModificationId:J
lload 1
lcmp
ifgt 8
6: aload 0
aload 0
getfield org.h2.table.TableView.viewQuery:Lorg/h2/command/dml/Query;
invokevirtual org.h2.command.dml.Query.getMaxDataModificationId:()J
putfield org.h2.table.TableView.maxDataModificationId:J
7: aload 0
lload 1
putfield org.h2.table.TableView.lastModificationCheck:J
8: StackMap locals: long
StackMap stack:
aload 0
getfield org.h2.table.TableView.maxDataModificationId:J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/h2/table/TableView;
5 9 1 dbMod J
public org.h2.index.Index getUniqueIndex();
descriptor: ()Lorg/h2/index/Index;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
private void removeCurrentViewFromOtherTables();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableView.tables:Ljava/util/ArrayList;
ifnull 6
1: aload 0
getfield org.h2.table.TableView.tables:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 2
goto 4
StackMap locals: org.h2.table.TableView top java.util.Iterator
StackMap stack:
2: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.table.Table
astore 1
start local 1 3: aload 1
aload 0
invokevirtual org.h2.table.Table.removeDependentView:(Lorg/h2/table/TableView;)V
end local 1 4: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: aload 0
getfield org.h2.table.TableView.tables:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.clear:()V
6: StackMap locals: org.h2.table.TableView
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/h2/table/TableView;
3 4 1 t Lorg/h2/table/Table;
private void addDependentViewToTables();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableView.tables:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 2
goto 3
StackMap locals: org.h2.table.TableView top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.table.Table
astore 1
start local 1 2: aload 1
aload 0
invokevirtual org.h2.table.Table.addDependentView:(Lorg/h2/table/TableView;)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/table/TableView;
2 3 1 t Lorg/h2/table/Table;
private void setOwner(org.h2.engine.User);
descriptor: (Lorg/h2/engine/User;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.h2.table.TableView.owner:Lorg/h2/engine/User;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/table/TableView;
0 2 1 owner Lorg/h2/engine/User;
MethodParameters:
Name Flags
owner
public org.h2.engine.User getOwner();
descriptor: ()Lorg/h2/engine/User;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableView.owner:Lorg/h2/engine/User;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
public static org.h2.table.TableView createTempView(org.h2.engine.Session, org.h2.engine.User, java.lang.String, org.h2.command.dml.Query, org.h2.command.dml.Query);
descriptor: (Lorg/h2/engine/Session;Lorg/h2/engine/User;Ljava/lang/String;Lorg/h2/command/dml/Query;Lorg/h2/command/dml/Query;)Lorg/h2/table/TableView;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=13, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
invokevirtual org.h2.engine.Database.getMainSchema:()Lorg/h2/schema/Schema;
astore 5
start local 5 1: aload 3
iconst_1
invokevirtual org.h2.command.dml.Query.getPlanSQL:(Z)Ljava/lang/String;
astore 6
start local 6 2: new org.h2.table.TableView
dup
aload 5
iconst_0
aload 2
3: aload 6
aload 3
invokevirtual org.h2.command.dml.Query.getParameters:()Ljava/util/ArrayList;
aconst_null
aload 0
4: iconst_0
iconst_1
5: iconst_0
iconst_1
6: invokespecial org.h2.table.TableView.<init>:(Lorg/h2/schema/Schema;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;[Lorg/h2/table/Column;Lorg/h2/engine/Session;ZZZZ)V
astore 7
start local 7 7: aload 7
getfield org.h2.table.TableView.createException:Lorg/h2/message/DbException;
ifnull 9
8: aload 7
getfield org.h2.table.TableView.createException:Lorg/h2/message/DbException;
athrow
9: StackMap locals: org.h2.schema.Schema java.lang.String org.h2.table.TableView
StackMap stack:
aload 7
aload 4
invokevirtual org.h2.table.TableView.setTopQuery:(Lorg/h2/command/dml/Query;)V
10: aload 7
aload 1
invokevirtual org.h2.table.TableView.setOwner:(Lorg/h2/engine/User;)V
11: aload 7
iconst_1
invokevirtual org.h2.table.TableView.setTemporary:(Z)V
12: aload 7
areturn
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 13 0 session Lorg/h2/engine/Session;
0 13 1 owner Lorg/h2/engine/User;
0 13 2 name Ljava/lang/String;
0 13 3 query Lorg/h2/command/dml/Query;
0 13 4 topQuery Lorg/h2/command/dml/Query;
1 13 5 mainSchema Lorg/h2/schema/Schema;
2 13 6 querySQL Ljava/lang/String;
7 13 7 v Lorg/h2/table/TableView;
MethodParameters:
Name Flags
session
owner
name
query
topQuery
private void setTopQuery(org.h2.command.dml.Query);
descriptor: (Lorg/h2/command/dml/Query;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.h2.table.TableView.topQuery:Lorg/h2/command/dml/Query;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/table/TableView;
0 2 1 topQuery Lorg/h2/command/dml/Query;
MethodParameters:
Name Flags
topQuery
public long getRowCountApproximation();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: ldc 100
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
public long getDiskSpaceUsed();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: lconst_0
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
public int getParameterOffset(java.util.ArrayList<org.h2.expression.Parameter>);
descriptor: (Ljava/util/ArrayList;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.table.TableView.topQuery:Lorg/h2/command/dml/Query;
ifnonnull 1
iconst_m1
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield org.h2.table.TableView.topQuery:Lorg/h2/command/dml/Query;
invokevirtual org.h2.command.dml.Query.getParameters:()Ljava/util/ArrayList;
invokestatic org.h2.table.TableView.getMaxParameterIndex:(Ljava/util/ArrayList;)I
StackMap locals:
StackMap stack: int
2: istore 2
start local 2 3: aload 1
ifnull 5
4: iload 2
aload 1
invokestatic org.h2.table.TableView.getMaxParameterIndex:(Ljava/util/ArrayList;)I
invokestatic java.lang.Math.max:(II)I
istore 2
5: StackMap locals: int
StackMap stack:
iload 2
iconst_1
iadd
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/h2/table/TableView;
0 6 1 additionalParameters Ljava/util/ArrayList<Lorg/h2/expression/Parameter;>;
3 6 2 result I
Signature: (Ljava/util/ArrayList<Lorg/h2/expression/Parameter;>;)I
MethodParameters:
Name Flags
additionalParameters
private static int getMaxParameterIndex(java.util.ArrayList<org.h2.expression.Parameter>);
descriptor: (Ljava/util/ArrayList;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: iconst_m1
istore 1
start local 1 1: aload 0
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: java.util.ArrayList int top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.expression.Parameter
astore 2
start local 2 3: iload 1
aload 2
invokevirtual org.h2.expression.Parameter.getIndex:()I
invokestatic java.lang.Math.max:(II)I
istore 1
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 parameters Ljava/util/ArrayList<Lorg/h2/expression/Parameter;>;
1 6 1 result I
3 4 2 p Lorg/h2/expression/Parameter;
Signature: (Ljava/util/ArrayList<Lorg/h2/expression/Parameter;>;)I
MethodParameters:
Name Flags
parameters
public boolean isRecursive();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableView.allowRecursive:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
public boolean isDeterministic();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableView.allowRecursive:Z
ifne 1
aload 0
getfield org.h2.table.TableView.viewQuery:Lorg/h2/command/dml/Query;
ifnonnull 2
1: StackMap locals:
StackMap stack:
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.table.TableView.viewQuery:Lorg/h2/command/dml/Query;
getstatic org.h2.expression.ExpressionVisitor.DETERMINISTIC_VISITOR:Lorg/h2/expression/ExpressionVisitor;
invokevirtual org.h2.command.dml.Query.isEverything:(Lorg/h2/expression/ExpressionVisitor;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/table/TableView;
public void setRecursiveResult(org.h2.result.ResultInterface);
descriptor: (Lorg/h2/result/ResultInterface;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.table.TableView.recursiveResult:Lorg/h2/result/ResultInterface;
ifnull 2
1: aload 0
getfield org.h2.table.TableView.recursiveResult:Lorg/h2/result/ResultInterface;
invokeinterface org.h2.result.ResultInterface.close:()V
2: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield org.h2.table.TableView.recursiveResult:Lorg/h2/result/ResultInterface;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/table/TableView;
0 4 1 value Lorg/h2/result/ResultInterface;
MethodParameters:
Name Flags
value
public org.h2.result.ResultInterface getRecursiveResult();
descriptor: ()Lorg/h2/result/ResultInterface;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableView.recursiveResult:Lorg/h2/result/ResultInterface;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
public void addDependencies(java.util.HashSet<org.h2.engine.DbObject>);
descriptor: (Ljava/util/HashSet;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial org.h2.table.Table.addDependencies:(Ljava/util/HashSet;)V
1: aload 0
getfield org.h2.table.TableView.tables:Ljava/util/ArrayList;
ifnull 7
2: aload 0
getfield org.h2.table.TableView.tables:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 3
goto 6
StackMap locals: org.h2.table.TableView java.util.HashSet top java.util.Iterator
StackMap stack:
3: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.table.Table
astore 2
start local 2 4: getstatic org.h2.table.TableType.VIEW:Lorg/h2/table/TableType;
aload 2
invokevirtual org.h2.table.Table.getTableType:()Lorg/h2/table/TableType;
if_acmpeq 6
5: aload 2
aload 1
invokevirtual org.h2.table.Table.addDependencies:(Ljava/util/HashSet;)V
end local 2 6: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
7: StackMap locals: org.h2.table.TableView java.util.HashSet
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/h2/table/TableView;
0 8 1 dependencies Ljava/util/HashSet<Lorg/h2/engine/DbObject;>;
4 6 2 t Lorg/h2/table/Table;
Signature: (Ljava/util/HashSet<Lorg/h2/engine/DbObject;>;)V
MethodParameters:
Name Flags
dependencies
public boolean isRecursiveQueryDetected();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableView.isRecursiveQueryDetected:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
private boolean isRecursiveQueryExceptionDetected(org.h2.message.DbException);
descriptor: (Lorg/h2/message/DbException;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.h2.message.DbException.getErrorCode:()I
ldc 42102
if_icmpeq 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.h2.message.DbException.getMessage:()Ljava/lang/String;
new java.lang.StringBuilder
dup
ldc "\""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.h2.table.TableView.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/h2/table/TableView;
0 5 1 exception Lorg/h2/message/DbException;
MethodParameters:
Name Flags
exception
public java.util.List<org.h2.table.Table> getTables();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.table.TableView.tables:Ljava/util/ArrayList;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/table/TableView;
Signature: ()Ljava/util/List<Lorg/h2/table/Table;>;
public static org.h2.table.TableView createTableViewMaybeRecursive(org.h2.schema.Schema, int, java.lang.String, java.lang.String, java.util.ArrayList<org.h2.expression.Parameter>, org.h2.table.Column[], org.h2.engine.Session, boolean, boolean, boolean, org.h2.engine.Database);
descriptor: (Lorg/h2/schema/Schema;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;[Lorg/h2/table/Column;Lorg/h2/engine/Session;ZZZLorg/h2/engine/Database;)Lorg/h2/table/TableView;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=13, locals=19, args_size=11
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 start local 10 0: iload 9
aload 6
aload 2
1: aload 0
aload 5
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
aload 10
2: invokestatic org.h2.table.TableView.createShadowTableForRecursiveTableExpression:(ZLorg/h2/engine/Session;Ljava/lang/String;Lorg/h2/schema/Schema;Ljava/util/List;Lorg/h2/engine/Database;)Lorg/h2/table/Table;
astore 11
start local 11 3: iconst_1
anewarray java.lang.String
astore 13
start local 13 4: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 14
start local 14 5: aload 5
dup
astore 18
arraylength
istore 17
iconst_0
istore 16
goto 9
StackMap locals: org.h2.schema.Schema int java.lang.String java.lang.String java.util.ArrayList org.h2.table.Column[] org.h2.engine.Session int int int org.h2.engine.Database org.h2.table.Table top java.lang.String[] java.util.ArrayList top int int org.h2.table.Column[]
StackMap stack:
6: aload 18
iload 16
aaload
astore 15
start local 15 7: aload 14
aload 15
invokevirtual org.h2.table.Column.getName:()Ljava/lang/String;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 15 8: iinc 16 1
StackMap locals:
StackMap stack:
9: iload 16
iload 17
if_icmplt 6
10: aload 6
aload 3
iconst_0
iconst_0
invokevirtual org.h2.engine.Session.prepare:(Ljava/lang/String;ZZ)Lorg/h2/command/Prepared;
astore 15
start local 15 11: iload 9
ifne 13
12: aload 15
aload 6
invokevirtual org.h2.command.Prepared.setSession:(Lorg/h2/engine/Session;)V
13: StackMap locals: org.h2.schema.Schema int java.lang.String java.lang.String java.util.ArrayList org.h2.table.Column[] org.h2.engine.Session int int int org.h2.engine.Database org.h2.table.Table top java.lang.String[] java.util.ArrayList org.h2.command.Prepared
StackMap stack:
aload 14
iconst_1
anewarray java.lang.String
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.String[]
14: aload 15
checkcast org.h2.command.dml.Query
aload 13
15: invokestatic org.h2.table.TableView.createQueryColumnTemplateList:([Ljava/lang/String;Lorg/h2/command/dml/Query;[Ljava/lang/String;)Ljava/util/List;
astore 12
end local 15 start local 12 16: goto 20
end local 12 StackMap locals: org.h2.schema.Schema int java.lang.String java.lang.String java.util.ArrayList org.h2.table.Column[] org.h2.engine.Session int int int org.h2.engine.Database org.h2.table.Table top java.lang.String[] java.util.ArrayList
StackMap stack: java.lang.Throwable
17: astore 16
18: iload 9
aload 6
aload 11
invokestatic org.h2.table.TableView.destroyShadowTableForRecursiveExpression:(ZLorg/h2/engine/Session;Lorg/h2/table/Table;)V
19: aload 16
athrow
start local 12 20: StackMap locals: org.h2.schema.Schema int java.lang.String java.lang.String java.util.ArrayList org.h2.table.Column[] org.h2.engine.Session int int int org.h2.engine.Database org.h2.table.Table java.util.List java.lang.String[] java.util.ArrayList
StackMap stack:
iload 9
aload 6
aload 11
invokestatic org.h2.table.TableView.destroyShadowTableForRecursiveExpression:(ZLorg/h2/engine/Session;Lorg/h2/table/Table;)V
21: new org.h2.table.TableView
dup
aload 0
iload 1
aload 2
aload 3
22: aload 4
aload 12
aload 5
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast org.h2.table.Column[]
aload 6
23: iconst_1
iload 7
iload 8
iload 9
24: invokespecial org.h2.table.TableView.<init>:(Lorg/h2/schema/Schema;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;[Lorg/h2/table/Column;Lorg/h2/engine/Session;ZZZZ)V
astore 15
start local 15 25: aload 15
invokevirtual org.h2.table.TableView.isRecursiveQueryDetected:()Z
ifne 37
26: iload 9
ifne 32
27: aload 10
aload 6
aload 15
invokevirtual org.h2.engine.Database.addSchemaObject:(Lorg/h2/engine/Session;Lorg/h2/schema/SchemaObject;)V
28: aload 15
aload 6
iconst_1
iconst_1
invokevirtual org.h2.table.TableView.lock:(Lorg/h2/engine/Session;ZZ)Z
pop
29: aload 6
invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
aload 6
aload 15
invokevirtual org.h2.engine.Database.removeSchemaObject:(Lorg/h2/engine/Session;Lorg/h2/schema/SchemaObject;)V
30: aload 15
aload 6
invokevirtual org.h2.table.TableView.removeChildrenAndResources:(Lorg/h2/engine/Session;)V
31: goto 33
32: StackMap locals: org.h2.table.TableView
StackMap stack:
aload 6
aload 15
invokevirtual org.h2.engine.Session.removeLocalTempTable:(Lorg/h2/table/Table;)V
33: StackMap locals:
StackMap stack:
new org.h2.table.TableView
dup
aload 0
iload 1
aload 2
aload 3
aload 4
34: aload 5
aload 6
35: iconst_0
iload 7
iload 8
iload 9
36: invokespecial org.h2.table.TableView.<init>:(Lorg/h2/schema/Schema;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;[Lorg/h2/table/Column;Lorg/h2/engine/Session;ZZZZ)V
astore 15
37: StackMap locals:
StackMap stack:
aload 15
areturn
end local 15 end local 14 end local 13 end local 12 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 38 0 schema Lorg/h2/schema/Schema;
0 38 1 id I
0 38 2 name Ljava/lang/String;
0 38 3 querySQL Ljava/lang/String;
0 38 4 parameters Ljava/util/ArrayList<Lorg/h2/expression/Parameter;>;
0 38 5 columnTemplates [Lorg/h2/table/Column;
0 38 6 session Lorg/h2/engine/Session;
0 38 7 literalsChecked Z
0 38 8 isTableExpression Z
0 38 9 isTemporary Z
0 38 10 db Lorg/h2/engine/Database;
3 38 11 recursiveTable Lorg/h2/table/Table;
16 17 12 columnTemplateList Ljava/util/List<Lorg/h2/table/Column;>;
20 38 12 columnTemplateList Ljava/util/List<Lorg/h2/table/Column;>;
4 38 13 querySQLOutput [Ljava/lang/String;
5 38 14 columnNames Ljava/util/ArrayList<Ljava/lang/String;>;
7 8 15 columnTemplate Lorg/h2/table/Column;
11 16 15 withQuery Lorg/h2/command/Prepared;
25 38 15 view Lorg/h2/table/TableView;
Exception table:
from to target type
10 17 17 any
Signature: (Lorg/h2/schema/Schema;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList<Lorg/h2/expression/Parameter;>;[Lorg/h2/table/Column;Lorg/h2/engine/Session;ZZZLorg/h2/engine/Database;)Lorg/h2/table/TableView;
MethodParameters:
Name Flags
schema
id
name
querySQL
parameters
columnTemplates
session
literalsChecked
isTableExpression
isTemporary
db
public static java.util.List<org.h2.table.Column> createQueryColumnTemplateList(java.lang.String[], org.h2.command.dml.Query, java.lang.String[]);
descriptor: ([Ljava/lang/String;Lorg/h2/command/dml/Query;[Ljava/lang/String;)Ljava/util/List;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=9, args_size=3
start local 0 start local 1 start local 2 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 1: aload 1
invokevirtual org.h2.command.dml.Query.prepare:()V
2: aload 2
iconst_0
aload 1
iconst_1
invokevirtual org.h2.command.dml.Query.getPlanSQL:(Z)Ljava/lang/String;
invokestatic org.h2.util.StringUtils.cache:(Ljava/lang/String;)Ljava/lang/String;
aastore
3: new org.h2.util.ColumnNamer
dup
aload 1
invokevirtual org.h2.command.dml.Query.getSession:()Lorg/h2/engine/Session;
invokespecial org.h2.util.ColumnNamer.<init>:(Lorg/h2/engine/Session;)V
astore 4
start local 4 4: aload 1
invokevirtual org.h2.command.dml.Query.getExpressions:()Ljava/util/ArrayList;
astore 5
start local 5 5: iconst_0
istore 6
start local 6 6: goto 11
7: StackMap locals: java.lang.String[] org.h2.command.dml.Query java.lang.String[] java.util.List org.h2.util.ColumnNamer java.util.ArrayList int
StackMap stack:
aload 5
iload 6
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.expression.Expression
astore 7
start local 7 8: aload 4
aload 7
iload 6
aload 0
invokevirtual org.h2.util.ColumnNamer.getColumnName:(Lorg/h2/expression/Expression;I[Ljava/lang/String;)Ljava/lang/String;
astore 8
start local 8 9: aload 3
new org.h2.table.Column
dup
aload 8
aload 7
invokevirtual org.h2.expression.Expression.getType:()Lorg/h2/value/TypeInfo;
invokespecial org.h2.table.Column.<init>:(Ljava/lang/String;Lorg/h2/value/TypeInfo;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 8 end local 7 10: iinc 6 1
StackMap locals:
StackMap stack:
11: iload 6
aload 5
invokevirtual java.util.ArrayList.size:()I
if_icmplt 7
end local 6 12: aload 3
areturn
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 13 0 cols [Ljava/lang/String;
0 13 1 theQuery Lorg/h2/command/dml/Query;
0 13 2 querySQLOutput [Ljava/lang/String;
1 13 3 columnTemplateList Ljava/util/List<Lorg/h2/table/Column;>;
4 13 4 columnNamer Lorg/h2/util/ColumnNamer;
5 13 5 withExpressions Ljava/util/ArrayList<Lorg/h2/expression/Expression;>;
6 12 6 i I
8 10 7 columnExp Lorg/h2/expression/Expression;
9 10 8 columnName Ljava/lang/String;
Signature: ([Ljava/lang/String;Lorg/h2/command/dml/Query;[Ljava/lang/String;)Ljava/util/List<Lorg/h2/table/Column;>;
MethodParameters:
Name Flags
cols
theQuery
querySQLOutput
public static org.h2.table.Table createShadowTableForRecursiveTableExpression(boolean, org.h2.engine.Session, java.lang.String, org.h2.schema.Schema, java.util.List<org.h2.table.Column>, org.h2.engine.Database);
descriptor: (ZLorg/h2/engine/Session;Ljava/lang/String;Lorg/h2/schema/Schema;Ljava/util/List;Lorg/h2/engine/Database;)Lorg/h2/table/Table;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=9, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: new org.h2.command.ddl.CreateTableData
dup
invokespecial org.h2.command.ddl.CreateTableData.<init>:()V
astore 6
start local 6 1: aload 6
aload 5
invokevirtual org.h2.engine.Database.allocateObjectId:()I
putfield org.h2.command.ddl.CreateTableData.id:I
2: aload 6
new java.util.ArrayList
dup
aload 4
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
putfield org.h2.command.ddl.CreateTableData.columns:Ljava/util/ArrayList;
3: aload 6
aload 2
putfield org.h2.command.ddl.CreateTableData.tableName:Ljava/lang/String;
4: aload 6
iload 0
putfield org.h2.command.ddl.CreateTableData.temporary:Z
5: aload 6
iconst_1
putfield org.h2.command.ddl.CreateTableData.persistData:Z
6: aload 6
iload 0
ifeq 7
iconst_0
goto 8
StackMap locals: int org.h2.engine.Session java.lang.String org.h2.schema.Schema java.util.List org.h2.engine.Database org.h2.command.ddl.CreateTableData
StackMap stack: org.h2.command.ddl.CreateTableData
7: iconst_1
StackMap locals: int org.h2.engine.Session java.lang.String org.h2.schema.Schema java.util.List org.h2.engine.Database org.h2.command.ddl.CreateTableData
StackMap stack: org.h2.command.ddl.CreateTableData int
8: putfield org.h2.command.ddl.CreateTableData.persistIndexes:Z
9: aload 6
iconst_1
putfield org.h2.command.ddl.CreateTableData.create:Z
10: aload 6
aload 1
putfield org.h2.command.ddl.CreateTableData.session:Lorg/h2/engine/Session;
11: aload 3
aload 6
invokevirtual org.h2.schema.Schema.createTable:(Lorg/h2/command/ddl/CreateTableData;)Lorg/h2/table/Table;
astore 7
start local 7 12: iload 0
ifne 20
13: aload 5
aload 1
invokevirtual org.h2.engine.Database.unlockMeta:(Lorg/h2/engine/Session;)V
14: aload 1
dup
astore 8
monitorenter
15: aload 5
aload 1
aload 7
invokevirtual org.h2.engine.Database.addSchemaObject:(Lorg/h2/engine/Session;Lorg/h2/schema/SchemaObject;)V
16: aload 8
monitorexit
17: goto 21
StackMap locals: int org.h2.engine.Session java.lang.String org.h2.schema.Schema java.util.List org.h2.engine.Database org.h2.command.ddl.CreateTableData org.h2.table.Table org.h2.engine.Session
StackMap stack: java.lang.Throwable
18: aload 8
monitorexit
19: athrow
20: StackMap locals:
StackMap stack:
aload 1
aload 7
invokevirtual org.h2.engine.Session.addLocalTempTable:(Lorg/h2/table/Table;)V
21: StackMap locals:
StackMap stack:
aload 7
areturn
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 22 0 isTemporary Z
0 22 1 targetSession Lorg/h2/engine/Session;
0 22 2 cteViewName Ljava/lang/String;
0 22 3 schema Lorg/h2/schema/Schema;
0 22 4 columns Ljava/util/List<Lorg/h2/table/Column;>;
0 22 5 db Lorg/h2/engine/Database;
1 22 6 recursiveTableData Lorg/h2/command/ddl/CreateTableData;
12 22 7 recursiveTable Lorg/h2/table/Table;
Exception table:
from to target type
15 17 18 any
18 19 18 any
Signature: (ZLorg/h2/engine/Session;Ljava/lang/String;Lorg/h2/schema/Schema;Ljava/util/List<Lorg/h2/table/Column;>;Lorg/h2/engine/Database;)Lorg/h2/table/Table;
MethodParameters:
Name Flags
isTemporary
targetSession
cteViewName
schema
columns
db
public static void destroyShadowTableForRecursiveExpression(boolean, org.h2.engine.Session, org.h2.table.Table);
descriptor: (ZLorg/h2/engine/Session;Lorg/h2/table/Table;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnull 7
1: iload 0
ifne 5
2: aload 2
aload 1
iconst_1
iconst_1
invokevirtual org.h2.table.Table.lock:(Lorg/h2/engine/Session;ZZ)Z
pop
3: aload 1
invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
aload 1
aload 2
invokevirtual org.h2.engine.Database.removeSchemaObject:(Lorg/h2/engine/Session;Lorg/h2/schema/SchemaObject;)V
4: goto 6
5: StackMap locals:
StackMap stack:
aload 1
aload 2
invokevirtual org.h2.engine.Session.removeLocalTempTable:(Lorg/h2/table/Table;)V
6: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
aload 1
invokevirtual org.h2.engine.Database.unlockMeta:(Lorg/h2/engine/Session;)V
7: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 isTemporary Z
0 8 1 targetSession Lorg/h2/engine/Session;
0 8 2 recursiveTable Lorg/h2/table/Table;
MethodParameters:
Name Flags
isTemporary
targetSession
recursiveTable
}
SourceFile: "TableView.java"
NestMembers:
org.h2.table.TableView$CacheKey
InnerClasses:
private final CacheKey = org.h2.table.TableView$CacheKey of org.h2.table.TableView