public class org.hsqldb.FunctionSQLInvoked extends org.hsqldb.Expression
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hsqldb.FunctionSQLInvoked
  super_class: org.hsqldb.Expression
{
  org.hsqldb.RoutineSchema routineSchema;
    descriptor: Lorg/hsqldb/RoutineSchema;
    flags: (0x0000) 

  org.hsqldb.Routine routine;
    descriptor: Lorg/hsqldb/Routine;
    flags: (0x0000) 

  org.hsqldb.Expression condition;
    descriptor: Lorg/hsqldb/Expression;
    flags: (0x0000) 

  void <init>(org.hsqldb.RoutineSchema);
    descriptor: (Lorg/hsqldb/RoutineSchema;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hsqldb.FunctionSQLInvoked this
        start local 1 // org.hsqldb.RoutineSchema routineSchema
         0: .line 58
            aload 0 /* this */
            aload 1 /* routineSchema */
            invokevirtual org.hsqldb.RoutineSchema.isAggregate:()Z
            ifeq 1
            bipush 98
            goto 2
         1: .line 59
      StackMap locals:
      StackMap stack: uninitialized-this
            bipush 27
      StackMap locals: uninitialized-this org.hsqldb.RoutineSchema
      StackMap stack: uninitialized-this int
         2: invokespecial org.hsqldb.Expression.<init>:(I)V
         3: .line 54
            aload 0 /* this */
            getstatic org.hsqldb.Expression.EXPR_TRUE:Lorg/hsqldb/Expression;
            putfield org.hsqldb.FunctionSQLInvoked.condition:Lorg/hsqldb/Expression;
         4: .line 61
            aload 0 /* this */
            aload 1 /* routineSchema */
            putfield org.hsqldb.FunctionSQLInvoked.routineSchema:Lorg/hsqldb/RoutineSchema;
         5: .line 62
            return
        end local 1 // org.hsqldb.RoutineSchema routineSchema
        end local 0 // org.hsqldb.FunctionSQLInvoked this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lorg/hsqldb/FunctionSQLInvoked;
            0    6     1  routineSchema  Lorg/hsqldb/RoutineSchema;
    MethodParameters:
               Name  Flags
      routineSchema  

  public void setArguments(org.hsqldb.Expression[]);
    descriptor: ([Lorg/hsqldb/Expression;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hsqldb.FunctionSQLInvoked this
        start local 1 // org.hsqldb.Expression[] newNodes
         0: .line 65
            aload 0 /* this */
            aload 1 /* newNodes */
            putfield org.hsqldb.FunctionSQLInvoked.nodes:[Lorg/hsqldb/Expression;
         1: .line 66
            return
        end local 1 // org.hsqldb.Expression[] newNodes
        end local 0 // org.hsqldb.FunctionSQLInvoked this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/hsqldb/FunctionSQLInvoked;
            0    2     1  newNodes  [Lorg/hsqldb/Expression;
    MethodParameters:
          Name  Flags
      newNodes  

  public org.hsqldb.lib.HsqlList resolveColumnReferences(org.hsqldb.Session, org.hsqldb.RangeGroup, int, org.hsqldb.RangeGroup[], org.hsqldb.lib.HsqlList, boolean);
    descriptor: (Lorg/hsqldb/Session;Lorg/hsqldb/RangeGroup;I[Lorg/hsqldb/RangeGroup;Lorg/hsqldb/lib/HsqlList;Z)Lorg/hsqldb/lib/HsqlList;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=7
        start local 0 // org.hsqldb.FunctionSQLInvoked this
        start local 1 // org.hsqldb.Session session
        start local 2 // org.hsqldb.RangeGroup rangeGroup
        start local 3 // int rangeCount
        start local 4 // org.hsqldb.RangeGroup[] rangeGroups
        start local 5 // org.hsqldb.lib.HsqlList unresolvedSet
        start local 6 // boolean acceptsSequences
         0: .line 72
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.condition:Lorg/hsqldb/Expression;
            aload 1 /* session */
         1: .line 73
            aload 2 /* rangeGroup */
            iload 3 /* rangeCount */
            aload 4 /* rangeGroups */
            aconst_null
            iconst_0
         2: .line 72
            invokevirtual org.hsqldb.Expression.resolveColumnReferences:(Lorg/hsqldb/Session;Lorg/hsqldb/RangeGroup;I[Lorg/hsqldb/RangeGroup;Lorg/hsqldb/lib/HsqlList;Z)Lorg/hsqldb/lib/HsqlList;
            astore 7 /* conditionSet */
        start local 7 // org.hsqldb.lib.HsqlList conditionSet
         3: .line 75
            aload 7 /* conditionSet */
            ifnull 5
         4: .line 76
            aload 7 /* conditionSet */
            invokestatic org.hsqldb.ExpressionColumn.checkColumnsResolved:(Lorg/hsqldb/lib/HsqlList;)V
         5: .line 79
      StackMap locals: org.hsqldb.lib.HsqlList
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hsqldb.FunctionSQLInvoked.isSelfAggregate:()Z
            ifeq 10
         6: .line 80
            aload 5 /* unresolvedSet */
            ifnonnull 8
         7: .line 81
            new org.hsqldb.lib.ArrayListIdentity
            dup
            invokespecial org.hsqldb.lib.ArrayListIdentity.<init>:()V
            astore 5 /* unresolvedSet */
         8: .line 84
      StackMap locals:
      StackMap stack:
            aload 5 /* unresolvedSet */
            aload 0 /* this */
            invokeinterface org.hsqldb.lib.HsqlList.add:(Ljava/lang/Object;)Z
            pop
         9: .line 86
            aload 5 /* unresolvedSet */
            areturn
        10: .line 88
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* session */
            aload 2 /* rangeGroup */
        11: .line 89
            iload 3 /* rangeCount */
            aload 4 /* rangeGroups */
        12: .line 90
            aload 5 /* unresolvedSet */
        13: .line 91
            iload 6 /* acceptsSequences */
        14: .line 88
            invokespecial org.hsqldb.Expression.resolveColumnReferences:(Lorg/hsqldb/Session;Lorg/hsqldb/RangeGroup;I[Lorg/hsqldb/RangeGroup;Lorg/hsqldb/lib/HsqlList;Z)Lorg/hsqldb/lib/HsqlList;
            areturn
        end local 7 // org.hsqldb.lib.HsqlList conditionSet
        end local 6 // boolean acceptsSequences
        end local 5 // org.hsqldb.lib.HsqlList unresolvedSet
        end local 4 // org.hsqldb.RangeGroup[] rangeGroups
        end local 3 // int rangeCount
        end local 2 // org.hsqldb.RangeGroup rangeGroup
        end local 1 // org.hsqldb.Session session
        end local 0 // org.hsqldb.FunctionSQLInvoked this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   15     0              this  Lorg/hsqldb/FunctionSQLInvoked;
            0   15     1           session  Lorg/hsqldb/Session;
            0   15     2        rangeGroup  Lorg/hsqldb/RangeGroup;
            0   15     3        rangeCount  I
            0   15     4       rangeGroups  [Lorg/hsqldb/RangeGroup;
            0   15     5     unresolvedSet  Lorg/hsqldb/lib/HsqlList;
            0   15     6  acceptsSequences  Z
            3   15     7      conditionSet  Lorg/hsqldb/lib/HsqlList;
    MethodParameters:
                  Name  Flags
      session           
      rangeGroup        
      rangeCount        
      rangeGroups       
      unresolvedSet     
      acceptsSequences  

  public void resolveTypes(org.hsqldb.Session, org.hsqldb.Expression);
    descriptor: (Lorg/hsqldb/Session;Lorg/hsqldb/Expression;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.hsqldb.FunctionSQLInvoked this
        start local 1 // org.hsqldb.Session session
        start local 2 // org.hsqldb.Expression parent
         0: .line 97
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.nodes:[Lorg/hsqldb/Expression;
            arraylength
            anewarray org.hsqldb.types.Type
            astore 3 /* types */
        start local 3 // org.hsqldb.types.Type[] types
         1: .line 99
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 7
         3: .line 100
      StackMap locals: org.hsqldb.types.Type[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.nodes:[Lorg/hsqldb/Expression;
            iload 4 /* i */
            aaload
            astore 5 /* e */
        start local 5 // org.hsqldb.Expression e
         4: .line 102
            aload 5 /* e */
            aload 1 /* session */
            aload 0 /* this */
            invokevirtual org.hsqldb.Expression.resolveTypes:(Lorg/hsqldb/Session;Lorg/hsqldb/Expression;)V
         5: .line 104
            aload 3 /* types */
            iload 4 /* i */
            aload 5 /* e */
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            aastore
        end local 5 // org.hsqldb.Expression e
         6: .line 99
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.nodes:[Lorg/hsqldb/Expression;
            arraylength
            if_icmplt 3
        end local 4 // int i
         8: .line 107
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.routineSchema:Lorg/hsqldb/RoutineSchema;
            aload 3 /* types */
            invokevirtual org.hsqldb.RoutineSchema.getSpecificRoutine:([Lorg/hsqldb/types/Type;)Lorg/hsqldb/Routine;
            putfield org.hsqldb.FunctionSQLInvoked.routine:Lorg/hsqldb/Routine;
         9: .line 109
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        10: goto 14
        11: .line 110
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.nodes:[Lorg/hsqldb/Expression;
            iload 4 /* i */
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            ifnonnull 13
        12: .line 111
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.nodes:[Lorg/hsqldb/Expression;
            iload 4 /* i */
            aaload
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.routine:Lorg/hsqldb/Routine;
            invokevirtual org.hsqldb.Routine.getParameterTypes:()[Lorg/hsqldb/types/Type;
            iload 4 /* i */
            aaload
            putfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
        13: .line 109
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 4 /* i */
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.nodes:[Lorg/hsqldb/Expression;
            arraylength
            if_icmplt 11
        end local 4 // int i
        15: .line 115
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.routine:Lorg/hsqldb/Routine;
            invokevirtual org.hsqldb.Routine.getReturnType:()Lorg/hsqldb/types/Type;
            putfield org.hsqldb.FunctionSQLInvoked.dataType:Lorg/hsqldb/types/Type;
        16: .line 117
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.condition:Lorg/hsqldb/Expression;
            aload 1 /* session */
            aconst_null
            invokevirtual org.hsqldb.Expression.resolveTypes:(Lorg/hsqldb/Session;Lorg/hsqldb/Expression;)V
        17: .line 118
            return
        end local 3 // org.hsqldb.types.Type[] types
        end local 2 // org.hsqldb.Expression parent
        end local 1 // org.hsqldb.Session session
        end local 0 // org.hsqldb.FunctionSQLInvoked this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0     this  Lorg/hsqldb/FunctionSQLInvoked;
            0   18     1  session  Lorg/hsqldb/Session;
            0   18     2   parent  Lorg/hsqldb/Expression;
            1   18     3    types  [Lorg/hsqldb/types/Type;
            2    8     4        i  I
            4    6     5        e  Lorg/hsqldb/Expression;
           10   15     4        i  I
    MethodParameters:
         Name  Flags
      session  
      parent   

  private java.lang.Object getValueInternal(org.hsqldb.Session, java.lang.Object[]);
    descriptor: (Lorg/hsqldb/Session;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=12, args_size=3
        start local 0 // org.hsqldb.FunctionSQLInvoked this
        start local 1 // org.hsqldb.Session session
        start local 2 // java.lang.Object[] aggregateData
         0: .line 122
            iconst_0
            istore 3 /* isValue */
        start local 3 // boolean isValue
         1: .line 124
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.routine:Lorg/hsqldb/Routine;
            getfield org.hsqldb.Routine.javaMethodWithConnection:Z
            ifeq 2
            iconst_1
            goto 3
         2: .line 125
      StackMap locals: int
      StackMap stack:
            iconst_0
         3: .line 124
      StackMap locals:
      StackMap stack: int
            istore 5 /* extraArg */
        start local 5 // int extraArg
         4: .line 126
            getstatic org.hsqldb.map.ValuePool.emptyObjectArray:[Ljava/lang/Object;
            astore 6 /* data */
        start local 6 // java.lang.Object[] data
         5: .line 127
            iconst_1
            istore 7 /* push */
        start local 7 // boolean push
         6: .line 129
            iload 5 /* extraArg */
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.nodes:[Lorg/hsqldb/Expression;
            arraylength
            iadd
            ifle 20
         7: .line 130
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.opType:I
            bipush 98
            if_icmpne 15
         8: .line 131
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.routine:Lorg/hsqldb/Routine;
            invokevirtual org.hsqldb.Routine.getParameterCount:()I
            anewarray java.lang.Object
            astore 6 /* data */
         9: .line 133
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        10: goto 13
        11: .line 134
      StackMap locals: org.hsqldb.FunctionSQLInvoked org.hsqldb.Session java.lang.Object[] int top int java.lang.Object[] int int
      StackMap stack:
            aload 6 /* data */
            iload 8 /* i */
            iconst_1
            iadd
            aload 2 /* aggregateData */
            iload 8 /* i */
            aaload
            aastore
        12: .line 133
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 8 /* i */
            aload 2 /* aggregateData */
            arraylength
            if_icmplt 11
        end local 8 // int i
        14: .line 136
            goto 16
        15: .line 137
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.nodes:[Lorg/hsqldb/Expression;
            arraylength
            iload 5 /* extraArg */
            iadd
            anewarray java.lang.Object
            astore 6 /* data */
        16: .line 140
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.routine:Lorg/hsqldb/Routine;
            invokevirtual org.hsqldb.Routine.isPSM:()Z
            ifne 20
        17: .line 141
            aload 1 /* session */
            invokevirtual org.hsqldb.Session.getInternalConnection:()Lorg/hsqldb/jdbc/JDBCConnection;
            astore 8 /* connection */
        start local 8 // java.lang.Object connection
        18: .line 143
            iload 5 /* extraArg */
            ifle 20
        19: .line 144
            aload 6 /* data */
            iconst_0
            aload 8 /* connection */
            aastore
        end local 8 // java.lang.Object connection
        20: .line 149
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.routine:Lorg/hsqldb/Routine;
            invokevirtual org.hsqldb.Routine.getParameterTypes:()[Lorg/hsqldb/types/Type;
            astore 8 /* dataTypes */
        start local 8 // org.hsqldb.types.Type[] dataTypes
        21: .line 151
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        22: goto 38
        23: .line 152
      StackMap locals: org.hsqldb.types.Type[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.nodes:[Lorg/hsqldb/Expression;
            iload 9 /* i */
            aaload
            astore 10 /* e */
        start local 10 // org.hsqldb.Expression e
        24: .line 153
            aload 10 /* e */
            aload 1 /* session */
            aload 8 /* dataTypes */
            iload 9 /* i */
            aaload
            invokevirtual org.hsqldb.Expression.getValue:(Lorg/hsqldb/Session;Lorg/hsqldb/types/Type;)Ljava/lang/Object;
            astore 11 /* value */
        start local 11 // java.lang.Object value
        25: .line 155
            aload 11 /* value */
            ifnonnull 31
        26: .line 156
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.routine:Lorg/hsqldb/Routine;
            invokevirtual org.hsqldb.Routine.isNullInputOutput:()Z
            ifeq 28
        27: .line 157
            aconst_null
            areturn
        28: .line 160
      StackMap locals: org.hsqldb.Expression java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.routine:Lorg/hsqldb/Routine;
            iload 9 /* i */
            invokevirtual org.hsqldb.Routine.getParameter:(I)Lorg/hsqldb/ColumnSchema;
            invokevirtual org.hsqldb.ColumnSchema.isNullable:()Z
            ifne 31
        29: .line 162
            sipush 4811
            invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
        30: .line 161
            invokestatic org.hsqldb.result.Result.newErrorResult:(Ljava/lang/Throwable;)Lorg/hsqldb/result/Result;
            areturn
        31: .line 166
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.routine:Lorg/hsqldb/Routine;
            invokevirtual org.hsqldb.Routine.isPSM:()Z
            ifeq 34
        32: .line 167
            aload 6 /* data */
            iload 9 /* i */
            aload 11 /* value */
            aastore
        33: .line 168
            goto 37
        34: .line 169
      StackMap locals:
      StackMap stack:
            aload 6 /* data */
            iload 9 /* i */
            iload 5 /* extraArg */
            iadd
            aload 10 /* e */
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            aload 1 /* session */
        35: .line 170
            aload 11 /* value */
        36: .line 169
            invokevirtual org.hsqldb.types.Type.convertSQLToJava:(Lorg/hsqldb/SessionInterface;Ljava/lang/Object;)Ljava/lang/Object;
            aastore
        end local 11 // java.lang.Object value
        end local 10 // org.hsqldb.Expression e
        37: .line 151
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        38: iload 9 /* i */
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.nodes:[Lorg/hsqldb/Expression;
            arraylength
            if_icmplt 23
        end local 9 // int i
        39: .line 174
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.routine:Lorg/hsqldb/Routine;
            aload 1 /* session */
            aload 6 /* data */
            aload 2 /* aggregateData */
            iload 7 /* push */
            invokevirtual org.hsqldb.Routine.invoke:(Lorg/hsqldb/Session;[Ljava/lang/Object;[Ljava/lang/Object;Z)Lorg/hsqldb/result/Result;
            astore 4 /* result */
        start local 4 // org.hsqldb.result.Result result
        40: .line 176
            aload 1 /* session */
            invokevirtual org.hsqldb.Session.releaseInternalConnection:()V
        41: .line 178
            aload 4 /* result */
            invokevirtual org.hsqldb.result.Result.isError:()Z
            ifeq 43
        42: .line 179
            aload 4 /* result */
            invokevirtual org.hsqldb.result.Result.getException:()Lorg/hsqldb/HsqlException;
            athrow
        43: .line 182
      StackMap locals: org.hsqldb.FunctionSQLInvoked org.hsqldb.Session java.lang.Object[] int org.hsqldb.result.Result int java.lang.Object[] int org.hsqldb.types.Type[]
      StackMap stack:
            iload 3 /* isValue */
            ifeq 45
        44: .line 183
            aload 4 /* result */
            getfield org.hsqldb.result.Result.valueData:Ljava/lang/Object;
            areturn
        45: .line 185
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            areturn
        end local 8 // org.hsqldb.types.Type[] dataTypes
        end local 7 // boolean push
        end local 6 // java.lang.Object[] data
        end local 5 // int extraArg
        end local 4 // org.hsqldb.result.Result result
        end local 3 // boolean isValue
        end local 2 // java.lang.Object[] aggregateData
        end local 1 // org.hsqldb.Session session
        end local 0 // org.hsqldb.FunctionSQLInvoked this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   46     0           this  Lorg/hsqldb/FunctionSQLInvoked;
            0   46     1        session  Lorg/hsqldb/Session;
            0   46     2  aggregateData  [Ljava/lang/Object;
            1   46     3        isValue  Z
           40   46     4         result  Lorg/hsqldb/result/Result;
            4   46     5       extraArg  I
            5   46     6           data  [Ljava/lang/Object;
            6   46     7           push  Z
           10   14     8              i  I
           18   20     8     connection  Ljava/lang/Object;
           21   46     8      dataTypes  [Lorg/hsqldb/types/Type;
           22   39     9              i  I
           24   37    10              e  Lorg/hsqldb/Expression;
           25   37    11          value  Ljava/lang/Object;
    MethodParameters:
               Name  Flags
      session        
      aggregateData  

  public java.lang.Object getValue(org.hsqldb.Session);
    descriptor: (Lorg/hsqldb/Session;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.hsqldb.FunctionSQLInvoked this
        start local 1 // org.hsqldb.Session session
         0: .line 191
            aload 0 /* this */
            aload 1 /* session */
            aconst_null
            invokevirtual org.hsqldb.FunctionSQLInvoked.getValueInternal:(Lorg/hsqldb/Session;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* returnValue */
        start local 2 // java.lang.Object returnValue
         1: .line 193
            aload 2 /* returnValue */
            instanceof org.hsqldb.result.Result
            ifeq 12
         2: .line 194
            aload 2 /* returnValue */
            checkcast org.hsqldb.result.Result
            astore 3 /* result */
        start local 3 // org.hsqldb.result.Result result
         3: .line 196
            aload 3 /* result */
            invokevirtual org.hsqldb.result.Result.isError:()Z
            ifeq 5
         4: .line 197
            aload 3 /* result */
            invokevirtual org.hsqldb.result.Result.getException:()Lorg/hsqldb/HsqlException;
            athrow
         5: .line 198
      StackMap locals: java.lang.Object org.hsqldb.result.Result
      StackMap stack:
            aload 3 /* result */
            invokevirtual org.hsqldb.result.Result.isSimpleValue:()Z
            ifeq 8
         6: .line 199
            aload 3 /* result */
            invokevirtual org.hsqldb.result.Result.getValueObject:()Ljava/lang/Object;
            astore 2 /* returnValue */
         7: .line 200
            goto 12
      StackMap locals:
      StackMap stack:
         8: aload 3 /* result */
            invokevirtual org.hsqldb.result.Result.isData:()Z
            ifeq 11
         9: .line 201
            aload 3 /* result */
            astore 2 /* returnValue */
        10: .line 202
            goto 12
        11: .line 203
      StackMap locals:
      StackMap stack:
            sipush 4605
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.routine:Lorg/hsqldb/Routine;
            invokevirtual org.hsqldb.Routine.getName:()Lorg/hsqldb/HsqlNameManager$HsqlName;
            getfield org.hsqldb.HsqlNameManager$HsqlName.name:Ljava/lang/String;
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/String;)Lorg/hsqldb/HsqlException;
            athrow
        end local 3 // org.hsqldb.result.Result result
        12: .line 207
      StackMap locals:
      StackMap stack:
            aload 2 /* returnValue */
            areturn
        end local 2 // java.lang.Object returnValue
        end local 1 // org.hsqldb.Session session
        end local 0 // org.hsqldb.FunctionSQLInvoked this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Lorg/hsqldb/FunctionSQLInvoked;
            0   13     1      session  Lorg/hsqldb/Session;
            1   13     2  returnValue  Ljava/lang/Object;
            3   12     3       result  Lorg/hsqldb/result/Result;
    MethodParameters:
         Name  Flags
      session  

  public org.hsqldb.result.Result getResult(org.hsqldb.Session);
    descriptor: (Lorg/hsqldb/Session;)Lorg/hsqldb/result/Result;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.hsqldb.FunctionSQLInvoked this
        start local 1 // org.hsqldb.Session session
         0: .line 212
            aload 0 /* this */
            aload 1 /* session */
            aconst_null
            invokevirtual org.hsqldb.FunctionSQLInvoked.getValueInternal:(Lorg/hsqldb/Session;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* value */
        start local 2 // java.lang.Object value
         1: .line 214
            aload 2 /* value */
            instanceof org.hsqldb.result.Result
            ifeq 3
         2: .line 215
            aload 2 /* value */
            checkcast org.hsqldb.result.Result
            areturn
         3: .line 218
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* value */
            invokestatic org.hsqldb.result.Result.newPSMResult:(Ljava/lang/Object;)Lorg/hsqldb/result/Result;
            areturn
        end local 2 // java.lang.Object value
        end local 1 // org.hsqldb.Session session
        end local 0 // org.hsqldb.FunctionSQLInvoked this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/hsqldb/FunctionSQLInvoked;
            0    4     1  session  Lorg/hsqldb/Session;
            1    4     2    value  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      session  

  void collectObjectNames(org.hsqldb.lib.Set);
    descriptor: (Lorg/hsqldb/lib/Set;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hsqldb.FunctionSQLInvoked this
        start local 1 // org.hsqldb.lib.Set set
         0: .line 222
            aload 1 /* set */
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.routine:Lorg/hsqldb/Routine;
            invokevirtual org.hsqldb.Routine.getSpecificName:()Lorg/hsqldb/HsqlNameManager$HsqlName;
            invokeinterface org.hsqldb.lib.Set.add:(Ljava/lang/Object;)Z
            pop
         1: .line 223
            return
        end local 1 // org.hsqldb.lib.Set set
        end local 0 // org.hsqldb.FunctionSQLInvoked this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hsqldb/FunctionSQLInvoked;
            0    2     1   set  Lorg/hsqldb/lib/Set;
    MethodParameters:
      Name  Flags
      set   

  public java.lang.String getSQL();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.hsqldb.FunctionSQLInvoked this
         0: .line 227
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 229
            aload 1 /* sb */
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.routineSchema:Lorg/hsqldb/RoutineSchema;
            invokevirtual org.hsqldb.RoutineSchema.getName:()Lorg/hsqldb/HsqlNameManager$HsqlName;
            invokevirtual org.hsqldb.HsqlNameManager$HsqlName.getSchemaQualifiedStatementName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 230
            aload 1 /* sb */
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         3: .line 232
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.nodes:[Lorg/hsqldb/Expression;
            arraylength
            istore 2 /* nodeCount */
        start local 2 // int nodeCount
         4: .line 234
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.opType:I
            bipush 98
            if_icmpne 6
         5: .line 235
            iconst_1
            istore 2 /* nodeCount */
         6: .line 238
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         7: goto 12
         8: .line 239
      StackMap locals: int
      StackMap stack:
            iload 3 /* i */
            ifeq 10
         9: .line 240
            aload 1 /* sb */
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        10: .line 243
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.nodes:[Lorg/hsqldb/Expression;
            iload 3 /* i */
            aaload
            invokevirtual org.hsqldb.Expression.getSQL:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 238
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 3 /* i */
            iload 2 /* nodeCount */
            if_icmplt 8
        end local 3 // int i
        13: .line 246
            aload 1 /* sb */
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        14: .line 248
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // int nodeCount
        end local 1 // java.lang.StringBuilder sb
        end local 0 // org.hsqldb.FunctionSQLInvoked this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0       this  Lorg/hsqldb/FunctionSQLInvoked;
            1   15     1         sb  Ljava/lang/StringBuilder;
            4   15     2  nodeCount  I
            7   13     3          i  I

  public java.lang.String describe(org.hsqldb.Session, int);
    descriptor: (Lorg/hsqldb/Session;I)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hsqldb.FunctionSQLInvoked this
        start local 1 // org.hsqldb.Session session
        start local 2 // int blanks
         0: .line 252
            aload 0 /* this */
            aload 1 /* session */
            iload 2 /* blanks */
            invokespecial org.hsqldb.Expression.describe:(Lorg/hsqldb/Session;I)Ljava/lang/String;
            areturn
        end local 2 // int blanks
        end local 1 // org.hsqldb.Session session
        end local 0 // org.hsqldb.FunctionSQLInvoked this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/hsqldb/FunctionSQLInvoked;
            0    1     1  session  Lorg/hsqldb/Session;
            0    1     2   blanks  I
    MethodParameters:
         Name  Flags
      session  
      blanks   

  public boolean isSelfAggregate();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hsqldb.FunctionSQLInvoked this
         0: .line 256
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.routineSchema:Lorg/hsqldb/RoutineSchema;
            invokevirtual org.hsqldb.RoutineSchema.isAggregate:()Z
            ireturn
        end local 0 // org.hsqldb.FunctionSQLInvoked this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hsqldb/FunctionSQLInvoked;

  public boolean isDeterministic();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hsqldb.FunctionSQLInvoked this
         0: .line 260
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.routine:Lorg/hsqldb/Routine;
            invokevirtual org.hsqldb.Routine.isDeterministic:()Z
            ireturn
        end local 0 // org.hsqldb.FunctionSQLInvoked this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hsqldb/FunctionSQLInvoked;

  boolean equals(org.hsqldb.Expression);
    descriptor: (Lorg/hsqldb/Expression;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hsqldb.FunctionSQLInvoked this
        start local 1 // org.hsqldb.Expression other
         0: .line 265
            aload 1 /* other */
            instanceof org.hsqldb.FunctionSQLInvoked
            ifeq 7
         1: .line 266
            aload 1 /* other */
            checkcast org.hsqldb.FunctionSQLInvoked
            astore 2 /* o */
        start local 2 // org.hsqldb.FunctionSQLInvoked o
         2: .line 268
            aload 0 /* this */
            aload 1 /* other */
            invokespecial org.hsqldb.Expression.equals:(Lorg/hsqldb/Expression;)Z
            ifeq 6
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.opType:I
            aload 1 /* other */
            getfield org.hsqldb.Expression.opType:I
            if_icmpne 6
         3: .line 269
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.routineSchema:Lorg/hsqldb/RoutineSchema;
            aload 2 /* o */
            getfield org.hsqldb.FunctionSQLInvoked.routineSchema:Lorg/hsqldb/RoutineSchema;
            if_acmpne 6
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.routine:Lorg/hsqldb/Routine;
            aload 2 /* o */
            getfield org.hsqldb.FunctionSQLInvoked.routine:Lorg/hsqldb/Routine;
            if_acmpne 6
         4: .line 270
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.condition:Lorg/hsqldb/Expression;
            aload 2 /* o */
            getfield org.hsqldb.FunctionSQLInvoked.condition:Lorg/hsqldb/Expression;
            invokevirtual org.hsqldb.Expression.equals:(Lorg/hsqldb/Expression;)Z
            ifeq 6
         5: .line 268
            iconst_1
            ireturn
      StackMap locals: org.hsqldb.FunctionSQLInvoked
      StackMap stack:
         6: iconst_0
            ireturn
        end local 2 // org.hsqldb.FunctionSQLInvoked o
         7: .line 273
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // org.hsqldb.Expression other
        end local 0 // org.hsqldb.FunctionSQLInvoked this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lorg/hsqldb/FunctionSQLInvoked;
            0    8     1  other  Lorg/hsqldb/Expression;
            2    7     2      o  Lorg/hsqldb/FunctionSQLInvoked;
    MethodParameters:
       Name  Flags
      other  

  public org.hsqldb.SetFunction updateAggregatingValue(org.hsqldb.Session, org.hsqldb.SetFunction);
    descriptor: (Lorg/hsqldb/Session;Lorg/hsqldb/SetFunction;)Lorg/hsqldb/SetFunction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.hsqldb.FunctionSQLInvoked this
        start local 1 // org.hsqldb.Session session
        start local 2 // org.hsqldb.SetFunction currValue
         0: .line 279
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.condition:Lorg/hsqldb/Expression;
            aload 1 /* session */
            invokevirtual org.hsqldb.Expression.testCondition:(Lorg/hsqldb/Session;)Z
            ifne 2
         1: .line 280
            aload 2 /* currValue */
            areturn
         2: .line 283
      StackMap locals:
      StackMap stack:
            aload 2 /* currValue */
            ifnonnull 4
         3: .line 284
            new org.hsqldb.SetFunctionValueUser
            dup
            invokespecial org.hsqldb.SetFunctionValueUser.<init>:()V
            astore 2 /* currValue */
         4: .line 287
      StackMap locals:
      StackMap stack:
            aload 2 /* currValue */
            checkcast org.hsqldb.SetFunctionValueUser
            getfield org.hsqldb.SetFunctionValueUser.list:[Ljava/lang/Object;
            astore 3 /* array */
        start local 3 // java.lang.Object[] array
         5: .line 289
            aload 3 /* array */
            iconst_0
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            aastore
         6: .line 291
            aload 0 /* this */
            aload 1 /* session */
            aload 3 /* array */
            invokevirtual org.hsqldb.FunctionSQLInvoked.getValueInternal:(Lorg/hsqldb/Session;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 293
            aload 2 /* currValue */
            areturn
        end local 3 // java.lang.Object[] array
        end local 2 // org.hsqldb.SetFunction currValue
        end local 1 // org.hsqldb.Session session
        end local 0 // org.hsqldb.FunctionSQLInvoked this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lorg/hsqldb/FunctionSQLInvoked;
            0    8     1    session  Lorg/hsqldb/Session;
            0    8     2  currValue  Lorg/hsqldb/SetFunction;
            5    8     3      array  [Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      session    
      currValue  

  public java.lang.Object getAggregatedValue(org.hsqldb.Session, org.hsqldb.SetFunction);
    descriptor: (Lorg/hsqldb/Session;Lorg/hsqldb/SetFunction;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.hsqldb.FunctionSQLInvoked this
        start local 1 // org.hsqldb.Session session
        start local 2 // org.hsqldb.SetFunction currValue
         0: .line 299
            aload 2 /* currValue */
            ifnonnull 2
         1: .line 300
            new org.hsqldb.SetFunctionValueUser
            dup
            invokespecial org.hsqldb.SetFunctionValueUser.<init>:()V
            astore 2 /* currValue */
         2: .line 303
      StackMap locals:
      StackMap stack:
            aload 2 /* currValue */
            checkcast org.hsqldb.SetFunctionValueUser
            getfield org.hsqldb.SetFunctionValueUser.list:[Ljava/lang/Object;
            astore 3 /* array */
        start local 3 // java.lang.Object[] array
         3: .line 305
            aload 3 /* array */
            iconst_0
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            aastore
         4: .line 307
            aload 0 /* this */
            aload 1 /* session */
            aload 3 /* array */
            invokevirtual org.hsqldb.FunctionSQLInvoked.getValueInternal:(Lorg/hsqldb/Session;[Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hsqldb.result.Result
            astore 4 /* result */
        start local 4 // org.hsqldb.result.Result result
         5: .line 309
            aload 4 /* result */
            invokevirtual org.hsqldb.result.Result.isError:()Z
            ifeq 7
         6: .line 310
            aload 4 /* result */
            invokevirtual org.hsqldb.result.Result.getException:()Lorg/hsqldb/HsqlException;
            athrow
         7: .line 312
      StackMap locals: java.lang.Object[] org.hsqldb.result.Result
      StackMap stack:
            aload 4 /* result */
            invokevirtual org.hsqldb.result.Result.getValueObject:()Ljava/lang/Object;
            areturn
        end local 4 // org.hsqldb.result.Result result
        end local 3 // java.lang.Object[] array
        end local 2 // org.hsqldb.SetFunction currValue
        end local 1 // org.hsqldb.Session session
        end local 0 // org.hsqldb.FunctionSQLInvoked this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lorg/hsqldb/FunctionSQLInvoked;
            0    8     1    session  Lorg/hsqldb/Session;
            0    8     2  currValue  Lorg/hsqldb/SetFunction;
            3    8     3      array  [Ljava/lang/Object;
            5    8     4     result  Lorg/hsqldb/result/Result;
    MethodParameters:
           Name  Flags
      session    
      currValue  

  public org.hsqldb.Expression getCondition();
    descriptor: ()Lorg/hsqldb/Expression;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hsqldb.FunctionSQLInvoked this
         0: .line 317
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.condition:Lorg/hsqldb/Expression;
            areturn
        end local 0 // org.hsqldb.FunctionSQLInvoked this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hsqldb/FunctionSQLInvoked;

  public boolean hasCondition();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hsqldb.FunctionSQLInvoked this
         0: .line 321
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.condition:Lorg/hsqldb/Expression;
            ifnull 1
            aload 0 /* this */
            getfield org.hsqldb.FunctionSQLInvoked.condition:Lorg/hsqldb/Expression;
            invokevirtual org.hsqldb.Expression.isTrue:()Z
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.hsqldb.FunctionSQLInvoked this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hsqldb/FunctionSQLInvoked;

  public void setCondition(org.hsqldb.ExpressionLogical);
    descriptor: (Lorg/hsqldb/ExpressionLogical;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hsqldb.FunctionSQLInvoked this
        start local 1 // org.hsqldb.ExpressionLogical e
         0: .line 325
            aload 0 /* this */
            aload 1 /* e */
            putfield org.hsqldb.FunctionSQLInvoked.condition:Lorg/hsqldb/Expression;
         1: .line 326
            return
        end local 1 // org.hsqldb.ExpressionLogical e
        end local 0 // org.hsqldb.FunctionSQLInvoked this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hsqldb/FunctionSQLInvoked;
            0    2     1     e  Lorg/hsqldb/ExpressionLogical;
    MethodParameters:
      Name  Flags
      e     
}
SourceFile: "FunctionSQLInvoked.java"
InnerClasses:
  public final HsqlName = org.hsqldb.HsqlNameManager$HsqlName of org.hsqldb.HsqlNameManager