public class org.h2.table.FunctionTable extends org.h2.table.Table
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.table.FunctionTable
  super_class: org.h2.table.Table
{
  private final org.h2.expression.function.FunctionCall function;
    descriptor: Lorg/h2/expression/function/FunctionCall;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private org.h2.expression.Expression functionExpr;
    descriptor: Lorg/h2/expression/Expression;
    flags: (0x0002) ACC_PRIVATE

  private org.h2.result.ResultInterface cachedResult;
    descriptor: Lorg/h2/result/ResultInterface;
    flags: (0x0002) ACC_PRIVATE

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

  public void <init>(org.h2.schema.Schema, org.h2.engine.Session, org.h2.expression.Expression, org.h2.expression.function.FunctionCall);
    descriptor: (Lorg/h2/schema/Schema;Lorg/h2/engine/Session;Lorg/h2/expression/Expression;Lorg/h2/expression/function/FunctionCall;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=14, args_size=5
        start local 0 // org.h2.table.FunctionTable this
        start local 1 // org.h2.schema.Schema schema
        start local 2 // org.h2.engine.Session session
        start local 3 // org.h2.expression.Expression functionExpr
        start local 4 // org.h2.expression.function.FunctionCall function
         0: .line 39
            aload 0 /* this */
            aload 1 /* schema */
            iconst_0
            aload 4 /* function */
            invokeinterface org.h2.expression.function.FunctionCall.getName:()Ljava/lang/String;
            iconst_0
            iconst_1
            invokespecial org.h2.table.Table.<init>:(Lorg/h2/schema/Schema;ILjava/lang/String;ZZ)V
         1: .line 40
            aload 0 /* this */
            aload 3 /* functionExpr */
            putfield org.h2.table.FunctionTable.functionExpr:Lorg/h2/expression/Expression;
         2: .line 41
            aload 0 /* this */
            aload 4 /* function */
            putfield org.h2.table.FunctionTable.function:Lorg/h2/expression/function/FunctionCall;
         3: .line 42
            aload 4 /* function */
            instanceof org.h2.expression.function.TableFunction
            ifeq 6
         4: .line 43
            aload 0 /* this */
            aload 4 /* function */
            checkcast org.h2.expression.function.TableFunction
            invokevirtual org.h2.expression.function.TableFunction.getRowCount:()J
            putfield org.h2.table.FunctionTable.rowCount:J
         5: .line 44
            goto 7
         6: .line 45
      StackMap locals: org.h2.table.FunctionTable org.h2.schema.Schema org.h2.engine.Session org.h2.expression.Expression org.h2.expression.function.FunctionCall
      StackMap stack:
            aload 0 /* this */
            ldc 9223372036854775807
            putfield org.h2.table.FunctionTable.rowCount:J
         7: .line 47
      StackMap locals:
      StackMap stack:
            aload 4 /* function */
            aload 2 /* session */
            invokeinterface org.h2.expression.function.FunctionCall.optimize:(Lorg/h2/engine/Session;)Lorg/h2/expression/Expression;
            pop
         8: .line 48
            aload 4 /* function */
            invokeinterface org.h2.expression.function.FunctionCall.getValueType:()I
            istore 5 /* type */
        start local 5 // int type
         9: .line 49
            iload 5 /* type */
            bipush 18
            if_icmpeq 12
        10: .line 51
            ldc 90000
            aload 4 /* function */
            invokeinterface org.h2.expression.function.FunctionCall.getName:()Ljava/lang/String;
        11: .line 50
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
        12: .line 53
      StackMap locals: int
      StackMap stack:
            aload 4 /* function */
            invokeinterface org.h2.expression.function.FunctionCall.getArgs:()[Lorg/h2/expression/Expression;
            astore 6 /* args */
        start local 6 // org.h2.expression.Expression[] args
        13: .line 54
            aload 6 /* args */
            arraylength
            istore 7 /* numParams */
        start local 7 // int numParams
        14: .line 55
            iload 7 /* numParams */
            anewarray org.h2.expression.Expression
            astore 8 /* columnListArgs */
        start local 8 // org.h2.expression.Expression[] columnListArgs
        15: .line 56
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        16: goto 20
        17: .line 57
      StackMap locals: org.h2.table.FunctionTable org.h2.schema.Schema org.h2.engine.Session org.h2.expression.Expression org.h2.expression.function.FunctionCall int org.h2.expression.Expression[] int org.h2.expression.Expression[] int
      StackMap stack:
            aload 6 /* args */
            iload 9 /* i */
            aload 6 /* args */
            iload 9 /* i */
            aaload
            aload 2 /* session */
            invokevirtual org.h2.expression.Expression.optimize:(Lorg/h2/engine/Session;)Lorg/h2/expression/Expression;
            aastore
        18: .line 58
            aload 8 /* columnListArgs */
            iload 9 /* i */
            aload 6 /* args */
            iload 9 /* i */
            aaload
            aastore
        19: .line 56
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 9 /* i */
            iload 7 /* numParams */
            if_icmplt 17
        end local 9 // int i
        21: .line 60
            aload 4 /* function */
        22: .line 61
            aload 2 /* session */
            aload 8 /* columnListArgs */
        23: .line 60
            invokeinterface org.h2.expression.function.FunctionCall.getValueForColumnList:(Lorg/h2/engine/Session;[Lorg/h2/expression/Expression;)Lorg/h2/value/ValueResultSet;
            astore 9 /* template */
        start local 9 // org.h2.value.ValueResultSet template
        24: .line 62
            aload 9 /* template */
            ifnonnull 27
        25: .line 64
            ldc 90000
            aload 4 /* function */
            invokeinterface org.h2.expression.function.FunctionCall.getName:()Ljava/lang/String;
        26: .line 63
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
        27: .line 66
      StackMap locals: org.h2.table.FunctionTable org.h2.schema.Schema org.h2.engine.Session org.h2.expression.Expression org.h2.expression.function.FunctionCall int org.h2.expression.Expression[] int org.h2.expression.Expression[] org.h2.value.ValueResultSet
      StackMap stack:
            aload 9 /* template */
            invokevirtual org.h2.value.ValueResultSet.getResult:()Lorg/h2/result/ResultInterface;
            astore 10 /* result */
        start local 10 // org.h2.result.ResultInterface result
        28: .line 67
            aload 10 /* result */
            invokeinterface org.h2.result.ResultInterface.getVisibleColumnCount:()I
            istore 11 /* columnCount */
        start local 11 // int columnCount
        29: .line 68
            iload 11 /* columnCount */
            anewarray org.h2.table.Column
            astore 12 /* cols */
        start local 12 // org.h2.table.Column[] cols
        30: .line 69
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        31: goto 34
        32: .line 70
      StackMap locals: org.h2.table.FunctionTable org.h2.schema.Schema org.h2.engine.Session org.h2.expression.Expression org.h2.expression.function.FunctionCall int org.h2.expression.Expression[] int org.h2.expression.Expression[] org.h2.value.ValueResultSet org.h2.result.ResultInterface int org.h2.table.Column[] int
      StackMap stack:
            aload 12 /* cols */
            iload 13 /* i */
            new org.h2.table.Column
            dup
            aload 10 /* result */
            iload 13 /* i */
            invokeinterface org.h2.result.ResultInterface.getColumnName:(I)Ljava/lang/String;
            aload 10 /* result */
            iload 13 /* i */
            invokeinterface org.h2.result.ResultInterface.getColumnType:(I)Lorg/h2/value/TypeInfo;
            invokespecial org.h2.table.Column.<init>:(Ljava/lang/String;Lorg/h2/value/TypeInfo;)V
            aastore
        33: .line 69
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        34: iload 13 /* i */
            iload 11 /* columnCount */
            if_icmplt 32
        end local 13 // int i
        35: .line 72
            aload 0 /* this */
            aload 12 /* cols */
            invokevirtual org.h2.table.FunctionTable.setColumns:([Lorg/h2/table/Column;)V
        36: .line 73
            return
        end local 12 // org.h2.table.Column[] cols
        end local 11 // int columnCount
        end local 10 // org.h2.result.ResultInterface result
        end local 9 // org.h2.value.ValueResultSet template
        end local 8 // org.h2.expression.Expression[] columnListArgs
        end local 7 // int numParams
        end local 6 // org.h2.expression.Expression[] args
        end local 5 // int type
        end local 4 // org.h2.expression.function.FunctionCall function
        end local 3 // org.h2.expression.Expression functionExpr
        end local 2 // org.h2.engine.Session session
        end local 1 // org.h2.schema.Schema schema
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   37     0            this  Lorg/h2/table/FunctionTable;
            0   37     1          schema  Lorg/h2/schema/Schema;
            0   37     2         session  Lorg/h2/engine/Session;
            0   37     3    functionExpr  Lorg/h2/expression/Expression;
            0   37     4        function  Lorg/h2/expression/function/FunctionCall;
            9   37     5            type  I
           13   37     6            args  [Lorg/h2/expression/Expression;
           14   37     7       numParams  I
           15   37     8  columnListArgs  [Lorg/h2/expression/Expression;
           16   21     9               i  I
           24   37     9        template  Lorg/h2/value/ValueResultSet;
           28   37    10          result  Lorg/h2/result/ResultInterface;
           29   37    11     columnCount  I
           30   37    12            cols  [Lorg/h2/table/Column;
           31   35    13               i  I
    MethodParameters:
              Name  Flags
      schema        
      session       
      functionExpr  
      function      

  public boolean lock(org.h2.engine.Session, boolean, boolean);
    descriptor: (Lorg/h2/engine/Session;ZZ)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=4
        start local 0 // org.h2.table.FunctionTable this
        start local 1 // org.h2.engine.Session session
        start local 2 // boolean exclusive
        start local 3 // boolean forceLockEvenInMvcc
         0: .line 78
            iconst_0
            ireturn
        end local 3 // boolean forceLockEvenInMvcc
        end local 2 // boolean exclusive
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    1     0                 this  Lorg/h2/table/FunctionTable;
            0    1     1              session  Lorg/h2/engine/Session;
            0    1     2            exclusive  Z
            0    1     3  forceLockEvenInMvcc  Z
    MethodParameters:
                     Name  Flags
      session              
      exclusive            
      forceLockEvenInMvcc  

  public void close(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // org.h2.table.FunctionTable this
        start local 1 // org.h2.engine.Session session
         0: .line 84
            return
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/h2/table/FunctionTable;
            0    1     1  session  Lorg/h2/engine/Session;
    MethodParameters:
         Name  Flags
      session  

  public void unlock(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // org.h2.table.FunctionTable this
        start local 1 // org.h2.engine.Session s
         0: .line 89
            return
        end local 1 // org.h2.engine.Session s
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/table/FunctionTable;
            0    1     1     s  Lorg/h2/engine/Session;
    MethodParameters:
      Name  Flags
      s     

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

  public org.h2.index.Index addIndex(org.h2.engine.Session, java.lang.String, int, org.h2.table.IndexColumn[], org.h2.index.IndexType, boolean, java.lang.String);
    descriptor: (Lorg/h2/engine/Session;Ljava/lang/String;I[Lorg/h2/table/IndexColumn;Lorg/h2/index/IndexType;ZLjava/lang/String;)Lorg/h2/index/Index;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=8, args_size=8
        start local 0 // org.h2.table.FunctionTable this
        start local 1 // org.h2.engine.Session session
        start local 2 // java.lang.String indexName
        start local 3 // int indexId
        start local 4 // org.h2.table.IndexColumn[] cols
        start local 5 // org.h2.index.IndexType indexType
        start local 6 // boolean create
        start local 7 // java.lang.String indexComment
         0: .line 100
            ldc "ALIAS"
            invokestatic org.h2.message.DbException.getUnsupportedException:(Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 7 // java.lang.String indexComment
        end local 6 // boolean create
        end local 5 // org.h2.index.IndexType indexType
        end local 4 // org.h2.table.IndexColumn[] cols
        end local 3 // int indexId
        end local 2 // java.lang.String indexName
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/h2/table/FunctionTable;
            0    1     1       session  Lorg/h2/engine/Session;
            0    1     2     indexName  Ljava/lang/String;
            0    1     3       indexId  I
            0    1     4          cols  [Lorg/h2/table/IndexColumn;
            0    1     5     indexType  Lorg/h2/index/IndexType;
            0    1     6        create  Z
            0    1     7  indexComment  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      session       
      indexName     
      indexId       
      cols          
      indexType     
      create        
      indexComment  

  public void removeRow(org.h2.engine.Session, org.h2.result.Row);
    descriptor: (Lorg/h2/engine/Session;Lorg/h2/result/Row;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.h2.table.FunctionTable this
        start local 1 // org.h2.engine.Session session
        start local 2 // org.h2.result.Row row
         0: .line 105
            ldc "ALIAS"
            invokestatic org.h2.message.DbException.getUnsupportedException:(Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 2 // org.h2.result.Row row
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/h2/table/FunctionTable;
            0    1     1  session  Lorg/h2/engine/Session;
            0    1     2      row  Lorg/h2/result/Row;
    MethodParameters:
         Name  Flags
      session  
      row      

  public void truncate(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.h2.table.FunctionTable this
        start local 1 // org.h2.engine.Session session
         0: .line 110
            ldc "ALIAS"
            invokestatic org.h2.message.DbException.getUnsupportedException:(Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/h2/table/FunctionTable;
            0    1     1  session  Lorg/h2/engine/Session;
    MethodParameters:
         Name  Flags
      session  

  public boolean canDrop();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.table.FunctionTable this
         0: .line 115
            aload 0 /* this */
            invokevirtual org.h2.table.FunctionTable.toString:()Ljava/lang/String;
            invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/table/FunctionTable;

  public void addRow(org.h2.engine.Session, org.h2.result.Row);
    descriptor: (Lorg/h2/engine/Session;Lorg/h2/result/Row;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.h2.table.FunctionTable this
        start local 1 // org.h2.engine.Session session
        start local 2 // org.h2.result.Row row
         0: .line 120
            ldc "ALIAS"
            invokestatic org.h2.message.DbException.getUnsupportedException:(Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 2 // org.h2.result.Row row
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/h2/table/FunctionTable;
            0    1     1  session  Lorg/h2/engine/Session;
            0    1     2      row  Lorg/h2/result/Row;
    MethodParameters:
         Name  Flags
      session  
      row      

  public void checkSupportAlter();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.table.FunctionTable this
         0: .line 125
            ldc "ALIAS"
            invokestatic org.h2.message.DbException.getUnsupportedException:(Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/table/FunctionTable;

  public org.h2.table.TableType getTableType();
    descriptor: ()Lorg/h2/table/TableType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.table.FunctionTable this
         0: .line 130
            aconst_null
            areturn
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/table/FunctionTable;

  public org.h2.index.Index getScanIndex(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)Lorg/h2/index/Index;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.h2.table.FunctionTable this
        start local 1 // org.h2.engine.Session session
         0: .line 135
            new org.h2.index.FunctionIndex
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.table.FunctionTable.columns:[Lorg/h2/table/Column;
            invokestatic org.h2.table.IndexColumn.wrap:([Lorg/h2/table/Column;)[Lorg/h2/table/IndexColumn;
            invokespecial org.h2.index.FunctionIndex.<init>:(Lorg/h2/table/FunctionTable;[Lorg/h2/table/IndexColumn;)V
            areturn
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/h2/table/FunctionTable;
            0    1     1  session  Lorg/h2/engine/Session;
    MethodParameters:
         Name  Flags
      session  

  public java.util.ArrayList<org.h2.index.Index> getIndexes();
    descriptor: ()Ljava/util/ArrayList;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.table.FunctionTable this
         0: .line 140
            aconst_null
            areturn
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/table/FunctionTable;
    Signature: ()Ljava/util/ArrayList<Lorg/h2/index/Index;>;

  public boolean canGetRowCount();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.h2.table.FunctionTable this
         0: .line 145
            aload 0 /* this */
            getfield org.h2.table.FunctionTable.rowCount:J
            ldc 9223372036854775807
            lcmp
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/table/FunctionTable;

  public long getRowCount(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.table.FunctionTable this
        start local 1 // org.h2.engine.Session session
         0: .line 150
            aload 0 /* this */
            getfield org.h2.table.FunctionTable.rowCount:J
            lreturn
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/h2/table/FunctionTable;
            0    1     1  session  Lorg/h2/engine/Session;
    MethodParameters:
         Name  Flags
      session  

  public java.lang.String getCreateSQL();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.table.FunctionTable this
         0: .line 155
            aconst_null
            areturn
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/table/FunctionTable;

  public java.lang.String getDropSQL();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.table.FunctionTable this
         0: .line 160
            aconst_null
            areturn
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/table/FunctionTable;

  public void checkRename();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.table.FunctionTable this
         0: .line 165
            ldc "ALIAS"
            invokestatic org.h2.message.DbException.getUnsupportedException:(Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/table/FunctionTable;

  public org.h2.result.ResultInterface getResult(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)Lorg/h2/result/ResultInterface;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.h2.table.FunctionTable this
        start local 1 // org.h2.engine.Session session
         0: .line 176
            aload 0 /* this */
            aload 1 /* session */
            invokevirtual org.h2.table.FunctionTable.getValueResultSet:(Lorg/h2/engine/Session;)Lorg/h2/value/ValueResultSet;
            astore 2 /* v */
        start local 2 // org.h2.value.ValueResultSet v
         1: .line 177
            aload 2 /* v */
            ifnonnull 3
         2: .line 178
            aconst_null
            areturn
         3: .line 180
      StackMap locals: org.h2.value.ValueResultSet
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.table.FunctionTable.cachedResult:Lorg/h2/result/ResultInterface;
            ifnull 6
            aload 0 /* this */
            getfield org.h2.table.FunctionTable.cachedValue:Lorg/h2/value/Value;
            aload 2 /* v */
            if_acmpne 6
         4: .line 181
            aload 0 /* this */
            getfield org.h2.table.FunctionTable.cachedResult:Lorg/h2/result/ResultInterface;
            invokeinterface org.h2.result.ResultInterface.reset:()V
         5: .line 182
            aload 0 /* this */
            getfield org.h2.table.FunctionTable.cachedResult:Lorg/h2/result/ResultInterface;
            areturn
         6: .line 184
      StackMap locals:
      StackMap stack:
            aload 2 /* v */
            invokevirtual org.h2.value.ValueResultSet.getResult:()Lorg/h2/result/ResultInterface;
            astore 3 /* result */
        start local 3 // org.h2.result.ResultInterface result
         7: .line 185
            aload 0 /* this */
            getfield org.h2.table.FunctionTable.function:Lorg/h2/expression/function/FunctionCall;
            invokeinterface org.h2.expression.function.FunctionCall.isDeterministic:()Z
            ifeq 10
         8: .line 186
            aload 0 /* this */
            aload 3 /* result */
            putfield org.h2.table.FunctionTable.cachedResult:Lorg/h2/result/ResultInterface;
         9: .line 187
            aload 0 /* this */
            aload 2 /* v */
            putfield org.h2.table.FunctionTable.cachedValue:Lorg/h2/value/Value;
        10: .line 189
      StackMap locals: org.h2.result.ResultInterface
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // org.h2.result.ResultInterface result
        end local 2 // org.h2.value.ValueResultSet v
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lorg/h2/table/FunctionTable;
            0   11     1  session  Lorg/h2/engine/Session;
            1   11     2        v  Lorg/h2/value/ValueResultSet;
            7   11     3   result  Lorg/h2/result/ResultInterface;
    MethodParameters:
         Name  Flags
      session  

  public org.h2.result.ResultInterface getResultSet(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)Lorg/h2/result/ResultInterface;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.h2.table.FunctionTable this
        start local 1 // org.h2.engine.Session session
         0: .line 199
            aload 0 /* this */
            aload 1 /* session */
            invokevirtual org.h2.table.FunctionTable.getValueResultSet:(Lorg/h2/engine/Session;)Lorg/h2/value/ValueResultSet;
            astore 2 /* v */
        start local 2 // org.h2.value.ValueResultSet v
         1: .line 200
            aload 2 /* v */
            ifnonnull 2
            aconst_null
            goto 3
      StackMap locals: org.h2.value.ValueResultSet
      StackMap stack:
         2: aload 2 /* v */
            invokevirtual org.h2.value.ValueResultSet.getResult:()Lorg/h2/result/ResultInterface;
      StackMap locals:
      StackMap stack: org.h2.result.ResultInterface
         3: areturn
        end local 2 // org.h2.value.ValueResultSet v
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/h2/table/FunctionTable;
            0    4     1  session  Lorg/h2/engine/Session;
            1    4     2        v  Lorg/h2/value/ValueResultSet;
    MethodParameters:
         Name  Flags
      session  

  private org.h2.value.ValueResultSet getValueResultSet(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)Lorg/h2/value/ValueResultSet;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.h2.table.FunctionTable this
        start local 1 // org.h2.engine.Session session
         0: .line 204
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.table.FunctionTable.functionExpr:Lorg/h2/expression/Expression;
            aload 1 /* session */
            invokevirtual org.h2.expression.Expression.optimize:(Lorg/h2/engine/Session;)Lorg/h2/expression/Expression;
            putfield org.h2.table.FunctionTable.functionExpr:Lorg/h2/expression/Expression;
         1: .line 205
            aload 0 /* this */
            getfield org.h2.table.FunctionTable.functionExpr:Lorg/h2/expression/Expression;
            aload 1 /* session */
            invokevirtual org.h2.expression.Expression.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
            astore 2 /* v */
        start local 2 // org.h2.value.Value v
         2: .line 206
            aload 2 /* v */
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            if_acmpne 4
         3: .line 207
            aconst_null
            areturn
         4: .line 209
      StackMap locals: org.h2.value.Value
      StackMap stack:
            aload 2 /* v */
            checkcast org.h2.value.ValueResultSet
            areturn
        end local 2 // org.h2.value.Value v
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/h2/table/FunctionTable;
            0    5     1  session  Lorg/h2/engine/Session;
            2    5     2        v  Lorg/h2/value/Value;
    MethodParameters:
         Name  Flags
      session  

  public boolean isBufferResultSetToLocalTemp();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.table.FunctionTable this
         0: .line 213
            aload 0 /* this */
            getfield org.h2.table.FunctionTable.function:Lorg/h2/expression/function/FunctionCall;
            invokeinterface org.h2.expression.function.FunctionCall.isBufferResultSetToLocalTemp:()Z
            ireturn
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/table/FunctionTable;

  public long getMaxDataModificationId();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.table.FunctionTable this
         0: .line 220
            ldc 9223372036854775807
            lreturn
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/table/FunctionTable;

  public org.h2.index.Index getUniqueIndex();
    descriptor: ()Lorg/h2/index/Index;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.table.FunctionTable this
         0: .line 225
            aconst_null
            areturn
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/table/FunctionTable;

  public java.lang.String getSQL(boolean);
    descriptor: (Z)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.table.FunctionTable this
        start local 1 // boolean alwaysQuote
         0: .line 230
            aload 0 /* this */
            getfield org.h2.table.FunctionTable.function:Lorg/h2/expression/function/FunctionCall;
            iload 1 /* alwaysQuote */
            invokeinterface org.h2.expression.function.FunctionCall.getSQL:(Z)Ljava/lang/String;
            areturn
        end local 1 // boolean alwaysQuote
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/h2/table/FunctionTable;
            0    1     1  alwaysQuote  Z
    MethodParameters:
             Name  Flags
      alwaysQuote  

  public java.lang.StringBuilder getSQL(java.lang.StringBuilder, boolean);
    descriptor: (Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.h2.table.FunctionTable this
        start local 1 // java.lang.StringBuilder builder
        start local 2 // boolean alwaysQuote
         0: .line 235
            aload 1 /* builder */
            aload 0 /* this */
            getfield org.h2.table.FunctionTable.function:Lorg/h2/expression/function/FunctionCall;
            iload 2 /* alwaysQuote */
            invokeinterface org.h2.expression.function.FunctionCall.getSQL:(Z)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            areturn
        end local 2 // boolean alwaysQuote
        end local 1 // java.lang.StringBuilder builder
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/h2/table/FunctionTable;
            0    1     1      builder  Ljava/lang/StringBuilder;
            0    1     2  alwaysQuote  Z
    MethodParameters:
             Name  Flags
      builder      
      alwaysQuote  

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

  public long getDiskSpaceUsed();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.table.FunctionTable this
         0: .line 245
            lconst_0
            lreturn
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/table/FunctionTable;

  public boolean isDeterministic();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.table.FunctionTable this
         0: .line 250
            aload 0 /* this */
            getfield org.h2.table.FunctionTable.function:Lorg/h2/expression/function/FunctionCall;
            invokeinterface org.h2.expression.function.FunctionCall.isDeterministic:()Z
            ireturn
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/table/FunctionTable;

  public boolean canReference();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.table.FunctionTable this
         0: .line 255
            iconst_0
            ireturn
        end local 0 // org.h2.table.FunctionTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/table/FunctionTable;
}
SourceFile: "FunctionTable.java"