public class org.apache.cassandra.cql3.statements.SelectStatement$RawStatement extends org.apache.cassandra.cql3.statements.CFStatement
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.cql3.statements.SelectStatement$RawStatement
  super_class: org.apache.cassandra.cql3.statements.CFStatement
{
  public final org.apache.cassandra.cql3.statements.SelectStatement$Parameters parameters;
    descriptor: Lorg/apache/cassandra/cql3/statements/SelectStatement$Parameters;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final java.util.List<org.apache.cassandra.cql3.selection.RawSelector> selectClause;
    descriptor: Ljava/util/List;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Signature: Ljava/util/List<Lorg/apache/cassandra/cql3/selection/RawSelector;>;

  public final org.apache.cassandra.cql3.WhereClause whereClause;
    descriptor: Lorg/apache/cassandra/cql3/WhereClause;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final org.apache.cassandra.cql3.Term$Raw limit;
    descriptor: Lorg/apache/cassandra/cql3/Term$Raw;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final org.apache.cassandra.cql3.Term$Raw perPartitionLimit;
    descriptor: Lorg/apache/cassandra/cql3/Term$Raw;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 928
            ldc Lorg/apache/cassandra/cql3/statements/SelectStatement;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.apache.cassandra.cql3.CFName, org.apache.cassandra.cql3.statements.SelectStatement$Parameters, java.util.List<org.apache.cassandra.cql3.selection.RawSelector>, org.apache.cassandra.cql3.WhereClause, org.apache.cassandra.cql3.Term$Raw, org.apache.cassandra.cql3.Term$Raw);
    descriptor: (Lorg/apache/cassandra/cql3/CFName;Lorg/apache/cassandra/cql3/statements/SelectStatement$Parameters;Ljava/util/List;Lorg/apache/cassandra/cql3/WhereClause;Lorg/apache/cassandra/cql3/Term$Raw;Lorg/apache/cassandra/cql3/Term$Raw;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=7
        start local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
        start local 1 // org.apache.cassandra.cql3.CFName cfName
        start local 2 // org.apache.cassandra.cql3.statements.SelectStatement$Parameters parameters
        start local 3 // java.util.List selectClause
        start local 4 // org.apache.cassandra.cql3.WhereClause whereClause
        start local 5 // org.apache.cassandra.cql3.Term$Raw limit
        start local 6 // org.apache.cassandra.cql3.Term$Raw perPartitionLimit
         0: .line 942
            aload 0 /* this */
            aload 1 /* cfName */
            invokespecial org.apache.cassandra.cql3.statements.CFStatement.<init>:(Lorg/apache/cassandra/cql3/CFName;)V
         1: .line 943
            aload 0 /* this */
            aload 2 /* parameters */
            putfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.parameters:Lorg/apache/cassandra/cql3/statements/SelectStatement$Parameters;
         2: .line 944
            aload 0 /* this */
            aload 3 /* selectClause */
            putfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.selectClause:Ljava/util/List;
         3: .line 945
            aload 0 /* this */
            aload 4 /* whereClause */
            putfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.whereClause:Lorg/apache/cassandra/cql3/WhereClause;
         4: .line 946
            aload 0 /* this */
            aload 5 /* limit */
            putfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.limit:Lorg/apache/cassandra/cql3/Term$Raw;
         5: .line 947
            aload 0 /* this */
            aload 6 /* perPartitionLimit */
            putfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.perPartitionLimit:Lorg/apache/cassandra/cql3/Term$Raw;
         6: .line 948
            return
        end local 6 // org.apache.cassandra.cql3.Term$Raw perPartitionLimit
        end local 5 // org.apache.cassandra.cql3.Term$Raw limit
        end local 4 // org.apache.cassandra.cql3.WhereClause whereClause
        end local 3 // java.util.List selectClause
        end local 2 // org.apache.cassandra.cql3.statements.SelectStatement$Parameters parameters
        end local 1 // org.apache.cassandra.cql3.CFName cfName
        end local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0               this  Lorg/apache/cassandra/cql3/statements/SelectStatement$RawStatement;
            0    7     1             cfName  Lorg/apache/cassandra/cql3/CFName;
            0    7     2         parameters  Lorg/apache/cassandra/cql3/statements/SelectStatement$Parameters;
            0    7     3       selectClause  Ljava/util/List<Lorg/apache/cassandra/cql3/selection/RawSelector;>;
            0    7     4        whereClause  Lorg/apache/cassandra/cql3/WhereClause;
            0    7     5              limit  Lorg/apache/cassandra/cql3/Term$Raw;
            0    7     6  perPartitionLimit  Lorg/apache/cassandra/cql3/Term$Raw;
    Signature: (Lorg/apache/cassandra/cql3/CFName;Lorg/apache/cassandra/cql3/statements/SelectStatement$Parameters;Ljava/util/List<Lorg/apache/cassandra/cql3/selection/RawSelector;>;Lorg/apache/cassandra/cql3/WhereClause;Lorg/apache/cassandra/cql3/Term$Raw;Lorg/apache/cassandra/cql3/Term$Raw;)V
    MethodParameters:
                   Name  Flags
      cfName             
      parameters         
      selectClause       
      whereClause        
      limit              
      perPartitionLimit  

  public org.apache.cassandra.cql3.statements.ParsedStatement$Prepared prepare(org.apache.cassandra.service.ClientState);
    descriptor: (Lorg/apache/cassandra/service/ClientState;)Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
        start local 1 // org.apache.cassandra.service.ClientState clientState
         0: .line 952
            aload 0 /* this */
            iconst_0
            aload 1 /* clientState */
            invokevirtual org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepare:(ZLorg/apache/cassandra/service/ClientState;)Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;
            areturn
        end local 1 // org.apache.cassandra.service.ClientState clientState
        end local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/apache/cassandra/cql3/statements/SelectStatement$RawStatement;
            0    1     1  clientState  Lorg/apache/cassandra/service/ClientState;
    Exceptions:
      throws org.apache.cassandra.exceptions.InvalidRequestException
    MethodParameters:
             Name  Flags
      clientState  

  public org.apache.cassandra.cql3.statements.ParsedStatement$Prepared prepare(boolean, org.apache.cassandra.service.ClientState);
    descriptor: (ZLorg/apache/cassandra/service/ClientState;)Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=16, locals=11, args_size=3
        start local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
        start local 1 // boolean forView
        start local 2 // org.apache.cassandra.service.ClientState clientState
         0: .line 957
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.keyspace:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.columnFamily:()Ljava/lang/String;
            aload 2 /* clientState */
            invokevirtual org.apache.cassandra.service.ClientState.isNoCompactMode:()Z
            invokestatic org.apache.cassandra.thrift.ThriftValidation.validateColumnFamilyWithCompactMode:(Ljava/lang/String;Ljava/lang/String;Z)Lorg/apache/cassandra/config/CFMetaData;
            astore 3 /* cfm */
        start local 3 // org.apache.cassandra.config.CFMetaData cfm
         1: .line 958
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.getBoundVariables:()Lorg/apache/cassandra/cql3/VariableSpecifications;
            astore 4 /* boundNames */
        start local 4 // org.apache.cassandra.cql3.VariableSpecifications boundNames
         2: .line 960
            aload 0 /* this */
            aload 3 /* cfm */
            aload 4 /* boundNames */
            invokevirtual org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepareSelection:(Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/cql3/VariableSpecifications;)Lorg/apache/cassandra/cql3/selection/Selection;
            astore 5 /* selection */
        start local 5 // org.apache.cassandra.cql3.selection.Selection selection
         3: .line 962
            aload 0 /* this */
            aload 3 /* cfm */
            aload 4 /* boundNames */
            aload 5 /* selection */
            iload 1 /* forView */
            invokevirtual org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepareRestrictions:(Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/cql3/VariableSpecifications;Lorg/apache/cassandra/cql3/selection/Selection;Z)Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            astore 6 /* restrictions */
        start local 6 // org.apache.cassandra.cql3.restrictions.StatementRestrictions restrictions
         4: .line 964
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.parameters:Lorg/apache/cassandra/cql3/statements/SelectStatement$Parameters;
            getfield org.apache.cassandra.cql3.statements.SelectStatement$Parameters.isDistinct:Z
            ifeq 7
         5: .line 966
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.perPartitionLimit:Lorg/apache/cassandra/cql3/Term$Raw;
            ldc "PER PARTITION LIMIT is not allowed with SELECT DISTINCT queries"
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         6: .line 967
            aload 3 /* cfm */
            aload 5 /* selection */
            aload 6 /* restrictions */
            invokestatic org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.validateDistinctSelection:(Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/cql3/selection/Selection;Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;)V
         7: .line 970
      StackMap locals: org.apache.cassandra.cql3.statements.SelectStatement$RawStatement int org.apache.cassandra.service.ClientState org.apache.cassandra.config.CFMetaData org.apache.cassandra.cql3.VariableSpecifications org.apache.cassandra.cql3.selection.Selection org.apache.cassandra.cql3.restrictions.StatementRestrictions
      StackMap stack:
            aload 0 /* this */
            aload 3 /* cfm */
         8: .line 971
            aload 5 /* selection */
         9: .line 972
            aload 6 /* restrictions */
        10: .line 973
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.parameters:Lorg/apache/cassandra/cql3/statements/SelectStatement$Parameters;
            getfield org.apache.cassandra.cql3.statements.SelectStatement$Parameters.isDistinct:Z
        11: .line 970
            invokevirtual org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.getAggregationSpecification:(Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/cql3/selection/Selection;Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;Z)Lorg/apache/cassandra/db/aggregation/AggregationSpecification;
            astore 7 /* aggregationSpec */
        start local 7 // org.apache.cassandra.db.aggregation.AggregationSpecification aggregationSpec
        12: .line 975
            aload 7 /* aggregationSpec */
            getstatic org.apache.cassandra.db.aggregation.AggregationSpecification.AGGREGATE_EVERYTHING:Lorg/apache/cassandra/db/aggregation/AggregationSpecification;
            if_acmpne 13
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.perPartitionLimit:Lorg/apache/cassandra/cql3/Term$Raw;
            ifnull 13
            iconst_1
            goto 14
      StackMap locals: org.apache.cassandra.db.aggregation.AggregationSpecification
      StackMap stack:
        13: iconst_0
        14: .line 976
      StackMap locals:
      StackMap stack: int
            ldc "PER PARTITION LIMIT is not allowed with aggregate queries."
        15: .line 975
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkFalse:(ZLjava/lang/String;)V
        16: .line 978
            aconst_null
            astore 8 /* orderingComparator */
        start local 8 // java.util.Comparator orderingComparator
        17: .line 979
            iconst_0
            istore 9 /* isReversed */
        start local 9 // boolean isReversed
        18: .line 981
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.parameters:Lorg/apache/cassandra/cql3/statements/SelectStatement$Parameters;
            getfield org.apache.cassandra.cql3.statements.SelectStatement$Parameters.orderings:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 25
        19: .line 983
            getstatic org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.$assertionsDisabled:Z
            ifne 20
            iload 1 /* forView */
            ifeq 20
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        20: .line 984
      StackMap locals: java.util.Comparator int
      StackMap stack:
            aload 6 /* restrictions */
            invokestatic org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.verifyOrderingIsAllowed:(Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;)V
        21: .line 985
            aload 0 /* this */
            aload 3 /* cfm */
            aload 5 /* selection */
            aload 6 /* restrictions */
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.parameters:Lorg/apache/cassandra/cql3/statements/SelectStatement$Parameters;
            getfield org.apache.cassandra.cql3.statements.SelectStatement$Parameters.isJson:Z
            invokevirtual org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.getOrderingComparator:(Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/cql3/selection/Selection;Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;Z)Ljava/util/Comparator;
            astore 8 /* orderingComparator */
        22: .line 986
            aload 0 /* this */
            aload 3 /* cfm */
            invokevirtual org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.isReversed:(Lorg/apache/cassandra/config/CFMetaData;)Z
            istore 9 /* isReversed */
        23: .line 987
            iload 9 /* isReversed */
            ifeq 25
        24: .line 988
            aload 8 /* orderingComparator */
            invokestatic java.util.Collections.reverseOrder:(Ljava/util/Comparator;)Ljava/util/Comparator;
            astore 8 /* orderingComparator */
        25: .line 991
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* restrictions */
            invokevirtual org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.checkNeedsFiltering:(Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;)V
        26: .line 993
            new org.apache.cassandra.cql3.statements.SelectStatement
            dup
            aload 3 /* cfm */
        27: .line 994
            aload 4 /* boundNames */
            invokevirtual org.apache.cassandra.cql3.VariableSpecifications.size:()I
        28: .line 995
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.parameters:Lorg/apache/cassandra/cql3/statements/SelectStatement$Parameters;
        29: .line 996
            aload 5 /* selection */
        30: .line 997
            aload 6 /* restrictions */
        31: .line 998
            iload 9 /* isReversed */
        32: .line 999
            aload 7 /* aggregationSpec */
        33: .line 1000
            aload 8 /* orderingComparator */
        34: .line 1001
            aload 0 /* this */
            aload 4 /* boundNames */
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.limit:Lorg/apache/cassandra/cql3/Term$Raw;
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.keyspace:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.limitReceiver:()Lorg/apache/cassandra/cql3/ColumnSpecification;
            invokevirtual org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepareLimit:(Lorg/apache/cassandra/cql3/VariableSpecifications;Lorg/apache/cassandra/cql3/Term$Raw;Ljava/lang/String;Lorg/apache/cassandra/cql3/ColumnSpecification;)Lorg/apache/cassandra/cql3/Term;
        35: .line 1002
            aload 0 /* this */
            aload 4 /* boundNames */
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.perPartitionLimit:Lorg/apache/cassandra/cql3/Term$Raw;
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.keyspace:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.perPartitionLimitReceiver:()Lorg/apache/cassandra/cql3/ColumnSpecification;
            invokevirtual org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepareLimit:(Lorg/apache/cassandra/cql3/VariableSpecifications;Lorg/apache/cassandra/cql3/Term$Raw;Ljava/lang/String;Lorg/apache/cassandra/cql3/ColumnSpecification;)Lorg/apache/cassandra/cql3/Term;
        36: .line 993
            invokespecial org.apache.cassandra.cql3.statements.SelectStatement.<init>:(Lorg/apache/cassandra/config/CFMetaData;ILorg/apache/cassandra/cql3/statements/SelectStatement$Parameters;Lorg/apache/cassandra/cql3/selection/Selection;Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;ZLorg/apache/cassandra/db/aggregation/AggregationSpecification;Ljava/util/Comparator;Lorg/apache/cassandra/cql3/Term;Lorg/apache/cassandra/cql3/Term;)V
            astore 10 /* stmt */
        start local 10 // org.apache.cassandra.cql3.statements.SelectStatement stmt
        37: .line 1004
            new org.apache.cassandra.cql3.statements.ParsedStatement$Prepared
            dup
            aload 10 /* stmt */
            aload 4 /* boundNames */
            aload 4 /* boundNames */
            aload 3 /* cfm */
            invokevirtual org.apache.cassandra.cql3.VariableSpecifications.getPartitionKeyBindIndexes:(Lorg/apache/cassandra/config/CFMetaData;)[S
            invokespecial org.apache.cassandra.cql3.statements.ParsedStatement$Prepared.<init>:(Lorg/apache/cassandra/cql3/CQLStatement;Lorg/apache/cassandra/cql3/VariableSpecifications;[S)V
            areturn
        end local 10 // org.apache.cassandra.cql3.statements.SelectStatement stmt
        end local 9 // boolean isReversed
        end local 8 // java.util.Comparator orderingComparator
        end local 7 // org.apache.cassandra.db.aggregation.AggregationSpecification aggregationSpec
        end local 6 // org.apache.cassandra.cql3.restrictions.StatementRestrictions restrictions
        end local 5 // org.apache.cassandra.cql3.selection.Selection selection
        end local 4 // org.apache.cassandra.cql3.VariableSpecifications boundNames
        end local 3 // org.apache.cassandra.config.CFMetaData cfm
        end local 2 // org.apache.cassandra.service.ClientState clientState
        end local 1 // boolean forView
        end local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   38     0                this  Lorg/apache/cassandra/cql3/statements/SelectStatement$RawStatement;
            0   38     1             forView  Z
            0   38     2         clientState  Lorg/apache/cassandra/service/ClientState;
            1   38     3                 cfm  Lorg/apache/cassandra/config/CFMetaData;
            2   38     4          boundNames  Lorg/apache/cassandra/cql3/VariableSpecifications;
            3   38     5           selection  Lorg/apache/cassandra/cql3/selection/Selection;
            4   38     6        restrictions  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
           12   38     7     aggregationSpec  Lorg/apache/cassandra/db/aggregation/AggregationSpecification;
           17   38     8  orderingComparator  Ljava/util/Comparator<Ljava/util/List<Ljava/nio/ByteBuffer;>;>;
           18   38     9          isReversed  Z
           37   38    10                stmt  Lorg/apache/cassandra/cql3/statements/SelectStatement;
    Exceptions:
      throws org.apache.cassandra.exceptions.InvalidRequestException
    MethodParameters:
             Name  Flags
      forView      
      clientState  

  private org.apache.cassandra.cql3.selection.Selection prepareSelection(org.apache.cassandra.config.CFMetaData, org.apache.cassandra.cql3.VariableSpecifications);
    descriptor: (Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/cql3/VariableSpecifications;)Lorg/apache/cassandra/cql3/selection/Selection;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
        start local 1 // org.apache.cassandra.config.CFMetaData cfm
        start local 2 // org.apache.cassandra.cql3.VariableSpecifications boundNames
         0: .line 1016
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.parameters:Lorg/apache/cassandra/cql3/statements/SelectStatement$Parameters;
            getfield org.apache.cassandra.cql3.statements.SelectStatement$Parameters.groups:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: istore 3 /* hasGroupBy */
        start local 3 // boolean hasGroupBy
         3: .line 1018
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.selectClause:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 7
         4: .line 1019
            iload 3 /* hasGroupBy */
            ifeq 5
            aload 1 /* cfm */
            aload 2 /* boundNames */
            invokestatic org.apache.cassandra.cql3.selection.Selection.wildcardWithGroupBy:(Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/cql3/VariableSpecifications;)Lorg/apache/cassandra/cql3/selection/Selection;
            goto 6
      StackMap locals: int
      StackMap stack:
         5: aload 1 /* cfm */
            invokestatic org.apache.cassandra.cql3.selection.Selection.wildcard:(Lorg/apache/cassandra/config/CFMetaData;)Lorg/apache/cassandra/cql3/selection/Selection;
      StackMap locals:
      StackMap stack: org.apache.cassandra.cql3.selection.Selection
         6: areturn
         7: .line 1021
      StackMap locals:
      StackMap stack:
            aload 1 /* cfm */
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.selectClause:Ljava/util/List;
            aload 2 /* boundNames */
            iload 3 /* hasGroupBy */
            invokestatic org.apache.cassandra.cql3.selection.Selection.fromSelectors:(Lorg/apache/cassandra/config/CFMetaData;Ljava/util/List;Lorg/apache/cassandra/cql3/VariableSpecifications;Z)Lorg/apache/cassandra/cql3/selection/Selection;
            areturn
        end local 3 // boolean hasGroupBy
        end local 2 // org.apache.cassandra.cql3.VariableSpecifications boundNames
        end local 1 // org.apache.cassandra.config.CFMetaData cfm
        end local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lorg/apache/cassandra/cql3/statements/SelectStatement$RawStatement;
            0    8     1         cfm  Lorg/apache/cassandra/config/CFMetaData;
            0    8     2  boundNames  Lorg/apache/cassandra/cql3/VariableSpecifications;
            3    8     3  hasGroupBy  Z
    MethodParameters:
            Name  Flags
      cfm         
      boundNames  

  private org.apache.cassandra.cql3.restrictions.StatementRestrictions prepareRestrictions(org.apache.cassandra.config.CFMetaData, org.apache.cassandra.cql3.VariableSpecifications, org.apache.cassandra.cql3.selection.Selection, boolean);
    descriptor: (Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/cql3/VariableSpecifications;Lorg/apache/cassandra/cql3/selection/Selection;Z)Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=5, args_size=5
        start local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
        start local 1 // org.apache.cassandra.config.CFMetaData cfm
        start local 2 // org.apache.cassandra.cql3.VariableSpecifications boundNames
        start local 3 // org.apache.cassandra.cql3.selection.Selection selection
        start local 4 // boolean forView
         0: .line 1038
            new org.apache.cassandra.cql3.restrictions.StatementRestrictions
            dup
            getstatic org.apache.cassandra.cql3.statements.StatementType.SELECT:Lorg/apache/cassandra/cql3/statements/StatementType;
         1: .line 1039
            aload 1 /* cfm */
         2: .line 1040
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.whereClause:Lorg/apache/cassandra/cql3/WhereClause;
         3: .line 1041
            aload 2 /* boundNames */
         4: .line 1042
            aload 3 /* selection */
            invokevirtual org.apache.cassandra.cql3.selection.Selection.containsOnlyStaticColumns:()Z
         5: .line 1043
            aload 3 /* selection */
            invokevirtual org.apache.cassandra.cql3.selection.Selection.containsAComplexColumn:()Z
         6: .line 1044
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.parameters:Lorg/apache/cassandra/cql3/statements/SelectStatement$Parameters;
            getfield org.apache.cassandra.cql3.statements.SelectStatement$Parameters.allowFiltering:Z
         7: .line 1045
            iload 4 /* forView */
         8: .line 1038
            invokespecial org.apache.cassandra.cql3.restrictions.StatementRestrictions.<init>:(Lorg/apache/cassandra/cql3/statements/StatementType;Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/cql3/WhereClause;Lorg/apache/cassandra/cql3/VariableSpecifications;ZZZZ)V
            areturn
        end local 4 // boolean forView
        end local 3 // org.apache.cassandra.cql3.selection.Selection selection
        end local 2 // org.apache.cassandra.cql3.VariableSpecifications boundNames
        end local 1 // org.apache.cassandra.config.CFMetaData cfm
        end local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lorg/apache/cassandra/cql3/statements/SelectStatement$RawStatement;
            0    9     1         cfm  Lorg/apache/cassandra/config/CFMetaData;
            0    9     2  boundNames  Lorg/apache/cassandra/cql3/VariableSpecifications;
            0    9     3   selection  Lorg/apache/cassandra/cql3/selection/Selection;
            0    9     4     forView  Z
    Exceptions:
      throws org.apache.cassandra.exceptions.InvalidRequestException
    MethodParameters:
            Name  Flags
      cfm         
      boundNames  
      selection   
      forView     

  private org.apache.cassandra.cql3.Term prepareLimit(org.apache.cassandra.cql3.VariableSpecifications, org.apache.cassandra.cql3.Term$Raw, java.lang.String, org.apache.cassandra.cql3.ColumnSpecification);
    descriptor: (Lorg/apache/cassandra/cql3/VariableSpecifications;Lorg/apache/cassandra/cql3/Term$Raw;Ljava/lang/String;Lorg/apache/cassandra/cql3/ColumnSpecification;)Lorg/apache/cassandra/cql3/Term;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=5
        start local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
        start local 1 // org.apache.cassandra.cql3.VariableSpecifications boundNames
        start local 2 // org.apache.cassandra.cql3.Term$Raw limit
        start local 3 // java.lang.String keyspace
        start local 4 // org.apache.cassandra.cql3.ColumnSpecification limitReceiver
         0: .line 1052
            aload 2 /* limit */
            ifnonnull 2
         1: .line 1053
            aconst_null
            areturn
         2: .line 1055
      StackMap locals:
      StackMap stack:
            aload 2 /* limit */
            aload 3 /* keyspace */
            aload 4 /* limitReceiver */
            invokevirtual org.apache.cassandra.cql3.Term$Raw.prepare:(Ljava/lang/String;Lorg/apache/cassandra/cql3/ColumnSpecification;)Lorg/apache/cassandra/cql3/Term;
            astore 5 /* prepLimit */
        start local 5 // org.apache.cassandra.cql3.Term prepLimit
         3: .line 1056
            aload 5 /* prepLimit */
            aload 1 /* boundNames */
            invokeinterface org.apache.cassandra.cql3.Term.collectMarkerSpecification:(Lorg/apache/cassandra/cql3/VariableSpecifications;)V
         4: .line 1057
            aload 5 /* prepLimit */
            areturn
        end local 5 // org.apache.cassandra.cql3.Term prepLimit
        end local 4 // org.apache.cassandra.cql3.ColumnSpecification limitReceiver
        end local 3 // java.lang.String keyspace
        end local 2 // org.apache.cassandra.cql3.Term$Raw limit
        end local 1 // org.apache.cassandra.cql3.VariableSpecifications boundNames
        end local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lorg/apache/cassandra/cql3/statements/SelectStatement$RawStatement;
            0    5     1     boundNames  Lorg/apache/cassandra/cql3/VariableSpecifications;
            0    5     2          limit  Lorg/apache/cassandra/cql3/Term$Raw;
            0    5     3       keyspace  Ljava/lang/String;
            0    5     4  limitReceiver  Lorg/apache/cassandra/cql3/ColumnSpecification;
            3    5     5      prepLimit  Lorg/apache/cassandra/cql3/Term;
    Exceptions:
      throws org.apache.cassandra.exceptions.InvalidRequestException
    MethodParameters:
               Name  Flags
      boundNames     
      limit          
      keyspace       
      limitReceiver  

  private static void verifyOrderingIsAllowed(org.apache.cassandra.cql3.restrictions.StatementRestrictions);
    descriptor: (Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions restrictions
         0: .line 1062
            aload 0 /* restrictions */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.usesSecondaryIndexing:()Z
            ldc "ORDER BY with 2ndary indexes is not supported."
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkFalse:(ZLjava/lang/String;)V
         1: .line 1063
            aload 0 /* restrictions */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.isKeyRange:()Z
            ldc "ORDER BY is only supported when the partition key is restricted by an EQ or an IN."
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkFalse:(ZLjava/lang/String;)V
         2: .line 1064
            return
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions restrictions
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0  restrictions  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
    Exceptions:
      throws org.apache.cassandra.exceptions.InvalidRequestException
    MethodParameters:
              Name  Flags
      restrictions  

  private static void validateDistinctSelection(org.apache.cassandra.config.CFMetaData, org.apache.cassandra.cql3.selection.Selection, org.apache.cassandra.cql3.restrictions.StatementRestrictions);
    descriptor: (Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/cql3/selection/Selection;Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // org.apache.cassandra.config.CFMetaData cfm
        start local 1 // org.apache.cassandra.cql3.selection.Selection selection
        start local 2 // org.apache.cassandra.cql3.restrictions.StatementRestrictions restrictions
         0: .line 1071
            aload 2 /* restrictions */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.hasClusteringColumnsRestrictions:()Z
            ifne 3
         1: .line 1072
            aload 2 /* restrictions */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.hasNonPrimaryKeyRestrictions:()Z
            ifeq 2
            aload 2 /* restrictions */
            iconst_1
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.nonPKRestrictedColumns:(Z)Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  org/apache/cassandra/config/ColumnDefinition.isStatic()Z (5)
                  (Lorg/apache/cassandra/config/ColumnDefinition;)Z
            invokeinterface java.util.stream.Stream.allMatch:(Ljava/util/function/Predicate;)Z
            ifeq 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_1
         4: .line 1073
      StackMap locals:
      StackMap stack: int
            ldc "SELECT DISTINCT with WHERE clause only supports restriction by partition key and/or static columns."
         5: .line 1071
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkFalse:(ZLjava/lang/String;)V
         6: .line 1075
            aload 1 /* selection */
            invokevirtual org.apache.cassandra.cql3.selection.Selection.getColumns:()Ljava/util/List;
            astore 3 /* requestedColumns */
        start local 3 // java.util.Collection requestedColumns
         7: .line 1076
            aload 3 /* requestedColumns */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 14
      StackMap locals: org.apache.cassandra.config.CFMetaData org.apache.cassandra.cql3.selection.Selection org.apache.cassandra.cql3.restrictions.StatementRestrictions java.util.Collection top java.util.Iterator
      StackMap stack:
         8: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.config.ColumnDefinition
            astore 4 /* def */
        start local 4 // org.apache.cassandra.config.ColumnDefinition def
         9: .line 1077
            aload 4 /* def */
            invokevirtual org.apache.cassandra.config.ColumnDefinition.isPartitionKey:()Z
            ifne 10
            aload 4 /* def */
            invokevirtual org.apache.cassandra.config.ColumnDefinition.isStatic:()Z
            ifne 10
            iconst_1
            goto 11
      StackMap locals: org.apache.cassandra.config.CFMetaData org.apache.cassandra.cql3.selection.Selection org.apache.cassandra.cql3.restrictions.StatementRestrictions java.util.Collection org.apache.cassandra.config.ColumnDefinition java.util.Iterator
      StackMap stack:
        10: iconst_0
        11: .line 1078
      StackMap locals:
      StackMap stack: int
            ldc "SELECT DISTINCT queries must only request partition key columns and/or static columns (not %s)"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        12: .line 1079
            aload 4 /* def */
            getfield org.apache.cassandra.config.ColumnDefinition.name:Lorg/apache/cassandra/cql3/ColumnIdentifier;
            aastore
        13: .line 1077
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkFalse:(ZLjava/lang/String;[Ljava/lang/Object;)V
        end local 4 // org.apache.cassandra.config.ColumnDefinition def
        14: .line 1076
      StackMap locals: org.apache.cassandra.config.CFMetaData org.apache.cassandra.cql3.selection.Selection org.apache.cassandra.cql3.restrictions.StatementRestrictions java.util.Collection top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        15: .line 1083
            aload 2 /* restrictions */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.isKeyRange:()Z
            ifne 17
        16: .line 1084
            return
        17: .line 1086
      StackMap locals: org.apache.cassandra.config.CFMetaData org.apache.cassandra.cql3.selection.Selection org.apache.cassandra.cql3.restrictions.StatementRestrictions java.util.Collection
      StackMap stack:
            aload 0 /* cfm */
            invokevirtual org.apache.cassandra.config.CFMetaData.partitionKeyColumns:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 22
      StackMap locals: org.apache.cassandra.config.CFMetaData org.apache.cassandra.cql3.selection.Selection org.apache.cassandra.cql3.restrictions.StatementRestrictions java.util.Collection top java.util.Iterator
      StackMap stack:
        18: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.config.ColumnDefinition
            astore 4 /* def */
        start local 4 // org.apache.cassandra.config.ColumnDefinition def
        19: .line 1087
            aload 3 /* requestedColumns */
            aload 4 /* def */
            invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
        20: .line 1088
            ldc "SELECT DISTINCT queries must request all the partition key columns (missing %s)"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* def */
            getfield org.apache.cassandra.config.ColumnDefinition.name:Lorg/apache/cassandra/cql3/ColumnIdentifier;
            aastore
        21: .line 1087
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkTrue:(ZLjava/lang/String;[Ljava/lang/Object;)V
        end local 4 // org.apache.cassandra.config.ColumnDefinition def
        22: .line 1086
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        23: .line 1089
            return
        end local 3 // java.util.Collection requestedColumns
        end local 2 // org.apache.cassandra.cql3.restrictions.StatementRestrictions restrictions
        end local 1 // org.apache.cassandra.cql3.selection.Selection selection
        end local 0 // org.apache.cassandra.config.CFMetaData cfm
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   24     0               cfm  Lorg/apache/cassandra/config/CFMetaData;
            0   24     1         selection  Lorg/apache/cassandra/cql3/selection/Selection;
            0   24     2      restrictions  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            7   24     3  requestedColumns  Ljava/util/Collection<Lorg/apache/cassandra/config/ColumnDefinition;>;
            9   14     4               def  Lorg/apache/cassandra/config/ColumnDefinition;
           19   22     4               def  Lorg/apache/cassandra/config/ColumnDefinition;
    Exceptions:
      throws org.apache.cassandra.exceptions.InvalidRequestException
    MethodParameters:
              Name  Flags
      cfm           
      selection     
      restrictions  

  private org.apache.cassandra.db.aggregation.AggregationSpecification getAggregationSpecification(org.apache.cassandra.config.CFMetaData, org.apache.cassandra.cql3.selection.Selection, org.apache.cassandra.cql3.restrictions.StatementRestrictions, boolean);
    descriptor: (Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/cql3/selection/Selection;Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;Z)Lorg/apache/cassandra/db/aggregation/AggregationSpecification;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=11, args_size=5
        start local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
        start local 1 // org.apache.cassandra.config.CFMetaData cfm
        start local 2 // org.apache.cassandra.cql3.selection.Selection selection
        start local 3 // org.apache.cassandra.cql3.restrictions.StatementRestrictions restrictions
        start local 4 // boolean isDistinct
         0: .line 1105
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.parameters:Lorg/apache/cassandra/cql3/statements/SelectStatement$Parameters;
            getfield org.apache.cassandra.cql3.statements.SelectStatement$Parameters.groups:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 4
         1: .line 1106
            aload 2 /* selection */
            invokevirtual org.apache.cassandra.cql3.selection.Selection.isAggregate:()Z
            ifeq 2
            getstatic org.apache.cassandra.db.aggregation.AggregationSpecification.AGGREGATE_EVERYTHING:Lorg/apache/cassandra/db/aggregation/AggregationSpecification;
            goto 3
         2: .line 1107
      StackMap locals:
      StackMap stack:
            aconst_null
         3: .line 1106
      StackMap locals:
      StackMap stack: org.apache.cassandra.db.aggregation.AggregationSpecification
            areturn
         4: .line 1109
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* clusteringPrefixSize */
        start local 5 // int clusteringPrefixSize
         5: .line 1111
            aload 1 /* cfm */
            invokevirtual org.apache.cassandra.config.CFMetaData.primaryKeyColumns:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6 /* pkColumns */
        start local 6 // java.util.Iterator pkColumns
         6: .line 1112
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.parameters:Lorg/apache/cassandra/cql3/statements/SelectStatement$Parameters;
            getfield org.apache.cassandra.cql3.statements.SelectStatement$Parameters.groups:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 25
      StackMap locals: org.apache.cassandra.cql3.statements.SelectStatement$RawStatement org.apache.cassandra.config.CFMetaData org.apache.cassandra.cql3.selection.Selection org.apache.cassandra.cql3.restrictions.StatementRestrictions int int java.util.Iterator top java.util.Iterator
      StackMap stack:
         7: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.config.ColumnDefinition$Raw
            astore 7 /* raw */
        start local 7 // org.apache.cassandra.config.ColumnDefinition$Raw raw
         8: .line 1114
            aload 7 /* raw */
            aload 1 /* cfm */
            invokevirtual org.apache.cassandra.config.ColumnDefinition$Raw.prepare:(Lorg/apache/cassandra/config/CFMetaData;)Lorg/apache/cassandra/config/ColumnDefinition;
            astore 9 /* def */
        start local 9 // org.apache.cassandra.config.ColumnDefinition def
         9: .line 1116
            aload 9 /* def */
            invokevirtual org.apache.cassandra.config.ColumnDefinition.isPartitionKey:()Z
            ifne 10
            aload 9 /* def */
            invokevirtual org.apache.cassandra.config.ColumnDefinition.isClusteringColumn:()Z
            ifne 10
            iconst_0
            goto 11
      StackMap locals: org.apache.cassandra.cql3.statements.SelectStatement$RawStatement org.apache.cassandra.config.CFMetaData org.apache.cassandra.cql3.selection.Selection org.apache.cassandra.cql3.restrictions.StatementRestrictions int int java.util.Iterator org.apache.cassandra.config.ColumnDefinition$Raw java.util.Iterator org.apache.cassandra.config.ColumnDefinition
      StackMap stack:
        10: iconst_1
        11: .line 1117
      StackMap locals:
      StackMap stack: int
            ldc "Group by is currently only supported on the columns of the PRIMARY KEY, got %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 9 /* def */
            getfield org.apache.cassandra.config.ColumnDefinition.name:Lorg/apache/cassandra/cql3/ColumnIdentifier;
            aastore
        12: .line 1116
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkTrue:(ZLjava/lang/String;[Ljava/lang/Object;)V
        13: .line 1121
      StackMap locals:
      StackMap stack:
            aload 6 /* pkColumns */
            invokeinterface java.util.Iterator.hasNext:()Z
        14: .line 1122
            ldc "Group by currently only support groups of columns following their declared order in the PRIMARY KEY"
        15: .line 1121
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkTrue:(ZLjava/lang/String;)V
        16: .line 1124
            aload 6 /* pkColumns */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.config.ColumnDefinition
            astore 10 /* pkColumn */
        start local 10 // org.apache.cassandra.config.ColumnDefinition pkColumn
        17: .line 1126
            aload 10 /* pkColumn */
            invokevirtual org.apache.cassandra.config.ColumnDefinition.isClusteringColumn:()Z
            ifeq 19
        18: .line 1127
            iinc 5 /* clusteringPrefixSize */ 1
        19: .line 1131
      StackMap locals: org.apache.cassandra.config.ColumnDefinition
      StackMap stack:
            aload 10 /* pkColumn */
            aload 9 /* def */
            invokevirtual org.apache.cassandra.config.ColumnDefinition.equals:(Ljava/lang/Object;)Z
            ifeq 21
        20: .line 1132
            goto 25
        21: .line 1134
      StackMap locals:
      StackMap stack:
            aload 3 /* restrictions */
            aload 10 /* pkColumn */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.isColumnRestrictedByEq:(Lorg/apache/cassandra/config/ColumnDefinition;)Z
        22: .line 1135
            ldc "Group by currently only support groups of columns following their declared order in the PRIMARY KEY"
        23: .line 1134
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkTrue:(ZLjava/lang/String;)V
        end local 10 // org.apache.cassandra.config.ColumnDefinition pkColumn
        24: .line 1119
            goto 13
        end local 9 // org.apache.cassandra.config.ColumnDefinition def
        end local 7 // org.apache.cassandra.config.ColumnDefinition$Raw raw
        25: .line 1112
      StackMap locals: org.apache.cassandra.cql3.statements.SelectStatement$RawStatement org.apache.cassandra.config.CFMetaData org.apache.cassandra.cql3.selection.Selection org.apache.cassandra.cql3.restrictions.StatementRestrictions int int java.util.Iterator top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        26: .line 1139
            aload 6 /* pkColumns */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 27
            aload 6 /* pkColumns */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.config.ColumnDefinition
            invokevirtual org.apache.cassandra.config.ColumnDefinition.isPartitionKey:()Z
            ifeq 27
            iconst_1
            goto 28
      StackMap locals: org.apache.cassandra.cql3.statements.SelectStatement$RawStatement org.apache.cassandra.config.CFMetaData org.apache.cassandra.cql3.selection.Selection org.apache.cassandra.cql3.restrictions.StatementRestrictions int int java.util.Iterator
      StackMap stack:
        27: iconst_0
        28: .line 1140
      StackMap locals:
      StackMap stack: int
            ldc "Group by is not supported on only a part of the partition key"
        29: .line 1139
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkFalse:(ZLjava/lang/String;)V
        30: .line 1142
            iload 5 /* clusteringPrefixSize */
            ifle 31
            iload 4 /* isDistinct */
            ifeq 31
            iconst_1
            goto 32
      StackMap locals:
      StackMap stack:
        31: iconst_0
        32: .line 1143
      StackMap locals:
      StackMap stack: int
            ldc "Grouping on clustering columns is not allowed for SELECT DISTINCT queries"
        33: .line 1142
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkFalse:(ZLjava/lang/String;)V
        34: .line 1145
            aload 1 /* cfm */
            getfield org.apache.cassandra.config.CFMetaData.comparator:Lorg/apache/cassandra/db/ClusteringComparator;
            iload 5 /* clusteringPrefixSize */
            invokestatic org.apache.cassandra.db.aggregation.AggregationSpecification.aggregatePkPrefix:(Lorg/apache/cassandra/db/ClusteringComparator;I)Lorg/apache/cassandra/db/aggregation/AggregationSpecification;
            areturn
        end local 6 // java.util.Iterator pkColumns
        end local 5 // int clusteringPrefixSize
        end local 4 // boolean isDistinct
        end local 3 // org.apache.cassandra.cql3.restrictions.StatementRestrictions restrictions
        end local 2 // org.apache.cassandra.cql3.selection.Selection selection
        end local 1 // org.apache.cassandra.config.CFMetaData cfm
        end local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   35     0                  this  Lorg/apache/cassandra/cql3/statements/SelectStatement$RawStatement;
            0   35     1                   cfm  Lorg/apache/cassandra/config/CFMetaData;
            0   35     2             selection  Lorg/apache/cassandra/cql3/selection/Selection;
            0   35     3          restrictions  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            0   35     4            isDistinct  Z
            5   35     5  clusteringPrefixSize  I
            6   35     6             pkColumns  Ljava/util/Iterator<Lorg/apache/cassandra/config/ColumnDefinition;>;
            8   25     7                   raw  Lorg/apache/cassandra/config/ColumnDefinition$Raw;
            9   25     9                   def  Lorg/apache/cassandra/config/ColumnDefinition;
           17   24    10              pkColumn  Lorg/apache/cassandra/config/ColumnDefinition;
    MethodParameters:
              Name  Flags
      cfm           
      selection     
      restrictions  
      isDistinct    

  private java.util.Comparator<java.util.List<java.nio.ByteBuffer>> getOrderingComparator(org.apache.cassandra.config.CFMetaData, org.apache.cassandra.cql3.selection.Selection, org.apache.cassandra.cql3.restrictions.StatementRestrictions, boolean);
    descriptor: (Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/cql3/selection/Selection;Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;Z)Ljava/util/Comparator;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=5
        start local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
        start local 1 // org.apache.cassandra.config.CFMetaData cfm
        start local 2 // org.apache.cassandra.cql3.selection.Selection selection
        start local 3 // org.apache.cassandra.cql3.restrictions.StatementRestrictions restrictions
        start local 4 // boolean isJson
         0: .line 1154
            aload 3 /* restrictions */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.keyIsInRelation:()Z
            ifne 2
         1: .line 1155
            aconst_null
            areturn
         2: .line 1157
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* cfm */
            aload 2 /* selection */
            iload 4 /* isJson */
            invokevirtual org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.getOrderingIndex:(Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/cql3/selection/Selection;Z)Ljava/util/Map;
            astore 5 /* orderingIndexes */
        start local 5 // java.util.Map orderingIndexes
         3: .line 1159
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* idToSort */
        start local 6 // java.util.List idToSort
         4: .line 1160
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* sorters */
        start local 7 // java.util.List sorters
         5: .line 1162
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.parameters:Lorg/apache/cassandra/cql3/statements/SelectStatement$Parameters;
            getfield org.apache.cassandra.cql3.statements.SelectStatement$Parameters.orderings:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 10
      StackMap locals: org.apache.cassandra.cql3.statements.SelectStatement$RawStatement org.apache.cassandra.config.CFMetaData org.apache.cassandra.cql3.selection.Selection org.apache.cassandra.cql3.restrictions.StatementRestrictions int java.util.Map java.util.List java.util.List top java.util.Iterator
      StackMap stack:
         6: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.config.ColumnDefinition$Raw
            astore 8 /* raw */
        start local 8 // org.apache.cassandra.config.ColumnDefinition$Raw raw
         7: .line 1164
            aload 8 /* raw */
            aload 1 /* cfm */
            invokevirtual org.apache.cassandra.config.ColumnDefinition$Raw.prepare:(Lorg/apache/cassandra/config/CFMetaData;)Lorg/apache/cassandra/config/ColumnDefinition;
            astore 10 /* orderingColumn */
        start local 10 // org.apache.cassandra.config.ColumnDefinition orderingColumn
         8: .line 1165
            aload 6 /* idToSort */
            aload 5 /* orderingIndexes */
            aload 10 /* orderingColumn */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         9: .line 1166
            aload 7 /* sorters */
            aload 10 /* orderingColumn */
            getfield org.apache.cassandra.config.ColumnDefinition.type:Lorg/apache/cassandra/db/marshal/AbstractType;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // org.apache.cassandra.config.ColumnDefinition orderingColumn
        end local 8 // org.apache.cassandra.config.ColumnDefinition$Raw raw
        10: .line 1162
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        11: .line 1168
            aload 6 /* idToSort */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 12
            new org.apache.cassandra.cql3.statements.SelectStatement$SingleColumnComparator
            dup
            aload 6 /* idToSort */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aload 7 /* sorters */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.util.Comparator
            invokespecial org.apache.cassandra.cql3.statements.SelectStatement$SingleColumnComparator.<init>:(ILjava/util/Comparator;)V
            goto 13
        12: .line 1169
      StackMap locals: org.apache.cassandra.cql3.statements.SelectStatement$RawStatement org.apache.cassandra.config.CFMetaData org.apache.cassandra.cql3.selection.Selection org.apache.cassandra.cql3.restrictions.StatementRestrictions int java.util.Map java.util.List java.util.List
      StackMap stack:
            new org.apache.cassandra.cql3.statements.SelectStatement$CompositeComparator
            dup
            aload 7 /* sorters */
            aload 6 /* idToSort */
            invokespecial org.apache.cassandra.cql3.statements.SelectStatement$CompositeComparator.<init>:(Ljava/util/List;Ljava/util/List;)V
        13: .line 1168
      StackMap locals:
      StackMap stack: org.apache.cassandra.cql3.statements.SelectStatement$ColumnComparator
            areturn
        end local 7 // java.util.List sorters
        end local 6 // java.util.List idToSort
        end local 5 // java.util.Map orderingIndexes
        end local 4 // boolean isJson
        end local 3 // org.apache.cassandra.cql3.restrictions.StatementRestrictions restrictions
        end local 2 // org.apache.cassandra.cql3.selection.Selection selection
        end local 1 // org.apache.cassandra.config.CFMetaData cfm
        end local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   14     0             this  Lorg/apache/cassandra/cql3/statements/SelectStatement$RawStatement;
            0   14     1              cfm  Lorg/apache/cassandra/config/CFMetaData;
            0   14     2        selection  Lorg/apache/cassandra/cql3/selection/Selection;
            0   14     3     restrictions  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            0   14     4           isJson  Z
            3   14     5  orderingIndexes  Ljava/util/Map<Lorg/apache/cassandra/config/ColumnDefinition;Ljava/lang/Integer;>;
            4   14     6         idToSort  Ljava/util/List<Ljava/lang/Integer;>;
            5   14     7          sorters  Ljava/util/List<Ljava/util/Comparator<Ljava/nio/ByteBuffer;>;>;
            7   10     8              raw  Lorg/apache/cassandra/config/ColumnDefinition$Raw;
            8   10    10   orderingColumn  Lorg/apache/cassandra/config/ColumnDefinition;
    Exceptions:
      throws org.apache.cassandra.exceptions.InvalidRequestException
    Signature: (Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/cql3/selection/Selection;Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;Z)Ljava/util/Comparator<Ljava/util/List<Ljava/nio/ByteBuffer;>;>;
    MethodParameters:
              Name  Flags
      cfm           
      selection     
      restrictions  
      isJson        

  private java.util.Map<org.apache.cassandra.config.ColumnDefinition, java.lang.Integer> getOrderingIndex(org.apache.cassandra.config.CFMetaData, org.apache.cassandra.cql3.selection.Selection, boolean);
    descriptor: (Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/cql3/selection/Selection;Z)Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=4
        start local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
        start local 1 // org.apache.cassandra.config.CFMetaData cfm
        start local 2 // org.apache.cassandra.cql3.selection.Selection selection
        start local 3 // boolean isJson
         0: .line 1178
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.parameters:Lorg/apache/cassandra/cql3/statements/SelectStatement$Parameters;
            getfield org.apache.cassandra.cql3.statements.SelectStatement$Parameters.orderings:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 4
      StackMap locals: org.apache.cassandra.cql3.statements.SelectStatement$RawStatement org.apache.cassandra.config.CFMetaData org.apache.cassandra.cql3.selection.Selection int top java.util.Iterator
      StackMap stack:
         1: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.config.ColumnDefinition$Raw
            astore 4 /* raw */
        start local 4 // org.apache.cassandra.config.ColumnDefinition$Raw raw
         2: .line 1180
            aload 4 /* raw */
            aload 1 /* cfm */
            invokevirtual org.apache.cassandra.config.ColumnDefinition$Raw.prepare:(Lorg/apache/cassandra/config/CFMetaData;)Lorg/apache/cassandra/config/ColumnDefinition;
            astore 6 /* def */
        start local 6 // org.apache.cassandra.config.ColumnDefinition def
         3: .line 1181
            aload 2 /* selection */
            aload 6 /* def */
            invokevirtual org.apache.cassandra.cql3.selection.Selection.addColumnForOrdering:(Lorg/apache/cassandra/config/ColumnDefinition;)V
        end local 6 // org.apache.cassandra.config.ColumnDefinition def
        end local 4 // org.apache.cassandra.config.ColumnDefinition$Raw raw
         4: .line 1178
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 1183
            aload 2 /* selection */
            iload 3 /* isJson */
            invokevirtual org.apache.cassandra.cql3.selection.Selection.getOrderingIndex:(Z)Ljava/util/Map;
            areturn
        end local 3 // boolean isJson
        end local 2 // org.apache.cassandra.cql3.selection.Selection selection
        end local 1 // org.apache.cassandra.config.CFMetaData cfm
        end local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/apache/cassandra/cql3/statements/SelectStatement$RawStatement;
            0    6     1        cfm  Lorg/apache/cassandra/config/CFMetaData;
            0    6     2  selection  Lorg/apache/cassandra/cql3/selection/Selection;
            0    6     3     isJson  Z
            2    4     4        raw  Lorg/apache/cassandra/config/ColumnDefinition$Raw;
            3    4     6        def  Lorg/apache/cassandra/config/ColumnDefinition;
    Exceptions:
      throws org.apache.cassandra.exceptions.InvalidRequestException
    Signature: (Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/cql3/selection/Selection;Z)Ljava/util/Map<Lorg/apache/cassandra/config/ColumnDefinition;Ljava/lang/Integer;>;
    MethodParameters:
           Name  Flags
      cfm        
      selection  
      isJson     

  private boolean isReversed(org.apache.cassandra.config.CFMetaData);
    descriptor: (Lorg/apache/cassandra/config/CFMetaData;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
        start local 1 // org.apache.cassandra.config.CFMetaData cfm
         0: .line 1188
            aload 1 /* cfm */
            invokevirtual org.apache.cassandra.config.CFMetaData.clusteringColumns:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            anewarray java.lang.Boolean
            astore 2 /* reversedMap */
        start local 2 // java.lang.Boolean[] reversedMap
         1: .line 1189
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: .line 1190
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.parameters:Lorg/apache/cassandra/cql3/statements/SelectStatement$Parameters;
            getfield org.apache.cassandra.cql3.statements.SelectStatement$Parameters.orderings:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 14
      StackMap locals: org.apache.cassandra.cql3.statements.SelectStatement$RawStatement org.apache.cassandra.config.CFMetaData java.lang.Boolean[] int top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* entry */
        start local 4 // java.util.Map$Entry entry
         4: .line 1192
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.apache.cassandra.config.ColumnDefinition$Raw
            aload 1 /* cfm */
            invokevirtual org.apache.cassandra.config.ColumnDefinition$Raw.prepare:(Lorg/apache/cassandra/config/CFMetaData;)Lorg/apache/cassandra/config/ColumnDefinition;
            astore 6 /* def */
        start local 6 // org.apache.cassandra.config.ColumnDefinition def
         5: .line 1193
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            istore 7 /* reversed */
        start local 7 // boolean reversed
         6: .line 1195
            aload 6 /* def */
            invokevirtual org.apache.cassandra.config.ColumnDefinition.isClusteringColumn:()Z
         7: .line 1196
            ldc "Order by is currently only supported on the clustered columns of the PRIMARY KEY, got %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 6 /* def */
            getfield org.apache.cassandra.config.ColumnDefinition.name:Lorg/apache/cassandra/cql3/ColumnIdentifier;
            aastore
         8: .line 1195
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkTrue:(ZLjava/lang/String;[Ljava/lang/Object;)V
         9: .line 1198
            iload 3 /* i */
            iinc 3 /* i */ 1
            aload 6 /* def */
            invokevirtual org.apache.cassandra.config.ColumnDefinition.position:()I
            if_icmpne 10
            iconst_1
            goto 11
      StackMap locals: org.apache.cassandra.cql3.statements.SelectStatement$RawStatement org.apache.cassandra.config.CFMetaData java.lang.Boolean[] int java.util.Map$Entry java.util.Iterator org.apache.cassandra.config.ColumnDefinition int
      StackMap stack:
        10: iconst_0
        11: .line 1199
      StackMap locals:
      StackMap stack: int
            ldc "Order by currently only support the ordering of columns following their declared order in the PRIMARY KEY"
        12: .line 1198
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkTrue:(ZLjava/lang/String;)V
        13: .line 1201
            aload 2 /* reversedMap */
            aload 6 /* def */
            invokevirtual org.apache.cassandra.config.ColumnDefinition.position:()I
            iload 7 /* reversed */
            aload 6 /* def */
            invokevirtual org.apache.cassandra.config.ColumnDefinition.isReversedType:()Z
            ixor
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
        end local 7 // boolean reversed
        end local 6 // org.apache.cassandra.config.ColumnDefinition def
        end local 4 // java.util.Map$Entry entry
        14: .line 1190
      StackMap locals: org.apache.cassandra.cql3.statements.SelectStatement$RawStatement org.apache.cassandra.config.CFMetaData java.lang.Boolean[] int top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        15: .line 1205
            aconst_null
            astore 4 /* isReversed */
        start local 4 // java.lang.Boolean isReversed
        16: .line 1206
            aload 2 /* reversedMap */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 25
      StackMap locals: org.apache.cassandra.cql3.statements.SelectStatement$RawStatement org.apache.cassandra.config.CFMetaData java.lang.Boolean[] int java.lang.Boolean top int int java.lang.Boolean[]
      StackMap stack:
        17: aload 8
            iload 6
            aaload
            astore 5 /* b */
        start local 5 // java.lang.Boolean b
        18: .line 1209
            aload 5 /* b */
            ifnonnull 20
        19: .line 1210
            goto 24
        20: .line 1212
      StackMap locals: org.apache.cassandra.cql3.statements.SelectStatement$RawStatement org.apache.cassandra.config.CFMetaData java.lang.Boolean[] int java.lang.Boolean java.lang.Boolean int int java.lang.Boolean[]
      StackMap stack:
            aload 4 /* isReversed */
            ifnonnull 23
        21: .line 1214
            aload 5 /* b */
            astore 4 /* isReversed */
        22: .line 1215
            goto 24
        23: .line 1217
      StackMap locals:
      StackMap stack:
            aload 4 /* isReversed */
            aload 5 /* b */
            invokevirtual java.lang.Boolean.equals:(Ljava/lang/Object;)Z
            ldc "Unsupported order by relation"
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkTrue:(ZLjava/lang/String;)V
        end local 5 // java.lang.Boolean b
        24: .line 1206
      StackMap locals: org.apache.cassandra.cql3.statements.SelectStatement$RawStatement org.apache.cassandra.config.CFMetaData java.lang.Boolean[] int java.lang.Boolean top int int java.lang.Boolean[]
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        25: iload 6
            iload 7
            if_icmplt 17
        26: .line 1219
            getstatic org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.$assertionsDisabled:Z
            ifne 27
            aload 4 /* isReversed */
            ifnonnull 27
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        27: .line 1220
      StackMap locals: org.apache.cassandra.cql3.statements.SelectStatement$RawStatement org.apache.cassandra.config.CFMetaData java.lang.Boolean[] int java.lang.Boolean
      StackMap stack:
            aload 4 /* isReversed */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 4 // java.lang.Boolean isReversed
        end local 3 // int i
        end local 2 // java.lang.Boolean[] reversedMap
        end local 1 // org.apache.cassandra.config.CFMetaData cfm
        end local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   28     0         this  Lorg/apache/cassandra/cql3/statements/SelectStatement$RawStatement;
            0   28     1          cfm  Lorg/apache/cassandra/config/CFMetaData;
            1   28     2  reversedMap  [Ljava/lang/Boolean;
            2   28     3            i  I
            4   14     4        entry  Ljava/util/Map$Entry<Lorg/apache/cassandra/config/ColumnDefinition$Raw;Ljava/lang/Boolean;>;
            5   14     6          def  Lorg/apache/cassandra/config/ColumnDefinition;
            6   14     7     reversed  Z
           16   28     4   isReversed  Ljava/lang/Boolean;
           18   24     5            b  Ljava/lang/Boolean;
    Exceptions:
      throws org.apache.cassandra.exceptions.InvalidRequestException
    MethodParameters:
      Name  Flags
      cfm   

  private void checkNeedsFiltering(org.apache.cassandra.cql3.restrictions.StatementRestrictions);
    descriptor: (Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
        start local 1 // org.apache.cassandra.cql3.restrictions.StatementRestrictions restrictions
         0: .line 1227
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.parameters:Lorg/apache/cassandra/cql3/statements/SelectStatement$Parameters;
            getfield org.apache.cassandra.cql3.statements.SelectStatement$Parameters.allowFiltering:Z
            ifne 2
            aload 1 /* restrictions */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.isKeyRange:()Z
            ifne 1
            aload 1 /* restrictions */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.usesSecondaryIndexing:()Z
            ifeq 2
         1: .line 1232
      StackMap locals:
      StackMap stack:
            aload 1 /* restrictions */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.needFiltering:()Z
            ldc "Cannot execute this query as it might involve data filtering and thus may have unpredictable performance. If you want to execute this query despite the performance unpredictability, use ALLOW FILTERING"
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkFalse:(ZLjava/lang/String;)V
         2: .line 1234
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.apache.cassandra.cql3.restrictions.StatementRestrictions restrictions
        end local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/apache/cassandra/cql3/statements/SelectStatement$RawStatement;
            0    3     1  restrictions  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
    Exceptions:
      throws org.apache.cassandra.exceptions.InvalidRequestException
    MethodParameters:
              Name  Flags
      restrictions  

  private org.apache.cassandra.cql3.ColumnSpecification limitReceiver();
    descriptor: ()Lorg/apache/cassandra/cql3/ColumnSpecification;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
         0: .line 1238
            new org.apache.cassandra.cql3.ColumnSpecification
            dup
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.keyspace:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.columnFamily:()Ljava/lang/String;
            new org.apache.cassandra.cql3.ColumnIdentifier
            dup
            ldc "[limit]"
            iconst_1
            invokespecial org.apache.cassandra.cql3.ColumnIdentifier.<init>:(Ljava/lang/String;Z)V
            getstatic org.apache.cassandra.db.marshal.Int32Type.instance:Lorg/apache/cassandra/db/marshal/Int32Type;
            invokespecial org.apache.cassandra.cql3.ColumnSpecification.<init>:(Ljava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/cql3/ColumnIdentifier;Lorg/apache/cassandra/db/marshal/AbstractType;)V
            areturn
        end local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cql3/statements/SelectStatement$RawStatement;

  private org.apache.cassandra.cql3.ColumnSpecification perPartitionLimitReceiver();
    descriptor: ()Lorg/apache/cassandra/cql3/ColumnSpecification;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
         0: .line 1243
            new org.apache.cassandra.cql3.ColumnSpecification
            dup
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.keyspace:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.columnFamily:()Ljava/lang/String;
            new org.apache.cassandra.cql3.ColumnIdentifier
            dup
            ldc "[per_partition_limit]"
            iconst_1
            invokespecial org.apache.cassandra.cql3.ColumnIdentifier.<init>:(Ljava/lang/String;Z)V
            getstatic org.apache.cassandra.db.marshal.Int32Type.instance:Lorg/apache/cassandra/db/marshal/Int32Type;
            invokespecial org.apache.cassandra.cql3.ColumnSpecification.<init>:(Ljava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/cql3/ColumnIdentifier;Lorg/apache/cassandra/db/marshal/AbstractType;)V
            areturn
        end local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cql3/statements/SelectStatement$RawStatement;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
         0: .line 1249
            aload 0 /* this */
            invokestatic com.google.common.base.MoreObjects.toStringHelper:(Ljava/lang/Object;)Lcom/google/common/base/MoreObjects$ToStringHelper;
         1: .line 1250
            ldc "name"
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.cfName:Lorg/apache/cassandra/cql3/CFName;
            invokevirtual com.google.common.base.MoreObjects$ToStringHelper.add:(Ljava/lang/String;Ljava/lang/Object;)Lcom/google/common/base/MoreObjects$ToStringHelper;
         2: .line 1251
            ldc "selectClause"
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.selectClause:Ljava/util/List;
            invokevirtual com.google.common.base.MoreObjects$ToStringHelper.add:(Ljava/lang/String;Ljava/lang/Object;)Lcom/google/common/base/MoreObjects$ToStringHelper;
         3: .line 1252
            ldc "whereClause"
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.whereClause:Lorg/apache/cassandra/cql3/WhereClause;
            invokevirtual com.google.common.base.MoreObjects$ToStringHelper.add:(Ljava/lang/String;Ljava/lang/Object;)Lcom/google/common/base/MoreObjects$ToStringHelper;
         4: .line 1253
            ldc "isDistinct"
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.parameters:Lorg/apache/cassandra/cql3/statements/SelectStatement$Parameters;
            getfield org.apache.cassandra.cql3.statements.SelectStatement$Parameters.isDistinct:Z
            invokevirtual com.google.common.base.MoreObjects$ToStringHelper.add:(Ljava/lang/String;Z)Lcom/google/common/base/MoreObjects$ToStringHelper;
         5: .line 1254
            invokevirtual com.google.common.base.MoreObjects$ToStringHelper.toString:()Ljava/lang/String;
         6: .line 1249
            areturn
        end local 0 // org.apache.cassandra.cql3.statements.SelectStatement$RawStatement this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/cassandra/cql3/statements/SelectStatement$RawStatement;
}
SourceFile: "SelectStatement.java"
NestHost: org.apache.cassandra.cql3.statements.SelectStatement
InnerClasses:
  public final ToStringHelper = com.google.common.base.MoreObjects$ToStringHelper of com.google.common.base.MoreObjects
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public abstract Raw = org.apache.cassandra.config.ColumnDefinition$Raw of org.apache.cassandra.config.ColumnDefinition
  public abstract Raw = org.apache.cassandra.cql3.Term$Raw of org.apache.cassandra.cql3.Term
  public Prepared = org.apache.cassandra.cql3.statements.ParsedStatement$Prepared of org.apache.cassandra.cql3.statements.ParsedStatement
  private CompositeComparator = org.apache.cassandra.cql3.statements.SelectStatement$CompositeComparator of org.apache.cassandra.cql3.statements.SelectStatement
  public Parameters = org.apache.cassandra.cql3.statements.SelectStatement$Parameters of org.apache.cassandra.cql3.statements.SelectStatement
  public RawStatement = org.apache.cassandra.cql3.statements.SelectStatement$RawStatement of org.apache.cassandra.cql3.statements.SelectStatement
  private SingleColumnComparator = org.apache.cassandra.cql3.statements.SelectStatement$SingleColumnComparator of org.apache.cassandra.cql3.statements.SelectStatement