class io.ebeaninternal.server.query.CQueryPlanRawSql extends io.ebeaninternal.server.query.CQueryPlan
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: io.ebeaninternal.server.query.CQueryPlanRawSql
  super_class: io.ebeaninternal.server.query.CQueryPlan
{
  private final int[] rsetIndexPositions;
    descriptor: [I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(io.ebeaninternal.server.core.OrmQueryRequest<?>, io.ebean.config.dbplatform.SqlLimitResponse, io.ebeaninternal.server.query.SqlTree, java.lang.String);
    descriptor: (Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebean/config/dbplatform/SqlLimitResponse;Lio/ebeaninternal/server/query/SqlTree;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // io.ebeaninternal.server.query.CQueryPlanRawSql this
        start local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        start local 2 // io.ebean.config.dbplatform.SqlLimitResponse sqlRes
        start local 3 // io.ebeaninternal.server.query.SqlTree sqlTree
        start local 4 // java.lang.String logWhereSql
         0: .line 20
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* sqlRes */
            aload 3 /* sqlTree */
            iconst_1
            aload 4 /* logWhereSql */
            invokespecial io.ebeaninternal.server.query.CQueryPlan.<init>:(Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebean/config/dbplatform/SqlLimitResponse;Lio/ebeaninternal/server/query/SqlTree;ZLjava/lang/String;)V
         1: .line 21
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* request */
            aload 3 /* sqlTree */
            invokevirtual io.ebeaninternal.server.query.CQueryPlanRawSql.createIndexPositions:(Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/SqlTree;)[I
            putfield io.ebeaninternal.server.query.CQueryPlanRawSql.rsetIndexPositions:[I
         2: .line 22
            return
        end local 4 // java.lang.String logWhereSql
        end local 3 // io.ebeaninternal.server.query.SqlTree sqlTree
        end local 2 // io.ebean.config.dbplatform.SqlLimitResponse sqlRes
        end local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        end local 0 // io.ebeaninternal.server.query.CQueryPlanRawSql this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lio/ebeaninternal/server/query/CQueryPlanRawSql;
            0    3     1      request  Lio/ebeaninternal/server/core/OrmQueryRequest<*>;
            0    3     2       sqlRes  Lio/ebean/config/dbplatform/SqlLimitResponse;
            0    3     3      sqlTree  Lio/ebeaninternal/server/query/SqlTree;
            0    3     4  logWhereSql  Ljava/lang/String;
    Signature: (Lio/ebeaninternal/server/core/OrmQueryRequest<*>;Lio/ebean/config/dbplatform/SqlLimitResponse;Lio/ebeaninternal/server/query/SqlTree;Ljava/lang/String;)V
    MethodParameters:
             Name  Flags
      request      
      sqlRes       
      sqlTree      
      logWhereSql  

  public io.ebean.core.type.DataReader createDataReader(java.sql.ResultSet);
    descriptor: (Ljava/sql/ResultSet;)Lio/ebean/core/type/DataReader;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.query.CQueryPlanRawSql this
        start local 1 // java.sql.ResultSet rset
         0: .line 26
            new io.ebeaninternal.server.type.RsetDataReaderIndexed
            dup
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlanRawSql.dataTimeZone:Lio/ebeaninternal/server/core/timezone/DataTimeZone;
            aload 1 /* rset */
            aload 0 /* this */
            getfield io.ebeaninternal.server.query.CQueryPlanRawSql.rsetIndexPositions:[I
            invokespecial io.ebeaninternal.server.type.RsetDataReaderIndexed.<init>:(Lio/ebeaninternal/server/core/timezone/DataTimeZone;Ljava/sql/ResultSet;[I)V
            areturn
        end local 1 // java.sql.ResultSet rset
        end local 0 // io.ebeaninternal.server.query.CQueryPlanRawSql this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/query/CQueryPlanRawSql;
            0    1     1  rset  Ljava/sql/ResultSet;
    MethodParameters:
      Name  Flags
      rset  

  private int[] createIndexPositions(io.ebeaninternal.server.core.OrmQueryRequest<?>, io.ebeaninternal.server.query.SqlTree);
    descriptor: (Lio/ebeaninternal/server/core/OrmQueryRequest;Lio/ebeaninternal/server/query/SqlTree;)[I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // io.ebeaninternal.server.query.CQueryPlanRawSql this
        start local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        start local 2 // io.ebeaninternal.server.query.SqlTree sqlTree
         0: .line 31
            aload 2 /* sqlTree */
            invokevirtual io.ebeaninternal.server.query.SqlTree.buildRawSqlSelectChain:()Ljava/util/List;
            astore 3 /* chain */
        start local 3 // java.util.List chain
         1: .line 32
            aload 1 /* request */
            invokevirtual io.ebeaninternal.server.core.OrmQueryRequest.getQuery:()Lio/ebeaninternal/api/SpiQuery;
            invokeinterface io.ebeaninternal.api.SpiQuery.getRawSql:()Lio/ebeaninternal/server/rawsql/SpiRawSql;
            invokeinterface io.ebeaninternal.server.rawsql.SpiRawSql.getColumnMapping:()Lio/ebeaninternal/server/rawsql/SpiRawSql$ColumnMapping;
            astore 4 /* columnMapping */
        start local 4 // io.ebeaninternal.server.rawsql.SpiRawSql$ColumnMapping columnMapping
         2: .line 34
            aload 3 /* chain */
            invokeinterface java.util.List.size:()I
            newarray 10
            astore 5 /* indexPositions */
        start local 5 // int[] indexPositions
         3: .line 37
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         4: goto 11
         5: .line 38
      StackMap locals: io.ebeaninternal.server.query.CQueryPlanRawSql io.ebeaninternal.server.core.OrmQueryRequest io.ebeaninternal.server.query.SqlTree java.util.List io.ebeaninternal.server.rawsql.SpiRawSql$ColumnMapping int[] int
      StackMap stack:
            aload 3 /* chain */
            iload 6 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* logicalPropertyPath */
        start local 7 // java.lang.String logicalPropertyPath
         6: .line 39
            aload 4 /* columnMapping */
            aload 7 /* logicalPropertyPath */
            invokevirtual io.ebeaninternal.server.rawsql.SpiRawSql$ColumnMapping.getIndexPosition:(Ljava/lang/String;)I
            istore 8 /* mappedPosition */
        start local 8 // int mappedPosition
         7: .line 40
            iload 8 /* mappedPosition */
            iconst_m1
            if_icmpne 9
            aload 7 /* logicalPropertyPath */
            ldc ".id"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 9
         8: .line 42
            aload 4 /* columnMapping */
            aload 0 /* this */
            aload 7 /* logicalPropertyPath */
            invokevirtual io.ebeaninternal.server.query.CQueryPlanRawSql.foreignKeyPath:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual io.ebeaninternal.server.rawsql.SpiRawSql$ColumnMapping.getIndexPosition:(Ljava/lang/String;)I
            istore 8 /* mappedPosition */
         9: .line 44
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 5 /* indexPositions */
            iload 6 /* i */
            iconst_1
            iload 8 /* mappedPosition */
            iadd
            iastore
        end local 8 // int mappedPosition
        end local 7 // java.lang.String logicalPropertyPath
        10: .line 37
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 6 /* i */
            aload 3 /* chain */
            invokeinterface java.util.List.size:()I
            if_icmplt 5
        end local 6 // int i
        12: .line 49
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        13: goto 17
        14: .line 50
      StackMap locals:
      StackMap stack:
            aload 5 /* indexPositions */
            iload 6 /* i */
            iaload
            ifne 16
        15: .line 52
            aload 5 /* indexPositions */
            iload 6 /* i */
            aload 5 /* indexPositions */
            iload 6 /* i */
            iconst_1
            iadd
            iaload
            iconst_1
            isub
            iastore
        16: .line 49
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 6 /* i */
            aload 5 /* indexPositions */
            arraylength
            if_icmplt 14
        end local 6 // int i
        18: .line 56
            aload 5 /* indexPositions */
            areturn
        end local 5 // int[] indexPositions
        end local 4 // io.ebeaninternal.server.rawsql.SpiRawSql$ColumnMapping columnMapping
        end local 3 // java.util.List chain
        end local 2 // io.ebeaninternal.server.query.SqlTree sqlTree
        end local 1 // io.ebeaninternal.server.core.OrmQueryRequest request
        end local 0 // io.ebeaninternal.server.query.CQueryPlanRawSql this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   19     0                 this  Lio/ebeaninternal/server/query/CQueryPlanRawSql;
            0   19     1              request  Lio/ebeaninternal/server/core/OrmQueryRequest<*>;
            0   19     2              sqlTree  Lio/ebeaninternal/server/query/SqlTree;
            1   19     3                chain  Ljava/util/List<Ljava/lang/String;>;
            2   19     4        columnMapping  Lio/ebeaninternal/server/rawsql/SpiRawSql$ColumnMapping;
            3   19     5       indexPositions  [I
            4   12     6                    i  I
            6   10     7  logicalPropertyPath  Ljava/lang/String;
            7   10     8       mappedPosition  I
           13   18     6                    i  I
    Signature: (Lio/ebeaninternal/server/core/OrmQueryRequest<*>;Lio/ebeaninternal/server/query/SqlTree;)[I
    MethodParameters:
         Name  Flags
      request  
      sqlTree  

  private java.lang.String foreignKeyPath(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.query.CQueryPlanRawSql this
        start local 1 // java.lang.String logicalPropertyPath
         0: .line 64
            new java.lang.StringBuilder
            dup
            aload 1 /* logicalPropertyPath */
            iconst_0
            aload 1 /* logicalPropertyPath */
            invokevirtual java.lang.String.length:()I
            iconst_3
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Id"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.String logicalPropertyPath
        end local 0 // io.ebeaninternal.server.query.CQueryPlanRawSql this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    1     0                 this  Lio/ebeaninternal/server/query/CQueryPlanRawSql;
            0    1     1  logicalPropertyPath  Ljava/lang/String;
    MethodParameters:
                     Name  Flags
      logicalPropertyPath  
}
SourceFile: "CQueryPlanRawSql.java"
InnerClasses:
  public final ColumnMapping = io.ebeaninternal.server.rawsql.SpiRawSql$ColumnMapping of io.ebeaninternal.server.rawsql.SpiRawSql