public class org.hsqldb.ExpressionArithmetic extends org.hsqldb.Expression
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hsqldb.ExpressionArithmetic
  super_class: org.hsqldb.Expression
{
  void <init>(int, org.hsqldb.Expression, org.hsqldb.Expression);
    descriptor: (ILorg/hsqldb/Expression;Lorg/hsqldb/Expression;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.hsqldb.ExpressionArithmetic this
        start local 1 // int type
        start local 2 // org.hsqldb.Expression left
        start local 3 // org.hsqldb.Expression right
         0: .line 53
            aload 0 /* this */
            iload 1 /* type */
            invokespecial org.hsqldb.Expression.<init>:(I)V
         1: .line 55
            aload 0 /* this */
            iconst_2
            anewarray org.hsqldb.Expression
            putfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
         2: .line 56
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aload 2 /* left */
            aastore
         3: .line 57
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aload 3 /* right */
            aastore
         4: .line 59
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.opType:I
            tableswitch { // 32 - 36
                   32: 5
                   33: 5
                   34: 5
                   35: 5
                   36: 5
              default: 6
          }
         5: .line 66
      StackMap locals: org.hsqldb.ExpressionArithmetic int org.hsqldb.Expression org.hsqldb.Expression
      StackMap stack:
            return
         6: .line 69
      StackMap locals:
      StackMap stack:
            sipush 201
            ldc "Expression"
            invokestatic org.hsqldb.error.Error.runtimeError:(ILjava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // org.hsqldb.Expression right
        end local 2 // org.hsqldb.Expression left
        end local 1 // int type
        end local 0 // org.hsqldb.ExpressionArithmetic this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/hsqldb/ExpressionArithmetic;
            0    7     1   type  I
            0    7     2   left  Lorg/hsqldb/Expression;
            0    7     3  right  Lorg/hsqldb/Expression;
    MethodParameters:
       Name  Flags
      type   
      left   
      right  

  void <init>(int, org.hsqldb.Expression);
    descriptor: (ILorg/hsqldb/Expression;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hsqldb.ExpressionArithmetic this
        start local 1 // int type
        start local 2 // org.hsqldb.Expression e
         0: .line 75
            aload 0 /* this */
            iload 1 /* type */
            invokespecial org.hsqldb.Expression.<init>:(I)V
         1: .line 77
            aload 0 /* this */
            iconst_1
            anewarray org.hsqldb.Expression
            putfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
         2: .line 78
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aload 2 /* e */
            aastore
         3: .line 80
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.opType:I
            tableswitch { // 31 - 31
                   31: 4
              default: 5
          }
         4: .line 83
      StackMap locals: org.hsqldb.ExpressionArithmetic int org.hsqldb.Expression
      StackMap stack:
            return
         5: .line 86
      StackMap locals:
      StackMap stack:
            sipush 201
            ldc "Expression"
            invokestatic org.hsqldb.error.Error.runtimeError:(ILjava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // org.hsqldb.Expression e
        end local 1 // int type
        end local 0 // org.hsqldb.ExpressionArithmetic this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/hsqldb/ExpressionArithmetic;
            0    6     1  type  I
            0    6     2     e  Lorg/hsqldb/Expression;
    MethodParameters:
      Name  Flags
      type  
      e     

  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.ExpressionArithmetic this
         0: .line 92
            new java.lang.StringBuilder
            dup
            bipush 64
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 94
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.opType:I
            tableswitch { // 1 - 1
                    1: 2
              default: 7
          }
         2: .line 97
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.valueData:Ljava/lang/Object;
            ifnonnull 4
         3: .line 98
            ldc "NULL"
            areturn
         4: .line 101
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
            ifnonnull 6
         5: .line 102
            sipush 201
            ldc "Expression"
            invokestatic org.hsqldb.error.Error.runtimeError:(ILjava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         6: .line 105
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.valueData:Ljava/lang/Object;
            invokevirtual org.hsqldb.types.Type.convertToSQLString:(Ljava/lang/Object;)Ljava/lang/String;
            areturn
         7: .line 108
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            arraylength
            ifle 8
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            goto 9
         8: .line 109
      StackMap locals:
      StackMap stack:
            aconst_null
         9: .line 108
      StackMap locals:
      StackMap stack: org.hsqldb.Expression
            invokestatic org.hsqldb.ExpressionArithmetic.getContextSQL:(Lorg/hsqldb/Expression;)Ljava/lang/String;
            astore 2 /* left */
        start local 2 // java.lang.String left
        10: .line 110
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            arraylength
            iconst_1
            if_icmple 11
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            goto 12
        11: .line 111
      StackMap locals: java.lang.String
      StackMap stack:
            aconst_null
        12: .line 110
      StackMap locals:
      StackMap stack: org.hsqldb.Expression
            invokestatic org.hsqldb.ExpressionArithmetic.getContextSQL:(Lorg/hsqldb/Expression;)Ljava/lang/String;
            astore 3 /* right */
        start local 3 // java.lang.String right
        13: .line 113
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.opType:I
            lookupswitch { // 7
                   31: 19
                   32: 21
                   33: 23
                   34: 25
                   35: 27
                   36: 29
                   90: 14
              default: 31
          }
        14: .line 116
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* sb */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            ldc "CAST"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        15: .line 117
            aload 1 /* sb */
            aload 2 /* left */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            ldc "AS"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        16: .line 118
            aload 1 /* sb */
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.getTypeDefinition:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        17: .line 119
            aload 1 /* sb */
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        18: .line 120
            goto 32
        19: .line 123
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            bipush 45
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 2 /* left */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        20: .line 124
            goto 32
        21: .line 127
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            aload 2 /* left */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 43
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 3 /* right */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        22: .line 128
            goto 32
        23: .line 131
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            aload 2 /* left */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 45
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 3 /* right */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        24: .line 132
            goto 32
        25: .line 135
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            aload 2 /* left */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 42
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 3 /* right */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        26: .line 136
            goto 32
        27: .line 139
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            aload 2 /* left */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 47
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 3 /* right */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        28: .line 140
            goto 32
        29: .line 143
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            aload 2 /* left */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "||"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* right */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        30: .line 144
            goto 32
        31: .line 147
      StackMap locals:
      StackMap stack:
            sipush 201
            ldc "Expression"
            invokestatic org.hsqldb.error.Error.runtimeError:(ILjava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        32: .line 150
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.String right
        end local 2 // java.lang.String left
        end local 1 // java.lang.StringBuilder sb
        end local 0 // org.hsqldb.ExpressionArithmetic this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   33     0   this  Lorg/hsqldb/ExpressionArithmetic;
            1   33     1     sb  Ljava/lang/StringBuilder;
           10   33     2   left  Ljava/lang/String;
           13   33     3  right  Ljava/lang/String;

  protected java.lang.String describe(org.hsqldb.Session, int);
    descriptor: (Lorg/hsqldb/Session;I)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.hsqldb.ExpressionArithmetic this
        start local 1 // org.hsqldb.Session session
        start local 2 // int blanks
         0: .line 155
            new java.lang.StringBuilder
            dup
            bipush 64
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 3 /* sb */
        start local 3 // java.lang.StringBuilder sb
         1: .line 157
            aload 3 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         2: .line 159
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 6
         4: .line 160
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 3 /* sb */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         5: .line 159
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 4 /* i */
            iload 2 /* blanks */
            if_icmplt 4
        end local 4 // int i
         7: .line 163
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.opType:I
            lookupswitch { // 10
                    1: 8
                   25: 13
                   26: 13
                   31: 22
                   32: 24
                   33: 26
                   34: 28
                   35: 30
                   36: 32
                   90: 34
              default: 37
          }
         8: .line 166
      StackMap locals:
      StackMap stack:
            aload 3 /* sb */
            ldc "VALUE = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 167
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.valueData:Ljava/lang/Object;
            invokevirtual org.hsqldb.types.Type.convertToSQLString:(Ljava/lang/Object;)Ljava/lang/String;
        10: .line 166
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 168
            aload 3 /* sb */
            ldc ", TYPE = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.getNameString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 170
            aload 3 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        13: .line 176
      StackMap locals:
      StackMap stack:
            aload 3 /* sb */
            ldc "VALUELIST "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 177
            aload 3 /* sb */
            ldc " TYPE = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.getNameString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 179
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        16: goto 20
        17: .line 180
      StackMap locals: int
      StackMap stack:
            aload 3 /* sb */
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iload 4 /* i */
            aaload
            aload 1 /* session */
            iload 2 /* blanks */
            iload 2 /* blanks */
            iadd
            invokevirtual org.hsqldb.Expression.describe:(Lorg/hsqldb/Session;I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        18: .line 181
            aload 3 /* sb */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        19: .line 179
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 4 /* i */
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            arraylength
            if_icmplt 17
        end local 4 // int i
        21: .line 183
            goto 37
        22: .line 186
      StackMap locals:
      StackMap stack:
            aload 3 /* sb */
            ldc "NEGATE "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        23: .line 187
            goto 37
        24: .line 190
      StackMap locals:
      StackMap stack:
            aload 3 /* sb */
            ldc "ADD "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        25: .line 191
            goto 37
        26: .line 194
      StackMap locals:
      StackMap stack:
            aload 3 /* sb */
            ldc "SUBTRACT "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        27: .line 195
            goto 37
        28: .line 198
      StackMap locals:
      StackMap stack:
            aload 3 /* sb */
            ldc "MULTIPLY "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        29: .line 199
            goto 37
        30: .line 202
      StackMap locals:
      StackMap stack:
            aload 3 /* sb */
            ldc "DIVIDE "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        31: .line 203
            goto 37
        32: .line 206
      StackMap locals:
      StackMap stack:
            aload 3 /* sb */
            ldc "CONCAT "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        33: .line 207
            goto 37
        34: .line 210
      StackMap locals:
      StackMap stack:
            aload 3 /* sb */
            ldc "CAST "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        35: .line 211
            aload 3 /* sb */
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.getTypeDefinition:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        36: .line 212
            aload 3 /* sb */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        37: .line 218
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hsqldb.ExpressionArithmetic.getLeftNode:()Lorg/hsqldb/Expression;
            ifnull 41
        38: .line 219
            aload 3 /* sb */
            ldc " arg_left=["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        39: .line 220
            aload 3 /* sb */
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            aload 1 /* session */
            iload 2 /* blanks */
            iconst_1
            iadd
            invokevirtual org.hsqldb.Expression.describe:(Lorg/hsqldb/Session;I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        40: .line 221
            aload 3 /* sb */
            bipush 93
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        41: .line 224
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hsqldb.ExpressionArithmetic.getRightNode:()Lorg/hsqldb/Expression;
            ifnull 45
        42: .line 225
            aload 3 /* sb */
            ldc " arg_right=["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        43: .line 226
            aload 3 /* sb */
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            aload 1 /* session */
            iload 2 /* blanks */
            iconst_1
            iadd
            invokevirtual org.hsqldb.Expression.describe:(Lorg/hsqldb/Session;I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        44: .line 227
            aload 3 /* sb */
            bipush 93
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        45: .line 230
      StackMap locals:
      StackMap stack:
            aload 3 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.StringBuilder sb
        end local 2 // int blanks
        end local 1 // org.hsqldb.Session session
        end local 0 // org.hsqldb.ExpressionArithmetic this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   46     0     this  Lorg/hsqldb/ExpressionArithmetic;
            0   46     1  session  Lorg/hsqldb/Session;
            0   46     2   blanks  I
            1   46     3       sb  Ljava/lang/StringBuilder;
            3    7     4        i  I
           16   21     4        i  I
    MethodParameters:
         Name  Flags
      session  
      blanks   

  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.ExpressionArithmetic 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 237
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.opType:I
            iconst_1
            if_icmpne 2
         1: .line 238
            aload 5 /* unresolvedSet */
            areturn
         2: .line 241
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         3: goto 11
         4: .line 242
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iload 7 /* i */
            aaload
            ifnonnull 6
         5: .line 243
            goto 10
         6: .line 246
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iload 7 /* i */
            aaload
            aload 1 /* session */
         7: .line 247
            aload 2 /* rangeGroup */
            iload 3 /* rangeCount */
            aload 4 /* rangeGroups */
            aload 5 /* unresolvedSet */
         8: .line 248
            iload 6 /* acceptsSequences */
         9: .line 246
            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 5 /* unresolvedSet */
        10: .line 241
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 7 /* i */
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            arraylength
            if_icmplt 4
        end local 7 // int i
        12: .line 251
            aload 5 /* unresolvedSet */
            areturn
        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.ExpressionArithmetic this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   13     0              this  Lorg/hsqldb/ExpressionArithmetic;
            0   13     1           session  Lorg/hsqldb/Session;
            0   13     2        rangeGroup  Lorg/hsqldb/RangeGroup;
            0   13     3        rangeCount  I
            0   13     4       rangeGroups  [Lorg/hsqldb/RangeGroup;
            0   13     5     unresolvedSet  Lorg/hsqldb/lib/HsqlList;
            0   13     6  acceptsSequences  Z
            3   12     7                 i  I
    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=4, args_size=3
        start local 0 // org.hsqldb.ExpressionArithmetic this
        start local 1 // org.hsqldb.Session session
        start local 2 // org.hsqldb.Expression parent
         0: .line 256
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         1: goto 5
         2: .line 257
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iload 3 /* i */
            aaload
            ifnull 4
         3: .line 258
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iload 3 /* i */
            aaload
            aload 1 /* session */
            aload 0 /* this */
            invokevirtual org.hsqldb.Expression.resolveTypes:(Lorg/hsqldb/Session;Lorg/hsqldb/Expression;)V
         4: .line 256
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* i */
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            arraylength
            if_icmplt 2
        end local 3 // int i
         6: .line 262
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.opType:I
            lookupswitch { // 7
                    1: 7
                   31: 8
                   32: 17
                   33: 25
                   34: 25
                   35: 25
                   36: 27
              default: 29
          }
         7: .line 265
      StackMap locals:
      StackMap stack:
            goto 30
         8: .line 268
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            invokevirtual org.hsqldb.Expression.isUnresolvedParam:()Z
            ifne 10
         9: .line 269
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            ifnonnull 11
        10: .line 270
      StackMap locals:
      StackMap stack:
            sipush 5567
            invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
            athrow
        11: .line 273
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            putfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
        12: .line 275
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isNumberType:()Z
            ifne 14
        13: .line 276
            sipush 5563
            invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
            athrow
        14: .line 279
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.opType:I
            iconst_1
            if_icmpne 30
        15: .line 280
            aload 0 /* this */
            aload 1 /* session */
            aload 2 /* parent */
            invokevirtual org.hsqldb.ExpressionArithmetic.setAsConstantValue:(Lorg/hsqldb/Session;Lorg/hsqldb/Expression;)V
        16: .line 282
            goto 30
        17: .line 287
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            ifnull 19
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
        18: .line 288
            invokevirtual org.hsqldb.types.Type.isCharacterType:()Z
            ifne 22
      StackMap locals:
      StackMap stack:
        19: aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            ifnull 25
        20: .line 289
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
        21: .line 290
            invokevirtual org.hsqldb.types.Type.isCharacterType:()Z
            ifeq 25
        22: .line 291
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 36
            putfield org.hsqldb.ExpressionArithmetic.opType:I
        23: .line 293
            aload 0 /* this */
            aload 1 /* session */
            aload 2 /* parent */
            invokevirtual org.hsqldb.ExpressionArithmetic.resolveTypesForConcat:(Lorg/hsqldb/Session;Lorg/hsqldb/Expression;)V
        24: .line 295
            goto 30
        25: .line 302
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* session */
            aload 2 /* parent */
            invokevirtual org.hsqldb.ExpressionArithmetic.resolveTypesForArithmetic:(Lorg/hsqldb/Session;Lorg/hsqldb/Expression;)V
        26: .line 303
            goto 30
        27: .line 306
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* session */
            aload 2 /* parent */
            invokevirtual org.hsqldb.ExpressionArithmetic.resolveTypesForConcat:(Lorg/hsqldb/Session;Lorg/hsqldb/Expression;)V
        28: .line 307
            goto 30
        29: .line 310
      StackMap locals:
      StackMap stack:
            sipush 201
            ldc "Expression"
            invokestatic org.hsqldb.error.Error.runtimeError:(ILjava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        30: .line 312
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.hsqldb.Expression parent
        end local 1 // org.hsqldb.Session session
        end local 0 // org.hsqldb.ExpressionArithmetic this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   31     0     this  Lorg/hsqldb/ExpressionArithmetic;
            0   31     1  session  Lorg/hsqldb/Session;
            0   31     2   parent  Lorg/hsqldb/Expression;
            1    6     3        i  I
    MethodParameters:
         Name  Flags
      session  
      parent   

  void resolveTypesForArithmetic(org.hsqldb.Session, org.hsqldb.Expression);
    descriptor: (Lorg/hsqldb/Session;Lorg/hsqldb/Expression;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // org.hsqldb.ExpressionArithmetic this
        start local 1 // org.hsqldb.Session session
        start local 2 // org.hsqldb.Expression parent
         0: .line 316
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            invokevirtual org.hsqldb.Expression.isUnresolvedParam:()Z
            ifeq 9
         1: .line 317
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            invokevirtual org.hsqldb.Expression.isUnresolvedParam:()Z
            ifeq 9
         2: .line 318
            aload 2 /* parent */
            instanceof org.hsqldb.ExpressionLogical
            ifeq 9
         3: .line 319
            aload 2 /* parent */
            getfield org.hsqldb.Expression.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            astore 3 /* e */
        start local 3 // org.hsqldb.Expression e
         4: .line 321
            aload 3 /* e */
            aload 0 /* this */
            if_acmpne 6
         5: .line 322
            aload 2 /* parent */
            getfield org.hsqldb.Expression.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            astore 3 /* e */
         6: .line 325
      StackMap locals: org.hsqldb.Expression
      StackMap stack:
            aload 3 /* e */
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            ifnull 9
         7: .line 326
            aload 3 /* e */
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isDateOrTimestampType:()Z
            ifeq 9
         8: .line 327
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            aload 3 /* e */
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            putfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
        end local 3 // org.hsqldb.Expression e
         9: .line 333
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            invokevirtual org.hsqldb.Expression.isUnresolvedParam:()Z
            ifeq 13
        10: .line 334
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            invokevirtual org.hsqldb.Expression.isUnresolvedParam:()Z
            ifeq 13
        11: .line 335
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getstatic org.hsqldb.types.Type.SQL_INTEGER:Lorg/hsqldb/types/NumberType;
            putfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
        12: .line 336
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getstatic org.hsqldb.types.Type.SQL_INTEGER:Lorg/hsqldb/types/NumberType;
            putfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
        13: .line 339
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            ifnonnull 16
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            ifnonnull 16
        14: .line 340
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getstatic org.hsqldb.types.Type.SQL_INTEGER:Lorg/hsqldb/types/NumberType;
            putfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
        15: .line 341
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getstatic org.hsqldb.types.Type.SQL_INTEGER:Lorg/hsqldb/types/NumberType;
            putfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
        16: .line 344
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            invokevirtual org.hsqldb.Expression.isUnresolvedParam:()Z
            ifeq 60
        17: .line 345
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            ifnonnull 19
        18: .line 346
            sipush 5567
            invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
            athrow
        19: .line 349
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isIntervalType:()Z
            ifeq 34
        20: .line 350
            aload 2 /* parent */
            ifnull 34
        21: .line 351
            aload 2 /* parent */
            getfield org.hsqldb.Expression.opType:I
            tableswitch { // 40 - 45
                   40: 22
                   41: 22
                   42: 34
                   43: 22
                   44: 22
                   45: 22
              default: 34
          }
        22: .line 358
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        23: goto 33
        24: .line 359
      StackMap locals: int
      StackMap stack:
            aload 2 /* parent */
            getfield org.hsqldb.Expression.nodes:[Lorg/hsqldb/Expression;
            iload 3 /* i */
            aaload
            aload 0 /* this */
            if_acmpeq 32
        25: .line 360
            aload 2 /* parent */
            getfield org.hsqldb.Expression.nodes:[Lorg/hsqldb/Expression;
            iload 3 /* i */
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            ifnull 34
        26: .line 361
            aload 2 /* parent */
            getfield org.hsqldb.Expression.nodes:[Lorg/hsqldb/Expression;
            iload 3 /* i */
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
        27: .line 362
            invokevirtual org.hsqldb.types.Type.isDateTimeType:()Z
            ifeq 34
        28: .line 363
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
        29: .line 364
            aload 2 /* parent */
            getfield org.hsqldb.Expression.nodes:[Lorg/hsqldb/Expression;
            iload 3 /* i */
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
        30: .line 363
            putfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
        31: .line 367
            goto 34
        32: .line 358
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        33: iload 3 /* i */
            aload 2 /* parent */
            getfield org.hsqldb.Expression.nodes:[Lorg/hsqldb/Expression;
            arraylength
            if_icmplt 24
        end local 3 // int i
        34: .line 377
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            ifnonnull 57
        35: .line 378
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.opType:I
            tableswitch { // 32 - 33
                   32: 41
                   33: 36
              default: 57
          }
        36: .line 381
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isIntervalType:()Z
            ifeq 57
        37: .line 382
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
        38: .line 383
            getstatic org.hsqldb.types.Type.SQL_TIMESTAMP_WITH_TIME_ZONE:Lorg/hsqldb/types/DateTimeType;
        39: .line 382
            putfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
        40: .line 385
            goto 57
        41: .line 388
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isDateTimeType:()Z
            ifeq 53
        42: .line 389
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            getfield org.hsqldb.types.Type.typeComparisonGroup:I
        43: .line 390
            bipush 91
        44: .line 389
            if_icmpne 49
        45: .line 391
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
        46: .line 393
            getstatic org.hsqldb.types.Type.SQL_INTERVAL_YEAR_TO_MONTH_MAX_PRECISION:Lorg/hsqldb/types/IntervalType;
        47: .line 391
            putfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
        48: .line 394
            goto 57
        49: .line 395
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
        50: .line 397
            getstatic org.hsqldb.types.Type.SQL_INTERVAL_DAY_TO_SECOND_MAX_PRECISION:Lorg/hsqldb/types/IntervalType;
        51: .line 395
            putfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
        52: .line 399
            goto 57
      StackMap locals:
      StackMap stack:
        53: aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isIntervalType:()Z
            ifeq 57
        54: .line 400
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
        55: .line 401
            getstatic org.hsqldb.types.Type.SQL_TIMESTAMP_WITH_TIME_ZONE:Lorg/hsqldb/types/DateTimeType;
        56: .line 400
            putfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
        57: .line 409
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            ifnonnull 84
        58: .line 410
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            putfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
        59: .line 412
            goto 84
      StackMap locals:
      StackMap stack:
        60: aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            invokevirtual org.hsqldb.Expression.isUnresolvedParam:()Z
            ifeq 84
        61: .line 413
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            ifnonnull 63
        62: .line 414
            sipush 5567
            invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
            athrow
        63: .line 417
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.opType:I
            tableswitch { // 32 - 35
                   32: 69
                   33: 69
                   34: 64
                   35: 64
              default: 84
          }
        64: .line 421
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isIntervalType:()Z
            ifeq 67
        65: .line 422
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getstatic org.hsqldb.types.Type.SQL_DECIMAL:Lorg/hsqldb/types/NumberType;
            putfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
        66: .line 423
            goto 84
        67: .line 424
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            putfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
        68: .line 426
            goto 84
        69: .line 430
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isDateTimeType:()Z
            ifeq 83
        70: .line 433
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
            ifnull 73
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isIntervalType:()Z
            ifeq 73
        71: .line 434
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            putfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
        72: .line 435
            goto 84
      StackMap locals:
      StackMap stack:
        73: aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            getfield org.hsqldb.types.Type.typeComparisonGroup:I
        74: .line 436
            bipush 91
            if_icmpne 79
        75: .line 437
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
        76: .line 438
            getstatic org.hsqldb.types.Type.SQL_INTERVAL_YEAR_TO_MONTH_MAX_PRECISION:Lorg/hsqldb/types/IntervalType;
        77: .line 437
            putfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
        78: .line 439
            goto 84
        79: .line 440
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
        80: .line 441
            getstatic org.hsqldb.types.Type.SQL_INTERVAL_DAY_TO_SECOND_MAX_PRECISION:Lorg/hsqldb/types/IntervalType;
        81: .line 440
            putfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
        82: .line 443
            goto 84
        83: .line 444
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            putfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
        84: .line 450
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            ifnull 85
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            ifnonnull 86
        85: .line 451
      StackMap locals:
      StackMap stack:
            sipush 5567
            invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
            athrow
        86: .line 454
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.opType:I
            bipush 33
            if_icmpne 95
        87: .line 455
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isDateTimeType:()Z
            ifeq 95
        88: .line 456
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isDateTimeType:()Z
            ifeq 95
        89: .line 457
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isDateTimeTypeWithZone:()Z
        90: .line 458
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isDateTimeTypeWithZone:()Z
            ixor
            ifeq 95
        91: .line 459
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isDateTimeTypeWithZone:()Z
            ifeq 93
        92: .line 460
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            new org.hsqldb.ExpressionOp
            dup
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            invokespecial org.hsqldb.ExpressionOp.<init>:(Lorg/hsqldb/Expression;)V
            aastore
        93: .line 463
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isDateTimeTypeWithZone:()Z
            ifeq 95
        94: .line 464
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            new org.hsqldb.ExpressionOp
            dup
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            invokespecial org.hsqldb.ExpressionOp.<init>:(Lorg/hsqldb/Expression;)V
            aastore
        95: .line 471
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
            ifnull 120
        96: .line 472
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isIntervalType:()Z
            ifeq 134
        97: .line 473
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isDateTimeType:()Z
            ifeq 103
        98: .line 474
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isDateTimeType:()Z
            ifeq 103
        99: .line 475
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            getfield org.hsqldb.types.Type.typeComparisonGroup:I
       100: .line 476
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            getfield org.hsqldb.types.Type.typeComparisonGroup:I
       101: .line 475
            if_icmpeq 134
       102: .line 477
            sipush 5562
            invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
            athrow
       103: .line 480
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            aload 1 /* session */
       104: .line 481
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.opType:I
       105: .line 480
            invokevirtual org.hsqldb.types.Type.getCombinedType:(Lorg/hsqldb/Session;Lorg/hsqldb/types/Type;I)Lorg/hsqldb/types/Type;
            astore 3 /* type */
        start local 3 // org.hsqldb.types.Type type
       106: .line 483
            aload 3 /* type */
            ifnonnull 108
       107: .line 484
            sipush 5562
            invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
            athrow
       108: .line 487
      StackMap locals: org.hsqldb.types.Type
      StackMap stack:
            aload 3 /* type */
            invokevirtual org.hsqldb.types.Type.isIntervalType:()Z
            ifeq 111
       109: .line 488
            aload 3 /* type */
            getfield org.hsqldb.types.Type.typeCode:I
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
            getfield org.hsqldb.types.Type.typeCode:I
            if_icmpeq 134
       110: .line 489
            sipush 5562
            invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
            athrow
       111: .line 491
      StackMap locals:
      StackMap stack:
            aload 3 /* type */
            invokevirtual org.hsqldb.types.Type.isNumberType:()Z
            ifeq 119
       112: .line 492
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            new org.hsqldb.ExpressionOp
            dup
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
            invokespecial org.hsqldb.ExpressionOp.<init>:(Lorg/hsqldb/Expression;Lorg/hsqldb/types/Type;)V
            aastore
       113: .line 493
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            new org.hsqldb.ExpressionOp
            dup
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
       114: .line 494
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
            invokespecial org.hsqldb.ExpressionOp.<init>:(Lorg/hsqldb/Expression;Lorg/hsqldb/types/Type;)V
       115: .line 493
            aastore
       116: .line 496
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            aload 1 /* session */
            aload 0 /* this */
            invokevirtual org.hsqldb.Expression.resolveTypes:(Lorg/hsqldb/Session;Lorg/hsqldb/Expression;)V
       117: .line 497
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            aload 1 /* session */
            aload 0 /* this */
            invokevirtual org.hsqldb.Expression.resolveTypes:(Lorg/hsqldb/Session;Lorg/hsqldb/Expression;)V
       118: .line 498
            goto 134
       119: .line 499
      StackMap locals:
      StackMap stack:
            sipush 5562
            invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
            athrow
        end local 3 // org.hsqldb.types.Type type
       120: .line 504
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            aload 1 /* session */
       121: .line 505
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.opType:I
       122: .line 504
            invokevirtual org.hsqldb.types.Type.getCombinedType:(Lorg/hsqldb/Session;Lorg/hsqldb/types/Type;I)Lorg/hsqldb/types/Type;
            putfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
       123: .line 507
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isDateTimeType:()Z
            ifeq 134
       124: .line 508
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isIntervalType:()Z
            ifeq 131
       125: .line 509
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.opType:I
            bipush 32
            if_icmpeq 127
       126: .line 510
            sipush 5563
            invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
            athrow
       127: .line 513
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            astore 3 /* temp */
        start local 3 // org.hsqldb.Expression temp
       128: .line 515
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            aastore
       129: .line 516
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aload 3 /* temp */
            aastore
        end local 3 // org.hsqldb.Expression temp
       130: .line 517
            goto 134
      StackMap locals:
      StackMap stack:
       131: aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isNumberType:()Z
            ifeq 134
       132: .line 518
            aload 1 /* session */
            getfield org.hsqldb.Session.database:Lorg/hsqldb/Database;
            getfield org.hsqldb.Database.sqlSyntaxOra:Z
            ifne 134
       133: .line 519
            sipush 5562
            invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
            athrow
       134: .line 525
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.opType:I
            iconst_1
            if_icmpne 137
       135: .line 526
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.opType:I
            iconst_1
            if_icmpne 137
       136: .line 527
            aload 0 /* this */
            aload 1 /* session */
            aload 2 /* parent */
            invokevirtual org.hsqldb.ExpressionArithmetic.setAsConstantValue:(Lorg/hsqldb/Session;Lorg/hsqldb/Expression;)V
       137: .line 529
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.hsqldb.Expression parent
        end local 1 // org.hsqldb.Session session
        end local 0 // org.hsqldb.ExpressionArithmetic this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0  138     0     this  Lorg/hsqldb/ExpressionArithmetic;
            0  138     1  session  Lorg/hsqldb/Session;
            0  138     2   parent  Lorg/hsqldb/Expression;
            4    9     3        e  Lorg/hsqldb/Expression;
           23   34     3        i  I
          106  120     3     type  Lorg/hsqldb/types/Type;
          128  130     3     temp  Lorg/hsqldb/Expression;
    MethodParameters:
         Name  Flags
      session  
      parent   

  void resolveTypesForConcat(org.hsqldb.Session, org.hsqldb.Expression);
    descriptor: (Lorg/hsqldb/Session;Lorg/hsqldb/Expression;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.hsqldb.ExpressionArithmetic this
        start local 1 // org.hsqldb.Session session
        start local 2 // org.hsqldb.Expression parent
         0: .line 533
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
            ifnull 2
         1: .line 534
            return
         2: .line 537
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            invokevirtual org.hsqldb.Expression.isUnresolvedParam:()Z
            ifeq 5
         3: .line 538
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.ExpressionArithmetic.getParameterType:(Lorg/hsqldb/types/Type;)Lorg/hsqldb/types/Type;
            putfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
         4: .line 539
            goto 7
      StackMap locals:
      StackMap stack:
         5: aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            invokevirtual org.hsqldb.Expression.isUnresolvedParam:()Z
            ifeq 7
         6: .line 540
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.ExpressionArithmetic.getParameterType:(Lorg/hsqldb/types/Type;)Lorg/hsqldb/types/Type;
            putfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
         7: .line 543
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            ifnonnull 9
         8: .line 544
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getstatic org.hsqldb.types.Type.SQL_VARCHAR_DEFAULT:Lorg/hsqldb/types/CharacterType;
            putfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
         9: .line 547
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            ifnonnull 11
        10: .line 548
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getstatic org.hsqldb.types.Type.SQL_VARCHAR_DEFAULT:Lorg/hsqldb/types/CharacterType;
            putfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
        11: .line 551
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isBinaryType:()Z
        12: .line 552
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isBinaryType:()Z
            ixor
            ifeq 14
        13: .line 553
            sipush 5563
            invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
            athrow
        14: .line 556
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isArrayType:()Z
            ifeq 22
        15: .line 557
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            astore 3 /* e */
        start local 3 // org.hsqldb.Expression e
        16: .line 559
            aload 3 /* e */
            getfield org.hsqldb.Expression.opType:I
            bipush 99
            if_icmpne 22
        17: .line 560
            aload 2 /* parent */
            ifnonnull 19
        18: .line 561
            sipush 5563
            invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
            athrow
        19: .line 564
      StackMap locals: org.hsqldb.Expression
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aload 3 /* e */
            invokevirtual org.hsqldb.Expression.getLeftNode:()Lorg/hsqldb/Expression;
            aastore
        20: .line 565
            aload 3 /* e */
            getfield org.hsqldb.Expression.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aload 0 /* this */
            aastore
        21: .line 567
            aload 2 /* parent */
            aload 0 /* this */
            aload 3 /* e */
            invokevirtual org.hsqldb.Expression.replaceNode:(Lorg/hsqldb/Expression;Lorg/hsqldb/Expression;)V
        end local 3 // org.hsqldb.Expression e
        22: .line 571
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isArrayType:()Z
        23: .line 572
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isArrayType:()Z
            ixor
            ifeq 25
        24: .line 573
            sipush 5563
            invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
            athrow
        25: .line 577
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isCharacterType:()Z
            ifeq 36
        26: .line 578
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isCharacterType:()Z
            ifne 36
        27: .line 579
            aload 1 /* session */
            getfield org.hsqldb.Session.database:Lorg/hsqldb/Database;
            getfield org.hsqldb.Database.sqlEnforceTypes:Z
            ifeq 29
        28: .line 580
            sipush 5562
            invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
            athrow
        29: .line 583
      StackMap locals:
      StackMap stack:
            bipush 12
        30: .line 584
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.displaySize:()I
            i2l
        31: .line 585
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.getCollation:()Lorg/hsqldb/types/Collation;
        32: .line 583
            invokestatic org.hsqldb.types.CharacterType.getCharacterType:(IJLorg/hsqldb/types/Collation;)Lorg/hsqldb/types/CharacterType;
            astore 3 /* newType */
        start local 3 // org.hsqldb.types.Type newType
        33: .line 587
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aload 1 /* session */
        34: .line 588
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            aload 3 /* newType */
        35: .line 587
            invokestatic org.hsqldb.ExpressionOp.getCastExpression:(Lorg/hsqldb/Session;Lorg/hsqldb/Expression;Lorg/hsqldb/types/Type;)Lorg/hsqldb/Expression;
            aastore
        end local 3 // org.hsqldb.types.Type newType
        36: .line 591
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isCharacterType:()Z
            ifeq 47
        37: .line 592
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isCharacterType:()Z
            ifne 47
        38: .line 593
            aload 1 /* session */
            getfield org.hsqldb.Session.database:Lorg/hsqldb/Database;
            getfield org.hsqldb.Database.sqlEnforceTypes:Z
            ifeq 40
        39: .line 594
            sipush 5562
            invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
            athrow
        40: .line 597
      StackMap locals:
      StackMap stack:
            bipush 12
        41: .line 598
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.displaySize:()I
            i2l
        42: .line 599
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.getCollation:()Lorg/hsqldb/types/Collation;
        43: .line 597
            invokestatic org.hsqldb.types.CharacterType.getCharacterType:(IJLorg/hsqldb/types/Collation;)Lorg/hsqldb/types/CharacterType;
            astore 3 /* newType */
        start local 3 // org.hsqldb.types.Type newType
        44: .line 601
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aload 1 /* session */
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
        45: .line 602
            aload 3 /* newType */
        46: .line 601
            invokestatic org.hsqldb.ExpressionOp.getCastExpression:(Lorg/hsqldb/Session;Lorg/hsqldb/Expression;Lorg/hsqldb/types/Type;)Lorg/hsqldb/Expression;
            aastore
        end local 3 // org.hsqldb.types.Type newType
        47: .line 605
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            aload 1 /* session */
        48: .line 606
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            bipush 36
        49: .line 605
            invokevirtual org.hsqldb.types.Type.getCombinedType:(Lorg/hsqldb/Session;Lorg/hsqldb/types/Type;I)Lorg/hsqldb/types/Type;
            putfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
        50: .line 608
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.opType:I
            iconst_1
            if_icmpne 53
        51: .line 609
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.opType:I
            iconst_1
            if_icmpne 53
        52: .line 610
            aload 0 /* this */
            aload 1 /* session */
            aload 2 /* parent */
            invokevirtual org.hsqldb.ExpressionArithmetic.setAsConstantValue:(Lorg/hsqldb/Session;Lorg/hsqldb/Expression;)V
        53: .line 612
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.hsqldb.Expression parent
        end local 1 // org.hsqldb.Session session
        end local 0 // org.hsqldb.ExpressionArithmetic this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   54     0     this  Lorg/hsqldb/ExpressionArithmetic;
            0   54     1  session  Lorg/hsqldb/Session;
            0   54     2   parent  Lorg/hsqldb/Expression;
           16   22     3        e  Lorg/hsqldb/Expression;
           33   36     3  newType  Lorg/hsqldb/types/Type;
           44   47     3  newType  Lorg/hsqldb/types/Type;
    MethodParameters:
         Name  Flags
      session  
      parent   

  private org.hsqldb.types.Type getParameterType(org.hsqldb.types.Type);
    descriptor: (Lorg/hsqldb/types/Type;)Lorg/hsqldb/types/Type;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.hsqldb.ExpressionArithmetic this
        start local 1 // org.hsqldb.types.Type type
         0: .line 616
            aload 1 /* type */
            ifnonnull 2
         1: .line 617
            aconst_null
            areturn
         2: .line 620
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            getfield org.hsqldb.types.Type.typeCode:I
            lookupswitch { // 9
                    1: 3
                   12: 3
                   14: 7
                   15: 7
                   30: 6
                   40: 4
                   50: 8
                   60: 5
                   61: 5
              default: 9
          }
         3: .line 624
      StackMap locals:
      StackMap stack:
            getstatic org.hsqldb.types.Type.SQL_VARCHAR_DEFAULT:Lorg/hsqldb/types/CharacterType;
            areturn
         4: .line 627
      StackMap locals:
      StackMap stack:
            getstatic org.hsqldb.types.Type.SQL_CLOB:Lorg/hsqldb/types/ClobType;
            areturn
         5: .line 631
      StackMap locals:
      StackMap stack:
            getstatic org.hsqldb.types.Type.SQL_VARBINARY_DEFAULT:Lorg/hsqldb/types/BinaryType;
            areturn
         6: .line 634
      StackMap locals:
      StackMap stack:
            getstatic org.hsqldb.types.Type.SQL_BLOB:Lorg/hsqldb/types/BlobType;
            areturn
         7: .line 638
      StackMap locals:
      StackMap stack:
            getstatic org.hsqldb.types.Type.SQL_BIT_VARYING_MAX_LENGTH:Lorg/hsqldb/types/BitType;
            areturn
         8: .line 641
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            areturn
         9: .line 644
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // org.hsqldb.types.Type type
        end local 0 // org.hsqldb.ExpressionArithmetic this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/hsqldb/ExpressionArithmetic;
            0   10     1  type  Lorg/hsqldb/types/Type;
    MethodParameters:
      Name  Flags
      type  

  public java.lang.Object getValue(org.hsqldb.Session);
    descriptor: (Lorg/hsqldb/Session;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // org.hsqldb.ExpressionArithmetic this
        start local 1 // org.hsqldb.Session session
         0: .line 650
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.opType:I
            lookupswitch { // 2
                    1: 1
                   31: 2
              default: 5
          }
         1: .line 653
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.valueData:Ljava/lang/Object;
            areturn
         2: .line 656
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            aload 1 /* session */
         3: .line 657
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
         4: .line 656
            invokevirtual org.hsqldb.Expression.getValue:(Lorg/hsqldb/Session;Lorg/hsqldb/types/Type;)Ljava/lang/Object;
            invokevirtual org.hsqldb.types.Type.negate:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
         5: .line 660
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            aload 1 /* session */
            invokevirtual org.hsqldb.Expression.getValue:(Lorg/hsqldb/Session;)Ljava/lang/Object;
            astore 2 /* a */
        start local 2 // java.lang.Object a
         6: .line 661
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            aload 1 /* session */
            invokevirtual org.hsqldb.Expression.getValue:(Lorg/hsqldb/Session;)Ljava/lang/Object;
            astore 3 /* b */
        start local 3 // java.lang.Object b
         7: .line 663
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.opType:I
            tableswitch { // 32 - 36
                   32: 8
                   33: 9
                   34: 10
                   35: 11
                   36: 12
              default: 20
          }
         8: .line 666
      StackMap locals: java.lang.Object java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
            aload 1 /* session */
            aload 2 /* a */
            aload 3 /* b */
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.add:(Lorg/hsqldb/Session;Ljava/lang/Object;Ljava/lang/Object;Lorg/hsqldb/types/Type;)Ljava/lang/Object;
            areturn
         9: .line 669
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
            aload 1 /* session */
            aload 2 /* a */
            aload 3 /* b */
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_1
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.subtract:(Lorg/hsqldb/Session;Ljava/lang/Object;Ljava/lang/Object;Lorg/hsqldb/types/Type;)Ljava/lang/Object;
            areturn
        10: .line 672
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
            aload 2 /* a */
            aload 3 /* b */
            invokevirtual org.hsqldb.types.Type.multiply:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        11: .line 675
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
            aload 1 /* session */
            aload 2 /* a */
            aload 3 /* b */
            invokevirtual org.hsqldb.types.Type.divide:(Lorg/hsqldb/Session;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        12: .line 678
      StackMap locals:
      StackMap stack:
            aload 1 /* session */
            getfield org.hsqldb.Session.database:Lorg/hsqldb/Database;
            getfield org.hsqldb.Database.sqlConcatNulls:Z
            ifne 19
        13: .line 679
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.nodes:[Lorg/hsqldb/Expression;
            iconst_0
            aaload
            getfield org.hsqldb.Expression.dataType:Lorg/hsqldb/types/Type;
            invokevirtual org.hsqldb.types.Type.isCharacterType:()Z
            ifeq 19
        14: .line 680
            aload 2 /* a */
            ifnonnull 17
            aload 3 /* b */
            ifnull 17
        15: .line 681
            ldc ""
            astore 2 /* a */
        16: .line 682
            goto 19
      StackMap locals:
      StackMap stack:
        17: aload 2 /* a */
            ifnull 19
            aload 3 /* b */
            ifnonnull 19
        18: .line 683
            ldc ""
            astore 3 /* b */
        19: .line 687
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.ExpressionArithmetic.dataType:Lorg/hsqldb/types/Type;
            aload 1 /* session */
            aload 2 /* a */
            aload 3 /* b */
            invokevirtual org.hsqldb.types.Type.concat:(Lorg/hsqldb/Session;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        20: .line 690
      StackMap locals:
      StackMap stack:
            sipush 201
            ldc "Expression"
            invokestatic org.hsqldb.error.Error.runtimeError:(ILjava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.Object b
        end local 2 // java.lang.Object a
        end local 1 // org.hsqldb.Session session
        end local 0 // org.hsqldb.ExpressionArithmetic this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   21     0     this  Lorg/hsqldb/ExpressionArithmetic;
            0   21     1  session  Lorg/hsqldb/Session;
            6   21     2        a  Ljava/lang/Object;
            7   21     3        b  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      session  
}
SourceFile: "ExpressionArithmetic.java"