public class org.h2.engine.Session extends org.h2.engine.SessionWithState implements org.h2.mvstore.tx.TransactionStore$RollbackListener
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.engine.Session
  super_class: org.h2.engine.SessionWithState
{
  public static final int LOG_WRITTEN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  private static final java.lang.String SYSTEM_IDENTIFIER_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "_"

  private static int nextSerialId;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private final int serialId;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.h2.engine.Database database;
    descriptor: Lorg/h2/engine/Database;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.h2.engine.ConnectionInfo connectionInfo;
    descriptor: Lorg/h2/engine/ConnectionInfo;
    flags: (0x0002) ACC_PRIVATE

  private final org.h2.engine.User user;
    descriptor: Lorg/h2/engine/User;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int id;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.ArrayList<org.h2.table.Table> locks;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Lorg/h2/table/Table;>;

  private org.h2.engine.UndoLog undoLog;
    descriptor: Lorg/h2/engine/UndoLog;
    flags: (0x0002) ACC_PRIVATE

  private boolean autoCommit;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.util.Random random;
    descriptor: Ljava/util/Random;
    flags: (0x0002) ACC_PRIVATE

  private int lockTimeout;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private org.h2.value.Value lastIdentity;
    descriptor: Lorg/h2/value/Value;
    flags: (0x0002) ACC_PRIVATE

  private org.h2.value.Value lastScopeIdentity;
    descriptor: Lorg/h2/value/Value;
    flags: (0x0002) ACC_PRIVATE

  private org.h2.value.Value lastTriggerIdentity;
    descriptor: Lorg/h2/value/Value;
    flags: (0x0002) ACC_PRIVATE

  private org.h2.engine.GeneratedKeys generatedKeys;
    descriptor: Lorg/h2/engine/GeneratedKeys;
    flags: (0x0002) ACC_PRIVATE

  private int firstUncommittedLog;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int firstUncommittedPos;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.util.HashMap<java.lang.String, org.h2.engine.Session$Savepoint> savepoints;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Ljava/lang/String;Lorg/h2/engine/Session$Savepoint;>;

  private java.util.HashMap<java.lang.String, org.h2.table.Table> localTempTables;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Ljava/lang/String;Lorg/h2/table/Table;>;

  private java.util.HashMap<java.lang.String, org.h2.index.Index> localTempTableIndexes;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Ljava/lang/String;Lorg/h2/index/Index;>;

  private java.util.HashMap<java.lang.String, org.h2.constraint.Constraint> localTempTableConstraints;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Ljava/lang/String;Lorg/h2/constraint/Constraint;>;

  private long throttleNs;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long lastThrottle;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private org.h2.command.Command currentCommand;
    descriptor: Lorg/h2/command/Command;
    flags: (0x0002) ACC_PRIVATE

  private boolean allowLiterals;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String currentSchemaName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String[] schemaSearchPath;
    descriptor: [Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private org.h2.message.Trace trace;
    descriptor: Lorg/h2/message/Trace;
    flags: (0x0002) ACC_PRIVATE

  private java.util.HashMap<java.lang.String, org.h2.value.Value> removeLobMap;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Ljava/lang/String;Lorg/h2/value/Value;>;

  private int systemIdentifier;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.util.HashMap<java.lang.String, org.h2.engine.Procedure> procedures;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Ljava/lang/String;Lorg/h2/engine/Procedure;>;

  private boolean undoLogEnabled;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean redoLogBinary;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean autoCommitAtTransactionEnd;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String currentTransactionName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private volatile long cancelAtNs;
    descriptor: J
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private final long sessionStart;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.h2.value.ValueTimestampTimeZone transactionStart;
    descriptor: Lorg/h2/value/ValueTimestampTimeZone;
    flags: (0x0002) ACC_PRIVATE

  private org.h2.value.ValueTimestampTimeZone currentCommandStart;
    descriptor: Lorg/h2/value/ValueTimestampTimeZone;
    flags: (0x0002) ACC_PRIVATE

  private java.util.HashMap<java.lang.String, org.h2.value.Value> variables;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Ljava/lang/String;Lorg/h2/value/Value;>;

  private java.util.HashSet<org.h2.result.ResultInterface> temporaryResults;
    descriptor: Ljava/util/HashSet;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashSet<Lorg/h2/result/ResultInterface;>;

  private int queryTimeout;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean commitOrRollbackDisabled;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private org.h2.table.Table waitForLock;
    descriptor: Lorg/h2/table/Table;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Thread waitForLockThread;
    descriptor: Ljava/lang/Thread;
    flags: (0x0002) ACC_PRIVATE

  private int modificationId;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int objectId;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private final int queryCacheSize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.h2.util.SmallLRUCache<java.lang.String, org.h2.command.Command> queryCache;
    descriptor: Lorg/h2/util/SmallLRUCache;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lorg/h2/util/SmallLRUCache<Ljava/lang/String;Lorg/h2/command/Command;>;

  private long modificationMetaID;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private org.h2.table.SubQueryInfo subQueryInfo;
    descriptor: Lorg/h2/table/SubQueryInfo;
    flags: (0x0002) ACC_PRIVATE

  private java.util.ArrayDeque<java.lang.String> viewNameStack;
    descriptor: Ljava/util/ArrayDeque;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/ArrayDeque<Ljava/lang/String;>;

  private int preparingQueryExpression;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private volatile org.h2.util.SmallLRUCache<java.lang.Object, org.h2.index.ViewIndex> viewIndexCache;
    descriptor: Lorg/h2/util/SmallLRUCache;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Lorg/h2/util/SmallLRUCache<Ljava/lang/Object;Lorg/h2/index/ViewIndex;>;

  private java.util.HashMap<java.lang.Object, org.h2.index.ViewIndex> subQueryIndexCache;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Ljava/lang/Object;Lorg/h2/index/ViewIndex;>;

  private boolean joinBatchEnabled;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean forceJoinOrder;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean lazyQueryExecution;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private org.h2.util.ColumnNamerConfiguration columnNamerConfiguration;
    descriptor: Lorg/h2/util/ColumnNamerConfiguration;
    flags: (0x0002) ACC_PRIVATE

  private java.util.HashSet<org.h2.table.Table> tablesToAnalyze;
    descriptor: Ljava/util/HashSet;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashSet<Lorg/h2/table/Table;>;

  private java.util.LinkedList<org.h2.engine.Session$TimeoutValue> temporaryResultLobs;
    descriptor: Ljava/util/LinkedList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/LinkedList<Lorg/h2/engine/Session$TimeoutValue;>;

  private java.util.ArrayList<org.h2.value.Value> temporaryLobs;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/ArrayList<Lorg/h2/value/Value;>;

  private org.h2.mvstore.tx.Transaction transaction;
    descriptor: Lorg/h2/mvstore/tx/Transaction;
    flags: (0x0002) ACC_PRIVATE

  private final java.util.concurrent.atomic.AtomicReference<org.h2.engine.Session$State> state;
    descriptor: Ljava/util/concurrent/atomic/AtomicReference;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/atomic/AtomicReference<Lorg/h2/engine/Session$State;>;

  private long startStatement;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private java.util.BitSet idsToRelease;
    descriptor: Ljava/util/BitSet;
    flags: (0x0002) ACC_PRIVATE

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 67
            ldc Lorg/h2/engine/Session;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.h2.engine.Session.$assertionsDisabled:Z
         3: .line 81
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.h2.engine.Database, org.h2.engine.User, int);
    descriptor: (Lorg/h2/engine/Database;Lorg/h2/engine/User;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.engine.Database database
        start local 2 // org.h2.engine.User user
        start local 3 // int id
         0: .line 171
            aload 0 /* this */
            invokespecial org.h2.engine.SessionWithState.<init>:()V
         1: .line 83
            aload 0 /* this */
            getstatic org.h2.engine.Session.nextSerialId:I
            dup
            iconst_1
            iadd
            putstatic org.h2.engine.Session.nextSerialId:I
            putfield org.h2.engine.Session.serialId:I
         2: .line 88
            aload 0 /* this */
            invokestatic org.h2.util.Utils.newSmallArrayList:()Ljava/util/ArrayList;
            putfield org.h2.engine.Session.locks:Ljava/util/ArrayList;
         3: .line 90
            aload 0 /* this */
            iconst_1
            putfield org.h2.engine.Session.autoCommit:Z
         4: .line 93
            aload 0 /* this */
            lconst_0
            invokestatic org.h2.value.ValueLong.get:(J)Lorg/h2/value/ValueLong;
            putfield org.h2.engine.Session.lastIdentity:Lorg/h2/value/Value;
         5: .line 94
            aload 0 /* this */
            lconst_0
            invokestatic org.h2.value.ValueLong.get:(J)Lorg/h2/value/ValueLong;
            putfield org.h2.engine.Session.lastScopeIdentity:Lorg/h2/value/Value;
         6: .line 97
            aload 0 /* this */
            iconst_m1
            putfield org.h2.engine.Session.firstUncommittedLog:I
         7: .line 98
            aload 0 /* this */
            iconst_m1
            putfield org.h2.engine.Session.firstUncommittedPos:I
         8: .line 113
            aload 0 /* this */
            iconst_1
            putfield org.h2.engine.Session.undoLogEnabled:Z
         9: .line 114
            aload 0 /* this */
            iconst_1
            putfield org.h2.engine.Session.redoLogBinary:Z
        10: .line 118
            aload 0 /* this */
            invokestatic java.lang.System.currentTimeMillis:()J
            putfield org.h2.engine.Session.sessionStart:J
        11: .line 131
            aload 0 /* this */
            ldc -1
            putfield org.h2.engine.Session.modificationMetaID:J
        12: .line 163
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicReference
            dup
            getstatic org.h2.engine.Session$State.INIT:Lorg/h2/engine/Session$State;
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
            putfield org.h2.engine.Session.state:Ljava/util/concurrent/atomic/AtomicReference;
        13: .line 164
            aload 0 /* this */
            ldc -1
            putfield org.h2.engine.Session.startStatement:J
        14: .line 172
            aload 0 /* this */
            aload 1 /* database */
            putfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
        15: .line 173
            aload 0 /* this */
            aload 1 /* database */
            invokevirtual org.h2.engine.Database.getSettings:()Lorg/h2/engine/DbSettings;
            getfield org.h2.engine.DbSettings.maxQueryTimeout:I
            putfield org.h2.engine.Session.queryTimeout:I
        16: .line 174
            aload 0 /* this */
            aload 1 /* database */
            invokevirtual org.h2.engine.Database.getSettings:()Lorg/h2/engine/DbSettings;
            getfield org.h2.engine.DbSettings.queryCacheSize:I
            putfield org.h2.engine.Session.queryCacheSize:I
        17: .line 175
            aload 0 /* this */
            aload 2 /* user */
            putfield org.h2.engine.Session.user:Lorg/h2/engine/User;
        18: .line 176
            aload 0 /* this */
            iload 3 /* id */
            putfield org.h2.engine.Session.id:I
        19: .line 177
            aload 0 /* this */
            aload 1 /* database */
            invokevirtual org.h2.engine.Database.getLockTimeout:()I
            putfield org.h2.engine.Session.lockTimeout:I
        20: .line 179
            aload 1 /* database */
            invokevirtual org.h2.engine.Database.getMainSchema:()Lorg/h2/schema/Schema;
            astore 4 /* mainSchema */
        start local 4 // org.h2.schema.Schema mainSchema
        21: .line 180
            aload 0 /* this */
            aload 4 /* mainSchema */
            ifnull 22
            aload 4 /* mainSchema */
            invokevirtual org.h2.schema.Schema.getName:()Ljava/lang/String;
            goto 23
        22: .line 181
      StackMap locals: org.h2.engine.Session org.h2.engine.Database org.h2.engine.User int org.h2.schema.Schema
      StackMap stack: org.h2.engine.Session
            aload 1 /* database */
            ldc "PUBLIC"
            invokevirtual org.h2.engine.Database.sysIdentifier:(Ljava/lang/String;)Ljava/lang/String;
        23: .line 180
      StackMap locals: org.h2.engine.Session org.h2.engine.Database org.h2.engine.User int org.h2.schema.Schema
      StackMap stack: org.h2.engine.Session java.lang.String
            putfield org.h2.engine.Session.currentSchemaName:Ljava/lang/String;
        24: .line 182
            aload 0 /* this */
            invokestatic org.h2.util.ColumnNamerConfiguration.getDefault:()Lorg/h2/util/ColumnNamerConfiguration;
            putfield org.h2.engine.Session.columnNamerConfiguration:Lorg/h2/util/ColumnNamerConfiguration;
        25: .line 183
            return
        end local 4 // org.h2.schema.Schema mainSchema
        end local 3 // int id
        end local 2 // org.h2.engine.User user
        end local 1 // org.h2.engine.Database database
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   26     0        this  Lorg/h2/engine/Session;
            0   26     1    database  Lorg/h2/engine/Database;
            0   26     2        user  Lorg/h2/engine/User;
            0   26     3          id  I
           21   26     4  mainSchema  Lorg/h2/schema/Schema;
    MethodParameters:
          Name  Flags
      database  
      user      
      id        

  public void setLazyQueryExecution(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // boolean lazyQueryExecution
         0: .line 186
            aload 0 /* this */
            iload 1 /* lazyQueryExecution */
            putfield org.h2.engine.Session.lazyQueryExecution:Z
         1: .line 187
            return
        end local 1 // boolean lazyQueryExecution
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lorg/h2/engine/Session;
            0    2     1  lazyQueryExecution  Z
    MethodParameters:
                    Name  Flags
      lazyQueryExecution  

  public boolean isLazyQueryExecution();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 190
            aload 0 /* this */
            getfield org.h2.engine.Session.lazyQueryExecution:Z
            ireturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public void setForceJoinOrder(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // boolean forceJoinOrder
         0: .line 194
            aload 0 /* this */
            iload 1 /* forceJoinOrder */
            putfield org.h2.engine.Session.forceJoinOrder:Z
         1: .line 195
            return
        end local 1 // boolean forceJoinOrder
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lorg/h2/engine/Session;
            0    2     1  forceJoinOrder  Z
    MethodParameters:
                Name  Flags
      forceJoinOrder  

  public boolean isForceJoinOrder();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 198
            aload 0 /* this */
            getfield org.h2.engine.Session.forceJoinOrder:Z
            ireturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public void setJoinBatchEnabled(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // boolean joinBatchEnabled
         0: .line 202
            aload 0 /* this */
            iload 1 /* joinBatchEnabled */
            putfield org.h2.engine.Session.joinBatchEnabled:Z
         1: .line 203
            return
        end local 1 // boolean joinBatchEnabled
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/h2/engine/Session;
            0    2     1  joinBatchEnabled  Z
    MethodParameters:
                  Name  Flags
      joinBatchEnabled  

  public boolean isJoinBatchEnabled();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 206
            aload 0 /* this */
            getfield org.h2.engine.Session.joinBatchEnabled:Z
            ireturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public org.h2.result.Row createRow(org.h2.value.Value[], int);
    descriptor: ([Lorg/h2/value/Value;I)Lorg/h2/result/Row;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.value.Value[] data
        start local 2 // int memory
         0: .line 217
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            aload 1 /* data */
            iload 2 /* memory */
            invokevirtual org.h2.engine.Database.createRow:([Lorg/h2/value/Value;I)Lorg/h2/result/Row;
            areturn
        end local 2 // int memory
        end local 1 // org.h2.value.Value[] data
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/h2/engine/Session;
            0    1     1    data  [Lorg/h2/value/Value;
            0    1     2  memory  I
    MethodParameters:
        Name  Flags
      data    
      memory  

  public void pushSubQueryInfo(int[], org.h2.table.TableFilter[], int, org.h2.result.SortOrder);
    descriptor: ([I[Lorg/h2/table/TableFilter;ILorg/h2/result/SortOrder;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=5, args_size=5
        start local 0 // org.h2.engine.Session this
        start local 1 // int[] masks
        start local 2 // org.h2.table.TableFilter[] filters
        start local 3 // int filter
        start local 4 // org.h2.result.SortOrder sortOrder
         0: .line 230
            aload 0 /* this */
            new org.h2.table.SubQueryInfo
            dup
            aload 0 /* this */
            getfield org.h2.engine.Session.subQueryInfo:Lorg/h2/table/SubQueryInfo;
            aload 1 /* masks */
            aload 2 /* filters */
            iload 3 /* filter */
            aload 4 /* sortOrder */
            invokespecial org.h2.table.SubQueryInfo.<init>:(Lorg/h2/table/SubQueryInfo;[I[Lorg/h2/table/TableFilter;ILorg/h2/result/SortOrder;)V
            putfield org.h2.engine.Session.subQueryInfo:Lorg/h2/table/SubQueryInfo;
         1: .line 231
            return
        end local 4 // org.h2.result.SortOrder sortOrder
        end local 3 // int filter
        end local 2 // org.h2.table.TableFilter[] filters
        end local 1 // int[] masks
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/h2/engine/Session;
            0    2     1      masks  [I
            0    2     2    filters  [Lorg/h2/table/TableFilter;
            0    2     3     filter  I
            0    2     4  sortOrder  Lorg/h2/result/SortOrder;
    MethodParameters:
           Name  Flags
      masks      
      filters    
      filter     
      sortOrder  

  public void popSubQueryInfo();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 237
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.engine.Session.subQueryInfo:Lorg/h2/table/SubQueryInfo;
            invokevirtual org.h2.table.SubQueryInfo.getUpper:()Lorg/h2/table/SubQueryInfo;
            putfield org.h2.engine.Session.subQueryInfo:Lorg/h2/table/SubQueryInfo;
         1: .line 238
            return
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/engine/Session;

  public org.h2.table.SubQueryInfo getSubQueryInfo();
    descriptor: ()Lorg/h2/table/SubQueryInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 241
            aload 0 /* this */
            getfield org.h2.engine.Session.subQueryInfo:Lorg/h2/table/SubQueryInfo;
            areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public void setParsingCreateView(boolean, java.lang.String);
    descriptor: (ZLjava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.h2.engine.Session this
        start local 1 // boolean parsingView
        start local 2 // java.lang.String viewName
         0: .line 255
            aload 0 /* this */
            getfield org.h2.engine.Session.viewNameStack:Ljava/util/ArrayDeque;
            ifnonnull 2
         1: .line 256
            aload 0 /* this */
            new java.util.ArrayDeque
            dup
            iconst_3
            invokespecial java.util.ArrayDeque.<init>:(I)V
            putfield org.h2.engine.Session.viewNameStack:Ljava/util/ArrayDeque;
         2: .line 258
      StackMap locals:
      StackMap stack:
            iload 1 /* parsingView */
            ifeq 5
         3: .line 259
            aload 0 /* this */
            getfield org.h2.engine.Session.viewNameStack:Ljava/util/ArrayDeque;
            aload 2 /* viewName */
            invokevirtual java.util.ArrayDeque.push:(Ljava/lang/Object;)V
         4: .line 260
            goto 7
         5: .line 261
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.viewNameStack:Ljava/util/ArrayDeque;
            invokevirtual java.util.ArrayDeque.pop:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* name */
        start local 3 // java.lang.String name
         6: .line 262
            getstatic org.h2.engine.Session.$assertionsDisabled:Z
            ifne 7
            aload 2 /* viewName */
            aload 3 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 3 // java.lang.String name
         7: .line 264
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String viewName
        end local 1 // boolean parsingView
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lorg/h2/engine/Session;
            0    8     1  parsingView  Z
            0    8     2     viewName  Ljava/lang/String;
            6    7     3         name  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      parsingView  
      viewName     

  public java.lang.String getParsingCreateViewName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 267
            aload 0 /* this */
            getfield org.h2.engine.Session.viewNameStack:Ljava/util/ArrayDeque;
            ifnull 1
            aload 0 /* this */
            getfield org.h2.engine.Session.viewNameStack:Ljava/util/ArrayDeque;
            invokevirtual java.util.ArrayDeque.peek:()Ljava/lang/Object;
            checkcast java.lang.String
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;

  public boolean isParsingCreateView();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 271
            aload 0 /* this */
            getfield org.h2.engine.Session.viewNameStack:Ljava/util/ArrayDeque;
            ifnull 1
            aload 0 /* this */
            getfield org.h2.engine.Session.viewNameStack:Ljava/util/ArrayDeque;
            invokevirtual java.util.ArrayDeque.isEmpty:()Z
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/engine/Session;

  public void optimizeQueryExpression(org.h2.command.dml.Query);
    descriptor: (Lorg/h2/command/dml/Query;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.command.dml.Query query
         0: .line 283
            aload 0 /* this */
            getfield org.h2.engine.Session.subQueryInfo:Lorg/h2/table/SubQueryInfo;
            astore 2 /* tmp */
        start local 2 // org.h2.table.SubQueryInfo tmp
         1: .line 284
            aload 0 /* this */
            aconst_null
            putfield org.h2.engine.Session.subQueryInfo:Lorg/h2/table/SubQueryInfo;
         2: .line 285
            aload 0 /* this */
            dup
            getfield org.h2.engine.Session.preparingQueryExpression:I
            iconst_1
            iadd
            putfield org.h2.engine.Session.preparingQueryExpression:I
         3: .line 287
            aload 1 /* query */
            invokevirtual org.h2.command.dml.Query.prepare:()V
         4: .line 288
            goto 9
      StackMap locals: org.h2.engine.Session org.h2.command.dml.Query org.h2.table.SubQueryInfo
      StackMap stack: java.lang.Throwable
         5: astore 3
         6: .line 289
            aload 0 /* this */
            aload 2 /* tmp */
            putfield org.h2.engine.Session.subQueryInfo:Lorg/h2/table/SubQueryInfo;
         7: .line 290
            aload 0 /* this */
            dup
            getfield org.h2.engine.Session.preparingQueryExpression:I
            iconst_1
            isub
            putfield org.h2.engine.Session.preparingQueryExpression:I
         8: .line 291
            aload 3
            athrow
         9: .line 289
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* tmp */
            putfield org.h2.engine.Session.subQueryInfo:Lorg/h2/table/SubQueryInfo;
        10: .line 290
            aload 0 /* this */
            dup
            getfield org.h2.engine.Session.preparingQueryExpression:I
            iconst_1
            isub
            putfield org.h2.engine.Session.preparingQueryExpression:I
        11: .line 292
            return
        end local 2 // org.h2.table.SubQueryInfo tmp
        end local 1 // org.h2.command.dml.Query query
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Lorg/h2/engine/Session;
            0   12     1  query  Lorg/h2/command/dml/Query;
            1   12     2    tmp  Lorg/h2/table/SubQueryInfo;
      Exception table:
        from    to  target  type
           3     5       5  any
    MethodParameters:
       Name  Flags
      query  

  public boolean isPreparingQueryExpression();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 295
            getstatic org.h2.engine.Session.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.h2.engine.Session.preparingQueryExpression:I
            ifge 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 296
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.preparingQueryExpression:I
            ifeq 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;

  public java.util.ArrayList<java.lang.String> getClusterServers();
    descriptor: ()Ljava/util/ArrayList;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 301
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;
    Signature: ()Ljava/util/ArrayList<Ljava/lang/String;>;

  public boolean setCommitOrRollbackDisabled(boolean);
    descriptor: (Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // boolean x
         0: .line 305
            aload 0 /* this */
            getfield org.h2.engine.Session.commitOrRollbackDisabled:Z
            istore 2 /* old */
        start local 2 // boolean old
         1: .line 306
            aload 0 /* this */
            iload 1 /* x */
            putfield org.h2.engine.Session.commitOrRollbackDisabled:Z
         2: .line 307
            iload 2 /* old */
            ireturn
        end local 2 // boolean old
        end local 1 // boolean x
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;
            0    3     1     x  Z
            1    3     2   old  Z
    MethodParameters:
      Name  Flags
      x     

  private void initVariables();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 311
            aload 0 /* this */
            getfield org.h2.engine.Session.variables:Ljava/util/HashMap;
            ifnonnull 2
         1: .line 312
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.newStringMap:()Ljava/util/HashMap;
            putfield org.h2.engine.Session.variables:Ljava/util/HashMap;
         2: .line 314
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;

  public void setVariable(java.lang.String, org.h2.value.Value);
    descriptor: (Ljava/lang/String;Lorg/h2/value/Value;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.h2.engine.Session this
        start local 1 // java.lang.String name
        start local 2 // org.h2.value.Value value
         0: .line 323
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.initVariables:()V
         1: .line 324
            aload 0 /* this */
            dup
            getfield org.h2.engine.Session.modificationId:I
            iconst_1
            iadd
            putfield org.h2.engine.Session.modificationId:I
         2: .line 326
            aload 2 /* value */
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            if_acmpne 5
         3: .line 327
            aload 0 /* this */
            getfield org.h2.engine.Session.variables:Ljava/util/HashMap;
            aload 1 /* name */
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.value.Value
            astore 3 /* old */
        start local 3 // org.h2.value.Value old
         4: .line 328
            goto 9
        end local 3 // org.h2.value.Value old
         5: .line 330
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
         6: .line 331
            iconst_m1
         7: .line 330
            invokevirtual org.h2.value.Value.copy:(Lorg/h2/store/DataHandler;I)Lorg/h2/value/Value;
            astore 2 /* value */
         8: .line 332
            aload 0 /* this */
            getfield org.h2.engine.Session.variables:Ljava/util/HashMap;
            aload 1 /* name */
            aload 2 /* value */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.value.Value
            astore 3 /* old */
        start local 3 // org.h2.value.Value old
         9: .line 334
      StackMap locals: org.h2.value.Value
      StackMap stack:
            aload 3 /* old */
            ifnull 11
        10: .line 336
            aload 3 /* old */
            invokevirtual org.h2.value.Value.remove:()V
        11: .line 338
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.h2.value.Value old
        end local 2 // org.h2.value.Value value
        end local 1 // java.lang.String name
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Lorg/h2/engine/Session;
            0   12     1   name  Ljava/lang/String;
            0   12     2  value  Lorg/h2/value/Value;
            4    5     3    old  Lorg/h2/value/Value;
            9   12     3    old  Lorg/h2/value/Value;
    MethodParameters:
       Name  Flags
      name   
      value  

  public org.h2.value.Value getVariable(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/h2/value/Value;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // java.lang.String name
         0: .line 349
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.initVariables:()V
         1: .line 350
            aload 0 /* this */
            getfield org.h2.engine.Session.variables:Ljava/util/HashMap;
            aload 1 /* name */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.value.Value
            astore 2 /* v */
        start local 2 // org.h2.value.Value v
         2: .line 351
            aload 2 /* v */
            ifnonnull 3
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            goto 4
      StackMap locals: org.h2.value.Value
      StackMap stack:
         3: aload 2 /* v */
      StackMap locals:
      StackMap stack: org.h2.value.Value
         4: areturn
        end local 2 // org.h2.value.Value v
        end local 1 // java.lang.String name
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/h2/engine/Session;
            0    5     1  name  Ljava/lang/String;
            2    5     2     v  Lorg/h2/value/Value;
    MethodParameters:
      Name  Flags
      name  

  public java.lang.String[] getVariableNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 360
            aload 0 /* this */
            getfield org.h2.engine.Session.variables:Ljava/util/HashMap;
            ifnonnull 2
         1: .line 361
            iconst_0
            anewarray java.lang.String
            areturn
         2: .line 363
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.variables:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.keySet:()Ljava/util/Set;
            aload 0 /* this */
            getfield org.h2.engine.Session.variables:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.size:()I
            anewarray java.lang.String
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;

  public org.h2.table.Table findLocalTempTable(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/h2/table/Table;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // java.lang.String name
         0: .line 374
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTables:Ljava/util/HashMap;
            ifnonnull 2
         1: .line 375
            aconst_null
            areturn
         2: .line 377
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTables:Ljava/util/HashMap;
            aload 1 /* name */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.table.Table
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;
            0    3     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public java.util.ArrayList<org.h2.table.Table> getLocalTempTables();
    descriptor: ()Ljava/util/ArrayList;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 381
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTables:Ljava/util/HashMap;
            ifnonnull 2
         1: .line 382
            invokestatic org.h2.util.Utils.newSmallArrayList:()Ljava/util/ArrayList;
            areturn
         2: .line 384
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTables:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.values:()Ljava/util/Collection;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;
    Signature: ()Ljava/util/ArrayList<Lorg/h2/table/Table;>;

  public void addLocalTempTable(org.h2.table.Table);
    descriptor: (Lorg/h2/table/Table;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.table.Table table
         0: .line 394
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTables:Ljava/util/HashMap;
            ifnonnull 2
         1: .line 395
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.newStringMap:()Ljava/util/HashMap;
            putfield org.h2.engine.Session.localTempTables:Ljava/util/HashMap;
         2: .line 397
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTables:Ljava/util/HashMap;
            aload 1 /* table */
            invokevirtual org.h2.table.Table.getName:()Ljava/lang/String;
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 7
         3: .line 398
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* builder */
        start local 2 // java.lang.StringBuilder builder
         4: .line 399
            aload 1 /* table */
            aload 2 /* builder */
            iconst_0
            invokevirtual org.h2.table.Table.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            ldc " AS "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 400
            aload 1 /* table */
            invokevirtual org.h2.table.Table.getName:()Ljava/lang/String;
            iconst_0
            invokestatic org.h2.command.Parser.quoteIdentifier:(Ljava/lang/String;Z)Ljava/lang/String;
            pop
         6: .line 401
            ldc 42101
            aload 2 /* builder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 2 // java.lang.StringBuilder builder
         7: .line 403
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.h2.engine.Session.modificationId:I
            iconst_1
            iadd
            putfield org.h2.engine.Session.modificationId:I
         8: .line 404
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTables:Ljava/util/HashMap;
            aload 1 /* table */
            invokevirtual org.h2.table.Table.getName:()Ljava/lang/String;
            aload 1 /* table */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 405
            return
        end local 1 // org.h2.table.Table table
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lorg/h2/engine/Session;
            0   10     1    table  Lorg/h2/table/Table;
            4    7     2  builder  Ljava/lang/StringBuilder;
    MethodParameters:
       Name  Flags
      table  

  public void removeLocalTempTable(org.h2.table.Table);
    descriptor: (Lorg/h2/table/Table;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.table.Table table
         0: .line 415
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            aload 0 /* this */
            invokevirtual org.h2.engine.Database.lockMeta:(Lorg/h2/engine/Session;)Z
            istore 2 /* wasLocked */
        start local 2 // boolean wasLocked
         1: .line 417
            aload 0 /* this */
            dup
            getfield org.h2.engine.Session.modificationId:I
            iconst_1
            iadd
            putfield org.h2.engine.Session.modificationId:I
         2: .line 418
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTables:Ljava/util/HashMap;
            ifnull 4
         3: .line 419
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTables:Ljava/util/HashMap;
            aload 1 /* table */
            invokevirtual org.h2.table.Table.getName:()Ljava/lang/String;
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 421
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            dup
            astore 3
            monitorenter
         5: .line 422
            aload 1 /* table */
            aload 0 /* this */
            invokevirtual org.h2.table.Table.removeChildrenAndResources:(Lorg/h2/engine/Session;)V
         6: .line 421
            aload 3
            monitorexit
         7: goto 14
      StackMap locals: org.h2.engine.Session org.h2.table.Table int org.h2.engine.Database
      StackMap stack: java.lang.Throwable
         8: aload 3
            monitorexit
         9: athrow
        10: .line 424
      StackMap locals: org.h2.engine.Session org.h2.table.Table int
      StackMap stack: java.lang.Throwable
            astore 4
        11: .line 425
            iload 2 /* wasLocked */
            ifne 13
        12: .line 426
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            aload 0 /* this */
            invokevirtual org.h2.engine.Database.unlockMeta:(Lorg/h2/engine/Session;)V
        13: .line 428
      StackMap locals: org.h2.engine.Session org.h2.table.Table int top java.lang.Throwable
      StackMap stack:
            aload 4
            athrow
        14: .line 425
      StackMap locals: org.h2.engine.Session org.h2.table.Table int
      StackMap stack:
            iload 2 /* wasLocked */
            ifne 16
        15: .line 426
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            aload 0 /* this */
            invokevirtual org.h2.engine.Database.unlockMeta:(Lorg/h2/engine/Session;)V
        16: .line 429
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean wasLocked
        end local 1 // org.h2.table.Table table
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Lorg/h2/engine/Session;
            0   17     1      table  Lorg/h2/table/Table;
            1   17     2  wasLocked  Z
      Exception table:
        from    to  target  type
           5     7       8  any
           8     9       8  any
           1    10      10  any
    MethodParameters:
       Name  Flags
      table  

  public org.h2.index.Index findLocalTempTableIndex(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/h2/index/Index;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // java.lang.String name
         0: .line 439
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTableIndexes:Ljava/util/HashMap;
            ifnonnull 2
         1: .line 440
            aconst_null
            areturn
         2: .line 442
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTableIndexes:Ljava/util/HashMap;
            aload 1 /* name */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.index.Index
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;
            0    3     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public java.util.HashMap<java.lang.String, org.h2.index.Index> getLocalTempTableIndexes();
    descriptor: ()Ljava/util/HashMap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 446
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTableIndexes:Ljava/util/HashMap;
            ifnonnull 2
         1: .line 447
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            areturn
         2: .line 449
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTableIndexes:Ljava/util/HashMap;
            areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;
    Signature: ()Ljava/util/HashMap<Ljava/lang/String;Lorg/h2/index/Index;>;

  public void addLocalTempTableIndex(org.h2.index.Index);
    descriptor: (Lorg/h2/index/Index;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.index.Index index
         0: .line 459
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTableIndexes:Ljava/util/HashMap;
            ifnonnull 2
         1: .line 460
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.newStringMap:()Ljava/util/HashMap;
            putfield org.h2.engine.Session.localTempTableIndexes:Ljava/util/HashMap;
         2: .line 462
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTableIndexes:Ljava/util/HashMap;
            aload 1 /* index */
            invokeinterface org.h2.index.Index.getName:()Ljava/lang/String;
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 4
         3: .line 463
            ldc 42111
            aload 1 /* index */
            iconst_0
            invokeinterface org.h2.index.Index.getSQL:(Z)Ljava/lang/String;
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
         4: .line 465
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTableIndexes:Ljava/util/HashMap;
            aload 1 /* index */
            invokeinterface org.h2.index.Index.getName:()Ljava/lang/String;
            aload 1 /* index */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 466
            return
        end local 1 // org.h2.index.Index index
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/h2/engine/Session;
            0    6     1  index  Lorg/h2/index/Index;
    MethodParameters:
       Name  Flags
      index  

  public void removeLocalTempTableIndex(org.h2.index.Index);
    descriptor: (Lorg/h2/index/Index;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.index.Index index
         0: .line 474
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTableIndexes:Ljava/util/HashMap;
            ifnull 8
         1: .line 475
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTableIndexes:Ljava/util/HashMap;
            aload 1 /* index */
            invokeinterface org.h2.index.Index.getName:()Ljava/lang/String;
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 476
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            dup
            astore 2
            monitorenter
         3: .line 477
            aload 1 /* index */
            aload 0 /* this */
            invokeinterface org.h2.index.Index.removeChildrenAndResources:(Lorg/h2/engine/Session;)V
         4: .line 476
            aload 2
            monitorexit
         5: goto 8
      StackMap locals: org.h2.engine.Session org.h2.index.Index org.h2.engine.Database
      StackMap stack: java.lang.Throwable
         6: aload 2
            monitorexit
         7: athrow
         8: .line 480
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.h2.index.Index index
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lorg/h2/engine/Session;
            0    9     1  index  Lorg/h2/index/Index;
      Exception table:
        from    to  target  type
           3     5       6  any
           6     7       6  any
    MethodParameters:
       Name  Flags
      index  

  public org.h2.constraint.Constraint findLocalTempTableConstraint(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/h2/constraint/Constraint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // java.lang.String name
         0: .line 490
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTableConstraints:Ljava/util/HashMap;
            ifnonnull 2
         1: .line 491
            aconst_null
            areturn
         2: .line 493
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTableConstraints:Ljava/util/HashMap;
            aload 1 /* name */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.constraint.Constraint
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;
            0    3     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public java.util.HashMap<java.lang.String, org.h2.constraint.Constraint> getLocalTempTableConstraints();
    descriptor: ()Ljava/util/HashMap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 503
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTableConstraints:Ljava/util/HashMap;
            ifnonnull 2
         1: .line 504
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            areturn
         2: .line 506
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTableConstraints:Ljava/util/HashMap;
            areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;
    Signature: ()Ljava/util/HashMap<Ljava/lang/String;Lorg/h2/constraint/Constraint;>;

  public void addLocalTempTableConstraint(org.h2.constraint.Constraint);
    descriptor: (Lorg/h2/constraint/Constraint;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.constraint.Constraint constraint
         0: .line 516
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTableConstraints:Ljava/util/HashMap;
            ifnonnull 2
         1: .line 517
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.newStringMap:()Ljava/util/HashMap;
            putfield org.h2.engine.Session.localTempTableConstraints:Ljava/util/HashMap;
         2: .line 519
      StackMap locals:
      StackMap stack:
            aload 1 /* constraint */
            invokevirtual org.h2.constraint.Constraint.getName:()Ljava/lang/String;
            astore 2 /* name */
        start local 2 // java.lang.String name
         3: .line 520
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTableConstraints:Ljava/util/HashMap;
            aload 2 /* name */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 5
         4: .line 521
            ldc 90045
            aload 1 /* constraint */
            iconst_0
            invokevirtual org.h2.constraint.Constraint.getSQL:(Z)Ljava/lang/String;
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
         5: .line 523
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTableConstraints:Ljava/util/HashMap;
            aload 2 /* name */
            aload 1 /* constraint */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 524
            return
        end local 2 // java.lang.String name
        end local 1 // org.h2.constraint.Constraint constraint
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lorg/h2/engine/Session;
            0    7     1  constraint  Lorg/h2/constraint/Constraint;
            3    7     2        name  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      constraint  

  void removeLocalTempTableConstraint(org.h2.constraint.Constraint);
    descriptor: (Lorg/h2/constraint/Constraint;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.constraint.Constraint constraint
         0: .line 532
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTableConstraints:Ljava/util/HashMap;
            ifnull 8
         1: .line 533
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTableConstraints:Ljava/util/HashMap;
            aload 1 /* constraint */
            invokevirtual org.h2.constraint.Constraint.getName:()Ljava/lang/String;
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 534
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            dup
            astore 2
            monitorenter
         3: .line 535
            aload 1 /* constraint */
            aload 0 /* this */
            invokevirtual org.h2.constraint.Constraint.removeChildrenAndResources:(Lorg/h2/engine/Session;)V
         4: .line 534
            aload 2
            monitorexit
         5: goto 8
      StackMap locals: org.h2.engine.Session org.h2.constraint.Constraint org.h2.engine.Database
      StackMap stack: java.lang.Throwable
         6: aload 2
            monitorexit
         7: athrow
         8: .line 538
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.h2.constraint.Constraint constraint
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lorg/h2/engine/Session;
            0    9     1  constraint  Lorg/h2/constraint/Constraint;
      Exception table:
        from    to  target  type
           3     5       6  any
           6     7       6  any
    MethodParameters:
            Name  Flags
      constraint  

  public boolean getAutoCommit();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 542
            aload 0 /* this */
            getfield org.h2.engine.Session.autoCommit:Z
            ireturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public org.h2.engine.User getUser();
    descriptor: ()Lorg/h2/engine/User;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 546
            aload 0 /* this */
            getfield org.h2.engine.Session.user:Lorg/h2/engine/User;
            areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public void setAutoCommit(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // boolean b
         0: .line 551
            aload 0 /* this */
            iload 1 /* b */
            putfield org.h2.engine.Session.autoCommit:Z
         1: .line 552
            return
        end local 1 // boolean b
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/engine/Session;
            0    2     1     b  Z
    MethodParameters:
      Name  Flags
      b     

  public int getLockTimeout();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 555
            aload 0 /* this */
            getfield org.h2.engine.Session.lockTimeout:I
            ireturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public void setLockTimeout(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // int lockTimeout
         0: .line 559
            aload 0 /* this */
            iload 1 /* lockTimeout */
            putfield org.h2.engine.Session.lockTimeout:I
         1: .line 560
            return
        end local 1 // int lockTimeout
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/h2/engine/Session;
            0    2     1  lockTimeout  I
    MethodParameters:
             Name  Flags
      lockTimeout  

  public synchronized org.h2.command.CommandInterface prepareCommand(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Lorg/h2/command/CommandInterface;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.h2.engine.Session this
        start local 1 // java.lang.String sql
        start local 2 // int fetchSize
         0: .line 565
            aload 0 /* this */
            aload 1 /* sql */
            invokevirtual org.h2.engine.Session.prepareLocal:(Ljava/lang/String;)Lorg/h2/command/Command;
            areturn
        end local 2 // int fetchSize
        end local 1 // java.lang.String sql
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/h2/engine/Session;
            0    1     1        sql  Ljava/lang/String;
            0    1     2  fetchSize  I
    MethodParameters:
           Name  Flags
      sql        
      fetchSize  

  public org.h2.command.Prepared prepare(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/h2/command/Prepared;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // java.lang.String sql
         0: .line 576
            aload 0 /* this */
            aload 1 /* sql */
            iconst_0
            iconst_0
            invokevirtual org.h2.engine.Session.prepare:(Ljava/lang/String;ZZ)Lorg/h2/command/Prepared;
            areturn
        end local 1 // java.lang.String sql
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;
            0    1     1   sql  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      sql   

  public org.h2.command.Prepared prepare(java.lang.String, boolean, boolean);
    descriptor: (Ljava/lang/String;ZZ)Lorg/h2/command/Prepared;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // org.h2.engine.Session this
        start local 1 // java.lang.String sql
        start local 2 // boolean rightsChecked
        start local 3 // boolean literalsChecked
         0: .line 589
            new org.h2.command.Parser
            dup
            aload 0 /* this */
            invokespecial org.h2.command.Parser.<init>:(Lorg/h2/engine/Session;)V
            astore 4 /* parser */
        start local 4 // org.h2.command.Parser parser
         1: .line 590
            aload 4 /* parser */
            iload 2 /* rightsChecked */
            invokevirtual org.h2.command.Parser.setRightsChecked:(Z)V
         2: .line 591
            aload 4 /* parser */
            iload 3 /* literalsChecked */
            invokevirtual org.h2.command.Parser.setLiteralsChecked:(Z)V
         3: .line 592
            aload 4 /* parser */
            aload 1 /* sql */
            invokevirtual org.h2.command.Parser.prepare:(Ljava/lang/String;)Lorg/h2/command/Prepared;
            areturn
        end local 4 // org.h2.command.Parser parser
        end local 3 // boolean literalsChecked
        end local 2 // boolean rightsChecked
        end local 1 // java.lang.String sql
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lorg/h2/engine/Session;
            0    4     1              sql  Ljava/lang/String;
            0    4     2    rightsChecked  Z
            0    4     3  literalsChecked  Z
            1    4     4           parser  Lorg/h2/command/Parser;
    MethodParameters:
                 Name  Flags
      sql              
      rightsChecked    
      literalsChecked  

  public org.h2.command.Command prepareLocal(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/h2/command/Command;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // java.lang.String sql
         0: .line 603
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.isClosed:()Z
            ifeq 4
         1: .line 604
            ldc 90067
         2: .line 605
            ldc "session closed"
         3: .line 604
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
         4: .line 608
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.queryCacheSize:I
            ifle 17
         5: .line 609
            aload 0 /* this */
            getfield org.h2.engine.Session.queryCache:Lorg/h2/util/SmallLRUCache;
            ifnonnull 9
         6: .line 610
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.engine.Session.queryCacheSize:I
            invokestatic org.h2.util.SmallLRUCache.newInstance:(I)Lorg/h2/util/SmallLRUCache;
            putfield org.h2.engine.Session.queryCache:Lorg/h2/util/SmallLRUCache;
         7: .line 611
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getModificationMetaId:()J
            putfield org.h2.engine.Session.modificationMetaID:J
         8: .line 612
            goto 17
         9: .line 613
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getModificationMetaId:()J
            lstore 3 /* newModificationMetaID */
        start local 3 // long newModificationMetaID
        10: .line 614
            lload 3 /* newModificationMetaID */
            aload 0 /* this */
            getfield org.h2.engine.Session.modificationMetaID:J
            lcmp
            ifeq 13
        11: .line 615
            aload 0 /* this */
            getfield org.h2.engine.Session.queryCache:Lorg/h2/util/SmallLRUCache;
            invokevirtual org.h2.util.SmallLRUCache.clear:()V
        12: .line 616
            aload 0 /* this */
            lload 3 /* newModificationMetaID */
            putfield org.h2.engine.Session.modificationMetaID:J
        13: .line 618
      StackMap locals: org.h2.engine.Session java.lang.String top long
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.queryCache:Lorg/h2/util/SmallLRUCache;
            aload 1 /* sql */
            invokevirtual org.h2.util.SmallLRUCache.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.command.Command
            astore 2 /* command */
        start local 2 // org.h2.command.Command command
        14: .line 619
            aload 2 /* command */
            ifnull 17
            aload 2 /* command */
            invokevirtual org.h2.command.Command.canReuse:()Z
            ifeq 17
        15: .line 620
            aload 2 /* command */
            invokevirtual org.h2.command.Command.reuse:()V
        16: .line 621
            aload 2 /* command */
            areturn
        end local 3 // long newModificationMetaID
        end local 2 // org.h2.command.Command command
        17: .line 625
      StackMap locals: org.h2.engine.Session java.lang.String
      StackMap stack:
            new org.h2.command.Parser
            dup
            aload 0 /* this */
            invokespecial org.h2.command.Parser.<init>:(Lorg/h2/engine/Session;)V
            astore 3 /* parser */
        start local 3 // org.h2.command.Parser parser
        18: .line 627
            aload 3 /* parser */
            aload 1 /* sql */
            invokevirtual org.h2.command.Parser.prepareCommand:(Ljava/lang/String;)Lorg/h2/command/Command;
            astore 2 /* command */
        start local 2 // org.h2.command.Command command
        19: .line 628
            goto 23
        end local 2 // org.h2.command.Command command
      StackMap locals: org.h2.engine.Session java.lang.String top org.h2.command.Parser
      StackMap stack: java.lang.Throwable
        20: astore 4
        21: .line 630
            aload 0 /* this */
            aconst_null
            putfield org.h2.engine.Session.subQueryIndexCache:Ljava/util/HashMap;
        22: .line 631
            aload 4
            athrow
        start local 2 // org.h2.command.Command command
        23: .line 630
      StackMap locals: org.h2.engine.Session java.lang.String org.h2.command.Command org.h2.command.Parser
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.h2.engine.Session.subQueryIndexCache:Ljava/util/HashMap;
        24: .line 632
            aload 2 /* command */
            invokevirtual org.h2.command.Command.prepareJoinBatch:()V
        25: .line 633
            aload 0 /* this */
            getfield org.h2.engine.Session.queryCache:Lorg/h2/util/SmallLRUCache;
            ifnull 28
        26: .line 634
            aload 2 /* command */
            invokevirtual org.h2.command.Command.isCacheable:()Z
            ifeq 28
        27: .line 635
            aload 0 /* this */
            getfield org.h2.engine.Session.queryCache:Lorg/h2/util/SmallLRUCache;
            aload 1 /* sql */
            aload 2 /* command */
            invokevirtual org.h2.util.SmallLRUCache.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        28: .line 638
      StackMap locals:
      StackMap stack:
            aload 2 /* command */
            areturn
        end local 3 // org.h2.command.Parser parser
        end local 2 // org.h2.command.Command command
        end local 1 // java.lang.String sql
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   29     0                   this  Lorg/h2/engine/Session;
            0   29     1                    sql  Ljava/lang/String;
           14   17     2                command  Lorg/h2/command/Command;
           19   20     2                command  Lorg/h2/command/Command;
           23   29     2                command  Lorg/h2/command/Command;
           10   17     3  newModificationMetaID  J
           18   29     3                 parser  Lorg/h2/command/Parser;
      Exception table:
        from    to  target  type
          18    20      20  any
    MethodParameters:
      Name  Flags
      sql   

  void scheduleDatabaseObjectIdForRelease(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // int id
         0: .line 647
            aload 0 /* this */
            getfield org.h2.engine.Session.idsToRelease:Ljava/util/BitSet;
            ifnonnull 2
         1: .line 648
            aload 0 /* this */
            new java.util.BitSet
            dup
            invokespecial java.util.BitSet.<init>:()V
            putfield org.h2.engine.Session.idsToRelease:Ljava/util/BitSet;
         2: .line 650
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.idsToRelease:Ljava/util/BitSet;
            iload 1 /* id */
            invokevirtual java.util.BitSet.set:(I)V
         3: .line 651
            return
        end local 1 // int id
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/h2/engine/Session;
            0    4     1    id  I
    MethodParameters:
      Name  Flags
      id    

  public org.h2.engine.Database getDatabase();
    descriptor: ()Lorg/h2/engine/Database;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 654
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public int getPowerOffCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 659
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getPowerOffCount:()I
            ireturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public void setPowerOffCount(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // int count
         0: .line 664
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            iload 1 /* count */
            invokevirtual org.h2.engine.Database.setPowerOffCount:(I)V
         1: .line 665
            return
        end local 1 // int count
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/h2/engine/Session;
            0    2     1  count  I
    MethodParameters:
       Name  Flags
      count  

  public void commit(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // boolean ddl
         0: .line 675
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.checkCommitRollback:()V
         1: .line 677
            aload 0 /* this */
            aconst_null
            putfield org.h2.engine.Session.currentTransactionName:Ljava/lang/String;
         2: .line 678
            aload 0 /* this */
            aconst_null
            putfield org.h2.engine.Session.transactionStart:Lorg/h2/value/ValueTimestampTimeZone;
         3: .line 679
            aload 0 /* this */
            getfield org.h2.engine.Session.transaction:Lorg/h2/mvstore/tx/Transaction;
            ifnull 17
         4: .line 684
            aload 0 /* this */
            getfield org.h2.engine.Session.locks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifne 10
         5: .line 685
            aload 0 /* this */
            getfield org.h2.engine.Session.locks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 9
      StackMap locals: org.h2.engine.Session int top java.util.Iterator
      StackMap stack:
         6: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.table.Table
            astore 2 /* t */
        start local 2 // org.h2.table.Table t
         7: .line 686
            aload 2 /* t */
            instanceof org.h2.mvstore.db.MVTable
            ifeq 9
         8: .line 687
            aload 2 /* t */
            checkcast org.h2.mvstore.db.MVTable
            invokevirtual org.h2.mvstore.db.MVTable.commit:()V
        end local 2 // org.h2.table.Table t
         9: .line 685
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        10: .line 691
      StackMap locals: org.h2.engine.Session int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.transaction:Lorg/h2/mvstore/tx/Transaction;
            invokevirtual org.h2.mvstore.tx.Transaction.commit:()V
        11: .line 692
            goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 4
        13: .line 693
            aload 0 /* this */
            aconst_null
            putfield org.h2.engine.Session.transaction:Lorg/h2/mvstore/tx/Transaction;
        14: .line 694
            aload 4
            athrow
        15: .line 693
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.h2.engine.Session.transaction:Lorg/h2/mvstore/tx/Transaction;
        16: .line 695
            goto 19
      StackMap locals:
      StackMap stack:
        17: aload 0 /* this */
            invokevirtual org.h2.engine.Session.containsUncommitted:()Z
            ifeq 19
        18: .line 698
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            aload 0 /* this */
            invokevirtual org.h2.engine.Database.commit:(Lorg/h2/engine/Session;)V
        19: .line 700
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual org.h2.engine.Session.removeTemporaryLobs:(Z)V
        20: .line 701
            aload 0 /* this */
            getfield org.h2.engine.Session.undoLog:Lorg/h2/engine/UndoLog;
            ifnull 22
            aload 0 /* this */
            getfield org.h2.engine.Session.undoLog:Lorg/h2/engine/UndoLog;
            invokevirtual org.h2.engine.UndoLog.size:()I
            ifle 22
        21: .line 702
            aload 0 /* this */
            getfield org.h2.engine.Session.undoLog:Lorg/h2/engine/UndoLog;
            invokevirtual org.h2.engine.UndoLog.clear:()V
        22: .line 704
      StackMap locals:
      StackMap stack:
            iload 1 /* ddl */
            ifne 27
        23: .line 707
            aload 0 /* this */
            iconst_0
            invokevirtual org.h2.engine.Session.cleanTempTables:(Z)V
        24: .line 708
            aload 0 /* this */
            getfield org.h2.engine.Session.autoCommitAtTransactionEnd:Z
            ifeq 27
        25: .line 709
            aload 0 /* this */
            iconst_1
            putfield org.h2.engine.Session.autoCommit:Z
        26: .line 710
            aload 0 /* this */
            iconst_0
            putfield org.h2.engine.Session.autoCommitAtTransactionEnd:Z
        27: .line 714
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.tablesToAnalyze:Ljava/util/HashSet;
            ifnull 33
        28: .line 715
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.isMVStore:()Z
            ifeq 32
        29: .line 718
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.analyzeTables:()V
        30: .line 719
            aload 0 /* this */
            iconst_1
            invokevirtual org.h2.engine.Session.commit:(Z)V
        31: .line 720
            goto 33
        32: .line 721
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.analyzeTables:()V
        33: .line 724
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.endTransaction:()V
        34: .line 725
            return
        end local 1 // boolean ddl
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   35     0  this  Lorg/h2/engine/Session;
            0   35     1   ddl  Z
            7    9     2     t  Lorg/h2/table/Table;
      Exception table:
        from    to  target  type
           4    12      12  any
    MethodParameters:
      Name  Flags
      ddl   

  private void analyzeTables();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 728
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getSettings:()Lorg/h2/engine/DbSettings;
            getfield org.h2.engine.DbSettings.analyzeSample:I
            bipush 10
            idiv
            istore 1 /* rowCount */
        start local 1 // int rowCount
         1: .line 729
            aload 0 /* this */
            getfield org.h2.engine.Session.tablesToAnalyze:Ljava/util/HashSet;
            invokevirtual java.util.HashSet.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.h2.engine.Session int top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.table.Table
            astore 2 /* table */
        start local 2 // org.h2.table.Table table
         3: .line 730
            aload 0 /* this */
            aload 2 /* table */
            iload 1 /* rowCount */
            iconst_0
            invokestatic org.h2.command.ddl.Analyze.analyzeTable:(Lorg/h2/engine/Session;Lorg/h2/table/Table;IZ)V
        end local 2 // org.h2.table.Table table
         4: .line 729
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 733
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            aload 0 /* this */
            invokevirtual org.h2.engine.Database.unlockMeta:(Lorg/h2/engine/Session;)V
         6: .line 734
            aload 0 /* this */
            aconst_null
            putfield org.h2.engine.Session.tablesToAnalyze:Ljava/util/HashSet;
         7: .line 735
            return
        end local 1 // int rowCount
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lorg/h2/engine/Session;
            1    8     1  rowCount  I
            3    4     2     table  Lorg/h2/table/Table;

  private void removeTemporaryLobs(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // boolean onTimeout
         0: .line 738
            getstatic org.h2.engine.Session.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getLobSession:()Lorg/h2/engine/Session;
            if_acmpne 1
            aload 0 /* this */
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 739
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.temporaryLobs:Ljava/util/ArrayList;
            ifnull 8
         2: .line 740
            aload 0 /* this */
            getfield org.h2.engine.Session.temporaryLobs:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: org.h2.engine.Session int top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.value.Value
            astore 2 /* v */
        start local 2 // org.h2.value.Value v
         4: .line 741
            aload 2 /* v */
            invokevirtual org.h2.value.Value.isLinkedToTable:()Z
            ifne 6
         5: .line 742
            aload 2 /* v */
            invokevirtual org.h2.value.Value.remove:()V
        end local 2 // org.h2.value.Value v
         6: .line 740
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         7: .line 745
            aload 0 /* this */
            getfield org.h2.engine.Session.temporaryLobs:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
         8: .line 747
      StackMap locals: org.h2.engine.Session int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.temporaryResultLobs:Ljava/util/LinkedList;
            ifnull 20
            aload 0 /* this */
            getfield org.h2.engine.Session.temporaryResultLobs:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.isEmpty:()Z
            ifne 20
         9: .line 748
            invokestatic java.lang.System.nanoTime:()J
        10: .line 749
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getSettings:()Lorg/h2/engine/DbSettings;
            getfield org.h2.engine.DbSettings.lobTimeout:I
            i2l
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
        11: .line 748
            lsub
            lstore 2 /* keepYoungerThan */
        start local 2 // long keepYoungerThan
        12: .line 750
            goto 19
        13: .line 751
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.temporaryResultLobs:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.getFirst:()Ljava/lang/Object;
            checkcast org.h2.engine.Session$TimeoutValue
            astore 4 /* tv */
        start local 4 // org.h2.engine.Session$TimeoutValue tv
        14: .line 752
            iload 1 /* onTimeout */
            ifeq 16
            aload 4 /* tv */
            getfield org.h2.engine.Session$TimeoutValue.created:J
            lload 2 /* keepYoungerThan */
            lcmp
            iflt 16
        15: .line 753
            goto 20
        16: .line 755
      StackMap locals: org.h2.engine.Session$TimeoutValue
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.temporaryResultLobs:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.removeFirst:()Ljava/lang/Object;
            checkcast org.h2.engine.Session$TimeoutValue
            getfield org.h2.engine.Session$TimeoutValue.value:Lorg/h2/value/Value;
            astore 5 /* v */
        start local 5 // org.h2.value.Value v
        17: .line 756
            aload 5 /* v */
            invokevirtual org.h2.value.Value.isLinkedToTable:()Z
            ifne 19
        18: .line 757
            aload 5 /* v */
            invokevirtual org.h2.value.Value.remove:()V
        end local 5 // org.h2.value.Value v
        end local 4 // org.h2.engine.Session$TimeoutValue tv
        19: .line 750
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.temporaryResultLobs:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.isEmpty:()Z
            ifeq 13
        end local 2 // long keepYoungerThan
        20: .line 761
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean onTimeout
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   21     0             this  Lorg/h2/engine/Session;
            0   21     1        onTimeout  Z
            4    6     2                v  Lorg/h2/value/Value;
           12   20     2  keepYoungerThan  J
           14   19     4               tv  Lorg/h2/engine/Session$TimeoutValue;
           17   19     5                v  Lorg/h2/value/Value;
    MethodParameters:
           Name  Flags
      onTimeout  

  private void checkCommitRollback();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 764
            aload 0 /* this */
            getfield org.h2.engine.Session.commitOrRollbackDisabled:Z
            ifeq 2
            aload 0 /* this */
            getfield org.h2.engine.Session.locks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifne 2
         1: .line 765
            ldc 90058
            invokestatic org.h2.message.DbException.get:(I)Lorg/h2/message/DbException;
            athrow
         2: .line 767
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;

  private void endTransaction();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 770
            aload 0 /* this */
            getfield org.h2.engine.Session.removeLobMap:Ljava/util/HashMap;
            ifnull 8
            aload 0 /* this */
            getfield org.h2.engine.Session.removeLobMap:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.size:()I
            ifle 8
         1: .line 771
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getStore:()Lorg/h2/mvstore/db/MVTableEngine$Store;
            ifnonnull 3
         2: .line 774
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.flush:()V
         3: .line 776
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.removeLobMap:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 6
      StackMap locals: org.h2.engine.Session top java.util.Iterator
      StackMap stack:
         4: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.value.Value
            astore 1 /* v */
        start local 1 // org.h2.value.Value v
         5: .line 777
            aload 1 /* v */
            invokevirtual org.h2.value.Value.remove:()V
        end local 1 // org.h2.value.Value v
         6: .line 776
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 779
            aload 0 /* this */
            aconst_null
            putfield org.h2.engine.Session.removeLobMap:Ljava/util/HashMap;
         8: .line 781
      StackMap locals: org.h2.engine.Session
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.unlockAll:()V
         9: .line 782
            aload 0 /* this */
            getfield org.h2.engine.Session.idsToRelease:Ljava/util/BitSet;
            ifnull 12
        10: .line 783
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            aload 0 /* this */
            getfield org.h2.engine.Session.idsToRelease:Ljava/util/BitSet;
            invokevirtual org.h2.engine.Database.releaseDatabaseObjectIds:(Ljava/util/BitSet;)V
        11: .line 784
            aload 0 /* this */
            aconst_null
            putfield org.h2.engine.Session.idsToRelease:Ljava/util/BitSet;
        12: .line 786
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lorg/h2/engine/Session;
            5    6     1     v  Lorg/h2/value/Value;

  public void rollback();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 792
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.checkCommitRollback:()V
         1: .line 793
            aload 0 /* this */
            aconst_null
            putfield org.h2.engine.Session.currentTransactionName:Ljava/lang/String;
         2: .line 794
            aload 0 /* this */
            aconst_null
            putfield org.h2.engine.Session.transactionStart:Lorg/h2/value/ValueTimestampTimeZone;
         3: .line 795
            aload 0 /* this */
            getfield org.h2.engine.Session.undoLog:Lorg/h2/engine/UndoLog;
            ifnull 4
            aload 0 /* this */
            getfield org.h2.engine.Session.undoLog:Lorg/h2/engine/UndoLog;
            invokevirtual org.h2.engine.UndoLog.size:()I
            ifgt 5
      StackMap locals:
      StackMap stack:
         4: aload 0 /* this */
            getfield org.h2.engine.Session.transaction:Lorg/h2/mvstore/tx/Transaction;
            ifnonnull 5
            iconst_0
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_1
      StackMap locals:
      StackMap stack: int
         6: istore 1 /* needCommit */
        start local 1 // boolean needCommit
         7: .line 796
            iload 1 /* needCommit */
            ifeq 9
         8: .line 797
            aload 0 /* this */
            aconst_null
            invokevirtual org.h2.engine.Session.rollbackTo:(Lorg/h2/engine/Session$Savepoint;)V
         9: .line 799
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.locks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifeq 10
            iload 1 /* needCommit */
            ifeq 11
        10: .line 800
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            aload 0 /* this */
            invokevirtual org.h2.engine.Database.commit:(Lorg/h2/engine/Session;)V
        11: .line 802
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.h2.engine.Session.idsToRelease:Ljava/util/BitSet;
        12: .line 803
            aload 0 /* this */
            iconst_0
            invokevirtual org.h2.engine.Session.cleanTempTables:(Z)V
        13: .line 804
            aload 0 /* this */
            getfield org.h2.engine.Session.autoCommitAtTransactionEnd:Z
            ifeq 16
        14: .line 805
            aload 0 /* this */
            iconst_1
            putfield org.h2.engine.Session.autoCommit:Z
        15: .line 806
            aload 0 /* this */
            iconst_0
            putfield org.h2.engine.Session.autoCommitAtTransactionEnd:Z
        16: .line 808
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.endTransaction:()V
        17: .line 809
            return
        end local 1 // boolean needCommit
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0        this  Lorg/h2/engine/Session;
            7   18     1  needCommit  Z

  public void rollbackTo(org.h2.engine.Session$Savepoint);
    descriptor: (Lorg/h2/engine/Session$Savepoint;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=10, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.engine.Session$Savepoint savepoint
         0: .line 817
            aload 1 /* savepoint */
            ifnonnull 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* savepoint */
            getfield org.h2.engine.Session$Savepoint.logIndex:I
      StackMap locals:
      StackMap stack: int
         2: istore 2 /* index */
        start local 2 // int index
         3: .line 818
            aload 0 /* this */
            getfield org.h2.engine.Session.undoLog:Lorg/h2/engine/UndoLog;
            ifnull 9
         4: .line 819
            goto 8
         5: .line 820
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.undoLog:Lorg/h2/engine/UndoLog;
            invokevirtual org.h2.engine.UndoLog.getLast:()Lorg/h2/engine/UndoLogRecord;
            astore 3 /* entry */
        start local 3 // org.h2.engine.UndoLogRecord entry
         6: .line 821
            aload 3 /* entry */
            aload 0 /* this */
            invokevirtual org.h2.engine.UndoLogRecord.undo:(Lorg/h2/engine/Session;)V
         7: .line 822
            aload 0 /* this */
            getfield org.h2.engine.Session.undoLog:Lorg/h2/engine/UndoLog;
            invokevirtual org.h2.engine.UndoLog.removeLast:()V
        end local 3 // org.h2.engine.UndoLogRecord entry
         8: .line 819
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.undoLog:Lorg/h2/engine/UndoLog;
            invokevirtual org.h2.engine.UndoLog.size:()I
            iload 2 /* index */
            if_icmpgt 5
         9: .line 825
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.transaction:Lorg/h2/mvstore/tx/Transaction;
            ifnull 15
        10: .line 826
            aload 1 /* savepoint */
            ifnonnull 14
        11: .line 827
            aload 0 /* this */
            getfield org.h2.engine.Session.transaction:Lorg/h2/mvstore/tx/Transaction;
            invokevirtual org.h2.mvstore.tx.Transaction.rollback:()V
        12: .line 828
            aload 0 /* this */
            aconst_null
            putfield org.h2.engine.Session.transaction:Lorg/h2/mvstore/tx/Transaction;
        13: .line 829
            goto 15
        14: .line 830
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.transaction:Lorg/h2/mvstore/tx/Transaction;
            aload 1 /* savepoint */
            getfield org.h2.engine.Session$Savepoint.transactionSavepoint:J
            invokevirtual org.h2.mvstore.tx.Transaction.rollbackToSavepoint:(J)V
        15: .line 833
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.savepoints:Ljava/util/HashMap;
            ifnull 25
        16: .line 834
            aload 0 /* this */
            getfield org.h2.engine.Session.savepoints:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.keySet:()Ljava/util/Set;
            aload 0 /* this */
            getfield org.h2.engine.Session.savepoints:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.size:()I
            anewarray java.lang.String
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 3 /* names */
        start local 3 // java.lang.String[] names
        17: .line 835
            aload 3 /* names */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 24
      StackMap locals: org.h2.engine.Session org.h2.engine.Session$Savepoint int java.lang.String[] top int int java.lang.String[]
      StackMap stack:
        18: aload 7
            iload 5
            aaload
            astore 4 /* name */
        start local 4 // java.lang.String name
        19: .line 836
            aload 0 /* this */
            getfield org.h2.engine.Session.savepoints:Ljava/util/HashMap;
            aload 4 /* name */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.engine.Session$Savepoint
            astore 8 /* sp */
        start local 8 // org.h2.engine.Session$Savepoint sp
        20: .line 837
            aload 8 /* sp */
            getfield org.h2.engine.Session$Savepoint.logIndex:I
            istore 9 /* savepointIndex */
        start local 9 // int savepointIndex
        21: .line 838
            iload 9 /* savepointIndex */
            iload 2 /* index */
            if_icmple 23
        22: .line 839
            aload 0 /* this */
            getfield org.h2.engine.Session.savepoints:Ljava/util/HashMap;
            aload 4 /* name */
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // int savepointIndex
        end local 8 // org.h2.engine.Session$Savepoint sp
        end local 4 // java.lang.String name
        23: .line 835
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        24: iload 5
            iload 6
            if_icmplt 18
        end local 3 // java.lang.String[] names
        25: .line 847
      StackMap locals: org.h2.engine.Session org.h2.engine.Session$Savepoint int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.queryCache:Lorg/h2/util/SmallLRUCache;
            ifnull 27
        26: .line 848
            aload 0 /* this */
            getfield org.h2.engine.Session.queryCache:Lorg/h2/util/SmallLRUCache;
            invokevirtual org.h2.util.SmallLRUCache.clear:()V
        27: .line 850
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int index
        end local 1 // org.h2.engine.Session$Savepoint savepoint
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   28     0            this  Lorg/h2/engine/Session;
            0   28     1       savepoint  Lorg/h2/engine/Session$Savepoint;
            3   28     2           index  I
            6    8     3           entry  Lorg/h2/engine/UndoLogRecord;
           17   25     3           names  [Ljava/lang/String;
           19   23     4            name  Ljava/lang/String;
           20   23     8              sp  Lorg/h2/engine/Session$Savepoint;
           21   23     9  savepointIndex  I
    MethodParameters:
           Name  Flags
      savepoint  

  public boolean hasPendingTransaction();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 854
            aload 0 /* this */
            getfield org.h2.engine.Session.undoLog:Lorg/h2/engine/UndoLog;
            ifnull 1
            aload 0 /* this */
            getfield org.h2.engine.Session.undoLog:Lorg/h2/engine/UndoLog;
            invokevirtual org.h2.engine.UndoLog.size:()I
            ifle 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/engine/Session;

  public org.h2.engine.Session$Savepoint setSavepoint();
    descriptor: ()Lorg/h2/engine/Session$Savepoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 863
            new org.h2.engine.Session$Savepoint
            dup
            invokespecial org.h2.engine.Session$Savepoint.<init>:()V
            astore 1 /* sp */
        start local 1 // org.h2.engine.Session$Savepoint sp
         1: .line 864
            aload 0 /* this */
            getfield org.h2.engine.Session.undoLog:Lorg/h2/engine/UndoLog;
            ifnull 3
         2: .line 865
            aload 1 /* sp */
            aload 0 /* this */
            getfield org.h2.engine.Session.undoLog:Lorg/h2/engine/UndoLog;
            invokevirtual org.h2.engine.UndoLog.size:()I
            putfield org.h2.engine.Session$Savepoint.logIndex:I
         3: .line 867
      StackMap locals: org.h2.engine.Session$Savepoint
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getStore:()Lorg/h2/mvstore/db/MVTableEngine$Store;
            ifnull 5
         4: .line 868
            aload 1 /* sp */
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.getStatementSavepoint:()J
            putfield org.h2.engine.Session$Savepoint.transactionSavepoint:J
         5: .line 870
      StackMap locals:
      StackMap stack:
            aload 1 /* sp */
            areturn
        end local 1 // org.h2.engine.Session$Savepoint sp
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/h2/engine/Session;
            1    6     1    sp  Lorg/h2/engine/Session$Savepoint;

  public int getId();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 874
            aload 0 /* this */
            getfield org.h2.engine.Session.id:I
            ireturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public void cancel();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 879
            aload 0 /* this */
            invokestatic java.lang.System.nanoTime:()J
            putfield org.h2.engine.Session.cancelAtNs:J
         1: .line 880
            return
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/engine/Session;

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 886
            aload 0 /* this */
            getfield org.h2.engine.Session.state:Ljava/util/concurrent/atomic/AtomicReference;
            getstatic org.h2.engine.Session$State.CLOSED:Lorg/h2/engine/Session$State;
            invokevirtual java.util.concurrent.atomic.AtomicReference.getAndSet:(Ljava/lang/Object;)Ljava/lang/Object;
            getstatic org.h2.engine.Session$State.CLOSED:Lorg/h2/engine/Session$State;
            if_acmpeq 14
         1: .line 888
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.checkPowerOff:()V
         2: .line 891
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.rollback:()V
         3: .line 893
            aload 0 /* this */
            iconst_0
            invokevirtual org.h2.engine.Session.removeTemporaryLobs:(Z)V
         4: .line 894
            aload 0 /* this */
            iconst_1
            invokevirtual org.h2.engine.Session.cleanTempTables:(Z)V
         5: .line 895
            aload 0 /* this */
            iconst_1
            invokevirtual org.h2.engine.Session.commit:(Z)V
         6: .line 896
            aload 0 /* this */
            getfield org.h2.engine.Session.undoLog:Lorg/h2/engine/UndoLog;
            ifnull 8
         7: .line 897
            aload 0 /* this */
            getfield org.h2.engine.Session.undoLog:Lorg/h2/engine/UndoLog;
            invokevirtual org.h2.engine.UndoLog.clear:()V
         8: .line 902
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            aload 0 /* this */
            invokevirtual org.h2.engine.Database.unlockMeta:(Lorg/h2/engine/Session;)V
         9: .line 903
            goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: astore 1
        11: .line 904
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            aload 0 /* this */
            invokevirtual org.h2.engine.Database.removeSession:(Lorg/h2/engine/Session;)V
        12: .line 905
            aload 1
            athrow
        13: .line 904
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            aload 0 /* this */
            invokevirtual org.h2.engine.Database.removeSession:(Lorg/h2/engine/Session;)V
        14: .line 907
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lorg/h2/engine/Session;
      Exception table:
        from    to  target  type
           1    10      10  any

  public void addLock(org.h2.table.Table);
    descriptor: (Lorg/h2/table/Table;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.table.Table table
         0: .line 916
            getstatic org.h2.engine.SysProperties.CHECK:Z
            ifeq 3
         1: .line 917
            aload 0 /* this */
            getfield org.h2.engine.Session.locks:Ljava/util/ArrayList;
            aload 1 /* table */
            invokevirtual java.util.ArrayList.contains:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 918
            aload 1 /* table */
            invokevirtual org.h2.table.Table.toString:()Ljava/lang/String;
            invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            pop
         3: .line 921
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.locks:Ljava/util/ArrayList;
            aload 1 /* table */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         4: .line 922
            return
        end local 1 // org.h2.table.Table table
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lorg/h2/engine/Session;
            0    5     1  table  Lorg/h2/table/Table;
    MethodParameters:
       Name  Flags
      table  

  public void log(org.h2.table.Table, short, org.h2.result.Row);
    descriptor: (Lorg/h2/table/Table;SLorg/h2/result/Row;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.table.Table table
        start local 2 // short operation
        start local 3 // org.h2.result.Row row
         0: .line 932
            aload 1 /* table */
            invokevirtual org.h2.table.Table.isMVStore:()Z
            ifeq 2
         1: .line 933
            return
         2: .line 935
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.undoLogEnabled:Z
            ifeq 16
         3: .line 936
            new org.h2.engine.UndoLogRecord
            dup
            aload 1 /* table */
            iload 2 /* operation */
            aload 3 /* row */
            invokespecial org.h2.engine.UndoLogRecord.<init>:(Lorg/h2/table/Table;SLorg/h2/result/Row;)V
            astore 4 /* log */
        start local 4 // org.h2.engine.UndoLogRecord log
         4: .line 939
            getstatic org.h2.engine.SysProperties.CHECK:Z
            ifeq 13
         5: .line 940
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getLockMode:()I
            istore 5 /* lockMode */
        start local 5 // int lockMode
         6: .line 941
            iload 5 /* lockMode */
            ifeq 13
         7: .line 942
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.isMVStore:()Z
            ifne 13
         8: .line 943
            aload 4 /* log */
            invokevirtual org.h2.engine.UndoLogRecord.getTable:()Lorg/h2/table/Table;
            invokevirtual org.h2.table.Table.getTableType:()Lorg/h2/table/TableType;
            astore 6 /* tableType */
        start local 6 // org.h2.table.TableType tableType
         9: .line 944
            aload 0 /* this */
            getfield org.h2.engine.Session.locks:Ljava/util/ArrayList;
            aload 4 /* log */
            invokevirtual org.h2.engine.UndoLogRecord.getTable:()Lorg/h2/table/Table;
            invokevirtual java.util.ArrayList.contains:(Ljava/lang/Object;)Z
            ifne 13
        10: .line 945
            getstatic org.h2.table.TableType.TABLE_LINK:Lorg/h2/table/TableType;
            aload 6 /* tableType */
            if_acmpeq 13
        11: .line 946
            getstatic org.h2.table.TableType.EXTERNAL_TABLE_ENGINE:Lorg/h2/table/TableType;
            aload 6 /* tableType */
            if_acmpeq 13
        12: .line 947
            aload 6 /* tableType */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            pop
        end local 6 // org.h2.table.TableType tableType
        end local 5 // int lockMode
        13: .line 951
      StackMap locals: org.h2.engine.UndoLogRecord
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.undoLog:Lorg/h2/engine/UndoLog;
            ifnonnull 15
        14: .line 952
            aload 0 /* this */
            new org.h2.engine.UndoLog
            dup
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokespecial org.h2.engine.UndoLog.<init>:(Lorg/h2/engine/Database;)V
            putfield org.h2.engine.Session.undoLog:Lorg/h2/engine/UndoLog;
        15: .line 954
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.undoLog:Lorg/h2/engine/UndoLog;
            aload 4 /* log */
            invokevirtual org.h2.engine.UndoLog.add:(Lorg/h2/engine/UndoLogRecord;)V
        end local 4 // org.h2.engine.UndoLogRecord log
        16: .line 956
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.h2.result.Row row
        end local 2 // short operation
        end local 1 // org.h2.table.Table table
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Lorg/h2/engine/Session;
            0   17     1      table  Lorg/h2/table/Table;
            0   17     2  operation  S
            0   17     3        row  Lorg/h2/result/Row;
            4   16     4        log  Lorg/h2/engine/UndoLogRecord;
            6   13     5   lockMode  I
            9   13     6  tableType  Lorg/h2/table/TableType;
    MethodParameters:
           Name  Flags
      table      
      operation  
      row        

  public void unlockReadLocks();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 963
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.isMVStore:()Z
            ifne 9
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.isMultiThreaded:()Z
            ifeq 9
         1: .line 964
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getLockMode:()I
            iconst_3
            if_icmpne 9
         2: .line 965
            aload 0 /* this */
            getfield org.h2.engine.Session.locks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         3: goto 8
         4: .line 966
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 1 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.table.Table
            astore 2 /* t */
        start local 2 // org.h2.table.Table t
         5: .line 967
            aload 2 /* t */
            invokevirtual org.h2.table.Table.isLockedExclusively:()Z
            ifne 8
         6: .line 968
            aload 2 /* t */
            aload 0 /* this */
            invokevirtual org.h2.table.Table.unlock:(Lorg/h2/engine/Session;)V
         7: .line 969
            aload 1 /* iter */
            invokeinterface java.util.Iterator.remove:()V
        end local 2 // org.h2.table.Table t
         8: .line 965
      StackMap locals:
      StackMap stack:
            aload 1 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 1 // java.util.Iterator iter
         9: .line 973
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/h2/engine/Session;
            3    9     1  iter  Ljava/util/Iterator<Lorg/h2/table/Table;>;
            5    8     2     t  Lorg/h2/table/Table;

  void unlock(org.h2.table.Table);
    descriptor: (Lorg/h2/table/Table;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.table.Table t
         0: .line 981
            aload 0 /* this */
            getfield org.h2.engine.Session.locks:Ljava/util/ArrayList;
            aload 1 /* t */
            invokevirtual java.util.ArrayList.remove:(Ljava/lang/Object;)Z
            pop
         1: .line 982
            return
        end local 1 // org.h2.table.Table t
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/engine/Session;
            0    2     1     t  Lorg/h2/table/Table;
    MethodParameters:
      Name  Flags
      t     

  private void unlockAll();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 985
            aload 0 /* this */
            getfield org.h2.engine.Session.undoLog:Lorg/h2/engine/UndoLog;
            ifnull 2
            aload 0 /* this */
            getfield org.h2.engine.Session.undoLog:Lorg/h2/engine/UndoLog;
            invokevirtual org.h2.engine.UndoLog.size:()I
            ifle 2
         1: .line 986
            invokestatic org.h2.message.DbException.throwInternalError:()Ljava/lang/RuntimeException;
            pop
         2: .line 988
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.locks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifne 8
         3: .line 989
            aload 0 /* this */
            getfield org.h2.engine.Session.locks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 2
            goto 6
      StackMap locals: org.h2.engine.Session top java.util.Iterator
      StackMap stack:
         4: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.table.Table
            astore 1 /* t */
        start local 1 // org.h2.table.Table t
         5: .line 990
            aload 1 /* t */
            aload 0 /* this */
            invokevirtual org.h2.table.Table.unlock:(Lorg/h2/engine/Session;)V
        end local 1 // org.h2.table.Table t
         6: .line 989
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 992
            aload 0 /* this */
            getfield org.h2.engine.Session.locks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
         8: .line 994
      StackMap locals: org.h2.engine.Session
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            aload 0 /* this */
            invokevirtual org.h2.engine.Database.unlockMetaDebug:(Lorg/h2/engine/Session;)V
         9: .line 995
            aload 0 /* this */
            aconst_null
            putfield org.h2.engine.Session.savepoints:Ljava/util/HashMap;
        10: .line 996
            aload 0 /* this */
            iconst_1
            putfield org.h2.engine.Session.sessionStateChanged:Z
        11: .line 997
            return
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/h2/engine/Session;
            5    6     1     t  Lorg/h2/table/Table;

  private void cleanTempTables(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // boolean closeSession
         0: .line 1000
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTables:Ljava/util/HashMap;
            ifnull 10
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTables:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.size:()I
            ifle 10
         1: .line 1001
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.isMVStore:()Z
            ifeq 4
         2: .line 1002
            aload 0 /* this */
            iload 1 /* closeSession */
            invokevirtual org.h2.engine.Session._cleanTempTables:(Z)V
         3: .line 1003
            goto 10
         4: .line 1004
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            dup
            astore 2
            monitorenter
         5: .line 1005
            aload 0 /* this */
            iload 1 /* closeSession */
            invokevirtual org.h2.engine.Session._cleanTempTables:(Z)V
         6: .line 1004
            aload 2
            monitorexit
         7: goto 10
      StackMap locals: org.h2.engine.Session int org.h2.engine.Database
      StackMap stack: java.lang.Throwable
         8: aload 2
            monitorexit
         9: athrow
        10: .line 1009
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean closeSession
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          this  Lorg/h2/engine/Session;
            0   11     1  closeSession  Z
      Exception table:
        from    to  target  type
           5     7       8  any
           8     9       8  any
    MethodParameters:
              Name  Flags
      closeSession  

  private void _cleanTempTables(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // boolean closeSession
         0: .line 1012
            aload 0 /* this */
            getfield org.h2.engine.Session.localTempTables:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2 /* it */
        start local 2 // java.util.Iterator it
         1: .line 1013
            goto 14
         2: .line 1014
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.table.Table
            astore 3 /* table */
        start local 3 // org.h2.table.Table table
         3: .line 1015
            iload 1 /* closeSession */
            ifne 4
            aload 3 /* table */
            invokevirtual org.h2.table.Table.getOnCommitDrop:()Z
            ifeq 12
         4: .line 1016
      StackMap locals: org.h2.table.Table
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.h2.engine.Session.modificationId:I
            iconst_1
            iadd
            putfield org.h2.engine.Session.modificationId:I
         5: .line 1017
            aload 3 /* table */
            invokevirtual org.h2.table.Table.setModified:()V
         6: .line 1018
            aload 2 /* it */
            invokeinterface java.util.Iterator.remove:()V
         7: .line 1021
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            aload 0 /* this */
            invokevirtual org.h2.engine.Database.lockMeta:(Lorg/h2/engine/Session;)Z
            pop
         8: .line 1022
            aload 3 /* table */
            aload 0 /* this */
            invokevirtual org.h2.table.Table.removeChildrenAndResources:(Lorg/h2/engine/Session;)V
         9: .line 1023
            iload 1 /* closeSession */
            ifeq 14
        10: .line 1026
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            aload 0 /* this */
            invokevirtual org.h2.engine.Database.commit:(Lorg/h2/engine/Session;)V
        11: .line 1028
            goto 14
      StackMap locals:
      StackMap stack:
        12: aload 3 /* table */
            invokevirtual org.h2.table.Table.getOnCommitTruncate:()Z
            ifeq 14
        13: .line 1029
            aload 3 /* table */
            aload 0 /* this */
            invokevirtual org.h2.table.Table.truncate:(Lorg/h2/engine/Session;)V
        end local 3 // org.h2.table.Table table
        14: .line 1013
      StackMap locals:
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        15: .line 1032
            return
        end local 2 // java.util.Iterator it
        end local 1 // boolean closeSession
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0          this  Lorg/h2/engine/Session;
            0   16     1  closeSession  Z
            1   16     2            it  Ljava/util/Iterator<Lorg/h2/table/Table;>;
            3   14     3         table  Lorg/h2/table/Table;
    MethodParameters:
              Name  Flags
      closeSession  

  public java.util.Random getRandom();
    descriptor: ()Ljava/util/Random;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1035
            aload 0 /* this */
            getfield org.h2.engine.Session.random:Ljava/util/Random;
            ifnonnull 2
         1: .line 1036
            aload 0 /* this */
            new java.util.Random
            dup
            invokespecial java.util.Random.<init>:()V
            putfield org.h2.engine.Session.random:Ljava/util/Random;
         2: .line 1038
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.random:Ljava/util/Random;
            areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;

  public org.h2.message.Trace getTrace();
    descriptor: ()Lorg/h2/message/Trace;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1043
            aload 0 /* this */
            getfield org.h2.engine.Session.trace:Lorg/h2/message/Trace;
            ifnull 2
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.isClosed:()Z
            ifne 2
         1: .line 1044
            aload 0 /* this */
            getfield org.h2.engine.Session.trace:Lorg/h2/message/Trace;
            areturn
         2: .line 1046
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "jdbc["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.h2.engine.Session.id:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* traceModuleName */
        start local 1 // java.lang.String traceModuleName
         3: .line 1047
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.isClosed:()Z
            ifeq 5
         4: .line 1048
            new org.h2.message.TraceSystem
            dup
            aconst_null
            invokespecial org.h2.message.TraceSystem.<init>:(Ljava/lang/String;)V
            aload 1 /* traceModuleName */
            invokevirtual org.h2.message.TraceSystem.getTrace:(Ljava/lang/String;)Lorg/h2/message/Trace;
            areturn
         5: .line 1050
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getTraceSystem:()Lorg/h2/message/TraceSystem;
            aload 1 /* traceModuleName */
            invokevirtual org.h2.message.TraceSystem.getTrace:(Ljava/lang/String;)Lorg/h2/message/Trace;
            putfield org.h2.engine.Session.trace:Lorg/h2/message/Trace;
         6: .line 1051
            aload 0 /* this */
            getfield org.h2.engine.Session.trace:Lorg/h2/message/Trace;
            areturn
        end local 1 // java.lang.String traceModuleName
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lorg/h2/engine/Session;
            3    7     1  traceModuleName  Ljava/lang/String;

  public void setLastIdentity(org.h2.value.Value);
    descriptor: (Lorg/h2/value/Value;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.value.Value last
         0: .line 1055
            aload 0 /* this */
            aload 1 /* last */
            putfield org.h2.engine.Session.lastIdentity:Lorg/h2/value/Value;
         1: .line 1056
            aload 0 /* this */
            aload 1 /* last */
            putfield org.h2.engine.Session.lastScopeIdentity:Lorg/h2/value/Value;
         2: .line 1057
            return
        end local 1 // org.h2.value.Value last
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;
            0    3     1  last  Lorg/h2/value/Value;
    MethodParameters:
      Name  Flags
      last  

  public org.h2.value.Value getLastIdentity();
    descriptor: ()Lorg/h2/value/Value;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1060
            aload 0 /* this */
            getfield org.h2.engine.Session.lastIdentity:Lorg/h2/value/Value;
            areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public void setLastScopeIdentity(org.h2.value.Value);
    descriptor: (Lorg/h2/value/Value;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.value.Value last
         0: .line 1064
            aload 0 /* this */
            aload 1 /* last */
            putfield org.h2.engine.Session.lastScopeIdentity:Lorg/h2/value/Value;
         1: .line 1065
            return
        end local 1 // org.h2.value.Value last
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/engine/Session;
            0    2     1  last  Lorg/h2/value/Value;
    MethodParameters:
      Name  Flags
      last  

  public org.h2.value.Value getLastScopeIdentity();
    descriptor: ()Lorg/h2/value/Value;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1068
            aload 0 /* this */
            getfield org.h2.engine.Session.lastScopeIdentity:Lorg/h2/value/Value;
            areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public void setLastTriggerIdentity(org.h2.value.Value);
    descriptor: (Lorg/h2/value/Value;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.value.Value last
         0: .line 1072
            aload 0 /* this */
            aload 1 /* last */
            putfield org.h2.engine.Session.lastTriggerIdentity:Lorg/h2/value/Value;
         1: .line 1073
            return
        end local 1 // org.h2.value.Value last
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/engine/Session;
            0    2     1  last  Lorg/h2/value/Value;
    MethodParameters:
      Name  Flags
      last  

  public org.h2.value.Value getLastTriggerIdentity();
    descriptor: ()Lorg/h2/value/Value;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1076
            aload 0 /* this */
            getfield org.h2.engine.Session.lastTriggerIdentity:Lorg/h2/value/Value;
            areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public org.h2.engine.GeneratedKeys getGeneratedKeys();
    descriptor: ()Lorg/h2/engine/GeneratedKeys;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1080
            aload 0 /* this */
            getfield org.h2.engine.Session.generatedKeys:Lorg/h2/engine/GeneratedKeys;
            ifnonnull 2
         1: .line 1081
            aload 0 /* this */
            new org.h2.engine.GeneratedKeys
            dup
            invokespecial org.h2.engine.GeneratedKeys.<init>:()V
            putfield org.h2.engine.Session.generatedKeys:Lorg/h2/engine/GeneratedKeys;
         2: .line 1083
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.generatedKeys:Lorg/h2/engine/GeneratedKeys;
            areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;

  public void addLogPos(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.h2.engine.Session this
        start local 1 // int logId
        start local 2 // int pos
         0: .line 1095
            aload 0 /* this */
            getfield org.h2.engine.Session.firstUncommittedLog:I
            iconst_m1
            if_icmpne 3
         1: .line 1096
            aload 0 /* this */
            iload 1 /* logId */
            putfield org.h2.engine.Session.firstUncommittedLog:I
         2: .line 1097
            aload 0 /* this */
            iload 2 /* pos */
            putfield org.h2.engine.Session.firstUncommittedPos:I
         3: .line 1099
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int pos
        end local 1 // int logId
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/h2/engine/Session;
            0    4     1  logId  I
            0    4     2    pos  I
    MethodParameters:
       Name  Flags
      logId  
      pos    

  public int getFirstUncommittedLog();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1102
            aload 0 /* this */
            getfield org.h2.engine.Session.firstUncommittedLog:I
            ireturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  void setAllCommitted();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1110
            aload 0 /* this */
            iconst_m1
            putfield org.h2.engine.Session.firstUncommittedLog:I
         1: .line 1111
            aload 0 /* this */
            iconst_m1
            putfield org.h2.engine.Session.firstUncommittedPos:I
         2: .line 1112
            return
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;

  public boolean containsUncommitted();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1120
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getStore:()Lorg/h2/mvstore/db/MVTableEngine$Store;
            ifnull 3
         1: .line 1121
            aload 0 /* this */
            getfield org.h2.engine.Session.transaction:Lorg/h2/mvstore/tx/Transaction;
            ifnull 2
            aload 0 /* this */
            getfield org.h2.engine.Session.transaction:Lorg/h2/mvstore/tx/Transaction;
            invokevirtual org.h2.mvstore.tx.Transaction.hasChanges:()Z
            ifeq 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
         3: .line 1123
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.firstUncommittedLog:I
            iconst_m1
            if_icmpeq 4
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/h2/engine/Session;

  public void addSavepoint(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // java.lang.String name
         0: .line 1132
            aload 0 /* this */
            getfield org.h2.engine.Session.savepoints:Ljava/util/HashMap;
            ifnonnull 2
         1: .line 1133
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.newStringMap:()Ljava/util/HashMap;
            putfield org.h2.engine.Session.savepoints:Ljava/util/HashMap;
         2: .line 1135
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.savepoints:Ljava/util/HashMap;
            aload 1 /* name */
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.setSavepoint:()Lorg/h2/engine/Session$Savepoint;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 1136
            return
        end local 1 // java.lang.String name
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/h2/engine/Session;
            0    4     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public void rollbackToSavepoint(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // java.lang.String name
         0: .line 1144
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.checkCommitRollback:()V
         1: .line 1145
            aload 0 /* this */
            aconst_null
            putfield org.h2.engine.Session.currentTransactionName:Ljava/lang/String;
         2: .line 1146
            aload 0 /* this */
            aconst_null
            putfield org.h2.engine.Session.transactionStart:Lorg/h2/value/ValueTimestampTimeZone;
         3: .line 1147
            aload 0 /* this */
            getfield org.h2.engine.Session.savepoints:Ljava/util/HashMap;
            ifnonnull 5
         4: .line 1148
            ldc 90063
            aload 1 /* name */
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
         5: .line 1150
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.savepoints:Ljava/util/HashMap;
            aload 1 /* name */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.engine.Session$Savepoint
            astore 2 /* savepoint */
        start local 2 // org.h2.engine.Session$Savepoint savepoint
         6: .line 1151
            aload 2 /* savepoint */
            ifnonnull 8
         7: .line 1152
            ldc 90063
            aload 1 /* name */
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
         8: .line 1154
      StackMap locals: org.h2.engine.Session$Savepoint
      StackMap stack:
            aload 0 /* this */
            aload 2 /* savepoint */
            invokevirtual org.h2.engine.Session.rollbackTo:(Lorg/h2/engine/Session$Savepoint;)V
         9: .line 1155
            return
        end local 2 // org.h2.engine.Session$Savepoint savepoint
        end local 1 // java.lang.String name
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lorg/h2/engine/Session;
            0   10     1       name  Ljava/lang/String;
            6   10     2  savepoint  Lorg/h2/engine/Session$Savepoint;
    MethodParameters:
      Name  Flags
      name  

  public void prepareCommit(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // java.lang.String transactionName
         0: .line 1163
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.containsUncommitted:()Z
            ifeq 2
         1: .line 1166
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            aload 0 /* this */
            aload 1 /* transactionName */
            invokevirtual org.h2.engine.Database.prepareCommit:(Lorg/h2/engine/Session;Ljava/lang/String;)V
         2: .line 1168
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* transactionName */
            putfield org.h2.engine.Session.currentTransactionName:Ljava/lang/String;
         3: .line 1169
            return
        end local 1 // java.lang.String transactionName
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lorg/h2/engine/Session;
            0    4     1  transactionName  Ljava/lang/String;
    MethodParameters:
                 Name  Flags
      transactionName  

  public void setPreparedTransaction(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=8, args_size=3
        start local 0 // org.h2.engine.Session this
        start local 1 // java.lang.String transactionName
        start local 2 // boolean commit
         0: .line 1178
            aload 0 /* this */
            getfield org.h2.engine.Session.currentTransactionName:Ljava/lang/String;
            ifnull 7
         1: .line 1179
            aload 0 /* this */
            getfield org.h2.engine.Session.currentTransactionName:Ljava/lang/String;
            aload 1 /* transactionName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         2: .line 1180
            iload 2 /* commit */
            ifeq 5
         3: .line 1181
            aload 0 /* this */
            iconst_0
            invokevirtual org.h2.engine.Session.commit:(Z)V
         4: .line 1182
            goto 26
         5: .line 1183
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.rollback:()V
         6: .line 1185
            goto 26
         7: .line 1186
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
         8: .line 1187
            invokevirtual org.h2.engine.Database.getInDoubtTransactions:()Ljava/util/ArrayList;
         9: .line 1186
            astore 3 /* list */
        start local 3 // java.util.ArrayList list
        10: .line 1188
            iload 2 /* commit */
            ifeq 11
            iconst_1
            goto 12
        11: .line 1189
      StackMap locals: java.util.ArrayList
      StackMap stack:
            iconst_2
        12: .line 1188
      StackMap locals:
      StackMap stack: int
            istore 4 /* state */
        start local 4 // int state
        13: .line 1190
            iconst_0
            istore 5 /* found */
        start local 5 // boolean found
        14: .line 1191
            aload 3 /* list */
            ifnull 22
        15: .line 1192
            aload 3 /* list */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 7
            goto 21
      StackMap locals: org.h2.engine.Session java.lang.String int java.util.ArrayList int int top java.util.Iterator
      StackMap stack:
        16: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.store.InDoubtTransaction
            astore 6 /* p */
        start local 6 // org.h2.store.InDoubtTransaction p
        17: .line 1193
            aload 6 /* p */
            invokeinterface org.h2.store.InDoubtTransaction.getTransactionName:()Ljava/lang/String;
            aload 1 /* transactionName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
        18: .line 1194
            aload 6 /* p */
            iload 4 /* state */
            invokeinterface org.h2.store.InDoubtTransaction.setState:(I)V
        19: .line 1195
            iconst_1
            istore 5 /* found */
        20: .line 1196
            goto 22
        end local 6 // org.h2.store.InDoubtTransaction p
        21: .line 1192
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        22: .line 1200
      StackMap locals: org.h2.engine.Session java.lang.String int java.util.ArrayList int int
      StackMap stack:
            iload 5 /* found */
            ifne 26
        23: .line 1201
            ldc 90129
        24: .line 1202
            aload 1 /* transactionName */
        25: .line 1201
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 5 // boolean found
        end local 4 // int state
        end local 3 // java.util.ArrayList list
        26: .line 1205
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean commit
        end local 1 // java.lang.String transactionName
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   27     0             this  Lorg/h2/engine/Session;
            0   27     1  transactionName  Ljava/lang/String;
            0   27     2           commit  Z
           10   26     3             list  Ljava/util/ArrayList<Lorg/h2/store/InDoubtTransaction;>;
           13   26     4            state  I
           14   26     5            found  Z
           17   21     6                p  Lorg/h2/store/InDoubtTransaction;
    MethodParameters:
                 Name  Flags
      transactionName  
      commit           

  public boolean isClosed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1209
            aload 0 /* this */
            getfield org.h2.engine.Session.state:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            getstatic org.h2.engine.Session$State.CLOSED:Lorg/h2/engine/Session$State;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/engine/Session;

  public void setThrottle(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // int throttle
         0: .line 1213
            aload 0 /* this */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            iload 1 /* throttle */
            i2l
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            putfield org.h2.engine.Session.throttleNs:J
         1: .line 1214
            return
        end local 1 // int throttle
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/h2/engine/Session;
            0    2     1  throttle  I
    MethodParameters:
          Name  Flags
      throttle  

  public void throttle();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1220
            aload 0 /* this */
            getfield org.h2.engine.Session.currentCommandStart:Lorg/h2/value/ValueTimestampTimeZone;
            ifnonnull 2
         1: .line 1221
            aload 0 /* this */
            invokestatic org.h2.util.CurrentTimestamp.get:()Lorg/h2/value/ValueTimestampTimeZone;
            putfield org.h2.engine.Session.currentCommandStart:Lorg/h2/value/ValueTimestampTimeZone;
         2: .line 1223
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.throttleNs:J
            lconst_0
            lcmp
            ifne 4
         3: .line 1224
            return
         4: .line 1226
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lstore 1 /* time */
        start local 1 // long time
         5: .line 1227
            aload 0 /* this */
            getfield org.h2.engine.Session.lastThrottle:J
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            ldc 50
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            ladd
            lload 1 /* time */
            lcmp
            ifle 7
         6: .line 1228
            return
         7: .line 1230
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.state:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast org.h2.engine.Session$State
            astore 3 /* prevState */
        start local 3 // org.h2.engine.Session$State prevState
         8: .line 1231
            aload 3 /* prevState */
            getstatic org.h2.engine.Session$State.CLOSED:Lorg/h2/engine/Session$State;
            if_acmpeq 19
         9: .line 1232
            aload 0 /* this */
            lload 1 /* time */
            aload 0 /* this */
            getfield org.h2.engine.Session.throttleNs:J
            ladd
            putfield org.h2.engine.Session.lastThrottle:J
        10: .line 1234
            aload 0 /* this */
            getfield org.h2.engine.Session.state:Ljava/util/concurrent/atomic/AtomicReference;
            aload 3 /* prevState */
            getstatic org.h2.engine.Session$State.SLEEP:Lorg/h2/engine/Session$State;
            invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        11: .line 1235
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            aload 0 /* this */
            getfield org.h2.engine.Session.throttleNs:J
            invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
            invokestatic java.lang.Thread.sleep:(J)V
        12: .line 1236
            goto 18
      StackMap locals: org.h2.engine.Session long org.h2.engine.Session$State
      StackMap stack: java.lang.Exception
        13: pop
        14: .line 1239
            aload 0 /* this */
            getfield org.h2.engine.Session.state:Ljava/util/concurrent/atomic/AtomicReference;
            getstatic org.h2.engine.Session$State.SLEEP:Lorg/h2/engine/Session$State;
            aload 3 /* prevState */
            invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
            goto 19
        15: .line 1238
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        16: .line 1239
            aload 0 /* this */
            getfield org.h2.engine.Session.state:Ljava/util/concurrent/atomic/AtomicReference;
            getstatic org.h2.engine.Session$State.SLEEP:Lorg/h2/engine/Session$State;
            aload 3 /* prevState */
            invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        17: .line 1240
            aload 4
            athrow
        18: .line 1239
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.state:Ljava/util/concurrent/atomic/AtomicReference;
            getstatic org.h2.engine.Session$State.SLEEP:Lorg/h2/engine/Session$State;
            aload 3 /* prevState */
            invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        19: .line 1242
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.h2.engine.Session$State prevState
        end local 1 // long time
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   20     0       this  Lorg/h2/engine/Session;
            5   20     1       time  J
            8   20     3  prevState  Lorg/h2/engine/Session$State;
      Exception table:
        from    to  target  type
          10    12      13  Class java.lang.Exception
          10    14      15  any

  public void setCurrentCommand(org.h2.command.Command, java.lang.Object);
    descriptor: (Lorg/h2/command/Command;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.command.Command command
        start local 2 // java.lang.Object generatedKeysRequest
         0: .line 1257
            aload 0 /* this */
            aload 1 /* command */
            putfield org.h2.engine.Session.currentCommand:Lorg/h2/command/Command;
         1: .line 1260
            aload 1 /* command */
            ifnull 3
            aload 1 /* command */
            invokevirtual org.h2.command.Command.isQuery:()Z
            ifne 3
         2: .line 1261
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.getGeneratedKeys:()Lorg/h2/engine/GeneratedKeys;
            aload 2 /* generatedKeysRequest */
            invokevirtual org.h2.engine.GeneratedKeys.clear:(Ljava/lang/Object;)V
         3: .line 1263
      StackMap locals:
      StackMap stack:
            aload 1 /* command */
            ifnull 10
         4: .line 1264
            aload 0 /* this */
            getfield org.h2.engine.Session.queryTimeout:I
            ifle 9
         5: .line 1265
            aload 0 /* this */
            invokestatic org.h2.util.CurrentTimestamp.get:()Lorg/h2/value/ValueTimestampTimeZone;
            putfield org.h2.engine.Session.currentCommandStart:Lorg/h2/value/ValueTimestampTimeZone;
         6: .line 1266
            invokestatic java.lang.System.nanoTime:()J
            lstore 3 /* now */
        start local 3 // long now
         7: .line 1267
            aload 0 /* this */
            lload 3 /* now */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            aload 0 /* this */
            getfield org.h2.engine.Session.queryTimeout:I
            i2l
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            ladd
            putfield org.h2.engine.Session.cancelAtNs:J
        end local 3 // long now
         8: .line 1268
            goto 10
         9: .line 1269
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.h2.engine.Session.currentCommandStart:Lorg/h2/value/ValueTimestampTimeZone;
        10: .line 1272
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.state:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast org.h2.engine.Session$State
            astore 3 /* currentState */
        start local 3 // org.h2.engine.Session$State currentState
        11: .line 1273
            aload 3 /* currentState */
            getstatic org.h2.engine.Session$State.CLOSED:Lorg/h2/engine/Session$State;
            if_acmpeq 15
        12: .line 1274
            aload 0 /* this */
            getfield org.h2.engine.Session.state:Ljava/util/concurrent/atomic/AtomicReference;
            aload 3 /* currentState */
            aload 1 /* command */
            ifnonnull 13
            getstatic org.h2.engine.Session$State.SLEEP:Lorg/h2/engine/Session$State;
            goto 14
      StackMap locals: org.h2.engine.Session org.h2.command.Command java.lang.Object org.h2.engine.Session$State
      StackMap stack: java.util.concurrent.atomic.AtomicReference org.h2.engine.Session$State
        13: getstatic org.h2.engine.Session$State.RUNNING:Lorg/h2/engine/Session$State;
      StackMap locals: org.h2.engine.Session org.h2.command.Command java.lang.Object org.h2.engine.Session$State
      StackMap stack: java.util.concurrent.atomic.AtomicReference org.h2.engine.Session$State org.h2.engine.Session$State
        14: invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        15: .line 1276
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.h2.engine.Session$State currentState
        end local 2 // java.lang.Object generatedKeysRequest
        end local 1 // org.h2.command.Command command
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   16     0                  this  Lorg/h2/engine/Session;
            0   16     1               command  Lorg/h2/command/Command;
            0   16     2  generatedKeysRequest  Ljava/lang/Object;
            7    8     3                   now  J
           11   16     3          currentState  Lorg/h2/engine/Session$State;
    MethodParameters:
                      Name  Flags
      command               
      generatedKeysRequest  

  public void checkCanceled();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1285
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.throttle:()V
         1: .line 1286
            aload 0 /* this */
            getfield org.h2.engine.Session.cancelAtNs:J
            lconst_0
            lcmp
            ifne 3
         2: .line 1287
            return
         3: .line 1289
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lstore 1 /* time */
        start local 1 // long time
         4: .line 1290
            lload 1 /* time */
            aload 0 /* this */
            getfield org.h2.engine.Session.cancelAtNs:J
            lcmp
            iflt 7
         5: .line 1291
            aload 0 /* this */
            lconst_0
            putfield org.h2.engine.Session.cancelAtNs:J
         6: .line 1292
            ldc 57014
            invokestatic org.h2.message.DbException.get:(I)Lorg/h2/message/DbException;
            athrow
         7: .line 1294
      StackMap locals: long
      StackMap stack:
            return
        end local 1 // long time
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/h2/engine/Session;
            4    8     1  time  J

  public long getCancel();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1302
            aload 0 /* this */
            getfield org.h2.engine.Session.cancelAtNs:J
            lreturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public org.h2.command.Command getCurrentCommand();
    descriptor: ()Lorg/h2/command/Command;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1306
            aload 0 /* this */
            getfield org.h2.engine.Session.currentCommand:Lorg/h2/command/Command;
            areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public org.h2.value.ValueTimestampTimeZone getCurrentCommandStart();
    descriptor: ()Lorg/h2/value/ValueTimestampTimeZone;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1310
            aload 0 /* this */
            getfield org.h2.engine.Session.currentCommandStart:Lorg/h2/value/ValueTimestampTimeZone;
            ifnonnull 2
         1: .line 1311
            aload 0 /* this */
            invokestatic org.h2.util.CurrentTimestamp.get:()Lorg/h2/value/ValueTimestampTimeZone;
            putfield org.h2.engine.Session.currentCommandStart:Lorg/h2/value/ValueTimestampTimeZone;
         2: .line 1313
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.currentCommandStart:Lorg/h2/value/ValueTimestampTimeZone;
            areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;

  public boolean getAllowLiterals();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1317
            aload 0 /* this */
            getfield org.h2.engine.Session.allowLiterals:Z
            ireturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public void setAllowLiterals(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // boolean b
         0: .line 1321
            aload 0 /* this */
            iload 1 /* b */
            putfield org.h2.engine.Session.allowLiterals:Z
         1: .line 1322
            return
        end local 1 // boolean b
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/engine/Session;
            0    2     1     b  Z
    MethodParameters:
      Name  Flags
      b     

  public void setCurrentSchema(org.h2.schema.Schema);
    descriptor: (Lorg/h2/schema/Schema;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.schema.Schema schema
         0: .line 1325
            aload 0 /* this */
            dup
            getfield org.h2.engine.Session.modificationId:I
            iconst_1
            iadd
            putfield org.h2.engine.Session.modificationId:I
         1: .line 1326
            aload 0 /* this */
            aload 1 /* schema */
            invokevirtual org.h2.schema.Schema.getName:()Ljava/lang/String;
            putfield org.h2.engine.Session.currentSchemaName:Ljava/lang/String;
         2: .line 1327
            return
        end local 1 // org.h2.schema.Schema schema
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/h2/engine/Session;
            0    3     1  schema  Lorg/h2/schema/Schema;
    MethodParameters:
        Name  Flags
      schema  

  public java.lang.String getCurrentSchemaName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1331
            aload 0 /* this */
            getfield org.h2.engine.Session.currentSchemaName:Ljava/lang/String;
            areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public void setCurrentSchemaName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // java.lang.String schemaName
         0: .line 1336
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            aload 1 /* schemaName */
            invokevirtual org.h2.engine.Database.getSchema:(Ljava/lang/String;)Lorg/h2/schema/Schema;
            astore 2 /* schema */
        start local 2 // org.h2.schema.Schema schema
         1: .line 1337
            aload 0 /* this */
            aload 2 /* schema */
            invokevirtual org.h2.engine.Session.setCurrentSchema:(Lorg/h2/schema/Schema;)V
         2: .line 1338
            return
        end local 2 // org.h2.schema.Schema schema
        end local 1 // java.lang.String schemaName
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/h2/engine/Session;
            0    3     1  schemaName  Ljava/lang/String;
            1    3     2      schema  Lorg/h2/schema/Schema;
    MethodParameters:
            Name  Flags
      schemaName  

  public org.h2.jdbc.JdbcConnection createConnection(boolean);
    descriptor: (Z)Lorg/h2/jdbc/JdbcConnection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // boolean columnList
         0: .line 1349
            iload 1 /* columnList */
            ifeq 3
         1: .line 1350
            ldc "jdbc:columnlist:connection"
            astore 2 /* url */
        start local 2 // java.lang.String url
         2: .line 1351
            goto 4
        end local 2 // java.lang.String url
         3: .line 1352
      StackMap locals:
      StackMap stack:
            ldc "jdbc:default:connection"
            astore 2 /* url */
        start local 2 // java.lang.String url
         4: .line 1354
      StackMap locals: java.lang.String
      StackMap stack:
            new org.h2.jdbc.JdbcConnection
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.getUser:()Lorg/h2/engine/User;
            invokevirtual org.h2.engine.User.getName:()Ljava/lang/String;
            aload 2 /* url */
            invokespecial org.h2.jdbc.JdbcConnection.<init>:(Lorg/h2/engine/SessionInterface;Ljava/lang/String;Ljava/lang/String;)V
            areturn
        end local 2 // java.lang.String url
        end local 1 // boolean columnList
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/h2/engine/Session;
            0    5     1  columnList  Z
            2    3     2         url  Ljava/lang/String;
            4    5     2         url  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      columnList  

  public org.h2.store.DataHandler getDataHandler();
    descriptor: ()Lorg/h2/store/DataHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1359
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public void removeAtCommit(org.h2.value.Value);
    descriptor: (Lorg/h2/value/Value;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.value.Value v
         0: .line 1368
            aload 1 /* v */
            invokevirtual org.h2.value.Value.toString:()Ljava/lang/String;
            astore 2 /* key */
        start local 2 // java.lang.String key
         1: .line 1369
            aload 1 /* v */
            invokevirtual org.h2.value.Value.isLinkedToTable:()Z
            ifne 3
         2: .line 1370
            aload 2 /* key */
            invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            pop
         3: .line 1372
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.removeLobMap:Ljava/util/HashMap;
            ifnonnull 5
         4: .line 1373
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.h2.engine.Session.removeLobMap:Ljava/util/HashMap;
         5: .line 1375
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.removeLobMap:Ljava/util/HashMap;
            aload 2 /* key */
            aload 1 /* v */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 1376
            return
        end local 2 // java.lang.String key
        end local 1 // org.h2.value.Value v
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/h2/engine/Session;
            0    7     1     v  Lorg/h2/value/Value;
            1    7     2   key  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      v     

  public void removeAtCommitStop(org.h2.value.Value);
    descriptor: (Lorg/h2/value/Value;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.value.Value v
         0: .line 1384
            aload 0 /* this */
            getfield org.h2.engine.Session.removeLobMap:Ljava/util/HashMap;
            ifnull 2
         1: .line 1385
            aload 0 /* this */
            getfield org.h2.engine.Session.removeLobMap:Ljava/util/HashMap;
            aload 1 /* v */
            invokevirtual org.h2.value.Value.toString:()Ljava/lang/String;
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 1387
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.h2.value.Value v
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;
            0    3     1     v  Lorg/h2/value/Value;
    MethodParameters:
      Name  Flags
      v     

  public java.lang.String getNextSystemIdentifier(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // java.lang.String sql
         0: .line 1399
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            dup
            getfield org.h2.engine.Session.systemIdentifier:I
            dup_x1
            iconst_1
            iadd
            putfield org.h2.engine.Session.systemIdentifier:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* identifier */
        start local 2 // java.lang.String identifier
         1: .line 1400
            aload 1 /* sql */
            aload 2 /* identifier */
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifne 0
         2: .line 1401
            aload 2 /* identifier */
            areturn
        end local 2 // java.lang.String identifier
        end local 1 // java.lang.String sql
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/h2/engine/Session;
            0    3     1         sql  Ljava/lang/String;
            1    3     2  identifier  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      sql   

  public void addProcedure(org.h2.engine.Procedure);
    descriptor: (Lorg/h2/engine/Procedure;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.engine.Procedure procedure
         0: .line 1410
            aload 0 /* this */
            getfield org.h2.engine.Session.procedures:Ljava/util/HashMap;
            ifnonnull 2
         1: .line 1411
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.newStringMap:()Ljava/util/HashMap;
            putfield org.h2.engine.Session.procedures:Ljava/util/HashMap;
         2: .line 1413
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.procedures:Ljava/util/HashMap;
            aload 1 /* procedure */
            invokevirtual org.h2.engine.Procedure.getName:()Ljava/lang/String;
            aload 1 /* procedure */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 1414
            return
        end local 1 // org.h2.engine.Procedure procedure
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/h2/engine/Session;
            0    4     1  procedure  Lorg/h2/engine/Procedure;
    MethodParameters:
           Name  Flags
      procedure  

  public void removeProcedure(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // java.lang.String name
         0: .line 1422
            aload 0 /* this */
            getfield org.h2.engine.Session.procedures:Ljava/util/HashMap;
            ifnull 2
         1: .line 1423
            aload 0 /* this */
            getfield org.h2.engine.Session.procedures:Ljava/util/HashMap;
            aload 1 /* name */
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 1425
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String name
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;
            0    3     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public org.h2.engine.Procedure getProcedure(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/h2/engine/Procedure;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // java.lang.String name
         0: .line 1435
            aload 0 /* this */
            getfield org.h2.engine.Session.procedures:Ljava/util/HashMap;
            ifnonnull 2
         1: .line 1436
            aconst_null
            areturn
         2: .line 1438
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.procedures:Ljava/util/HashMap;
            aload 1 /* name */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.engine.Procedure
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;
            0    3     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public void setSchemaSearchPath(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // java.lang.String[] schemas
         0: .line 1442
            aload 0 /* this */
            dup
            getfield org.h2.engine.Session.modificationId:I
            iconst_1
            iadd
            putfield org.h2.engine.Session.modificationId:I
         1: .line 1443
            aload 0 /* this */
            aload 1 /* schemas */
            putfield org.h2.engine.Session.schemaSearchPath:[Ljava/lang/String;
         2: .line 1444
            return
        end local 1 // java.lang.String[] schemas
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/h2/engine/Session;
            0    3     1  schemas  [Ljava/lang/String;
    MethodParameters:
         Name  Flags
      schemas  

  public java.lang.String[] getSchemaSearchPath();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1447
            aload 0 /* this */
            getfield org.h2.engine.Session.schemaSearchPath:[Ljava/lang/String;
            areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1452
            aload 0 /* this */
            getfield org.h2.engine.Session.serialId:I
            ireturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1457
            new java.lang.StringBuilder
            dup
            ldc "#"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.h2.engine.Session.serialId:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " (user: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.h2.engine.Session.user:Lorg/h2/engine/User;
            ifnonnull 1
            ldc "<null>"
            goto 2
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         1: aload 0 /* this */
            getfield org.h2.engine.Session.user:Lorg/h2/engine/User;
            invokevirtual org.h2.engine.User.getName:()Ljava/lang/String;
      StackMap locals: org.h2.engine.Session
      StackMap stack: java.lang.StringBuilder java.lang.String
         2: 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;
            areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;

  public void setUndoLogEnabled(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // boolean b
         0: .line 1461
            aload 0 /* this */
            iload 1 /* b */
            putfield org.h2.engine.Session.undoLogEnabled:Z
         1: .line 1462
            return
        end local 1 // boolean b
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/engine/Session;
            0    2     1     b  Z
    MethodParameters:
      Name  Flags
      b     

  public void setRedoLogBinary(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // boolean b
         0: .line 1465
            aload 0 /* this */
            iload 1 /* b */
            putfield org.h2.engine.Session.redoLogBinary:Z
         1: .line 1466
            return
        end local 1 // boolean b
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/engine/Session;
            0    2     1     b  Z
    MethodParameters:
      Name  Flags
      b     

  public boolean isUndoLogEnabled();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1469
            aload 0 /* this */
            getfield org.h2.engine.Session.undoLogEnabled:Z
            ireturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public void begin();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1476
            aload 0 /* this */
            iconst_1
            putfield org.h2.engine.Session.autoCommitAtTransactionEnd:Z
         1: .line 1477
            aload 0 /* this */
            iconst_0
            putfield org.h2.engine.Session.autoCommit:Z
         2: .line 1478
            return
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;

  public long getSessionStart();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1481
            aload 0 /* this */
            getfield org.h2.engine.Session.sessionStart:J
            lreturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public org.h2.value.ValueTimestampTimeZone getTransactionStart();
    descriptor: ()Lorg/h2/value/ValueTimestampTimeZone;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1485
            aload 0 /* this */
            getfield org.h2.engine.Session.transactionStart:Lorg/h2/value/ValueTimestampTimeZone;
            ifnonnull 2
         1: .line 1486
            aload 0 /* this */
            invokestatic org.h2.util.CurrentTimestamp.get:()Lorg/h2/value/ValueTimestampTimeZone;
            putfield org.h2.engine.Session.transactionStart:Lorg/h2/value/ValueTimestampTimeZone;
         2: .line 1488
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.transactionStart:Lorg/h2/value/ValueTimestampTimeZone;
            areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;

  public org.h2.table.Table[] getLocks();
    descriptor: ()[Lorg/h2/table/Table;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1493
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield org.h2.engine.Session.locks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 1 /* copy */
        start local 1 // java.util.ArrayList copy
         1: .line 1494
            aload 0 /* this */
            getfield org.h2.engine.Session.locks:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 7
      StackMap locals: org.h2.engine.Session java.util.ArrayList top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.table.Table
            astore 2 /* lock */
        start local 2 // org.h2.table.Table lock
         3: .line 1496
            aload 1 /* copy */
            aload 2 /* lock */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         4: .line 1497
            goto 7
      StackMap locals: org.h2.engine.Session java.util.ArrayList org.h2.table.Table java.util.Iterator
      StackMap stack: java.lang.Exception
         5: pop
         6: .line 1499
            goto 8
        end local 2 // org.h2.table.Table lock
         7: .line 1494
      StackMap locals: org.h2.engine.Session java.util.ArrayList top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         8: .line 1502
      StackMap locals: org.h2.engine.Session java.util.ArrayList
      StackMap stack:
            aload 1 /* copy */
            iconst_0
            anewarray org.h2.table.Table
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.h2.table.Table[]
            areturn
        end local 1 // java.util.ArrayList copy
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/h2/engine/Session;
            1    9     1  copy  Ljava/util/ArrayList<Lorg/h2/table/Table;>;
            3    7     2  lock  Lorg/h2/table/Table;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.Exception

  public void waitIfExclusiveModeEnabled();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1512
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getLobSession:()Lorg/h2/engine/Session;
            aload 0 /* this */
            if_acmpne 2
         1: .line 1513
            return
         2: .line 1516
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getExclusiveSession:()Lorg/h2/engine/Session;
            astore 1 /* exclusive */
        start local 1 // org.h2.engine.Session exclusive
         3: .line 1517
            aload 1 /* exclusive */
            ifnull 11
            aload 1 /* exclusive */
            aload 0 /* this */
            if_acmpne 5
         4: .line 1518
            goto 11
         5: .line 1520
      StackMap locals: org.h2.engine.Session
      StackMap stack:
            aload 1 /* exclusive */
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 1522
            goto 11
         7: .line 1525
      StackMap locals:
      StackMap stack:
            ldc 100
            invokestatic java.lang.Thread.sleep:(J)V
         8: .line 1526
            goto 2
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
         9: pop
        end local 1 // org.h2.engine.Session exclusive
        10: .line 1515
            goto 2
        11: .line 1530
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lorg/h2/engine/Session;
            3   10     1  exclusive  Lorg/h2/engine/Session;
      Exception table:
        from    to  target  type
           7     8       9  Class java.lang.InterruptedException

  public java.util.Map<java.lang.Object, org.h2.index.ViewIndex> getViewIndexCache(boolean);
    descriptor: (Z)Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // boolean subQuery
         0: .line 1541
            iload 1 /* subQuery */
            ifeq 4
         1: .line 1545
            aload 0 /* this */
            getfield org.h2.engine.Session.subQueryIndexCache:Ljava/util/HashMap;
            ifnonnull 3
         2: .line 1546
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.h2.engine.Session.subQueryIndexCache:Ljava/util/HashMap;
         3: .line 1548
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.subQueryIndexCache:Ljava/util/HashMap;
            areturn
         4: .line 1550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.viewIndexCache:Lorg/h2/util/SmallLRUCache;
            astore 2 /* cache */
        start local 2 // org.h2.util.SmallLRUCache cache
         5: .line 1551
            aload 2 /* cache */
            ifnonnull 7
         6: .line 1552
            aload 0 /* this */
            bipush 64
            invokestatic org.h2.util.SmallLRUCache.newInstance:(I)Lorg/h2/util/SmallLRUCache;
            dup
            astore 2 /* cache */
            putfield org.h2.engine.Session.viewIndexCache:Lorg/h2/util/SmallLRUCache;
         7: .line 1554
      StackMap locals: org.h2.util.SmallLRUCache
      StackMap stack:
            aload 2 /* cache */
            areturn
        end local 2 // org.h2.util.SmallLRUCache cache
        end local 1 // boolean subQuery
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lorg/h2/engine/Session;
            0    8     1  subQuery  Z
            5    8     2     cache  Lorg/h2/util/SmallLRUCache<Ljava/lang/Object;Lorg/h2/index/ViewIndex;>;
    Signature: (Z)Ljava/util/Map<Ljava/lang/Object;Lorg/h2/index/ViewIndex;>;
    MethodParameters:
          Name  Flags
      subQuery  

  public void addTemporaryResult(org.h2.result.ResultInterface);
    descriptor: (Lorg/h2/result/ResultInterface;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.result.ResultInterface result
         0: .line 1565
            aload 1 /* result */
            invokeinterface org.h2.result.ResultInterface.needToClose:()Z
            ifne 2
         1: .line 1566
            return
         2: .line 1568
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.temporaryResults:Ljava/util/HashSet;
            ifnonnull 4
         3: .line 1569
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.h2.engine.Session.temporaryResults:Ljava/util/HashSet;
         4: .line 1571
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.temporaryResults:Ljava/util/HashSet;
            invokevirtual java.util.HashSet.size:()I
            bipush 100
            if_icmpge 6
         5: .line 1573
            aload 0 /* this */
            getfield org.h2.engine.Session.temporaryResults:Ljava/util/HashSet;
            aload 1 /* result */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
         6: .line 1575
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.h2.result.ResultInterface result
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/h2/engine/Session;
            0    7     1  result  Lorg/h2/result/ResultInterface;
    MethodParameters:
        Name  Flags
      result  

  private void closeTemporaryResults();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1578
            aload 0 /* this */
            getfield org.h2.engine.Session.temporaryResults:Ljava/util/HashSet;
            ifnull 6
         1: .line 1579
            aload 0 /* this */
            getfield org.h2.engine.Session.temporaryResults:Ljava/util/HashSet;
            invokevirtual java.util.HashSet.iterator:()Ljava/util/Iterator;
            astore 2
            goto 4
      StackMap locals: org.h2.engine.Session top java.util.Iterator
      StackMap stack:
         2: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.result.ResultInterface
            astore 1 /* result */
        start local 1 // org.h2.result.ResultInterface result
         3: .line 1580
            aload 1 /* result */
            invokeinterface org.h2.result.ResultInterface.close:()V
        end local 1 // org.h2.result.ResultInterface result
         4: .line 1579
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 1582
            aload 0 /* this */
            aconst_null
            putfield org.h2.engine.Session.temporaryResults:Ljava/util/HashSet;
         6: .line 1584
      StackMap locals: org.h2.engine.Session
      StackMap stack:
            return
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/h2/engine/Session;
            3    4     1  result  Lorg/h2/result/ResultInterface;

  public void setQueryTimeout(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // int queryTimeout
         0: .line 1587
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getSettings:()Lorg/h2/engine/DbSettings;
            getfield org.h2.engine.DbSettings.maxQueryTimeout:I
            istore 2 /* max */
        start local 2 // int max
         1: .line 1588
            iload 2 /* max */
            ifeq 3
            iload 2 /* max */
            iload 1 /* queryTimeout */
            if_icmplt 2
            iload 1 /* queryTimeout */
            ifne 3
         2: .line 1590
      StackMap locals: int
      StackMap stack:
            iload 2 /* max */
            istore 1 /* queryTimeout */
         3: .line 1592
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* queryTimeout */
            putfield org.h2.engine.Session.queryTimeout:I
         4: .line 1595
            aload 0 /* this */
            lconst_0
            putfield org.h2.engine.Session.cancelAtNs:J
         5: .line 1596
            return
        end local 2 // int max
        end local 1 // int queryTimeout
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/h2/engine/Session;
            0    6     1  queryTimeout  I
            1    6     2           max  I
    MethodParameters:
              Name  Flags
      queryTimeout  

  public int getQueryTimeout();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1599
            aload 0 /* this */
            getfield org.h2.engine.Session.queryTimeout:I
            ireturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public void setWaitForLock(org.h2.table.Table, java.lang.Thread);
    descriptor: (Lorg/h2/table/Table;Ljava/lang/Thread;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.table.Table waitForLock
        start local 2 // java.lang.Thread waitForLockThread
         0: .line 1610
            aload 0 /* this */
            aload 1 /* waitForLock */
            putfield org.h2.engine.Session.waitForLock:Lorg/h2/table/Table;
         1: .line 1611
            aload 0 /* this */
            aload 2 /* waitForLockThread */
            putfield org.h2.engine.Session.waitForLockThread:Ljava/lang/Thread;
         2: .line 1612
            return
        end local 2 // java.lang.Thread waitForLockThread
        end local 1 // org.h2.table.Table waitForLock
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0               this  Lorg/h2/engine/Session;
            0    3     1        waitForLock  Lorg/h2/table/Table;
            0    3     2  waitForLockThread  Ljava/lang/Thread;
    MethodParameters:
                   Name  Flags
      waitForLock        
      waitForLockThread  

  public org.h2.table.Table getWaitForLock();
    descriptor: ()Lorg/h2/table/Table;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1615
            aload 0 /* this */
            getfield org.h2.engine.Session.waitForLock:Lorg/h2/table/Table;
            areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public java.lang.Thread getWaitForLockThread();
    descriptor: ()Ljava/lang/Thread;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1619
            aload 0 /* this */
            getfield org.h2.engine.Session.waitForLockThread:Ljava/lang/Thread;
            areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public int getModificationId();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1623
            aload 0 /* this */
            getfield org.h2.engine.Session.modificationId:I
            ireturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public boolean isReconnectNeeded(boolean);
    descriptor: (Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // boolean write
         0: .line 1629
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.isReconnectNeeded:()Z
            istore 2 /* reconnect */
        start local 2 // boolean reconnect
         1: .line 1630
            iload 2 /* reconnect */
            ifeq 3
         2: .line 1631
            iconst_1
            ireturn
         3: .line 1633
      StackMap locals: int
      StackMap stack:
            iload 1 /* write */
            ifeq 6
         4: .line 1634
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.beforeWriting:()Z
            ifeq 0
         5: .line 1635
            iconst_0
            ireturn
         6: .line 1638
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // boolean reconnect
        end local 1 // boolean write
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lorg/h2/engine/Session;
            0    7     1      write  Z
            1    7     2  reconnect  Z
    MethodParameters:
       Name  Flags
      write  

  public void afterWriting();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1645
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.afterWriting:()V
         1: .line 1646
            return
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/engine/Session;

  public org.h2.engine.SessionInterface reconnect(boolean);
    descriptor: (Z)Lorg/h2/engine/SessionInterface;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // boolean write
         0: .line 1650
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.readSessionState:()V
         1: .line 1651
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.close:()V
         2: .line 1652
            invokestatic org.h2.engine.Engine.getInstance:()Lorg/h2/engine/Engine;
            aload 0 /* this */
            getfield org.h2.engine.Session.connectionInfo:Lorg/h2/engine/ConnectionInfo;
            invokevirtual org.h2.engine.Engine.createSession:(Lorg/h2/engine/ConnectionInfo;)Lorg/h2/engine/Session;
            astore 2 /* newSession */
        start local 2 // org.h2.engine.Session newSession
         3: .line 1653
            aload 2 /* newSession */
            aload 0 /* this */
            getfield org.h2.engine.Session.sessionState:Ljava/util/ArrayList;
            putfield org.h2.engine.Session.sessionState:Ljava/util/ArrayList;
         4: .line 1654
            aload 2 /* newSession */
            invokevirtual org.h2.engine.Session.recreateSessionState:()V
         5: .line 1655
            iload 1 /* write */
            ifeq 7
         6: .line 1656
      StackMap locals: org.h2.engine.Session
      StackMap stack:
            aload 2 /* newSession */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.beforeWriting:()Z
            ifeq 6
         7: .line 1660
      StackMap locals:
      StackMap stack:
            aload 2 /* newSession */
            areturn
        end local 2 // org.h2.engine.Session newSession
        end local 1 // boolean write
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lorg/h2/engine/Session;
            0    8     1       write  Z
            3    8     2  newSession  Lorg/h2/engine/Session;
    MethodParameters:
       Name  Flags
      write  

  public void setConnectionInfo(org.h2.engine.ConnectionInfo);
    descriptor: (Lorg/h2/engine/ConnectionInfo;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.engine.ConnectionInfo ci
         0: .line 1664
            aload 0 /* this */
            aload 1 /* ci */
            putfield org.h2.engine.Session.connectionInfo:Lorg/h2/engine/ConnectionInfo;
         1: .line 1665
            return
        end local 1 // org.h2.engine.ConnectionInfo ci
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/engine/Session;
            0    2     1    ci  Lorg/h2/engine/ConnectionInfo;
    MethodParameters:
      Name  Flags
      ci    

  public org.h2.value.Value getTransactionId();
    descriptor: ()Lorg/h2/value/Value;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1668
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getStore:()Lorg/h2/mvstore/db/MVTableEngine$Store;
            ifnull 4
         1: .line 1669
            aload 0 /* this */
            getfield org.h2.engine.Session.transaction:Lorg/h2/mvstore/tx/Transaction;
            ifnull 2
            aload 0 /* this */
            getfield org.h2.engine.Session.transaction:Lorg/h2/mvstore/tx/Transaction;
            invokevirtual org.h2.mvstore.tx.Transaction.hasChanges:()Z
            ifne 3
         2: .line 1670
      StackMap locals:
      StackMap stack:
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            areturn
         3: .line 1672
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.getTransaction:()Lorg/h2/mvstore/tx/Transaction;
            invokevirtual org.h2.mvstore.tx.Transaction.getSequenceNum:()J
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            invokestatic org.h2.value.ValueString.get:(Ljava/lang/String;)Lorg/h2/value/Value;
            areturn
         4: .line 1674
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.isPersistent:()Z
            ifne 6
         5: .line 1675
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            areturn
         6: .line 1677
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.undoLog:Lorg/h2/engine/UndoLog;
            ifnull 7
            aload 0 /* this */
            getfield org.h2.engine.Session.undoLog:Lorg/h2/engine/UndoLog;
            invokevirtual org.h2.engine.UndoLog.size:()I
            ifne 8
         7: .line 1678
      StackMap locals:
      StackMap stack:
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            areturn
         8: .line 1680
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.h2.engine.Session.firstUncommittedLog:I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.h2.engine.Session.firstUncommittedPos:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         9: .line 1681
            ldc "-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.h2.engine.Session.id:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        10: .line 1680
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.h2.value.ValueString.get:(Ljava/lang/String;)Lorg/h2/value/Value;
            areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/h2/engine/Session;

  public int nextObjectId();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1690
            aload 0 /* this */
            dup
            getfield org.h2.engine.Session.objectId:I
            dup_x1
            iconst_1
            iadd
            putfield org.h2.engine.Session.objectId:I
            ireturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public boolean isRedoLogBinaryEnabled();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1694
            aload 0 /* this */
            getfield org.h2.engine.Session.redoLogBinary:Z
            ireturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public org.h2.mvstore.tx.Transaction getTransaction();
    descriptor: ()Lorg/h2/mvstore/tx/Transaction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1703
            aload 0 /* this */
            getfield org.h2.engine.Session.transaction:Lorg/h2/mvstore/tx/Transaction;
            ifnonnull 9
         1: .line 1704
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getStore:()Lorg/h2/mvstore/db/MVTableEngine$Store;
            astore 1 /* store */
        start local 1 // org.h2.mvstore.db.MVTableEngine$Store store
         2: .line 1705
            aload 1 /* store */
            ifnull 8
         3: .line 1706
            aload 1 /* store */
            invokevirtual org.h2.mvstore.db.MVTableEngine$Store.getMvStore:()Lorg/h2/mvstore/MVStore;
            invokevirtual org.h2.mvstore.MVStore.isClosed:()Z
            ifeq 7
         4: .line 1707
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getBackgroundException:()Ljava/lang/Throwable;
            astore 2 /* backgroundException */
        start local 2 // java.lang.Throwable backgroundException
         5: .line 1708
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.shutdownImmediately:()V
         6: .line 1709
            ldc 90098
            aload 2 /* backgroundException */
            iconst_0
            anewarray java.lang.String
            invokestatic org.h2.message.DbException.get:(ILjava/lang/Throwable;[Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 2 // java.lang.Throwable backgroundException
         7: .line 1711
      StackMap locals: org.h2.mvstore.db.MVTableEngine$Store
      StackMap stack:
            aload 0 /* this */
            aload 1 /* store */
            invokevirtual org.h2.mvstore.db.MVTableEngine$Store.getTransactionStore:()Lorg/h2/mvstore/tx/TransactionStore;
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.engine.Session.lockTimeout:I
            aload 0 /* this */
            getfield org.h2.engine.Session.id:I
            invokevirtual org.h2.mvstore.tx.TransactionStore.begin:(Lorg/h2/mvstore/tx/TransactionStore$RollbackListener;II)Lorg/h2/mvstore/tx/Transaction;
            putfield org.h2.engine.Session.transaction:Lorg/h2/mvstore/tx/Transaction;
         8: .line 1713
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc -1
            putfield org.h2.engine.Session.startStatement:J
        end local 1 // org.h2.mvstore.db.MVTableEngine$Store store
         9: .line 1715
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.transaction:Lorg/h2/mvstore/tx/Transaction;
            areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   10     0                 this  Lorg/h2/engine/Session;
            2    9     1                store  Lorg/h2/mvstore/db/MVTableEngine$Store;
            5    7     2  backgroundException  Ljava/lang/Throwable;

  private long getStatementSavepoint();
    descriptor: ()J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1719
            aload 0 /* this */
            getfield org.h2.engine.Session.startStatement:J
            ldc -1
            lcmp
            ifne 2
         1: .line 1720
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.getTransaction:()Lorg/h2/mvstore/tx/Transaction;
            invokevirtual org.h2.mvstore.tx.Transaction.setSavepoint:()J
            putfield org.h2.engine.Session.startStatement:J
         2: .line 1722
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.startStatement:J
            lreturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;

  public void startStatementWithinTransaction();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1729
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.getTransaction:()Lorg/h2/mvstore/tx/Transaction;
            astore 1 /* transaction */
        start local 1 // org.h2.mvstore.tx.Transaction transaction
         1: .line 1730
            aload 1 /* transaction */
            ifnull 3
         2: .line 1731
            aload 1 /* transaction */
            invokevirtual org.h2.mvstore.tx.Transaction.markStatementStart:()V
         3: .line 1733
      StackMap locals: org.h2.mvstore.tx.Transaction
      StackMap stack:
            aload 0 /* this */
            ldc -1
            putfield org.h2.engine.Session.startStatement:J
         4: .line 1734
            return
        end local 1 // org.h2.mvstore.tx.Transaction transaction
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lorg/h2/engine/Session;
            1    5     1  transaction  Lorg/h2/mvstore/tx/Transaction;

  public void endStatement();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1741
            aload 0 /* this */
            getfield org.h2.engine.Session.transaction:Lorg/h2/mvstore/tx/Transaction;
            ifnull 2
         1: .line 1742
            aload 0 /* this */
            getfield org.h2.engine.Session.transaction:Lorg/h2/mvstore/tx/Transaction;
            invokevirtual org.h2.mvstore.tx.Transaction.markStatementEnd:()V
         2: .line 1744
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc -1
            putfield org.h2.engine.Session.startStatement:J
         3: .line 1745
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.closeTemporaryResults:()V
         4: .line 1746
            return
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/h2/engine/Session;

  public void clearViewIndexCache();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1752
            aload 0 /* this */
            aconst_null
            putfield org.h2.engine.Session.viewIndexCache:Lorg/h2/util/SmallLRUCache;
         1: .line 1753
            return
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/engine/Session;

  public void addTemporaryLob(org.h2.value.Value);
    descriptor: (Lorg/h2/value/Value;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.value.Value v
         0: .line 1757
            aload 1 /* v */
            invokevirtual org.h2.value.Value.getValueType:()I
            invokestatic org.h2.value.DataType.isLargeObject:(I)Z
            ifne 2
         1: .line 1758
            return
         2: .line 1760
      StackMap locals:
      StackMap stack:
            aload 1 /* v */
            invokevirtual org.h2.value.Value.getTableId:()I
            bipush -3
            if_icmpeq 4
         3: .line 1761
            aload 1 /* v */
            invokevirtual org.h2.value.Value.getTableId:()I
            bipush -2
            if_icmpne 8
         4: .line 1762
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.temporaryResultLobs:Ljava/util/LinkedList;
            ifnonnull 6
         5: .line 1763
            aload 0 /* this */
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            putfield org.h2.engine.Session.temporaryResultLobs:Ljava/util/LinkedList;
         6: .line 1765
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.temporaryResultLobs:Ljava/util/LinkedList;
            new org.h2.engine.Session$TimeoutValue
            dup
            aload 1 /* v */
            invokespecial org.h2.engine.Session$TimeoutValue.<init>:(Lorg/h2/value/Value;)V
            invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
            pop
         7: .line 1766
            goto 11
         8: .line 1767
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.temporaryLobs:Ljava/util/ArrayList;
            ifnonnull 10
         9: .line 1768
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.h2.engine.Session.temporaryLobs:Ljava/util/ArrayList;
        10: .line 1770
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.temporaryLobs:Ljava/util/ArrayList;
            aload 1 /* v */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        11: .line 1772
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.h2.value.Value v
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/h2/engine/Session;
            0   12     1     v  Lorg/h2/value/Value;
    MethodParameters:
      Name  Flags
      v     

  public boolean isRemote();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1776
            iconst_0
            ireturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public void markTableForAnalyze(org.h2.table.Table);
    descriptor: (Lorg/h2/table/Table;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.table.Table table
         0: .line 1785
            aload 0 /* this */
            getfield org.h2.engine.Session.tablesToAnalyze:Ljava/util/HashSet;
            ifnonnull 2
         1: .line 1786
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.h2.engine.Session.tablesToAnalyze:Ljava/util/HashSet;
         2: .line 1788
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.engine.Session.tablesToAnalyze:Ljava/util/HashSet;
            aload 1 /* table */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
         3: .line 1789
            return
        end local 1 // org.h2.table.Table table
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/h2/engine/Session;
            0    4     1  table  Lorg/h2/table/Table;
    MethodParameters:
       Name  Flags
      table  

  public org.h2.engine.Session$State getState();
    descriptor: ()Lorg/h2/engine/Session$State;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1792
            aload 0 /* this */
            invokevirtual org.h2.engine.Session.getBlockingSessionId:()I
            ifeq 1
            getstatic org.h2.engine.Session$State.BLOCKED:Lorg/h2/engine/Session$State;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield org.h2.engine.Session.state:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast org.h2.engine.Session$State
      StackMap locals:
      StackMap stack: org.h2.engine.Session$State
         2: areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;

  public int getBlockingSessionId();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1796
            aload 0 /* this */
            getfield org.h2.engine.Session.transaction:Lorg/h2/mvstore/tx/Transaction;
            ifnonnull 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield org.h2.engine.Session.transaction:Lorg/h2/mvstore/tx/Transaction;
            invokevirtual org.h2.mvstore.tx.Transaction.getBlockerId:()I
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/engine/Session;

  public void onRollback(org.h2.mvstore.MVMap<java.lang.Object, org.h2.value.VersionedValue>, , org.h2.value.VersionedValue, org.h2.value.VersionedValue);
    descriptor: (Lorg/h2/mvstore/MVMap;Ljava/lang/Object;Lorg/h2/value/VersionedValue;Lorg/h2/value/VersionedValue;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=14, args_size=5
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.mvstore.MVMap map
        start local 2 // java.lang.Object key
        start local 3 // org.h2.value.VersionedValue existingValue
        start local 4 // org.h2.value.VersionedValue restoredValue
         0: .line 1805
            aload 0 /* this */
            getfield org.h2.engine.Session.database:Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getStore:()Lorg/h2/mvstore/db/MVTableEngine$Store;
            astore 5 /* store */
        start local 5 // org.h2.mvstore.db.MVTableEngine$Store store
         1: .line 1806
            aload 5 /* store */
            ifnull 27
         2: .line 1807
            aload 5 /* store */
            aload 1 /* map */
            invokevirtual org.h2.mvstore.MVMap.getName:()Ljava/lang/String;
            invokevirtual org.h2.mvstore.db.MVTableEngine$Store.getTable:(Ljava/lang/String;)Lorg/h2/mvstore/db/MVTable;
            astore 6 /* table */
        start local 6 // org.h2.mvstore.db.MVTable table
         3: .line 1808
            aload 6 /* table */
            ifnull 27
         4: .line 1809
            aload 2 /* key */
            checkcast org.h2.value.ValueLong
            invokevirtual org.h2.value.ValueLong.getLong:()J
            lstore 7 /* recKey */
        start local 7 // long recKey
         5: .line 1810
            aload 6 /* table */
            lload 7 /* recKey */
            aload 3 /* existingValue */
            invokestatic org.h2.engine.Session.getRowFromVersionedValue:(Lorg/h2/mvstore/db/MVTable;JLorg/h2/value/VersionedValue;)Lorg/h2/result/Row;
            astore 9 /* oldRow */
        start local 9 // org.h2.result.Row oldRow
         6: .line 1811
            aload 6 /* table */
            lload 7 /* recKey */
            aload 4 /* restoredValue */
            invokestatic org.h2.engine.Session.getRowFromVersionedValue:(Lorg/h2/mvstore/db/MVTable;JLorg/h2/value/VersionedValue;)Lorg/h2/result/Row;
            astore 10 /* newRow */
        start local 10 // org.h2.result.Row newRow
         7: .line 1812
            aload 6 /* table */
            aload 0 /* this */
            aload 9 /* oldRow */
            aload 10 /* newRow */
            iconst_1
            invokevirtual org.h2.mvstore.db.MVTable.fireAfterRow:(Lorg/h2/engine/Session;Lorg/h2/result/Row;Lorg/h2/result/Row;Z)V
         8: .line 1814
            aload 6 /* table */
            invokevirtual org.h2.mvstore.db.MVTable.getContainsLargeObject:()Z
            ifeq 27
         9: .line 1815
            aload 9 /* oldRow */
            ifnull 18
        10: .line 1816
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        11: aload 9 /* oldRow */
            invokeinterface org.h2.result.Row.getColumnCount:()I
            istore 12 /* len */
        start local 12 // int len
        12: goto 17
        13: .line 1817
      StackMap locals: org.h2.engine.Session org.h2.mvstore.MVMap java.lang.Object org.h2.value.VersionedValue org.h2.value.VersionedValue org.h2.mvstore.db.MVTableEngine$Store org.h2.mvstore.db.MVTable long org.h2.result.Row org.h2.result.Row int int
      StackMap stack:
            aload 9 /* oldRow */
            iload 11 /* i */
            invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
            astore 13 /* v */
        start local 13 // org.h2.value.Value v
        14: .line 1818
            aload 13 /* v */
            invokevirtual org.h2.value.Value.isLinkedToTable:()Z
            ifeq 16
        15: .line 1819
            aload 0 /* this */
            aload 13 /* v */
            invokevirtual org.h2.engine.Session.removeAtCommit:(Lorg/h2/value/Value;)V
        end local 13 // org.h2.value.Value v
        16: .line 1816
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 11 /* i */
            iload 12 /* len */
            if_icmplt 13
        end local 12 // int len
        end local 11 // int i
        18: .line 1823
      StackMap locals:
      StackMap stack:
            aload 10 /* newRow */
            ifnull 27
        19: .line 1824
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        20: aload 10 /* newRow */
            invokeinterface org.h2.result.Row.getColumnCount:()I
            istore 12 /* len */
        start local 12 // int len
        21: goto 26
        22: .line 1825
      StackMap locals: int int
      StackMap stack:
            aload 10 /* newRow */
            iload 11 /* i */
            invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
            astore 13 /* v */
        start local 13 // org.h2.value.Value v
        23: .line 1826
            aload 13 /* v */
            invokevirtual org.h2.value.Value.isLinkedToTable:()Z
            ifeq 25
        24: .line 1827
            aload 0 /* this */
            aload 13 /* v */
            invokevirtual org.h2.engine.Session.removeAtCommitStop:(Lorg/h2/value/Value;)V
        end local 13 // org.h2.value.Value v
        25: .line 1824
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 11 /* i */
            iload 12 /* len */
            if_icmplt 22
        end local 12 // int len
        end local 11 // int i
        end local 10 // org.h2.result.Row newRow
        end local 9 // org.h2.result.Row oldRow
        end local 7 // long recKey
        end local 6 // org.h2.mvstore.db.MVTable table
        27: .line 1834
      StackMap locals: org.h2.engine.Session org.h2.mvstore.MVMap java.lang.Object org.h2.value.VersionedValue org.h2.value.VersionedValue org.h2.mvstore.db.MVTableEngine$Store
      StackMap stack:
            return
        end local 5 // org.h2.mvstore.db.MVTableEngine$Store store
        end local 4 // org.h2.value.VersionedValue restoredValue
        end local 3 // org.h2.value.VersionedValue existingValue
        end local 2 // java.lang.Object key
        end local 1 // org.h2.mvstore.MVMap map
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   28     0           this  Lorg/h2/engine/Session;
            0   28     1            map  Lorg/h2/mvstore/MVMap<Ljava/lang/Object;Lorg/h2/value/VersionedValue;>;
            0   28     2            key  Ljava/lang/Object;
            0   28     3  existingValue  Lorg/h2/value/VersionedValue;
            0   28     4  restoredValue  Lorg/h2/value/VersionedValue;
            1   28     5          store  Lorg/h2/mvstore/db/MVTableEngine$Store;
            3   27     6          table  Lorg/h2/mvstore/db/MVTable;
            5   27     7         recKey  J
            6   27     9         oldRow  Lorg/h2/result/Row;
            7   27    10         newRow  Lorg/h2/result/Row;
           11   18    11              i  I
           12   18    12            len  I
           14   16    13              v  Lorg/h2/value/Value;
           20   27    11              i  I
           21   27    12            len  I
           23   25    13              v  Lorg/h2/value/Value;
    Signature: (Lorg/h2/mvstore/MVMap<Ljava/lang/Object;Lorg/h2/value/VersionedValue;>;Ljava/lang/Object;Lorg/h2/value/VersionedValue;Lorg/h2/value/VersionedValue;)V
    MethodParameters:
               Name  Flags
      map            
      key            
      existingValue  
      restoredValue  

  private static org.h2.result.Row getRowFromVersionedValue(org.h2.mvstore.db.MVTable, long, org.h2.value.VersionedValue);
    descriptor: (Lorg/h2/mvstore/db/MVTable;JLorg/h2/value/VersionedValue;)Lorg/h2/result/Row;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // org.h2.mvstore.db.MVTable table
        start local 1 // long recKey
        start local 3 // org.h2.value.VersionedValue versionedValue
         0: .line 1838
            aload 3 /* versionedValue */
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 3 /* versionedValue */
            invokevirtual org.h2.value.VersionedValue.getCurrentValue:()Ljava/lang/Object;
      StackMap locals:
      StackMap stack: java.lang.Object
         2: astore 4 /* value */
        start local 4 // java.lang.Object value
         3: .line 1839
            aload 4 /* value */
            ifnonnull 5
         4: .line 1840
            aconst_null
            areturn
         5: .line 1843
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 4 /* value */
            instanceof org.h2.result.Row
            ifeq 8
         6: .line 1844
            aload 4 /* value */
            checkcast org.h2.result.Row
            astore 5 /* result */
        start local 5 // org.h2.result.Row result
         7: .line 1845
            getstatic org.h2.engine.Session.$assertionsDisabled:Z
            ifne 11
            aload 5 /* result */
            invokeinterface org.h2.result.Row.getKey:()J
            lload 1 /* recKey */
            lcmp
            ifeq 11
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            aload 5 /* result */
            invokeinterface org.h2.result.Row.getKey:()J
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " != "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 1 /* recKey */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 5 // org.h2.result.Row result
         8: .line 1847
      StackMap locals:
      StackMap stack:
            aload 4 /* value */
            checkcast org.h2.value.ValueArray
            astore 6 /* array */
        start local 6 // org.h2.value.ValueArray array
         9: .line 1848
            aload 0 /* table */
            aload 6 /* array */
            invokevirtual org.h2.value.ValueArray.getList:()[Lorg/h2/value/Value;
            iconst_0
            invokevirtual org.h2.mvstore.db.MVTable.createRow:([Lorg/h2/value/Value;I)Lorg/h2/result/Row;
            astore 5 /* result */
        start local 5 // org.h2.result.Row result
        10: .line 1849
            aload 5 /* result */
            lload 1 /* recKey */
            invokeinterface org.h2.result.Row.setKey:(J)V
        end local 6 // org.h2.value.ValueArray array
        11: .line 1851
      StackMap locals: org.h2.result.Row
      StackMap stack:
            aload 5 /* result */
            areturn
        end local 5 // org.h2.result.Row result
        end local 4 // java.lang.Object value
        end local 3 // org.h2.value.VersionedValue versionedValue
        end local 1 // long recKey
        end local 0 // org.h2.mvstore.db.MVTable table
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0           table  Lorg/h2/mvstore/db/MVTable;
            0   12     1          recKey  J
            0   12     3  versionedValue  Lorg/h2/value/VersionedValue;
            3   12     4           value  Ljava/lang/Object;
            7    8     5          result  Lorg/h2/result/Row;
           10   12     5          result  Lorg/h2/result/Row;
            9   11     6           array  Lorg/h2/value/ValueArray;
    MethodParameters:
                Name  Flags
      table           
      recKey          
      versionedValue  

  public org.h2.util.ColumnNamerConfiguration getColumnNamerConfiguration();
    descriptor: ()Lorg/h2/util/ColumnNamerConfiguration;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1894
            aload 0 /* this */
            getfield org.h2.engine.Session.columnNamerConfiguration:Lorg/h2/util/ColumnNamerConfiguration;
            areturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public void setColumnNamerConfiguration(org.h2.util.ColumnNamerConfiguration);
    descriptor: (Lorg/h2/util/ColumnNamerConfiguration;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.engine.Session this
        start local 1 // org.h2.util.ColumnNamerConfiguration columnNamerConfiguration
         0: .line 1898
            aload 0 /* this */
            aload 1 /* columnNamerConfiguration */
            putfield org.h2.engine.Session.columnNamerConfiguration:Lorg/h2/util/ColumnNamerConfiguration;
         1: .line 1899
            return
        end local 1 // org.h2.util.ColumnNamerConfiguration columnNamerConfiguration
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    2     0                      this  Lorg/h2/engine/Session;
            0    2     1  columnNamerConfiguration  Lorg/h2/util/ColumnNamerConfiguration;
    MethodParameters:
                          Name  Flags
      columnNamerConfiguration  

  public boolean isSupportsGeneratedKeys();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.engine.Session this
         0: .line 1903
            iconst_1
            ireturn
        end local 0 // org.h2.engine.Session this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/engine/Session;

  public void readSessionState();
    descriptor: ()V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial org.h2.engine.SessionWithState.readSessionState:()V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "Session.java"
NestMembers:
  org.h2.engine.Session$Savepoint  org.h2.engine.Session$State  org.h2.engine.Session$TimeoutValue
InnerClasses:
  public Savepoint = org.h2.engine.Session$Savepoint of org.h2.engine.Session
  public final State = org.h2.engine.Session$State of org.h2.engine.Session
  public TimeoutValue = org.h2.engine.Session$TimeoutValue of org.h2.engine.Session
  public Store = org.h2.mvstore.db.MVTableEngine$Store of org.h2.mvstore.db.MVTableEngine
  public abstract RollbackListener = org.h2.mvstore.tx.TransactionStore$RollbackListener of org.h2.mvstore.tx.TransactionStore