public abstract class org.h2.expression.Expression
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.h2.expression.Expression
  super_class: java.lang.Object
{
  public static final int MAP_INITIAL;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int MAP_IN_WINDOW;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int MAP_IN_AGGREGATE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

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

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.expression.Expression this
         0: .line 23
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.h2.expression.Expression this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/expression/Expression;

  public static void writeExpressions(java.lang.StringBuilder, java.util.List<? extends org.h2.expression.Expression>, );
    descriptor: (Ljava/lang/StringBuilder;Ljava/util/List;Z)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // java.lang.StringBuilder builder
        start local 1 // java.util.List expressions
        start local 2 // boolean alwaysQuote
         0: .line 53
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         1: aload 1 /* expressions */
            invokeinterface java.util.List.size:()I
            istore 4 /* length */
        start local 4 // int length
         2: goto 7
         3: .line 54
      StackMap locals: int int
      StackMap stack:
            iload 3 /* i */
            ifle 5
         4: .line 55
            aload 0 /* builder */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 57
      StackMap locals:
      StackMap stack:
            aload 1 /* expressions */
            iload 3 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.h2.expression.Expression
            aload 0 /* builder */
            iload 2 /* alwaysQuote */
            invokevirtual org.h2.expression.Expression.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            pop
         6: .line 53
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            iload 4 /* length */
            if_icmplt 3
        end local 4 // int length
        end local 3 // int i
         8: .line 59
            return
        end local 2 // boolean alwaysQuote
        end local 1 // java.util.List expressions
        end local 0 // java.lang.StringBuilder builder
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0      builder  Ljava/lang/StringBuilder;
            0    9     1  expressions  Ljava/util/List<+Lorg/h2/expression/Expression;>;
            0    9     2  alwaysQuote  Z
            1    8     3            i  I
            2    8     4       length  I
    Signature: (Ljava/lang/StringBuilder;Ljava/util/List<+Lorg/h2/expression/Expression;>;Z)V
    MethodParameters:
             Name  Flags
      builder      
      expressions  
      alwaysQuote  

  public static void writeExpressions(java.lang.StringBuilder, org.h2.expression.Expression[], boolean);
    descriptor: (Ljava/lang/StringBuilder;[Lorg/h2/expression/Expression;Z)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // java.lang.StringBuilder builder
        start local 1 // org.h2.expression.Expression[] expressions
        start local 2 // boolean alwaysQuote
         0: .line 69
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         1: aload 1 /* expressions */
            arraylength
            istore 4 /* length */
        start local 4 // int length
         2: goto 11
         3: .line 70
      StackMap locals: int int
      StackMap stack:
            iload 3 /* i */
            ifle 5
         4: .line 71
            aload 0 /* builder */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 73
      StackMap locals:
      StackMap stack:
            aload 1 /* expressions */
            iload 3 /* i */
            aaload
            astore 5 /* e */
        start local 5 // org.h2.expression.Expression e
         6: .line 74
            aload 5 /* e */
            ifnonnull 9
         7: .line 75
            aload 0 /* builder */
            ldc "DEFAULT"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 76
            goto 10
         9: .line 77
      StackMap locals: org.h2.expression.Expression
      StackMap stack:
            aload 5 /* e */
            aload 0 /* builder */
            iload 2 /* alwaysQuote */
            invokevirtual org.h2.expression.Expression.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            pop
        end local 5 // org.h2.expression.Expression e
        10: .line 69
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 3 /* i */
            iload 4 /* length */
            if_icmplt 3
        end local 4 // int length
        end local 3 // int i
        12: .line 80
            return
        end local 2 // boolean alwaysQuote
        end local 1 // org.h2.expression.Expression[] expressions
        end local 0 // java.lang.StringBuilder builder
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0      builder  Ljava/lang/StringBuilder;
            0   13     1  expressions  [Lorg/h2/expression/Expression;
            0   13     2  alwaysQuote  Z
            1   12     3            i  I
            2   12     4       length  I
            6   10     5            e  Lorg/h2/expression/Expression;
    MethodParameters:
             Name  Flags
      builder      
      expressions  
      alwaysQuote  

  public abstract org.h2.value.Value getValue(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)Lorg/h2/value/Value;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      session  

  public abstract org.h2.value.TypeInfo getType();
    descriptor: ()Lorg/h2/value/TypeInfo;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void mapColumns(org.h2.table.ColumnResolver, int, int);
    descriptor: (Lorg/h2/table/ColumnResolver;II)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      resolver  
      level     
      state     

  public abstract org.h2.expression.Expression optimize(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)Lorg/h2/expression/Expression;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      session  

  public abstract void setEvaluatable(org.h2.table.TableFilter, boolean);
    descriptor: (Lorg/h2/table/TableFilter;Z)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
             Name  Flags
      tableFilter  
      value        

  public java.lang.String getSQL(boolean);
    descriptor: (Z)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.h2.expression.Expression this
        start local 1 // boolean alwaysQuote
         0: .line 134
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            iload 1 /* alwaysQuote */
            invokevirtual org.h2.expression.Expression.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // boolean alwaysQuote
        end local 0 // org.h2.expression.Expression this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/h2/expression/Expression;
            0    1     1  alwaysQuote  Z
    MethodParameters:
             Name  Flags
      alwaysQuote  

  public abstract java.lang.StringBuilder getSQL(java.lang.StringBuilder, boolean);
    descriptor: (Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
             Name  Flags
      builder      
      alwaysQuote  

  public java.lang.StringBuilder getUnenclosedSQL(java.lang.StringBuilder, boolean);
    descriptor: (Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.h2.expression.Expression this
        start local 1 // java.lang.StringBuilder builder
        start local 2 // boolean alwaysQuote
         0: .line 161
            aload 1 /* builder */
            invokevirtual java.lang.StringBuilder.length:()I
            istore 3 /* first */
        start local 3 // int first
         1: .line 162
            aload 0 /* this */
            aload 1 /* builder */
            iload 2 /* alwaysQuote */
            invokevirtual org.h2.expression.Expression.getSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.length:()I
            iconst_1
            isub
            istore 4 /* last */
        start local 4 // int last
         2: .line 163
            iload 4 /* last */
            iload 3 /* first */
            if_icmple 5
            aload 1 /* builder */
            iload 3 /* first */
            invokevirtual java.lang.StringBuilder.charAt:(I)C
            bipush 40
            if_icmpne 5
            aload 1 /* builder */
            iload 4 /* last */
            invokevirtual java.lang.StringBuilder.charAt:(I)C
            bipush 41
            if_icmpne 5
         3: .line 164
            aload 1 /* builder */
            iload 4 /* last */
            invokevirtual java.lang.StringBuilder.setLength:(I)V
         4: .line 165
            aload 1 /* builder */
            iload 3 /* first */
            invokevirtual java.lang.StringBuilder.deleteCharAt:(I)Ljava/lang/StringBuilder;
            pop
         5: .line 167
      StackMap locals: int int
      StackMap stack:
            aload 1 /* builder */
            areturn
        end local 4 // int last
        end local 3 // int first
        end local 2 // boolean alwaysQuote
        end local 1 // java.lang.StringBuilder builder
        end local 0 // org.h2.expression.Expression this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lorg/h2/expression/Expression;
            0    6     1      builder  Ljava/lang/StringBuilder;
            0    6     2  alwaysQuote  Z
            1    6     3        first  I
            2    6     4         last  I
    MethodParameters:
             Name  Flags
      builder      
      alwaysQuote  

  public abstract void updateAggregate(org.h2.engine.Session, int);
    descriptor: (Lorg/h2/engine/Session;I)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      session  
      stage    

  public abstract boolean isEverything(org.h2.expression.ExpressionVisitor);
    descriptor: (Lorg/h2/expression/ExpressionVisitor;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      visitor  

  public abstract int getCost();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public org.h2.expression.Expression getNotIfPossible(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)Lorg/h2/expression/Expression;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.h2.expression.Expression this
        start local 1 // org.h2.engine.Session session
         0: .line 210
            aconst_null
            areturn
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.expression.Expression this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/h2/expression/Expression;
            0    1     1  session  Lorg/h2/engine/Session;
    MethodParameters:
         Name  Flags
      session  

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

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

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

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

  public boolean getBooleanValue(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.expression.Expression this
        start local 1 // org.h2.engine.Session session
         0: .line 259
            aload 0 /* this */
            aload 1 /* session */
            invokevirtual org.h2.expression.Expression.getValue:(Lorg/h2/engine/Session;)Lorg/h2/value/Value;
            invokevirtual org.h2.value.Value.getBoolean:()Z
            ireturn
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.expression.Expression this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/h2/expression/Expression;
            0    1     1  session  Lorg/h2/engine/Session;
    MethodParameters:
         Name  Flags
      session  

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

  public java.lang.String getColumnName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.expression.Expression this
         0: .line 279
            aload 0 /* this */
            invokevirtual org.h2.expression.Expression.getAlias:()Ljava/lang/String;
            areturn
        end local 0 // org.h2.expression.Expression this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/expression/Expression;

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

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

  public int getNullable();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.expression.Expression this
         0: .line 306
            iconst_2
            ireturn
        end local 0 // org.h2.expression.Expression this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/expression/Expression;

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

  public java.lang.String getAlias();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.h2.expression.Expression this
         0: .line 326
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            iconst_0
            invokevirtual org.h2.expression.Expression.getUnenclosedSQL:(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.h2.expression.Expression this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/expression/Expression;

  public org.h2.expression.Expression getNonAliasExpression();
    descriptor: ()Lorg/h2/expression/Expression;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.expression.Expression this
         0: .line 335
            aload 0 /* this */
            areturn
        end local 0 // org.h2.expression.Expression this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/expression/Expression;

  public void addFilterConditions(org.h2.table.TableFilter, boolean);
    descriptor: (Lorg/h2/table/TableFilter;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.h2.expression.Expression this
        start local 1 // org.h2.table.TableFilter filter
        start local 2 // boolean outerJoin
         0: .line 345
            aload 0 /* this */
            getfield org.h2.expression.Expression.addedToFilter:Z
            ifne 4
            iload 2 /* outerJoin */
            ifne 4
         1: .line 346
            aload 0 /* this */
            getstatic org.h2.expression.ExpressionVisitor.EVALUATABLE_VISITOR:Lorg/h2/expression/ExpressionVisitor;
            invokevirtual org.h2.expression.Expression.isEverything:(Lorg/h2/expression/ExpressionVisitor;)Z
            ifeq 4
         2: .line 347
            aload 1 /* filter */
            aload 0 /* this */
            iconst_0
            invokevirtual org.h2.table.TableFilter.addFilterCondition:(Lorg/h2/expression/Expression;Z)V
         3: .line 348
            aload 0 /* this */
            iconst_1
            putfield org.h2.expression.Expression.addedToFilter:Z
         4: .line 350
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean outerJoin
        end local 1 // org.h2.table.TableFilter filter
        end local 0 // org.h2.expression.Expression this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/h2/expression/Expression;
            0    5     1     filter  Lorg/h2/table/TableFilter;
            0    5     2  outerJoin  Z
    MethodParameters:
           Name  Flags
      filter     
      outerJoin  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.expression.Expression this
         0: .line 359
            aload 0 /* this */
            iconst_0
            invokevirtual org.h2.expression.Expression.getSQL:(Z)Ljava/lang/String;
            areturn
        end local 0 // org.h2.expression.Expression this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/expression/Expression;

  public org.h2.expression.Expression[] getExpressionColumns(org.h2.engine.Session);
    descriptor: (Lorg/h2/engine/Session;)[Lorg/h2/expression/Expression;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.h2.expression.Expression this
        start local 1 // org.h2.engine.Session session
         0: .line 370
            aconst_null
            areturn
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.expression.Expression this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/h2/expression/Expression;
            0    1     1  session  Lorg/h2/engine/Session;
    MethodParameters:
         Name  Flags
      session  

  protected static org.h2.expression.Expression[] getExpressionColumns(org.h2.engine.Session, org.h2.value.ValueCollectionBase);
    descriptor: (Lorg/h2/engine/Session;Lorg/h2/value/ValueCollectionBase;)[Lorg/h2/expression/Expression;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // org.h2.engine.Session session
        start local 1 // org.h2.value.ValueCollectionBase value
         0: .line 381
            aload 1 /* value */
            invokevirtual org.h2.value.ValueCollectionBase.getList:()[Lorg/h2/value/Value;
            astore 2 /* list */
        start local 2 // org.h2.value.Value[] list
         1: .line 382
            aload 2 /* list */
            arraylength
            anewarray org.h2.expression.ExpressionColumn
            astore 3 /* expr */
        start local 3 // org.h2.expression.ExpressionColumn[] expr
         2: .line 383
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: aload 2 /* list */
            arraylength
            istore 5 /* len */
        start local 5 // int len
         4: goto 9
         5: .line 384
      StackMap locals: org.h2.engine.Session org.h2.value.ValueCollectionBase org.h2.value.Value[] org.h2.expression.ExpressionColumn[] int int
      StackMap stack:
            aload 2 /* list */
            iload 4 /* i */
            aaload
            astore 6 /* v */
        start local 6 // org.h2.value.Value v
         6: .line 385
            new org.h2.table.Column
            dup
            new java.lang.StringBuilder
            dup
            ldc "C"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* i */
            iconst_1
            iadd
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 6 /* v */
            invokevirtual org.h2.value.Value.getType:()Lorg/h2/value/TypeInfo;
            invokespecial org.h2.table.Column.<init>:(Ljava/lang/String;Lorg/h2/value/TypeInfo;)V
            astore 7 /* col */
        start local 7 // org.h2.table.Column col
         7: .line 386
            aload 3 /* expr */
            iload 4 /* i */
            new org.h2.expression.ExpressionColumn
            dup
            aload 0 /* session */
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
            aload 7 /* col */
            invokespecial org.h2.expression.ExpressionColumn.<init>:(Lorg/h2/engine/Database;Lorg/h2/table/Column;)V
            aastore
        end local 7 // org.h2.table.Column col
        end local 6 // org.h2.value.Value v
         8: .line 383
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            iload 5 /* len */
            if_icmplt 5
        end local 5 // int len
        end local 4 // int i
        10: .line 388
            aload 3 /* expr */
            areturn
        end local 3 // org.h2.expression.ExpressionColumn[] expr
        end local 2 // org.h2.value.Value[] list
        end local 1 // org.h2.value.ValueCollectionBase value
        end local 0 // org.h2.engine.Session session
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0  session  Lorg/h2/engine/Session;
            0   11     1    value  Lorg/h2/value/ValueCollectionBase;
            1   11     2     list  [Lorg/h2/value/Value;
            2   11     3     expr  [Lorg/h2/expression/ExpressionColumn;
            3   10     4        i  I
            4   10     5      len  I
            6    8     6        v  Lorg/h2/value/Value;
            7    8     7      col  Lorg/h2/table/Column;
    MethodParameters:
         Name  Flags
      session  
      value    

  public static org.h2.expression.Expression[] getExpressionColumns(org.h2.engine.Session, org.h2.result.ResultInterface);
    descriptor: (Lorg/h2/engine/Session;Lorg/h2/result/ResultInterface;)[Lorg/h2/expression/Expression;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=10, args_size=2
        start local 0 // org.h2.engine.Session session
        start local 1 // org.h2.result.ResultInterface result
         0: .line 399
            aload 1 /* result */
            invokeinterface org.h2.result.ResultInterface.getVisibleColumnCount:()I
            istore 2 /* columnCount */
        start local 2 // int columnCount
         1: .line 400
            iload 2 /* columnCount */
            anewarray org.h2.expression.Expression
            astore 3 /* expressions */
        start local 3 // org.h2.expression.Expression[] expressions
         2: .line 401
            aload 0 /* session */
            ifnonnull 3
            aconst_null
            goto 4
      StackMap locals: int org.h2.expression.Expression[]
      StackMap stack:
         3: aload 0 /* session */
            invokevirtual org.h2.engine.Session.getDatabase:()Lorg/h2/engine/Database;
      StackMap locals:
      StackMap stack: org.h2.engine.Database
         4: astore 4 /* db */
        start local 4 // org.h2.engine.Database db
         5: .line 402
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: goto 13
         7: .line 403
      StackMap locals: org.h2.engine.Database int
      StackMap stack:
            aload 1 /* result */
            iload 5 /* i */
            invokeinterface org.h2.result.ResultInterface.getColumnName:(I)Ljava/lang/String;
            astore 6 /* name */
        start local 6 // java.lang.String name
         8: .line 404
            aload 1 /* result */
            iload 5 /* i */
            invokeinterface org.h2.result.ResultInterface.getColumnType:(I)Lorg/h2/value/TypeInfo;
            astore 7 /* type */
        start local 7 // org.h2.value.TypeInfo type
         9: .line 405
            new org.h2.table.Column
            dup
            aload 6 /* name */
            aload 7 /* type */
            invokespecial org.h2.table.Column.<init>:(Ljava/lang/String;Lorg/h2/value/TypeInfo;)V
            astore 8 /* col */
        start local 8 // org.h2.table.Column col
        10: .line 406
            new org.h2.expression.ExpressionColumn
            dup
            aload 4 /* db */
            aload 8 /* col */
            invokespecial org.h2.expression.ExpressionColumn.<init>:(Lorg/h2/engine/Database;Lorg/h2/table/Column;)V
            astore 9 /* expr */
        start local 9 // org.h2.expression.Expression expr
        11: .line 407
            aload 3 /* expressions */
            iload 5 /* i */
            aload 9 /* expr */
            aastore
        end local 9 // org.h2.expression.Expression expr
        end local 8 // org.h2.table.Column col
        end local 7 // org.h2.value.TypeInfo type
        end local 6 // java.lang.String name
        12: .line 402
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 5 /* i */
            iload 2 /* columnCount */
            if_icmplt 7
        end local 5 // int i
        14: .line 409
            aload 3 /* expressions */
            areturn
        end local 4 // org.h2.engine.Database db
        end local 3 // org.h2.expression.Expression[] expressions
        end local 2 // int columnCount
        end local 1 // org.h2.result.ResultInterface result
        end local 0 // org.h2.engine.Session session
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   15     0      session  Lorg/h2/engine/Session;
            0   15     1       result  Lorg/h2/result/ResultInterface;
            1   15     2  columnCount  I
            2   15     3  expressions  [Lorg/h2/expression/Expression;
            5   15     4           db  Lorg/h2/engine/Database;
            6   14     5            i  I
            8   12     6         name  Ljava/lang/String;
            9   12     7         type  Lorg/h2/value/TypeInfo;
           10   12     8          col  Lorg/h2/table/Column;
           11   12     9         expr  Lorg/h2/expression/Expression;
    MethodParameters:
         Name  Flags
      session  
      result   

  public int getSubexpressionCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.expression.Expression this
         0: .line 418
            iconst_0
            ireturn
        end local 0 // org.h2.expression.Expression this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/expression/Expression;

  public org.h2.expression.Expression getSubexpression(int);
    descriptor: (I)Lorg/h2/expression/Expression;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.expression.Expression this
        start local 1 // int index
         0: .line 429
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
        end local 1 // int index
        end local 0 // org.h2.expression.Expression this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/h2/expression/Expression;
            0    1     1  index  I
    MethodParameters:
       Name  Flags
      index  
}
SourceFile: "Expression.java"