public final class org.apache.cassandra.cql3.restrictions.StatementRestrictions
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.apache.cassandra.cql3.restrictions.StatementRestrictions
  super_class: java.lang.Object
{
  public static final java.lang.String REQUIRES_ALLOW_FILTERING_MESSAGE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "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"

  private final org.apache.cassandra.cql3.statements.StatementType type;
    descriptor: Lorg/apache/cassandra/cql3/statements/StatementType;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public final org.apache.cassandra.config.CFMetaData cfm;
    descriptor: Lorg/apache/cassandra/config/CFMetaData;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  private org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions partitionKeyRestrictions;
    descriptor: Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
    flags: (0x0002) ACC_PRIVATE

  private org.apache.cassandra.cql3.restrictions.ClusteringColumnRestrictions clusteringColumnsRestrictions;
    descriptor: Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
    flags: (0x0002) ACC_PRIVATE

  private org.apache.cassandra.cql3.restrictions.RestrictionSet nonPrimaryKeyRestrictions;
    descriptor: Lorg/apache/cassandra/cql3/restrictions/RestrictionSet;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Set<org.apache.cassandra.config.ColumnDefinition> notNullColumns;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Set<Lorg/apache/cassandra/config/ColumnDefinition;>;

  private final org.apache.cassandra.cql3.restrictions.IndexRestrictions filterRestrictions;
    descriptor: Lorg/apache/cassandra/cql3/restrictions/IndexRestrictions;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

  private org.apache.cassandra.cql3.SuperColumnCompatibility$SuperColumnRestrictions cached;
    descriptor: Lorg/apache/cassandra/cql3/SuperColumnCompatibility$SuperColumnRestrictions;
    flags: (0x0002) ACC_PRIVATE

  private static volatile int[] $SWITCH_TABLE$org$apache$cassandra$config$ColumnDefinition$Kind;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  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 50
            ldc Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            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.restrictions.StatementRestrictions.$assertionsDisabled:Z
         3: .line 55
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.apache.cassandra.cql3.restrictions.StatementRestrictions empty(org.apache.cassandra.cql3.statements.StatementType, org.apache.cassandra.config.CFMetaData);
    descriptor: (Lorg/apache/cassandra/cql3/statements/StatementType;Lorg/apache/cassandra/config/CFMetaData;)Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.apache.cassandra.cql3.statements.StatementType type
        start local 1 // org.apache.cassandra.config.CFMetaData cfm
         0: .line 114
            new org.apache.cassandra.cql3.restrictions.StatementRestrictions
            dup
            aload 0 /* type */
            aload 1 /* cfm */
            iconst_0
            invokespecial org.apache.cassandra.cql3.restrictions.StatementRestrictions.<init>:(Lorg/apache/cassandra/cql3/statements/StatementType;Lorg/apache/cassandra/config/CFMetaData;Z)V
            areturn
        end local 1 // org.apache.cassandra.config.CFMetaData cfm
        end local 0 // org.apache.cassandra.cql3.statements.StatementType type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  type  Lorg/apache/cassandra/cql3/statements/StatementType;
            0    1     1   cfm  Lorg/apache/cassandra/config/CFMetaData;
    MethodParameters:
      Name  Flags
      type  
      cfm   

  private void <init>(org.apache.cassandra.cql3.statements.StatementType, org.apache.cassandra.config.CFMetaData, boolean);
    descriptor: (Lorg/apache/cassandra/cql3/statements/StatementType;Lorg/apache/cassandra/config/CFMetaData;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
        start local 1 // org.apache.cassandra.cql3.statements.StatementType type
        start local 2 // org.apache.cassandra.config.CFMetaData cfm
        start local 3 // boolean allowFiltering
         0: .line 117
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 87
            aload 0 /* this */
            new org.apache.cassandra.cql3.restrictions.IndexRestrictions
            dup
            invokespecial org.apache.cassandra.cql3.restrictions.IndexRestrictions.<init>:()V
            putfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.filterRestrictions:Lorg/apache/cassandra/cql3/restrictions/IndexRestrictions;
         2: .line 119
            aload 0 /* this */
            aload 1 /* type */
            putfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.type:Lorg/apache/cassandra/cql3/statements/StatementType;
         3: .line 120
            aload 0 /* this */
            aload 2 /* cfm */
            putfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
         4: .line 121
            aload 0 /* this */
            new org.apache.cassandra.cql3.restrictions.PartitionKeySingleRestrictionSet
            dup
            aload 2 /* cfm */
            invokevirtual org.apache.cassandra.config.CFMetaData.getKeyValidatorAsClusteringComparator:()Lorg/apache/cassandra/db/ClusteringComparator;
            invokespecial org.apache.cassandra.cql3.restrictions.PartitionKeySingleRestrictionSet.<init>:(Lorg/apache/cassandra/db/ClusteringComparator;)V
            putfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
         5: .line 122
            aload 0 /* this */
            new org.apache.cassandra.cql3.restrictions.ClusteringColumnRestrictions
            dup
            aload 2 /* cfm */
            iload 3 /* allowFiltering */
            invokespecial org.apache.cassandra.cql3.restrictions.ClusteringColumnRestrictions.<init>:(Lorg/apache/cassandra/config/CFMetaData;Z)V
            putfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringColumnsRestrictions:Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
         6: .line 123
            aload 0 /* this */
            new org.apache.cassandra.cql3.restrictions.RestrictionSet
            dup
            invokespecial org.apache.cassandra.cql3.restrictions.RestrictionSet.<init>:()V
            putfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.nonPrimaryKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/RestrictionSet;
         7: .line 124
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.notNullColumns:Ljava/util/Set;
         8: .line 125
            return
        end local 3 // boolean allowFiltering
        end local 2 // org.apache.cassandra.config.CFMetaData cfm
        end local 1 // org.apache.cassandra.cql3.statements.StatementType type
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            0    9     1            type  Lorg/apache/cassandra/cql3/statements/StatementType;
            0    9     2             cfm  Lorg/apache/cassandra/config/CFMetaData;
            0    9     3  allowFiltering  Z
    MethodParameters:
                Name  Flags
      type            
      cfm             
      allowFiltering  

  public void <init>(org.apache.cassandra.cql3.statements.StatementType, org.apache.cassandra.config.CFMetaData, org.apache.cassandra.cql3.WhereClause, org.apache.cassandra.cql3.VariableSpecifications, boolean, boolean, boolean, boolean);
    descriptor: (Lorg/apache/cassandra/cql3/statements/StatementType;Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/cql3/WhereClause;Lorg/apache/cassandra/cql3/VariableSpecifications;ZZZZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=15, args_size=9
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
        start local 1 // org.apache.cassandra.cql3.statements.StatementType type
        start local 2 // org.apache.cassandra.config.CFMetaData cfm
        start local 3 // org.apache.cassandra.cql3.WhereClause whereClause
        start local 4 // org.apache.cassandra.cql3.VariableSpecifications boundNames
        start local 5 // boolean selectsOnlyStaticColumns
        start local 6 // boolean selectsComplexColumn
        start local 7 // boolean allowFiltering
        start local 8 // boolean forView
         0: .line 136
            aload 0 /* this */
            aload 1 /* type */
            aload 2 /* cfm */
            iload 7 /* allowFiltering */
            invokespecial org.apache.cassandra.cql3.restrictions.StatementRestrictions.<init>:(Lorg/apache/cassandra/cql3/statements/StatementType;Lorg/apache/cassandra/config/CFMetaData;Z)V
         1: .line 139
            aconst_null
            astore 10 /* secondaryIndexManager */
        start local 10 // org.apache.cassandra.index.SecondaryIndexManager secondaryIndexManager
         2: .line 141
            aload 1 /* type */
            invokevirtual org.apache.cassandra.cql3.statements.StatementType.allowUseOfSecondaryIndices:()Z
            ifeq 5
         3: .line 143
            aload 2 /* cfm */
            getfield org.apache.cassandra.config.CFMetaData.ksName:Ljava/lang/String;
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            aload 2 /* cfm */
            getfield org.apache.cassandra.config.CFMetaData.cfName:Ljava/lang/String;
            invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStore:(Ljava/lang/String;)Lorg/apache/cassandra/db/ColumnFamilyStore;
            astore 9 /* cfs */
        start local 9 // org.apache.cassandra.db.ColumnFamilyStore cfs
         4: .line 144
            aload 9 /* cfs */
            getfield org.apache.cassandra.db.ColumnFamilyStore.indexManager:Lorg/apache/cassandra/index/SecondaryIndexManager;
            astore 10 /* secondaryIndexManager */
        end local 9 // org.apache.cassandra.db.ColumnFamilyStore cfs
         5: .line 156
      StackMap locals: org.apache.cassandra.cql3.restrictions.StatementRestrictions org.apache.cassandra.cql3.statements.StatementType org.apache.cassandra.config.CFMetaData org.apache.cassandra.cql3.WhereClause org.apache.cassandra.cql3.VariableSpecifications int int int int top org.apache.cassandra.index.SecondaryIndexManager
      StackMap stack:
            aload 3 /* whereClause */
            getfield org.apache.cassandra.cql3.WhereClause.relations:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 12
            goto 26
      StackMap locals: org.apache.cassandra.cql3.restrictions.StatementRestrictions org.apache.cassandra.cql3.statements.StatementType org.apache.cassandra.config.CFMetaData org.apache.cassandra.cql3.WhereClause org.apache.cassandra.cql3.VariableSpecifications int int int int top org.apache.cassandra.index.SecondaryIndexManager top java.util.Iterator
      StackMap stack:
         6: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.Relation
            astore 11 /* relation */
        start local 11 // org.apache.cassandra.cql3.Relation relation
         7: .line 158
            aload 11 /* relation */
            invokevirtual org.apache.cassandra.cql3.Relation.operator:()Lorg/apache/cassandra/cql3/Operator;
            getstatic org.apache.cassandra.cql3.Operator.IS_NOT:Lorg/apache/cassandra/cql3/Operator;
            if_acmpne 15
         8: .line 160
            iload 8 /* forView */
            ifne 10
         9: .line 161
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported restriction: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 11 /* relation */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 163
      StackMap locals: org.apache.cassandra.cql3.restrictions.StatementRestrictions org.apache.cassandra.cql3.statements.StatementType org.apache.cassandra.config.CFMetaData org.apache.cassandra.cql3.WhereClause org.apache.cassandra.cql3.VariableSpecifications int int int int top org.apache.cassandra.index.SecondaryIndexManager org.apache.cassandra.cql3.Relation java.util.Iterator
      StackMap stack:
            aload 11 /* relation */
            aload 2 /* cfm */
            aload 4 /* boundNames */
            invokevirtual org.apache.cassandra.cql3.Relation.toRestriction:(Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/cql3/VariableSpecifications;)Lorg/apache/cassandra/cql3/restrictions/Restriction;
            invokeinterface org.apache.cassandra.cql3.restrictions.Restriction.getColumnDefs:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 14
            goto 13
      StackMap locals: org.apache.cassandra.cql3.restrictions.StatementRestrictions org.apache.cassandra.cql3.statements.StatementType org.apache.cassandra.config.CFMetaData org.apache.cassandra.cql3.WhereClause org.apache.cassandra.cql3.VariableSpecifications int int int int top org.apache.cassandra.index.SecondaryIndexManager org.apache.cassandra.cql3.Relation java.util.Iterator top java.util.Iterator
      StackMap stack:
        11: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.config.ColumnDefinition
            astore 13 /* def */
        start local 13 // org.apache.cassandra.config.ColumnDefinition def
        12: .line 164
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.notNullColumns:Ljava/util/Set;
            aload 13 /* def */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 13 // org.apache.cassandra.config.ColumnDefinition def
        13: .line 163
      StackMap locals:
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        14: .line 165
            goto 26
        15: .line 166
      StackMap locals: org.apache.cassandra.cql3.restrictions.StatementRestrictions org.apache.cassandra.cql3.statements.StatementType org.apache.cassandra.config.CFMetaData org.apache.cassandra.cql3.WhereClause org.apache.cassandra.cql3.VariableSpecifications int int int int top org.apache.cassandra.index.SecondaryIndexManager org.apache.cassandra.cql3.Relation java.util.Iterator
      StackMap stack:
            aload 11 /* relation */
            invokevirtual org.apache.cassandra.cql3.Relation.isLIKE:()Z
            ifeq 23
        16: .line 168
            aload 11 /* relation */
            aload 2 /* cfm */
            aload 4 /* boundNames */
            invokevirtual org.apache.cassandra.cql3.Relation.toRestriction:(Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/cql3/VariableSpecifications;)Lorg/apache/cassandra/cql3/restrictions/Restriction;
            astore 13 /* restriction */
        start local 13 // org.apache.cassandra.cql3.restrictions.Restriction restriction
        17: .line 170
            aload 1 /* type */
            invokevirtual org.apache.cassandra.cql3.statements.StatementType.allowUseOfSecondaryIndices:()Z
            ifeq 18
            aload 13 /* restriction */
            aload 10 /* secondaryIndexManager */
            invokeinterface org.apache.cassandra.cql3.restrictions.Restriction.hasSupportingIndex:(Lorg/apache/cassandra/index/SecondaryIndexManager;)Z
            ifne 21
        18: .line 171
      StackMap locals: org.apache.cassandra.cql3.restrictions.Restriction
      StackMap stack:
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            ldc "LIKE restriction is only supported on properly indexed columns. %s is not valid."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        19: .line 173
            aload 11 /* relation */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            aastore
        20: .line 171
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 175
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 13 /* restriction */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.addRestriction:(Lorg/apache/cassandra/cql3/restrictions/Restriction;)V
        end local 13 // org.apache.cassandra.cql3.restrictions.Restriction restriction
        22: .line 176
            goto 26
        23: .line 179
      StackMap locals:
      StackMap stack:
            aload 2 /* cfm */
            invokevirtual org.apache.cassandra.config.CFMetaData.isSuper:()Z
            ifeq 25
            aload 2 /* cfm */
            invokevirtual org.apache.cassandra.config.CFMetaData.isDense:()Z
            ifeq 25
            aload 11 /* relation */
            invokevirtual org.apache.cassandra.cql3.Relation.onToken:()Z
            ifne 25
        24: .line 180
            aload 0 /* this */
            aload 11 /* relation */
            invokevirtual org.apache.cassandra.cql3.Relation.toSuperColumnAdapter:()Lorg/apache/cassandra/cql3/Relation;
            aload 2 /* cfm */
            aload 4 /* boundNames */
            invokevirtual org.apache.cassandra.cql3.Relation.toRestriction:(Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/cql3/VariableSpecifications;)Lorg/apache/cassandra/cql3/restrictions/Restriction;
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.addRestriction:(Lorg/apache/cassandra/cql3/restrictions/Restriction;)V
            goto 26
        25: .line 182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 11 /* relation */
            aload 2 /* cfm */
            aload 4 /* boundNames */
            invokevirtual org.apache.cassandra.cql3.Relation.toRestriction:(Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/cql3/VariableSpecifications;)Lorg/apache/cassandra/cql3/restrictions/Restriction;
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.addRestriction:(Lorg/apache/cassandra/cql3/restrictions/Restriction;)V
        end local 11 // org.apache.cassandra.cql3.Relation relation
        26: .line 156
      StackMap locals: org.apache.cassandra.cql3.restrictions.StatementRestrictions org.apache.cassandra.cql3.statements.StatementType org.apache.cassandra.config.CFMetaData org.apache.cassandra.cql3.WhereClause org.apache.cassandra.cql3.VariableSpecifications int int int int top org.apache.cassandra.index.SecondaryIndexManager top java.util.Iterator
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        27: .line 186
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.nonPrimaryKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/RestrictionSet;
            getstatic org.apache.cassandra.config.ColumnDefinition$Kind.REGULAR:Lorg/apache/cassandra/config/ColumnDefinition$Kind;
            invokevirtual org.apache.cassandra.cql3.restrictions.RestrictionSet.hasRestrictionFor:(Lorg/apache/cassandra/config/ColumnDefinition$Kind;)Z
            putfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.hasRegularColumnsRestrictions:Z
        28: .line 188
            iconst_0
            istore 11 /* hasQueriableClusteringColumnIndex */
        start local 11 // boolean hasQueriableClusteringColumnIndex
        29: .line 189
            iconst_0
            istore 12 /* hasQueriableIndex */
        start local 12 // boolean hasQueriableIndex
        30: .line 191
            aload 1 /* type */
            invokevirtual org.apache.cassandra.cql3.statements.StatementType.allowUseOfSecondaryIndices:()Z
            ifeq 41
        31: .line 193
            aload 3 /* whereClause */
            invokevirtual org.apache.cassandra.cql3.WhereClause.containsCustomExpressions:()Z
            ifeq 33
        32: .line 194
            aload 0 /* this */
            aload 3 /* whereClause */
            getfield org.apache.cassandra.cql3.WhereClause.expressions:Ljava/util/List;
            aload 4 /* boundNames */
            aload 10 /* secondaryIndexManager */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.processCustomIndexExpressions:(Ljava/util/List;Lorg/apache/cassandra/cql3/VariableSpecifications;Lorg/apache/cassandra/index/SecondaryIndexManager;)V
        33: .line 196
      StackMap locals: org.apache.cassandra.cql3.restrictions.StatementRestrictions org.apache.cassandra.cql3.statements.StatementType org.apache.cassandra.config.CFMetaData org.apache.cassandra.cql3.WhereClause org.apache.cassandra.cql3.VariableSpecifications int int int int top org.apache.cassandra.index.SecondaryIndexManager int int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringColumnsRestrictions:Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
            aload 10 /* secondaryIndexManager */
            invokevirtual org.apache.cassandra.cql3.restrictions.ClusteringColumnRestrictions.hasSupportingIndex:(Lorg/apache/cassandra/index/SecondaryIndexManager;)Z
            istore 11 /* hasQueriableClusteringColumnIndex */
        34: .line 197
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.filterRestrictions:Lorg/apache/cassandra/cql3/restrictions/IndexRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.IndexRestrictions.getCustomIndexExpressions:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 39
        35: .line 198
            iload 11 /* hasQueriableClusteringColumnIndex */
            ifne 39
        36: .line 199
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            aload 10 /* secondaryIndexManager */
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.hasSupportingIndex:(Lorg/apache/cassandra/index/SecondaryIndexManager;)Z
            ifne 39
        37: .line 200
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.nonPrimaryKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/RestrictionSet;
            aload 10 /* secondaryIndexManager */
            invokevirtual org.apache.cassandra.cql3.restrictions.RestrictionSet.hasSupportingIndex:(Lorg/apache/cassandra/index/SecondaryIndexManager;)Z
            ifne 39
        38: .line 197
            iconst_0
            goto 40
      StackMap locals:
      StackMap stack:
        39: iconst_1
      StackMap locals:
      StackMap stack: int
        40: istore 12 /* hasQueriableIndex */
        41: .line 204
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 12 /* hasQueriableIndex */
            iload 7 /* allowFiltering */
            iload 8 /* forView */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.processPartitionKeyRestrictions:(ZZZ)V
        42: .line 208
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.usesSecondaryIndexing:Z
            ifne 43
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            aload 2 /* cfm */
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.needFiltering:(Lorg/apache/cassandra/config/CFMetaData;)Z
            ifeq 44
        43: .line 209
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.filterRestrictions:Lorg/apache/cassandra/cql3/restrictions/IndexRestrictions;
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.IndexRestrictions.add:(Lorg/apache/cassandra/cql3/restrictions/Restrictions;)V
        44: .line 211
      StackMap locals:
      StackMap stack:
            iload 5 /* selectsOnlyStaticColumns */
            ifeq 51
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.hasClusteringColumnsRestrictions:()Z
            ifeq 51
        45: .line 223
            aload 1 /* type */
            invokevirtual org.apache.cassandra.cql3.statements.StatementType.isDelete:()Z
            ifne 46
            aload 1 /* type */
            invokevirtual org.apache.cassandra.cql3.statements.StatementType.isUpdate:()Z
            ifeq 49
        46: .line 224
      StackMap locals:
      StackMap stack:
            ldc "Invalid restrictions on clustering columns since the %s statement modifies only static columns"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        47: .line 225
            aload 1 /* type */
            aastore
        48: .line 224
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.invalidRequest:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/apache/cassandra/exceptions/InvalidRequestException;
            athrow
        49: .line 226
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            invokevirtual org.apache.cassandra.cql3.statements.StatementType.isSelect:()Z
            ifeq 51
        50: .line 227
            ldc "Cannot restrict clustering columns when selecting only static columns"
            iconst_0
            anewarray java.lang.Object
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.invalidRequest:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/apache/cassandra/exceptions/InvalidRequestException;
            athrow
        51: .line 230
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 12 /* hasQueriableIndex */
        52: .line 231
            iload 5 /* selectsOnlyStaticColumns */
        53: .line 232
            iload 6 /* selectsComplexColumn */
        54: .line 233
            iload 8 /* forView */
        55: .line 234
            iload 7 /* allowFiltering */
        56: .line 230
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.processClusteringColumnsRestrictions:(ZZZZZ)V
        57: .line 237
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.isKeyRange:Z
            ifeq 59
            iload 11 /* hasQueriableClusteringColumnIndex */
            ifeq 59
        58: .line 238
            aload 0 /* this */
            iconst_1
            putfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.usesSecondaryIndexing:Z
        59: .line 240
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.usesSecondaryIndexing:Z
            ifne 60
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringColumnsRestrictions:Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.ClusteringColumnRestrictions.needFiltering:()Z
            ifeq 61
        60: .line 241
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.filterRestrictions:Lorg/apache/cassandra/cql3/restrictions/IndexRestrictions;
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringColumnsRestrictions:Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.IndexRestrictions.add:(Lorg/apache/cassandra/cql3/restrictions/Restrictions;)V
        61: .line 245
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.nonPrimaryKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/RestrictionSet;
            invokevirtual org.apache.cassandra.cql3.restrictions.RestrictionSet.isEmpty:()Z
            ifne 78
        62: .line 247
            aload 1 /* type */
            invokevirtual org.apache.cassandra.cql3.statements.StatementType.allowNonPrimaryKeyInWhereClause:()Z
            ifne 68
        63: .line 250
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.nonPrimaryKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/RestrictionSet;
            invokevirtual org.apache.cassandra.cql3.restrictions.RestrictionSet.getColumnDefs:()Ljava/util/List;
            invokestatic org.apache.cassandra.config.ColumnDefinition.toIdentifiers:(Ljava/util/Collection;)Ljava/util/Collection;
        64: .line 249
            astore 13 /* nonPrimaryKeyColumns */
        start local 13 // java.util.Collection nonPrimaryKeyColumns
        65: .line 252
            ldc "Non PRIMARY KEY columns found in where clause: %s "
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        66: .line 253
            ldc ", "
            invokestatic com.google.common.base.Joiner.on:(Ljava/lang/String;)Lcom/google/common/base/Joiner;
            aload 13 /* nonPrimaryKeyColumns */
            invokevirtual com.google.common.base.Joiner.join:(Ljava/lang/Iterable;)Ljava/lang/String;
            aastore
        67: .line 252
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.invalidRequest:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/apache/cassandra/exceptions/InvalidRequestException;
            athrow
        end local 13 // java.util.Collection nonPrimaryKeyColumns
        68: .line 255
      StackMap locals:
      StackMap stack:
            iload 12 /* hasQueriableIndex */
            ifeq 71
        69: .line 257
            aload 0 /* this */
            iconst_1
            putfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.usesSecondaryIndexing:Z
        70: .line 258
            goto 73
        71: .line 259
      StackMap locals:
      StackMap stack:
            iload 7 /* allowFiltering */
            ifne 73
            aload 2 /* cfm */
            invokevirtual org.apache.cassandra.config.CFMetaData.isSuper:()Z
            ifne 73
        72: .line 261
            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"
            iconst_0
            anewarray java.lang.Object
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.invalidRequest:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/apache/cassandra/exceptions/InvalidRequestException;
            athrow
        73: .line 264
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringColumnsRestrictions:Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.ClusteringColumnRestrictions.isEmpty:()Z
            ifeq 74
            aload 2 /* cfm */
            invokevirtual org.apache.cassandra.config.CFMetaData.isSuper:()Z
            ifeq 74
            iconst_1
            goto 75
      StackMap locals:
      StackMap stack:
        74: iconst_0
        75: .line 265
      StackMap locals:
      StackMap stack: int
            ldc "Filtering is not supported on SuperColumn tables"
        76: .line 264
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkFalse:(ZLjava/lang/String;)V
        77: .line 267
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.filterRestrictions:Lorg/apache/cassandra/cql3/restrictions/IndexRestrictions;
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.nonPrimaryKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/RestrictionSet;
            invokevirtual org.apache.cassandra.cql3.restrictions.IndexRestrictions.add:(Lorg/apache/cassandra/cql3/restrictions/Restrictions;)V
        78: .line 270
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.usesSecondaryIndexing:Z
            ifeq 80
        79: .line 271
            aload 0 /* this */
            iload 5 /* selectsOnlyStaticColumns */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.validateSecondaryIndexSelections:(Z)V
        80: .line 272
      StackMap locals:
      StackMap stack:
            return
        end local 12 // boolean hasQueriableIndex
        end local 11 // boolean hasQueriableClusteringColumnIndex
        end local 10 // org.apache.cassandra.index.SecondaryIndexManager secondaryIndexManager
        end local 8 // boolean forView
        end local 7 // boolean allowFiltering
        end local 6 // boolean selectsComplexColumn
        end local 5 // boolean selectsOnlyStaticColumns
        end local 4 // org.apache.cassandra.cql3.VariableSpecifications boundNames
        end local 3 // org.apache.cassandra.cql3.WhereClause whereClause
        end local 2 // org.apache.cassandra.config.CFMetaData cfm
        end local 1 // org.apache.cassandra.cql3.statements.StatementType type
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot                               Name  Signature
            0   81     0                               this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            0   81     1                               type  Lorg/apache/cassandra/cql3/statements/StatementType;
            0   81     2                                cfm  Lorg/apache/cassandra/config/CFMetaData;
            0   81     3                        whereClause  Lorg/apache/cassandra/cql3/WhereClause;
            0   81     4                         boundNames  Lorg/apache/cassandra/cql3/VariableSpecifications;
            0   81     5           selectsOnlyStaticColumns  Z
            0   81     6               selectsComplexColumn  Z
            0   81     7                     allowFiltering  Z
            0   81     8                            forView  Z
            4    5     9                                cfs  Lorg/apache/cassandra/db/ColumnFamilyStore;
            2   81    10              secondaryIndexManager  Lorg/apache/cassandra/index/SecondaryIndexManager;
            7   26    11                           relation  Lorg/apache/cassandra/cql3/Relation;
           12   13    13                                def  Lorg/apache/cassandra/config/ColumnDefinition;
           17   22    13                        restriction  Lorg/apache/cassandra/cql3/restrictions/Restriction;
           29   81    11  hasQueriableClusteringColumnIndex  Z
           30   81    12                  hasQueriableIndex  Z
           65   68    13               nonPrimaryKeyColumns  Ljava/util/Collection<Lorg/apache/cassandra/cql3/ColumnIdentifier;>;
    MethodParameters:
                          Name  Flags
      type                      
      cfm                       
      whereClause               
      boundNames                
      selectsOnlyStaticColumns  
      selectsComplexColumn      
      allowFiltering            
      forView                   

  private void addRestriction(org.apache.cassandra.cql3.restrictions.Restriction);
    descriptor: (Lorg/apache/cassandra/cql3/restrictions/Restriction;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
        start local 1 // org.apache.cassandra.cql3.restrictions.Restriction restriction
         0: .line 276
            aload 1 /* restriction */
            invokeinterface org.apache.cassandra.cql3.restrictions.Restriction.getFirstColumn:()Lorg/apache/cassandra/config/ColumnDefinition;
            astore 2 /* def */
        start local 2 // org.apache.cassandra.config.ColumnDefinition def
         1: .line 277
            aload 2 /* def */
            invokevirtual org.apache.cassandra.config.ColumnDefinition.isPartitionKey:()Z
            ifeq 3
         2: .line 278
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            aload 1 /* restriction */
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.mergeWith:(Lorg/apache/cassandra/cql3/restrictions/Restriction;)Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            putfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            goto 6
         3: .line 279
      StackMap locals: org.apache.cassandra.config.ColumnDefinition
      StackMap stack:
            aload 2 /* def */
            invokevirtual org.apache.cassandra.config.ColumnDefinition.isClusteringColumn:()Z
            ifeq 5
         4: .line 280
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringColumnsRestrictions:Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
            aload 1 /* restriction */
            invokevirtual org.apache.cassandra.cql3.restrictions.ClusteringColumnRestrictions.mergeWith:(Lorg/apache/cassandra/cql3/restrictions/Restriction;)Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
            putfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringColumnsRestrictions:Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
            goto 6
         5: .line 282
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.nonPrimaryKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/RestrictionSet;
            aload 1 /* restriction */
            checkcast org.apache.cassandra.cql3.restrictions.SingleRestriction
            invokevirtual org.apache.cassandra.cql3.restrictions.RestrictionSet.addRestriction:(Lorg/apache/cassandra/cql3/restrictions/SingleRestriction;)Lorg/apache/cassandra/cql3/restrictions/RestrictionSet;
            putfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.nonPrimaryKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/RestrictionSet;
         6: .line 283
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.apache.cassandra.config.ColumnDefinition def
        end local 1 // org.apache.cassandra.cql3.restrictions.Restriction restriction
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            0    7     1  restriction  Lorg/apache/cassandra/cql3/restrictions/Restriction;
            1    7     2          def  Lorg/apache/cassandra/config/ColumnDefinition;
    MethodParameters:
             Name  Flags
      restriction  

  public void addFunctionsTo(java.util.List<org.apache.cassandra.cql3.functions.Function>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
        start local 1 // java.util.List functions
         0: .line 287
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            aload 1 /* functions */
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.addFunctionsTo:(Ljava/util/List;)V
         1: .line 288
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringColumnsRestrictions:Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
            aload 1 /* functions */
            invokevirtual org.apache.cassandra.cql3.restrictions.ClusteringColumnRestrictions.addFunctionsTo:(Ljava/util/List;)V
         2: .line 289
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.nonPrimaryKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/RestrictionSet;
            aload 1 /* functions */
            invokevirtual org.apache.cassandra.cql3.restrictions.RestrictionSet.addFunctionsTo:(Ljava/util/List;)V
         3: .line 290
            return
        end local 1 // java.util.List functions
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            0    4     1  functions  Ljava/util/List<Lorg/apache/cassandra/cql3/functions/Function;>;
    Signature: (Ljava/util/List<Lorg/apache/cassandra/cql3/functions/Function;>;)V
    MethodParameters:
           Name  Flags
      functions  

  public org.apache.cassandra.cql3.restrictions.IndexRestrictions getIndexRestrictions();
    descriptor: ()Lorg/apache/cassandra/cql3/restrictions/IndexRestrictions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
         0: .line 295
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.filterRestrictions:Lorg/apache/cassandra/cql3/restrictions/IndexRestrictions;
            areturn
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;

  public java.util.Set<org.apache.cassandra.config.ColumnDefinition> nonPKRestrictedColumns(boolean);
    descriptor: (Z)Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
        start local 1 // boolean includeNotNullRestrictions
         0: .line 305
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 2 /* columns */
        start local 2 // java.util.Set columns
         1: .line 306
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.filterRestrictions:Lorg/apache/cassandra/cql3/restrictions/IndexRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.IndexRestrictions.getRestrictions:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 8
      StackMap locals: org.apache.cassandra.cql3.restrictions.StatementRestrictions int java.util.Set top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.restrictions.Restrictions
            astore 3 /* r */
        start local 3 // org.apache.cassandra.cql3.restrictions.Restrictions r
         3: .line 308
            aload 3 /* r */
            invokeinterface org.apache.cassandra.cql3.restrictions.Restrictions.getColumnDefs:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 7
      StackMap locals: org.apache.cassandra.cql3.restrictions.StatementRestrictions int java.util.Set org.apache.cassandra.cql3.restrictions.Restrictions java.util.Iterator top java.util.Iterator
      StackMap stack:
         4: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.config.ColumnDefinition
            astore 5 /* def */
        start local 5 // org.apache.cassandra.config.ColumnDefinition def
         5: .line 309
            aload 5 /* def */
            invokevirtual org.apache.cassandra.config.ColumnDefinition.isPrimaryKeyColumn:()Z
            ifne 7
         6: .line 310
            aload 2 /* columns */
            aload 5 /* def */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // org.apache.cassandra.config.ColumnDefinition def
         7: .line 308
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 3 // org.apache.cassandra.cql3.restrictions.Restrictions r
         8: .line 306
      StackMap locals: org.apache.cassandra.cql3.restrictions.StatementRestrictions int java.util.Set top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         9: .line 313
            iload 1 /* includeNotNullRestrictions */
            ifeq 15
        10: .line 315
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.notNullColumns:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 14
      StackMap locals:
      StackMap stack:
        11: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.config.ColumnDefinition
            astore 3 /* def */
        start local 3 // org.apache.cassandra.config.ColumnDefinition def
        12: .line 317
            aload 3 /* def */
            invokevirtual org.apache.cassandra.config.ColumnDefinition.isPrimaryKeyColumn:()Z
            ifne 14
        13: .line 318
            aload 2 /* columns */
            aload 3 /* def */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // org.apache.cassandra.config.ColumnDefinition def
        14: .line 315
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        15: .line 322
      StackMap locals: org.apache.cassandra.cql3.restrictions.StatementRestrictions int java.util.Set
      StackMap stack:
            aload 2 /* columns */
            areturn
        end local 2 // java.util.Set columns
        end local 1 // boolean includeNotNullRestrictions
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   16     0                        this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            0   16     1  includeNotNullRestrictions  Z
            1   16     2                     columns  Ljava/util/Set<Lorg/apache/cassandra/config/ColumnDefinition;>;
            3    8     3                           r  Lorg/apache/cassandra/cql3/restrictions/Restrictions;
            5    7     5                         def  Lorg/apache/cassandra/config/ColumnDefinition;
           12   14     3                         def  Lorg/apache/cassandra/config/ColumnDefinition;
    Signature: (Z)Ljava/util/Set<Lorg/apache/cassandra/config/ColumnDefinition;>;
    MethodParameters:
                            Name  Flags
      includeNotNullRestrictions  

  public java.util.Set<org.apache.cassandra.config.ColumnDefinition> notNullColumns();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
         0: .line 330
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.notNullColumns:Ljava/util/Set;
            areturn
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
    Signature: ()Ljava/util/Set<Lorg/apache/cassandra/config/ColumnDefinition;>;

  public boolean isRestricted(org.apache.cassandra.config.ColumnDefinition);
    descriptor: (Lorg/apache/cassandra/config/ColumnDefinition;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
        start local 1 // org.apache.cassandra.config.ColumnDefinition column
         0: .line 338
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.notNullColumns:Ljava/util/Set;
            aload 1 /* column */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 339
            iconst_1
            ireturn
         2: .line 341
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* column */
            getfield org.apache.cassandra.config.ColumnDefinition.kind:Lorg/apache/cassandra/config/ColumnDefinition$Kind;
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.getRestrictions:(Lorg/apache/cassandra/config/ColumnDefinition$Kind;)Lorg/apache/cassandra/cql3/restrictions/Restrictions;
            invokeinterface org.apache.cassandra.cql3.restrictions.Restrictions.getColumnDefs:()Ljava/util/List;
            aload 1 /* column */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // org.apache.cassandra.config.ColumnDefinition column
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            0    3     1  column  Lorg/apache/cassandra/config/ColumnDefinition;
    MethodParameters:
        Name  Flags
      column  

  public boolean keyIsInRelation();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
         0: .line 352
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.hasIN:()Z
            ireturn
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;

  public boolean isKeyRange();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
         0: .line 362
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.isKeyRange:Z
            ireturn
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;

  public boolean isColumnRestrictedByEq(org.apache.cassandra.config.ColumnDefinition);
    descriptor: (Lorg/apache/cassandra/config/ColumnDefinition;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
        start local 1 // org.apache.cassandra.config.ColumnDefinition columnDef
         0: .line 374
            aload 0 /* this */
            aload 1 /* columnDef */
            getfield org.apache.cassandra.config.ColumnDefinition.kind:Lorg/apache/cassandra/config/ColumnDefinition$Kind;
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.getRestrictions:(Lorg/apache/cassandra/config/ColumnDefinition$Kind;)Lorg/apache/cassandra/cql3/restrictions/Restrictions;
            aload 1 /* columnDef */
            invokeinterface org.apache.cassandra.cql3.restrictions.Restrictions.getRestrictions:(Lorg/apache/cassandra/config/ColumnDefinition;)Ljava/util/Set;
            astore 2 /* restrictions */
        start local 2 // java.util.Set restrictions
         1: .line 375
            aload 2 /* restrictions */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         2: .line 376
            ldc Lorg/apache/cassandra/cql3/restrictions/SingleRestriction;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic test(Ljava/lang/Class;)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
                  java/lang/Class.isInstance(Ljava/lang/Object;)Z (5)
                  (Lorg/apache/cassandra/cql3/restrictions/Restriction;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         3: .line 377
            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/cql3/restrictions/StatementRestrictions.lambda$1(Lorg/apache/cassandra/cql3/restrictions/Restriction;)Z (6)
                  (Lorg/apache/cassandra/cql3/restrictions/Restriction;)Z
            invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
         4: .line 375
            ireturn
        end local 2 // java.util.Set restrictions
        end local 1 // org.apache.cassandra.config.ColumnDefinition columnDef
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            0    5     1     columnDef  Lorg/apache/cassandra/config/ColumnDefinition;
            1    5     2  restrictions  Ljava/util/Set<Lorg/apache/cassandra/cql3/restrictions/Restriction;>;
    MethodParameters:
           Name  Flags
      columnDef  

  private org.apache.cassandra.cql3.restrictions.Restrictions getRestrictions(org.apache.cassandra.config.ColumnDefinition$Kind);
    descriptor: (Lorg/apache/cassandra/config/ColumnDefinition$Kind;)Lorg/apache/cassandra/cql3/restrictions/Restrictions;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
        start local 1 // org.apache.cassandra.config.ColumnDefinition$Kind kind
         0: .line 388
            invokestatic org.apache.cassandra.cql3.restrictions.StatementRestrictions.$SWITCH_TABLE$org$apache$cassandra$config$ColumnDefinition$Kind:()[I
            aload 1 /* kind */
            invokevirtual org.apache.cassandra.config.ColumnDefinition$Kind.ordinal:()I
            iaload
            tableswitch { // 1 - 2
                    1: 1
                    2: 2
              default: 3
          }
         1: .line 390
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            areturn
         2: .line 391
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringColumnsRestrictions:Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
            areturn
         3: .line 392
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.nonPrimaryKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/RestrictionSet;
            areturn
        end local 1 // org.apache.cassandra.config.ColumnDefinition$Kind kind
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            0    4     1  kind  Lorg/apache/cassandra/config/ColumnDefinition$Kind;
    MethodParameters:
      Name  Flags
      kind  

  public boolean usesSecondaryIndexing();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
         0: .line 403
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.usesSecondaryIndexing:Z
            ireturn
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;

  private void processPartitionKeyRestrictions(boolean, boolean, boolean);
    descriptor: (ZZZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
        start local 1 // boolean hasQueriableIndex
        start local 2 // boolean allowFiltering
        start local 3 // boolean forView
         0: .line 408
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.type:Lorg/apache/cassandra/cql3/statements/StatementType;
            invokevirtual org.apache.cassandra.cql3.statements.StatementType.allowPartitionKeyRanges:()Z
            ifne 13
         1: .line 410
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.isOnToken:()Z
         2: .line 411
            ldc "The token function cannot be used in WHERE clauses for %s statements"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.type:Lorg/apache/cassandra/cql3/statements/StatementType;
            aastore
         3: .line 410
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkFalse:(ZLjava/lang/String;[Ljava/lang/Object;)V
         4: .line 413
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.hasUnrestrictedPartitionKeyComponents:(Lorg/apache/cassandra/config/CFMetaData;)Z
            ifeq 8
         5: .line 414
            ldc "Some partition key parts are missing: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         6: .line 415
            ldc ", "
            invokestatic com.google.common.base.Joiner.on:(Ljava/lang/String;)Lcom/google/common/base/Joiner;
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.getPartitionKeyUnrestrictedComponents:()Ljava/util/Collection;
            invokevirtual com.google.common.base.Joiner.join:(Ljava/lang/Iterable;)Ljava/lang/String;
            aastore
         7: .line 414
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.invalidRequest:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/apache/cassandra/exceptions/InvalidRequestException;
            athrow
         8: .line 418
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.hasSlice:()Z
         9: .line 419
            ldc "Only EQ and IN relation are supported on the partition key (unless you use the token() function) for %s statements"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        10: .line 420
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.type:Lorg/apache/cassandra/cql3/statements/StatementType;
            aastore
        11: .line 418
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkFalse:(ZLjava/lang/String;[Ljava/lang/Object;)V
        12: .line 421
            goto 25
        13: .line 425
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.isOnToken:()Z
            ifeq 15
        14: .line 426
            aload 0 /* this */
            iconst_1
            putfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.isKeyRange:Z
        15: .line 428
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.isEmpty:()Z
            ifeq 18
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.hasUnrestrictedPartitionKeyComponents:(Lorg/apache/cassandra/config/CFMetaData;)Z
            ifeq 18
        16: .line 430
            aload 0 /* this */
            iconst_1
            putfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.isKeyRange:Z
        17: .line 431
            aload 0 /* this */
            iload 1 /* hasQueriableIndex */
            putfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.usesSecondaryIndexing:Z
        18: .line 440
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.needFiltering:(Lorg/apache/cassandra/config/CFMetaData;)Z
            ifeq 25
        19: .line 442
            iload 2 /* allowFiltering */
            ifne 21
            iload 3 /* forView */
            ifne 21
            iload 1 /* hasQueriableIndex */
            ifne 21
        20: .line 443
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            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"
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 445
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.hasIN:()Z
            ifeq 23
        22: .line 446
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            ldc "IN restrictions are not supported when the query involves filtering"
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
        23: .line 448
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.isKeyRange:Z
        24: .line 449
            aload 0 /* this */
            iload 1 /* hasQueriableIndex */
            putfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.usesSecondaryIndexing:Z
        25: .line 452
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean forView
        end local 2 // boolean allowFiltering
        end local 1 // boolean hasQueriableIndex
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   26     0               this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            0   26     1  hasQueriableIndex  Z
            0   26     2     allowFiltering  Z
            0   26     3            forView  Z
    MethodParameters:
                   Name  Flags
      hasQueriableIndex  
      allowFiltering     
      forView            

  public boolean hasPartitionKeyRestrictions();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
         0: .line 456
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.isEmpty:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;

  public boolean hasNonPrimaryKeyRestrictions();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
         0: .line 465
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.nonPrimaryKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/RestrictionSet;
            invokevirtual org.apache.cassandra.cql3.restrictions.RestrictionSet.isEmpty:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;

  private java.util.Collection<org.apache.cassandra.cql3.ColumnIdentifier> getPartitionKeyUnrestrictedComponents();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
         0: .line 474
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            invokevirtual org.apache.cassandra.config.CFMetaData.partitionKeyColumns:()Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 1 /* list */
        start local 1 // java.util.List list
         1: .line 475
            aload 1 /* list */
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.getColumnDefs:()Ljava/util/List;
            invokeinterface java.util.List.removeAll:(Ljava/util/Collection;)Z
            pop
         2: .line 476
            aload 1 /* list */
            invokestatic org.apache.cassandra.config.ColumnDefinition.toIdentifiers:(Ljava/util/Collection;)Ljava/util/Collection;
            areturn
        end local 1 // java.util.List list
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            1    3     1  list  Ljava/util/List<Lorg/apache/cassandra/config/ColumnDefinition;>;
    Signature: ()Ljava/util/Collection<Lorg/apache/cassandra/cql3/ColumnIdentifier;>;

  public boolean isPartitionKeyRestrictionsOnToken();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
         0: .line 487
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.isOnToken:()Z
            ireturn
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;

  public boolean clusteringKeyRestrictionsHasIN();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
         0: .line 498
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringColumnsRestrictions:Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.ClusteringColumnRestrictions.hasIN:()Z
            ireturn
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;

  private void processClusteringColumnsRestrictions(boolean, boolean, boolean, boolean, boolean);
    descriptor: (ZZZZZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=12, args_size=6
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
        start local 1 // boolean hasQueriableIndex
        start local 2 // boolean selectsOnlyStaticColumns
        start local 3 // boolean selectsComplexColumn
        start local 4 // boolean forView
        start local 5 // boolean allowFiltering
         0: .line 515
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.type:Lorg/apache/cassandra/cql3/statements/StatementType;
            invokevirtual org.apache.cassandra.cql3.statements.StatementType.allowClusteringColumnSlices:()Z
            ifne 1
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringColumnsRestrictions:Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.ClusteringColumnRestrictions.hasSlice:()Z
            ifeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
         2: .line 516
      StackMap locals:
      StackMap stack: int
            ldc "Slice restrictions are not supported on the clustering columns in %s statements"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.type:Lorg/apache/cassandra/cql3/statements/StatementType;
            aastore
         3: .line 515
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkFalse:(ZLjava/lang/String;[Ljava/lang/Object;)V
         4: .line 518
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.type:Lorg/apache/cassandra/cql3/statements/StatementType;
            invokevirtual org.apache.cassandra.cql3.statements.StatementType.allowClusteringColumnSlices:()Z
            ifne 10
         5: .line 519
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            invokevirtual org.apache.cassandra.config.CFMetaData.isCompactTable:()Z
            ifeq 6
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            invokevirtual org.apache.cassandra.config.CFMetaData.isCompactTable:()Z
            ifeq 10
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.hasClusteringColumnsRestrictions:()Z
            ifne 10
         6: .line 521
      StackMap locals:
      StackMap stack:
            iload 2 /* selectsOnlyStaticColumns */
            ifne 37
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.hasUnrestrictedClusteringColumns:()Z
            ifeq 37
         7: .line 522
            ldc "Some clustering keys are missing: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         8: .line 523
            ldc ", "
            invokestatic com.google.common.base.Joiner.on:(Ljava/lang/String;)Lcom/google/common/base/Joiner;
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.getUnrestrictedClusteringColumns:()Ljava/util/Collection;
            invokevirtual com.google.common.base.Joiner.join:(Ljava/lang/Iterable;)Ljava/lang/String;
            aastore
         9: .line 522
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.invalidRequest:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/apache/cassandra/exceptions/InvalidRequestException;
            athrow
        10: .line 527
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringColumnsRestrictions:Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.ClusteringColumnRestrictions.hasIN:()Z
            ifeq 11
            iload 3 /* selectsComplexColumn */
            ifeq 11
            iconst_1
            goto 12
      StackMap locals:
      StackMap stack:
        11: iconst_0
        12: .line 528
      StackMap locals:
      StackMap stack: int
            ldc "Cannot restrict clustering columns by IN relations when a collection is selected by the query"
        13: .line 527
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkFalse:(ZLjava/lang/String;)V
        14: .line 529
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringColumnsRestrictions:Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.ClusteringColumnRestrictions.hasContains:()Z
            ifeq 15
            iload 1 /* hasQueriableIndex */
            ifne 15
            iload 5 /* allowFiltering */
            ifne 15
            iconst_1
            goto 16
      StackMap locals:
      StackMap stack:
        15: iconst_0
        16: .line 530
      StackMap locals:
      StackMap stack: int
            ldc "Clustering columns can only be restricted with CONTAINS with a secondary index or filtering"
        17: .line 529
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkFalse:(ZLjava/lang/String;)V
        18: .line 532
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.hasClusteringColumnsRestrictions:()Z
            ifeq 37
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringColumnsRestrictions:Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.ClusteringColumnRestrictions.needFiltering:()Z
            ifeq 37
        19: .line 534
            iload 1 /* hasQueriableIndex */
            ifne 20
            iload 4 /* forView */
            ifeq 22
        20: .line 536
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.usesSecondaryIndexing:Z
        21: .line 537
            goto 37
        22: .line 538
      StackMap locals:
      StackMap stack:
            iload 5 /* allowFiltering */
            ifne 37
        23: .line 540
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            invokevirtual org.apache.cassandra.config.CFMetaData.clusteringColumns:()Ljava/util/List;
            astore 6 /* clusteringColumns */
        start local 6 // java.util.List clusteringColumns
        24: .line 541
            new java.util.LinkedList
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringColumnsRestrictions:Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.ClusteringColumnRestrictions.getColumnDefs:()Ljava/util/List;
            invokespecial java.util.LinkedList.<init>:(Ljava/util/Collection;)V
            astore 7 /* restrictedColumns */
        start local 7 // java.util.List restrictedColumns
        25: .line 543
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        26: aload 7 /* restrictedColumns */
            invokeinterface java.util.List.size:()I
            istore 9 /* m */
        start local 9 // int m
        27: goto 36
        28: .line 545
      StackMap locals: org.apache.cassandra.cql3.restrictions.StatementRestrictions int int int int int java.util.List java.util.List int int
      StackMap stack:
            aload 6 /* clusteringColumns */
            iload 8 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.cassandra.config.ColumnDefinition
            astore 10 /* clusteringColumn */
        start local 10 // org.apache.cassandra.config.ColumnDefinition clusteringColumn
        29: .line 546
            aload 7 /* restrictedColumns */
            iload 8 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.cassandra.config.ColumnDefinition
            astore 11 /* restrictedColumn */
        start local 11 // org.apache.cassandra.config.ColumnDefinition restrictedColumn
        30: .line 548
            aload 10 /* clusteringColumn */
            aload 11 /* restrictedColumn */
            invokevirtual org.apache.cassandra.config.ColumnDefinition.equals:(Ljava/lang/Object;)Z
            ifne 35
        31: .line 550
            ldc "PRIMARY KEY column \"%s\" cannot be restricted as preceding column \"%s\" is not restricted"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        32: .line 551
            aload 11 /* restrictedColumn */
            getfield org.apache.cassandra.config.ColumnDefinition.name:Lorg/apache/cassandra/cql3/ColumnIdentifier;
            aastore
            dup
            iconst_1
        33: .line 552
            aload 10 /* clusteringColumn */
            getfield org.apache.cassandra.config.ColumnDefinition.name:Lorg/apache/cassandra/cql3/ColumnIdentifier;
            aastore
        34: .line 550
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.invalidRequest:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/apache/cassandra/exceptions/InvalidRequestException;
            athrow
        end local 11 // org.apache.cassandra.config.ColumnDefinition restrictedColumn
        end local 10 // org.apache.cassandra.config.ColumnDefinition clusteringColumn
        35: .line 543
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        36: iload 8 /* i */
            iload 9 /* m */
            if_icmplt 28
        end local 9 // int m
        end local 8 // int i
        end local 7 // java.util.List restrictedColumns
        end local 6 // java.util.List clusteringColumns
        37: .line 560
      StackMap locals: org.apache.cassandra.cql3.restrictions.StatementRestrictions int int int int int
      StackMap stack:
            return
        end local 5 // boolean allowFiltering
        end local 4 // boolean forView
        end local 3 // boolean selectsComplexColumn
        end local 2 // boolean selectsOnlyStaticColumns
        end local 1 // boolean hasQueriableIndex
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   38     0                      this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            0   38     1         hasQueriableIndex  Z
            0   38     2  selectsOnlyStaticColumns  Z
            0   38     3      selectsComplexColumn  Z
            0   38     4                   forView  Z
            0   38     5            allowFiltering  Z
           24   37     6         clusteringColumns  Ljava/util/List<Lorg/apache/cassandra/config/ColumnDefinition;>;
           25   37     7         restrictedColumns  Ljava/util/List<Lorg/apache/cassandra/config/ColumnDefinition;>;
           26   37     8                         i  I
           27   37     9                         m  I
           29   35    10          clusteringColumn  Lorg/apache/cassandra/config/ColumnDefinition;
           30   35    11          restrictedColumn  Lorg/apache/cassandra/config/ColumnDefinition;
    MethodParameters:
                          Name  Flags
      hasQueriableIndex         
      selectsOnlyStaticColumns  
      selectsComplexColumn      
      forView                   
      allowFiltering            

  private java.util.Collection<org.apache.cassandra.cql3.ColumnIdentifier> getUnrestrictedClusteringColumns();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
         0: .line 568
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            invokevirtual org.apache.cassandra.config.CFMetaData.clusteringColumns:()Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 1 /* missingClusteringColumns */
        start local 1 // java.util.List missingClusteringColumns
         1: .line 569
            aload 1 /* missingClusteringColumns */
            new java.util.LinkedList
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringColumnsRestrictions:Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.ClusteringColumnRestrictions.getColumnDefs:()Ljava/util/List;
            invokespecial java.util.LinkedList.<init>:(Ljava/util/Collection;)V
            invokeinterface java.util.List.removeAll:(Ljava/util/Collection;)Z
            pop
         2: .line 570
            aload 1 /* missingClusteringColumns */
            invokestatic org.apache.cassandra.config.ColumnDefinition.toIdentifiers:(Ljava/util/Collection;)Ljava/util/Collection;
            areturn
        end local 1 // java.util.List missingClusteringColumns
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    3     0                      this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            1    3     1  missingClusteringColumns  Ljava/util/List<Lorg/apache/cassandra/config/ColumnDefinition;>;
    Signature: ()Ljava/util/Collection<Lorg/apache/cassandra/cql3/ColumnIdentifier;>;

  private boolean hasUnrestrictedClusteringColumns();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
         0: .line 579
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            invokevirtual org.apache.cassandra.config.CFMetaData.clusteringColumns:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringColumnsRestrictions:Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.ClusteringColumnRestrictions.size:()I
            if_icmpeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;

  private void processCustomIndexExpressions(java.util.List<org.apache.cassandra.cql3.restrictions.CustomIndexExpression>, org.apache.cassandra.cql3.VariableSpecifications, org.apache.cassandra.index.SecondaryIndexManager);
    descriptor: (Ljava/util/List;Lorg/apache/cassandra/cql3/VariableSpecifications;Lorg/apache/cassandra/index/SecondaryIndexManager;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
        start local 1 // java.util.List expressions
        start local 2 // org.apache.cassandra.cql3.VariableSpecifications boundNames
        start local 3 // org.apache.cassandra.index.SecondaryIndexManager indexManager
         0: .line 586
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            invokevirtual org.apache.cassandra.net.MessagingService.areAllNodesAtLeast30:()Z
            ifne 2
         1: .line 587
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            ldc "Please upgrade all nodes to at least 3.0 before using custom index expressions"
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 589
      StackMap locals:
      StackMap stack:
            aload 1 /* expressions */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 4
         3: .line 590
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            ldc "Multiple custom index expressions in a single query are not supported"
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 592
      StackMap locals:
      StackMap stack:
            aload 1 /* expressions */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.restrictions.CustomIndexExpression
            astore 4 /* expression */
        start local 4 // org.apache.cassandra.cql3.restrictions.CustomIndexExpression expression
         5: .line 594
            aload 4 /* expression */
            getfield org.apache.cassandra.cql3.restrictions.CustomIndexExpression.targetIndex:Lorg/apache/cassandra/cql3/IndexName;
            invokevirtual org.apache.cassandra.cql3.IndexName.getCfName:()Lorg/apache/cassandra/cql3/CFName;
            astore 5 /* cfName */
        start local 5 // org.apache.cassandra.cql3.CFName cfName
         6: .line 595
            aload 5 /* cfName */
            invokevirtual org.apache.cassandra.cql3.CFName.hasKeyspace:()Z
            ifeq 9
         7: .line 596
            aload 4 /* expression */
            getfield org.apache.cassandra.cql3.restrictions.CustomIndexExpression.targetIndex:Lorg/apache/cassandra/cql3/IndexName;
            invokevirtual org.apache.cassandra.cql3.IndexName.getKeyspace:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.ksName:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
         8: .line 597
            aload 4 /* expression */
            getfield org.apache.cassandra.cql3.restrictions.CustomIndexExpression.targetIndex:Lorg/apache/cassandra/cql3/IndexName;
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            invokestatic org.apache.cassandra.cql3.restrictions.IndexRestrictions.invalidIndex:(Lorg/apache/cassandra/cql3/IndexName;Lorg/apache/cassandra/config/CFMetaData;)Lorg/apache/cassandra/exceptions/InvalidRequestException;
            athrow
         9: .line 599
      StackMap locals: org.apache.cassandra.cql3.restrictions.CustomIndexExpression org.apache.cassandra.cql3.CFName
      StackMap stack:
            aload 5 /* cfName */
            invokevirtual org.apache.cassandra.cql3.CFName.getColumnFamily:()Ljava/lang/String;
            ifnull 11
            aload 5 /* cfName */
            invokevirtual org.apache.cassandra.cql3.CFName.getColumnFamily:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.cfName:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
        10: .line 600
            aload 4 /* expression */
            getfield org.apache.cassandra.cql3.restrictions.CustomIndexExpression.targetIndex:Lorg/apache/cassandra/cql3/IndexName;
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            invokestatic org.apache.cassandra.cql3.restrictions.IndexRestrictions.invalidIndex:(Lorg/apache/cassandra/cql3/IndexName;Lorg/apache/cassandra/config/CFMetaData;)Lorg/apache/cassandra/exceptions/InvalidRequestException;
            athrow
        11: .line 602
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            invokevirtual org.apache.cassandra.config.CFMetaData.getIndexes:()Lorg/apache/cassandra/schema/Indexes;
            aload 4 /* expression */
            getfield org.apache.cassandra.cql3.restrictions.CustomIndexExpression.targetIndex:Lorg/apache/cassandra/cql3/IndexName;
            invokevirtual org.apache.cassandra.cql3.IndexName.getIdx:()Ljava/lang/String;
            invokevirtual org.apache.cassandra.schema.Indexes.has:(Ljava/lang/String;)Z
            ifne 13
        12: .line 603
            aload 4 /* expression */
            getfield org.apache.cassandra.cql3.restrictions.CustomIndexExpression.targetIndex:Lorg/apache/cassandra/cql3/IndexName;
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            invokestatic org.apache.cassandra.cql3.restrictions.IndexRestrictions.indexNotFound:(Lorg/apache/cassandra/cql3/IndexName;Lorg/apache/cassandra/config/CFMetaData;)Lorg/apache/cassandra/exceptions/InvalidRequestException;
            athrow
        13: .line 605
      StackMap locals:
      StackMap stack:
            aload 3 /* indexManager */
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            invokevirtual org.apache.cassandra.config.CFMetaData.getIndexes:()Lorg/apache/cassandra/schema/Indexes;
            aload 4 /* expression */
            getfield org.apache.cassandra.cql3.restrictions.CustomIndexExpression.targetIndex:Lorg/apache/cassandra/cql3/IndexName;
            invokevirtual org.apache.cassandra.cql3.IndexName.getIdx:()Ljava/lang/String;
            invokevirtual org.apache.cassandra.schema.Indexes.get:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast org.apache.cassandra.schema.IndexMetadata
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.getIndex:(Lorg/apache/cassandra/schema/IndexMetadata;)Lorg/apache/cassandra/index/Index;
            astore 6 /* index */
        start local 6 // org.apache.cassandra.index.Index index
        14: .line 607
            aload 6 /* index */
            invokeinterface org.apache.cassandra.index.Index.getIndexMetadata:()Lorg/apache/cassandra/schema/IndexMetadata;
            invokevirtual org.apache.cassandra.schema.IndexMetadata.isCustom:()Z
            ifne 16
        15: .line 608
            aload 4 /* expression */
            getfield org.apache.cassandra.cql3.restrictions.CustomIndexExpression.targetIndex:Lorg/apache/cassandra/cql3/IndexName;
            invokestatic org.apache.cassandra.cql3.restrictions.IndexRestrictions.nonCustomIndexInExpression:(Lorg/apache/cassandra/cql3/IndexName;)Lorg/apache/cassandra/exceptions/InvalidRequestException;
            athrow
        16: .line 610
      StackMap locals: org.apache.cassandra.index.Index
      StackMap stack:
            aload 6 /* index */
            invokeinterface org.apache.cassandra.index.Index.customExpressionValueType:()Lorg/apache/cassandra/db/marshal/AbstractType;
            astore 7 /* expressionType */
        start local 7 // org.apache.cassandra.db.marshal.AbstractType expressionType
        17: .line 611
            aload 7 /* expressionType */
            ifnonnull 19
        18: .line 612
            aload 4 /* expression */
            getfield org.apache.cassandra.cql3.restrictions.CustomIndexExpression.targetIndex:Lorg/apache/cassandra/cql3/IndexName;
            invokestatic org.apache.cassandra.cql3.restrictions.IndexRestrictions.customExpressionNotSupported:(Lorg/apache/cassandra/cql3/IndexName;)Lorg/apache/cassandra/exceptions/InvalidRequestException;
            athrow
        19: .line 614
      StackMap locals: org.apache.cassandra.db.marshal.AbstractType
      StackMap stack:
            aload 4 /* expression */
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            aload 7 /* expressionType */
            aload 2 /* boundNames */
            invokevirtual org.apache.cassandra.cql3.restrictions.CustomIndexExpression.prepareValue:(Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/db/marshal/AbstractType;Lorg/apache/cassandra/cql3/VariableSpecifications;)V
        20: .line 616
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.filterRestrictions:Lorg/apache/cassandra/cql3/restrictions/IndexRestrictions;
            aload 4 /* expression */
            invokevirtual org.apache.cassandra.cql3.restrictions.IndexRestrictions.add:(Lorg/apache/cassandra/cql3/restrictions/CustomIndexExpression;)V
        21: .line 617
            return
        end local 7 // org.apache.cassandra.db.marshal.AbstractType expressionType
        end local 6 // org.apache.cassandra.index.Index index
        end local 5 // org.apache.cassandra.cql3.CFName cfName
        end local 4 // org.apache.cassandra.cql3.restrictions.CustomIndexExpression expression
        end local 3 // org.apache.cassandra.index.SecondaryIndexManager indexManager
        end local 2 // org.apache.cassandra.cql3.VariableSpecifications boundNames
        end local 1 // java.util.List expressions
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   22     0            this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            0   22     1     expressions  Ljava/util/List<Lorg/apache/cassandra/cql3/restrictions/CustomIndexExpression;>;
            0   22     2      boundNames  Lorg/apache/cassandra/cql3/VariableSpecifications;
            0   22     3    indexManager  Lorg/apache/cassandra/index/SecondaryIndexManager;
            5   22     4      expression  Lorg/apache/cassandra/cql3/restrictions/CustomIndexExpression;
            6   22     5          cfName  Lorg/apache/cassandra/cql3/CFName;
           14   22     6           index  Lorg/apache/cassandra/index/Index;
           17   22     7  expressionType  Lorg/apache/cassandra/db/marshal/AbstractType<*>;
    Signature: (Ljava/util/List<Lorg/apache/cassandra/cql3/restrictions/CustomIndexExpression;>;Lorg/apache/cassandra/cql3/VariableSpecifications;Lorg/apache/cassandra/index/SecondaryIndexManager;)V
    MethodParameters:
              Name  Flags
      expressions   
      boundNames    
      indexManager  

  public org.apache.cassandra.db.filter.RowFilter getRowFilter(org.apache.cassandra.index.SecondaryIndexManager, org.apache.cassandra.cql3.QueryOptions);
    descriptor: (Lorg/apache/cassandra/index/SecondaryIndexManager;Lorg/apache/cassandra/cql3/QueryOptions;)Lorg/apache/cassandra/db/filter/RowFilter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
        start local 1 // org.apache.cassandra.index.SecondaryIndexManager indexManager
        start local 2 // org.apache.cassandra.cql3.QueryOptions options
         0: .line 621
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.filterRestrictions:Lorg/apache/cassandra/cql3/restrictions/IndexRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.IndexRestrictions.isEmpty:()Z
            ifeq 2
         1: .line 622
            getstatic org.apache.cassandra.db.filter.RowFilter.NONE:Lorg/apache/cassandra/db/filter/RowFilter;
            areturn
         2: .line 624
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.db.filter.RowFilter.create:()Lorg/apache/cassandra/db/filter/RowFilter;
            astore 3 /* filter */
        start local 3 // org.apache.cassandra.db.filter.RowFilter filter
         3: .line 625
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.filterRestrictions:Lorg/apache/cassandra/cql3/restrictions/IndexRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.IndexRestrictions.getRestrictions:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 6
      StackMap locals: org.apache.cassandra.cql3.restrictions.StatementRestrictions org.apache.cassandra.index.SecondaryIndexManager org.apache.cassandra.cql3.QueryOptions org.apache.cassandra.db.filter.RowFilter top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.restrictions.Restrictions
            astore 4 /* restrictions */
        start local 4 // org.apache.cassandra.cql3.restrictions.Restrictions restrictions
         5: .line 626
            aload 4 /* restrictions */
            aload 3 /* filter */
            aload 1 /* indexManager */
            aload 2 /* options */
            invokeinterface org.apache.cassandra.cql3.restrictions.Restrictions.addRowFilterTo:(Lorg/apache/cassandra/db/filter/RowFilter;Lorg/apache/cassandra/index/SecondaryIndexManager;Lorg/apache/cassandra/cql3/QueryOptions;)V
        end local 4 // org.apache.cassandra.cql3.restrictions.Restrictions restrictions
         6: .line 625
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 628
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.filterRestrictions:Lorg/apache/cassandra/cql3/restrictions/IndexRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.IndexRestrictions.getCustomIndexExpressions:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 10
      StackMap locals:
      StackMap stack:
         8: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.restrictions.CustomIndexExpression
            astore 4 /* expression */
        start local 4 // org.apache.cassandra.cql3.restrictions.CustomIndexExpression expression
         9: .line 629
            aload 4 /* expression */
            aload 3 /* filter */
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            aload 2 /* options */
            invokevirtual org.apache.cassandra.cql3.restrictions.CustomIndexExpression.addToRowFilter:(Lorg/apache/cassandra/db/filter/RowFilter;Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/cql3/QueryOptions;)V
        end local 4 // org.apache.cassandra.cql3.restrictions.CustomIndexExpression expression
        10: .line 628
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        11: .line 631
            aload 3 /* filter */
            areturn
        end local 3 // org.apache.cassandra.db.filter.RowFilter filter
        end local 2 // org.apache.cassandra.cql3.QueryOptions options
        end local 1 // org.apache.cassandra.index.SecondaryIndexManager indexManager
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   12     0          this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            0   12     1  indexManager  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0   12     2       options  Lorg/apache/cassandra/cql3/QueryOptions;
            3   12     3        filter  Lorg/apache/cassandra/db/filter/RowFilter;
            5    6     4  restrictions  Lorg/apache/cassandra/cql3/restrictions/Restrictions;
            9   10     4    expression  Lorg/apache/cassandra/cql3/restrictions/CustomIndexExpression;
    MethodParameters:
              Name  Flags
      indexManager  
      options       

  public java.util.List<java.nio.ByteBuffer> getPartitionKeys(org.apache.cassandra.cql3.QueryOptions);
    descriptor: (Lorg/apache/cassandra/cql3/QueryOptions;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
        start local 1 // org.apache.cassandra.cql3.QueryOptions options
         0: .line 642
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            aload 1 /* options */
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.values:(Lorg/apache/cassandra/cql3/QueryOptions;)Ljava/util/List;
            areturn
        end local 1 // org.apache.cassandra.cql3.QueryOptions options
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            0    1     1  options  Lorg/apache/cassandra/cql3/QueryOptions;
    Signature: (Lorg/apache/cassandra/cql3/QueryOptions;)Ljava/util/List<Ljava/nio/ByteBuffer;>;
    MethodParameters:
         Name  Flags
      options  final

  private java.nio.ByteBuffer getPartitionKeyBound(org.apache.cassandra.cql3.statements.Bound, org.apache.cassandra.cql3.QueryOptions);
    descriptor: (Lorg/apache/cassandra/cql3/statements/Bound;Lorg/apache/cassandra/cql3/QueryOptions;)Ljava/nio/ByteBuffer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
        start local 1 // org.apache.cassandra.cql3.statements.Bound b
        start local 2 // org.apache.cassandra.cql3.QueryOptions options
         0: .line 655
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            aload 1 /* b */
            aload 2 /* options */
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.bounds:(Lorg/apache/cassandra/cql3/statements/Bound;Lorg/apache/cassandra/cql3/QueryOptions;)Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            areturn
        end local 2 // org.apache.cassandra.cql3.QueryOptions options
        end local 1 // org.apache.cassandra.cql3.statements.Bound b
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            0    1     1        b  Lorg/apache/cassandra/cql3/statements/Bound;
            0    1     2  options  Lorg/apache/cassandra/cql3/QueryOptions;
    MethodParameters:
         Name  Flags
      b        
      options  

  public org.apache.cassandra.dht.AbstractBounds<org.apache.cassandra.db.PartitionPosition> getPartitionKeyBounds(org.apache.cassandra.cql3.QueryOptions);
    descriptor: (Lorg/apache/cassandra/cql3/QueryOptions;)Lorg/apache/cassandra/dht/AbstractBounds;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
        start local 1 // org.apache.cassandra.cql3.QueryOptions options
         0: .line 666
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
            astore 2 /* p */
        start local 2 // org.apache.cassandra.dht.IPartitioner p
         1: .line 668
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.isOnToken:()Z
            ifeq 3
         2: .line 670
            aload 0 /* this */
            aload 2 /* p */
            aload 1 /* options */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.getPartitionKeyBoundsForTokenRestrictions:(Lorg/apache/cassandra/dht/IPartitioner;Lorg/apache/cassandra/cql3/QueryOptions;)Lorg/apache/cassandra/dht/AbstractBounds;
            areturn
         3: .line 673
      StackMap locals: org.apache.cassandra.dht.IPartitioner
      StackMap stack:
            aload 0 /* this */
            aload 2 /* p */
            aload 1 /* options */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.getPartitionKeyBounds:(Lorg/apache/cassandra/dht/IPartitioner;Lorg/apache/cassandra/cql3/QueryOptions;)Lorg/apache/cassandra/dht/AbstractBounds;
            areturn
        end local 2 // org.apache.cassandra.dht.IPartitioner p
        end local 1 // org.apache.cassandra.cql3.QueryOptions options
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            0    4     1  options  Lorg/apache/cassandra/cql3/QueryOptions;
            1    4     2        p  Lorg/apache/cassandra/dht/IPartitioner;
    Signature: (Lorg/apache/cassandra/cql3/QueryOptions;)Lorg/apache/cassandra/dht/AbstractBounds<Lorg/apache/cassandra/db/PartitionPosition;>;
    MethodParameters:
         Name  Flags
      options  

  private org.apache.cassandra.dht.AbstractBounds<org.apache.cassandra.db.PartitionPosition> getPartitionKeyBounds(org.apache.cassandra.dht.IPartitioner, org.apache.cassandra.cql3.QueryOptions);
    descriptor: (Lorg/apache/cassandra/dht/IPartitioner;Lorg/apache/cassandra/cql3/QueryOptions;)Lorg/apache/cassandra/dht/AbstractBounds;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
        start local 1 // org.apache.cassandra.dht.IPartitioner p
        start local 2 // org.apache.cassandra.cql3.QueryOptions options
         0: .line 681
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.needFiltering:(Lorg/apache/cassandra/config/CFMetaData;)Z
            ifeq 2
         1: .line 682
            new org.apache.cassandra.dht.Range
            dup
            aload 1 /* p */
            invokeinterface org.apache.cassandra.dht.IPartitioner.getMinimumToken:()Lorg/apache/cassandra/dht/Token;
            invokevirtual org.apache.cassandra.dht.Token.minKeyBound:()Lorg/apache/cassandra/dht/Token$KeyBound;
            aload 1 /* p */
            invokeinterface org.apache.cassandra.dht.IPartitioner.getMinimumToken:()Lorg/apache/cassandra/dht/Token;
            invokevirtual org.apache.cassandra.dht.Token.maxKeyBound:()Lorg/apache/cassandra/dht/Token$KeyBound;
            invokespecial org.apache.cassandra.dht.Range.<init>:(Lorg/apache/cassandra/dht/RingPosition;Lorg/apache/cassandra/dht/RingPosition;)V
            areturn
         2: .line 684
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.apache.cassandra.cql3.statements.Bound.START:Lorg/apache/cassandra/cql3/statements/Bound;
            aload 2 /* options */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.getPartitionKeyBound:(Lorg/apache/cassandra/cql3/statements/Bound;Lorg/apache/cassandra/cql3/QueryOptions;)Ljava/nio/ByteBuffer;
            astore 3 /* startKeyBytes */
        start local 3 // java.nio.ByteBuffer startKeyBytes
         3: .line 685
            aload 0 /* this */
            getstatic org.apache.cassandra.cql3.statements.Bound.END:Lorg/apache/cassandra/cql3/statements/Bound;
            aload 2 /* options */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.getPartitionKeyBound:(Lorg/apache/cassandra/cql3/statements/Bound;Lorg/apache/cassandra/cql3/QueryOptions;)Ljava/nio/ByteBuffer;
            astore 4 /* finishKeyBytes */
        start local 4 // java.nio.ByteBuffer finishKeyBytes
         4: .line 687
            aload 3 /* startKeyBytes */
            aload 1 /* p */
            invokestatic org.apache.cassandra.db.PartitionPosition$ForKey.get:(Ljava/nio/ByteBuffer;Lorg/apache/cassandra/dht/IPartitioner;)Lorg/apache/cassandra/db/PartitionPosition;
            astore 5 /* startKey */
        start local 5 // org.apache.cassandra.db.PartitionPosition startKey
         5: .line 688
            aload 4 /* finishKeyBytes */
            aload 1 /* p */
            invokestatic org.apache.cassandra.db.PartitionPosition$ForKey.get:(Ljava/nio/ByteBuffer;Lorg/apache/cassandra/dht/IPartitioner;)Lorg/apache/cassandra/db/PartitionPosition;
            astore 6 /* finishKey */
        start local 6 // org.apache.cassandra.db.PartitionPosition finishKey
         6: .line 690
            aload 5 /* startKey */
            aload 6 /* finishKey */
            invokeinterface org.apache.cassandra.db.PartitionPosition.compareTo:(Ljava/lang/Object;)I
            ifle 8
            aload 6 /* finishKey */
            invokeinterface org.apache.cassandra.db.PartitionPosition.isMinimum:()Z
            ifne 8
         7: .line 691
            aconst_null
            areturn
         8: .line 693
      StackMap locals: org.apache.cassandra.cql3.restrictions.StatementRestrictions org.apache.cassandra.dht.IPartitioner org.apache.cassandra.cql3.QueryOptions java.nio.ByteBuffer java.nio.ByteBuffer org.apache.cassandra.db.PartitionPosition org.apache.cassandra.db.PartitionPosition
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            getstatic org.apache.cassandra.cql3.statements.Bound.START:Lorg/apache/cassandra/cql3/statements/Bound;
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.isInclusive:(Lorg/apache/cassandra/cql3/statements/Bound;)Z
            ifeq 13
         9: .line 695
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            getstatic org.apache.cassandra.cql3.statements.Bound.END:Lorg/apache/cassandra/cql3/statements/Bound;
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.isInclusive:(Lorg/apache/cassandra/cql3/statements/Bound;)Z
            ifeq 11
        10: .line 696
            new org.apache.cassandra.dht.Bounds
            dup
            aload 5 /* startKey */
            aload 6 /* finishKey */
            invokespecial org.apache.cassandra.dht.Bounds.<init>:(Lorg/apache/cassandra/dht/RingPosition;Lorg/apache/cassandra/dht/RingPosition;)V
            goto 12
        11: .line 697
      StackMap locals:
      StackMap stack:
            new org.apache.cassandra.dht.IncludingExcludingBounds
            dup
            aload 5 /* startKey */
            aload 6 /* finishKey */
            invokespecial org.apache.cassandra.dht.IncludingExcludingBounds.<init>:(Lorg/apache/cassandra/dht/RingPosition;Lorg/apache/cassandra/dht/RingPosition;)V
        12: .line 695
      StackMap locals:
      StackMap stack: org.apache.cassandra.dht.AbstractBounds
            areturn
        13: .line 700
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            getstatic org.apache.cassandra.cql3.statements.Bound.END:Lorg/apache/cassandra/cql3/statements/Bound;
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.isInclusive:(Lorg/apache/cassandra/cql3/statements/Bound;)Z
            ifeq 15
        14: .line 701
            new org.apache.cassandra.dht.Range
            dup
            aload 5 /* startKey */
            aload 6 /* finishKey */
            invokespecial org.apache.cassandra.dht.Range.<init>:(Lorg/apache/cassandra/dht/RingPosition;Lorg/apache/cassandra/dht/RingPosition;)V
            goto 16
        15: .line 702
      StackMap locals:
      StackMap stack:
            new org.apache.cassandra.dht.ExcludingBounds
            dup
            aload 5 /* startKey */
            aload 6 /* finishKey */
            invokespecial org.apache.cassandra.dht.ExcludingBounds.<init>:(Lorg/apache/cassandra/dht/RingPosition;Lorg/apache/cassandra/dht/RingPosition;)V
        16: .line 700
      StackMap locals:
      StackMap stack: org.apache.cassandra.dht.AbstractBounds
            areturn
        end local 6 // org.apache.cassandra.db.PartitionPosition finishKey
        end local 5 // org.apache.cassandra.db.PartitionPosition startKey
        end local 4 // java.nio.ByteBuffer finishKeyBytes
        end local 3 // java.nio.ByteBuffer startKeyBytes
        end local 2 // org.apache.cassandra.cql3.QueryOptions options
        end local 1 // org.apache.cassandra.dht.IPartitioner p
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   17     0            this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            0   17     1               p  Lorg/apache/cassandra/dht/IPartitioner;
            0   17     2         options  Lorg/apache/cassandra/cql3/QueryOptions;
            3   17     3   startKeyBytes  Ljava/nio/ByteBuffer;
            4   17     4  finishKeyBytes  Ljava/nio/ByteBuffer;
            5   17     5        startKey  Lorg/apache/cassandra/db/PartitionPosition;
            6   17     6       finishKey  Lorg/apache/cassandra/db/PartitionPosition;
    Signature: (Lorg/apache/cassandra/dht/IPartitioner;Lorg/apache/cassandra/cql3/QueryOptions;)Lorg/apache/cassandra/dht/AbstractBounds<Lorg/apache/cassandra/db/PartitionPosition;>;
    MethodParameters:
         Name  Flags
      p        
      options  

  private org.apache.cassandra.dht.AbstractBounds<org.apache.cassandra.db.PartitionPosition> getPartitionKeyBoundsForTokenRestrictions(org.apache.cassandra.dht.IPartitioner, org.apache.cassandra.cql3.QueryOptions);
    descriptor: (Lorg/apache/cassandra/dht/IPartitioner;Lorg/apache/cassandra/cql3/QueryOptions;)Lorg/apache/cassandra/dht/AbstractBounds;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
        start local 1 // org.apache.cassandra.dht.IPartitioner p
        start local 2 // org.apache.cassandra.cql3.QueryOptions options
         0: .line 708
            aload 0 /* this */
            getstatic org.apache.cassandra.cql3.statements.Bound.START:Lorg/apache/cassandra/cql3/statements/Bound;
            aload 2 /* options */
            aload 1 /* p */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.getTokenBound:(Lorg/apache/cassandra/cql3/statements/Bound;Lorg/apache/cassandra/cql3/QueryOptions;Lorg/apache/cassandra/dht/IPartitioner;)Lorg/apache/cassandra/dht/Token;
            astore 3 /* startToken */
        start local 3 // org.apache.cassandra.dht.Token startToken
         1: .line 709
            aload 0 /* this */
            getstatic org.apache.cassandra.cql3.statements.Bound.END:Lorg/apache/cassandra/cql3/statements/Bound;
            aload 2 /* options */
            aload 1 /* p */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.getTokenBound:(Lorg/apache/cassandra/cql3/statements/Bound;Lorg/apache/cassandra/cql3/QueryOptions;Lorg/apache/cassandra/dht/IPartitioner;)Lorg/apache/cassandra/dht/Token;
            astore 4 /* endToken */
        start local 4 // org.apache.cassandra.dht.Token endToken
         2: .line 711
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            getstatic org.apache.cassandra.cql3.statements.Bound.START:Lorg/apache/cassandra/cql3/statements/Bound;
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.isInclusive:(Lorg/apache/cassandra/cql3/statements/Bound;)Z
            istore 5 /* includeStart */
        start local 5 // boolean includeStart
         3: .line 712
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            getstatic org.apache.cassandra.cql3.statements.Bound.END:Lorg/apache/cassandra/cql3/statements/Bound;
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.isInclusive:(Lorg/apache/cassandra/cql3/statements/Bound;)Z
            istore 6 /* includeEnd */
        start local 6 // boolean includeEnd
         4: .line 724
            aload 3 /* startToken */
            aload 4 /* endToken */
            invokevirtual org.apache.cassandra.dht.Token.compareTo:(Ljava/lang/Object;)I
            istore 7 /* cmp */
        start local 7 // int cmp
         5: .line 725
            aload 3 /* startToken */
            invokevirtual org.apache.cassandra.dht.Token.isMinimum:()Z
            ifne 8
            aload 4 /* endToken */
            invokevirtual org.apache.cassandra.dht.Token.isMinimum:()Z
            ifne 8
         6: .line 726
            iload 7 /* cmp */
            ifgt 7
            iload 7 /* cmp */
            ifne 8
            iload 5 /* includeStart */
            ifeq 7
            iload 6 /* includeEnd */
            ifne 8
         7: .line 727
      StackMap locals: org.apache.cassandra.cql3.restrictions.StatementRestrictions org.apache.cassandra.dht.IPartitioner org.apache.cassandra.cql3.QueryOptions org.apache.cassandra.dht.Token org.apache.cassandra.dht.Token int int int
      StackMap stack:
            aconst_null
            areturn
         8: .line 729
      StackMap locals:
      StackMap stack:
            iload 5 /* includeStart */
            ifeq 9
            aload 3 /* startToken */
            invokevirtual org.apache.cassandra.dht.Token.minKeyBound:()Lorg/apache/cassandra/dht/Token$KeyBound;
            goto 10
      StackMap locals:
      StackMap stack:
         9: aload 3 /* startToken */
            invokevirtual org.apache.cassandra.dht.Token.maxKeyBound:()Lorg/apache/cassandra/dht/Token$KeyBound;
      StackMap locals:
      StackMap stack: org.apache.cassandra.dht.Token$KeyBound
        10: astore 8 /* start */
        start local 8 // org.apache.cassandra.db.PartitionPosition start
        11: .line 730
            iload 6 /* includeEnd */
            ifeq 12
            aload 4 /* endToken */
            invokevirtual org.apache.cassandra.dht.Token.maxKeyBound:()Lorg/apache/cassandra/dht/Token$KeyBound;
            goto 13
      StackMap locals: org.apache.cassandra.db.PartitionPosition
      StackMap stack:
        12: aload 4 /* endToken */
            invokevirtual org.apache.cassandra.dht.Token.minKeyBound:()Lorg/apache/cassandra/dht/Token$KeyBound;
      StackMap locals:
      StackMap stack: org.apache.cassandra.dht.Token$KeyBound
        13: astore 9 /* end */
        start local 9 // org.apache.cassandra.db.PartitionPosition end
        14: .line 732
            new org.apache.cassandra.dht.Range
            dup
            aload 8 /* start */
            aload 9 /* end */
            invokespecial org.apache.cassandra.dht.Range.<init>:(Lorg/apache/cassandra/dht/RingPosition;Lorg/apache/cassandra/dht/RingPosition;)V
            areturn
        end local 9 // org.apache.cassandra.db.PartitionPosition end
        end local 8 // org.apache.cassandra.db.PartitionPosition start
        end local 7 // int cmp
        end local 6 // boolean includeEnd
        end local 5 // boolean includeStart
        end local 4 // org.apache.cassandra.dht.Token endToken
        end local 3 // org.apache.cassandra.dht.Token startToken
        end local 2 // org.apache.cassandra.cql3.QueryOptions options
        end local 1 // org.apache.cassandra.dht.IPartitioner p
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0          this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            0   15     1             p  Lorg/apache/cassandra/dht/IPartitioner;
            0   15     2       options  Lorg/apache/cassandra/cql3/QueryOptions;
            1   15     3    startToken  Lorg/apache/cassandra/dht/Token;
            2   15     4      endToken  Lorg/apache/cassandra/dht/Token;
            3   15     5  includeStart  Z
            4   15     6    includeEnd  Z
            5   15     7           cmp  I
           11   15     8         start  Lorg/apache/cassandra/db/PartitionPosition;
           14   15     9           end  Lorg/apache/cassandra/db/PartitionPosition;
    Signature: (Lorg/apache/cassandra/dht/IPartitioner;Lorg/apache/cassandra/cql3/QueryOptions;)Lorg/apache/cassandra/dht/AbstractBounds<Lorg/apache/cassandra/db/PartitionPosition;>;
    MethodParameters:
         Name  Flags
      p        
      options  

  private org.apache.cassandra.dht.Token getTokenBound(org.apache.cassandra.cql3.statements.Bound, org.apache.cassandra.cql3.QueryOptions, org.apache.cassandra.dht.IPartitioner);
    descriptor: (Lorg/apache/cassandra/cql3/statements/Bound;Lorg/apache/cassandra/cql3/QueryOptions;Lorg/apache/cassandra/dht/IPartitioner;)Lorg/apache/cassandra/dht/Token;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
        start local 1 // org.apache.cassandra.cql3.statements.Bound b
        start local 2 // org.apache.cassandra.cql3.QueryOptions options
        start local 3 // org.apache.cassandra.dht.IPartitioner p
         0: .line 737
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            aload 1 /* b */
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.hasBound:(Lorg/apache/cassandra/cql3/statements/Bound;)Z
            ifne 2
         1: .line 738
            aload 3 /* p */
            invokeinterface org.apache.cassandra.dht.IPartitioner.getMinimumToken:()Lorg/apache/cassandra/dht/Token;
            areturn
         2: .line 740
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            aload 1 /* b */
            aload 2 /* options */
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.bounds:(Lorg/apache/cassandra/cql3/statements/Bound;Lorg/apache/cassandra/cql3/QueryOptions;)Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            astore 4 /* value */
        start local 4 // java.nio.ByteBuffer value
         3: .line 741
            aload 4 /* value */
            ldc "Invalid null token value"
            iconst_0
            anewarray java.lang.Object
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkNotNull:(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 742
            aload 3 /* p */
            invokeinterface org.apache.cassandra.dht.IPartitioner.getTokenFactory:()Lorg/apache/cassandra/dht/Token$TokenFactory;
            aload 4 /* value */
            invokevirtual org.apache.cassandra.dht.Token$TokenFactory.fromByteArray:(Ljava/nio/ByteBuffer;)Lorg/apache/cassandra/dht/Token;
            areturn
        end local 4 // java.nio.ByteBuffer value
        end local 3 // org.apache.cassandra.dht.IPartitioner p
        end local 2 // org.apache.cassandra.cql3.QueryOptions options
        end local 1 // org.apache.cassandra.cql3.statements.Bound b
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            0    5     1        b  Lorg/apache/cassandra/cql3/statements/Bound;
            0    5     2  options  Lorg/apache/cassandra/cql3/QueryOptions;
            0    5     3        p  Lorg/apache/cassandra/dht/IPartitioner;
            3    5     4    value  Ljava/nio/ByteBuffer;
    MethodParameters:
         Name  Flags
      b        
      options  
      p        

  public boolean hasClusteringColumnsRestrictions();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
         0: .line 753
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringColumnsRestrictions:Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.ClusteringColumnRestrictions.isEmpty:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;

  public java.util.NavigableSet<org.apache.cassandra.db.Clustering> getClusteringColumns(org.apache.cassandra.cql3.QueryOptions);
    descriptor: (Lorg/apache/cassandra/cql3/QueryOptions;)Ljava/util/NavigableSet;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
        start local 1 // org.apache.cassandra.cql3.QueryOptions options
         0: .line 767
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            invokevirtual org.apache.cassandra.config.CFMetaData.isStaticCompactTable:()Z
            ifeq 2
         1: .line 768
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.comparator:Lorg/apache/cassandra/db/ClusteringComparator;
            invokestatic org.apache.cassandra.utils.btree.BTreeSet.empty:(Ljava/util/Comparator;)Lorg/apache/cassandra/utils/btree/BTreeSet;
            areturn
         2: .line 770
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringColumnsRestrictions:Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
            aload 1 /* options */
            invokevirtual org.apache.cassandra.cql3.restrictions.ClusteringColumnRestrictions.valuesAsClustering:(Lorg/apache/cassandra/cql3/QueryOptions;)Ljava/util/NavigableSet;
            areturn
        end local 1 // org.apache.cassandra.cql3.QueryOptions options
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            0    3     1  options  Lorg/apache/cassandra/cql3/QueryOptions;
    Signature: (Lorg/apache/cassandra/cql3/QueryOptions;)Ljava/util/NavigableSet<Lorg/apache/cassandra/db/Clustering;>;
    MethodParameters:
         Name  Flags
      options  

  public java.util.NavigableSet<org.apache.cassandra.db.ClusteringBound> getClusteringColumnsBounds(org.apache.cassandra.cql3.statements.Bound, org.apache.cassandra.cql3.QueryOptions);
    descriptor: (Lorg/apache/cassandra/cql3/statements/Bound;Lorg/apache/cassandra/cql3/QueryOptions;)Ljava/util/NavigableSet;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
        start local 1 // org.apache.cassandra.cql3.statements.Bound b
        start local 2 // org.apache.cassandra.cql3.QueryOptions options
         0: .line 782
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringColumnsRestrictions:Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
            aload 1 /* b */
            aload 2 /* options */
            invokevirtual org.apache.cassandra.cql3.restrictions.ClusteringColumnRestrictions.boundsAsClustering:(Lorg/apache/cassandra/cql3/statements/Bound;Lorg/apache/cassandra/cql3/QueryOptions;)Ljava/util/NavigableSet;
            areturn
        end local 2 // org.apache.cassandra.cql3.QueryOptions options
        end local 1 // org.apache.cassandra.cql3.statements.Bound b
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            0    1     1        b  Lorg/apache/cassandra/cql3/statements/Bound;
            0    1     2  options  Lorg/apache/cassandra/cql3/QueryOptions;
    Signature: (Lorg/apache/cassandra/cql3/statements/Bound;Lorg/apache/cassandra/cql3/QueryOptions;)Ljava/util/NavigableSet<Lorg/apache/cassandra/db/ClusteringBound;>;
    MethodParameters:
         Name  Flags
      b        
      options  

  public boolean isColumnRange();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
         0: .line 795
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            invokevirtual org.apache.cassandra.config.CFMetaData.isStaticCompactTable:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            invokevirtual org.apache.cassandra.config.CFMetaData.clusteringColumns:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
      StackMap locals:
      StackMap stack: int
         2: istore 1 /* numberOfClusteringColumns */
        start local 1 // int numberOfClusteringColumns
         3: .line 797
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringColumnsRestrictions:Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.ClusteringColumnRestrictions.size:()I
            iload 1 /* numberOfClusteringColumns */
            if_icmplt 6
         4: .line 798
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringColumnsRestrictions:Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.ClusteringColumnRestrictions.hasOnlyEqualityRestrictions:()Z
            ifeq 6
         5: .line 797
            iconst_0
            ireturn
      StackMap locals: int
      StackMap stack:
         6: iconst_1
            ireturn
        end local 1 // int numberOfClusteringColumns
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0    7     0                       this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            3    7     1  numberOfClusteringColumns  I

  public boolean needFiltering();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
         0: .line 807
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.filterRestrictions:Lorg/apache/cassandra/cql3/restrictions/IndexRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.IndexRestrictions.getCustomIndexExpressions:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 1 /* numberOfRestrictions */
        start local 1 // int numberOfRestrictions
         1: .line 808
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.filterRestrictions:Lorg/apache/cassandra/cql3/restrictions/IndexRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.IndexRestrictions.getRestrictions:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.apache.cassandra.cql3.restrictions.StatementRestrictions int top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.restrictions.Restrictions
            astore 2 /* restrictions */
        start local 2 // org.apache.cassandra.cql3.restrictions.Restrictions restrictions
         3: .line 809
            iload 1 /* numberOfRestrictions */
            aload 2 /* restrictions */
            invokeinterface org.apache.cassandra.cql3.restrictions.Restrictions.size:()I
            iadd
            istore 1 /* numberOfRestrictions */
        end local 2 // org.apache.cassandra.cql3.restrictions.Restrictions restrictions
         4: .line 808
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 811
            iload 1 /* numberOfRestrictions */
            iconst_1
            if_icmpgt 10
         6: .line 812
            iload 1 /* numberOfRestrictions */
            ifne 7
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringColumnsRestrictions:Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.ClusteringColumnRestrictions.isEmpty:()Z
            ifeq 10
         7: .line 813
      StackMap locals: org.apache.cassandra.cql3.restrictions.StatementRestrictions int
      StackMap stack:
            iload 1 /* numberOfRestrictions */
            ifeq 9
         8: .line 814
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.nonPrimaryKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/RestrictionSet;
            invokevirtual org.apache.cassandra.cql3.restrictions.RestrictionSet.hasMultipleContains:()Z
            ifne 10
         9: .line 811
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
        10: iconst_1
            ireturn
        end local 1 // int numberOfRestrictions
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   11     0                  this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            1   11     1  numberOfRestrictions  I
            3    4     2          restrictions  Lorg/apache/cassandra/cql3/restrictions/Restrictions;

  private void validateSecondaryIndexSelections(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
        start local 1 // boolean selectsOnlyStaticColumns
         0: .line 819
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.keyIsInRelation:()Z
         1: .line 820
            ldc "Select on indexed columns and with IN clause for the PRIMARY KEY are not supported"
         2: .line 819
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkFalse:(ZLjava/lang/String;)V
         3: .line 825
            iload 1 /* selectsOnlyStaticColumns */
            ldc "Queries using 2ndary indexes don't support selecting only static columns"
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkFalse:(ZLjava/lang/String;)V
         4: .line 826
            return
        end local 1 // boolean selectsOnlyStaticColumns
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    5     0                      this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            0    5     1  selectsOnlyStaticColumns  Z
    MethodParameters:
                          Name  Flags
      selectsOnlyStaticColumns  

  public boolean hasAllPKColumnsRestrictedByEqualities();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
         0: .line 836
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.isPartitionKeyRestrictionsOnToken:()Z
            ifne 6
         1: .line 837
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.hasUnrestrictedPartitionKeyComponents:(Lorg/apache/cassandra/config/CFMetaData;)Z
            ifne 6
         2: .line 838
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.partitionKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions;
            invokeinterface org.apache.cassandra.cql3.restrictions.PartitionKeyRestrictions.hasOnlyEqualityRestrictions:()Z
            ifeq 6
         3: .line 839
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.hasUnrestrictedClusteringColumns:()Z
            ifne 6
         4: .line 840
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringColumnsRestrictions:Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.ClusteringColumnRestrictions.hasOnlyEqualityRestrictions:()Z
            ifeq 6
         5: .line 836
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         6: iconst_0
            ireturn
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;

  public boolean hasRegularColumnsRestrictions();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
         0: .line 849
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.hasRegularColumnsRestrictions:Z
            ireturn
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;

  public org.apache.cassandra.cql3.SuperColumnCompatibility$SuperColumnRestrictions getSuperColumnRestrictions();
    descriptor: ()Lorg/apache/cassandra/cql3/SuperColumnCompatibility$SuperColumnRestrictions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
         0: .line 855
            getstatic org.apache.cassandra.cql3.restrictions.StatementRestrictions.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            invokevirtual org.apache.cassandra.config.CFMetaData.isSuper:()Z
            ifeq 1
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cfm:Lorg/apache/cassandra/config/CFMetaData;
            invokevirtual org.apache.cassandra.config.CFMetaData.isDense:()Z
            ifne 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 857
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cached:Lorg/apache/cassandra/cql3/SuperColumnCompatibility$SuperColumnRestrictions;
            ifnonnull 6
         3: .line 858
            aload 0 /* this */
            new org.apache.cassandra.cql3.SuperColumnCompatibility$SuperColumnRestrictions
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringColumnsRestrictions:Lorg/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.ClusteringColumnRestrictions.iterator:()Ljava/util/Iterator;
         4: .line 859
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.nonPrimaryKeyRestrictions:Lorg/apache/cassandra/cql3/restrictions/RestrictionSet;
            invokevirtual org.apache.cassandra.cql3.restrictions.RestrictionSet.iterator:()Ljava/util/Iterator;
         5: .line 858
            invokestatic com.google.common.collect.Iterators.concat:(Ljava/util/Iterator;Ljava/util/Iterator;)Ljava/util/Iterator;
            invokespecial org.apache.cassandra.cql3.SuperColumnCompatibility$SuperColumnRestrictions.<init>:(Ljava/util/Iterator;)V
            putfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cached:Lorg/apache/cassandra/cql3/SuperColumnCompatibility$SuperColumnRestrictions;
         6: .line 860
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.restrictions.StatementRestrictions.cached:Lorg/apache/cassandra/cql3/SuperColumnCompatibility$SuperColumnRestrictions;
            areturn
        end local 0 // org.apache.cassandra.cql3.restrictions.StatementRestrictions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;

  static int[] $SWITCH_TABLE$org$apache$cassandra$config$ColumnDefinition$Kind();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 50
            getstatic org.apache.cassandra.cql3.restrictions.StatementRestrictions.$SWITCH_TABLE$org$apache$cassandra$config$ColumnDefinition$Kind:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.apache.cassandra.config.ColumnDefinition$Kind.values:()[Lorg/apache/cassandra/config/ColumnDefinition$Kind;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.apache.cassandra.config.ColumnDefinition$Kind.CLUSTERING:Lorg/apache/cassandra/config/ColumnDefinition$Kind;
            invokevirtual org.apache.cassandra.config.ColumnDefinition$Kind.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.apache.cassandra.config.ColumnDefinition$Kind.PARTITION_KEY:Lorg/apache/cassandra/config/ColumnDefinition$Kind;
            invokevirtual org.apache.cassandra.config.ColumnDefinition$Kind.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.apache.cassandra.config.ColumnDefinition$Kind.REGULAR:Lorg/apache/cassandra/config/ColumnDefinition$Kind;
            invokevirtual org.apache.cassandra.config.ColumnDefinition$Kind.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.apache.cassandra.config.ColumnDefinition$Kind.STATIC:Lorg/apache/cassandra/config/ColumnDefinition$Kind;
            invokevirtual org.apache.cassandra.config.ColumnDefinition$Kind.ordinal:()I
            iconst_4
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            dup
            putstatic org.apache.cassandra.cql3.restrictions.StatementRestrictions.$SWITCH_TABLE$org$apache$cassandra$config$ColumnDefinition$Kind:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError

  private static boolean lambda$1(org.apache.cassandra.cql3.restrictions.Restriction);
    descriptor: (Lorg/apache/cassandra/cql3/restrictions/Restriction;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.restrictions.Restriction p
         0: .line 377
            aload 0 /* p */
            checkcast org.apache.cassandra.cql3.restrictions.SingleRestriction
            invokeinterface org.apache.cassandra.cql3.restrictions.SingleRestriction.isEQ:()Z
            ireturn
        end local 0 // org.apache.cassandra.cql3.restrictions.Restriction p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     p  Lorg/apache/cassandra/cql3/restrictions/Restriction;
}
SourceFile: "StatementRestrictions.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Kind = org.apache.cassandra.config.ColumnDefinition$Kind of org.apache.cassandra.config.ColumnDefinition
  public SuperColumnRestrictions = org.apache.cassandra.cql3.SuperColumnCompatibility$SuperColumnRestrictions of org.apache.cassandra.cql3.SuperColumnCompatibility
  public final ForKey = org.apache.cassandra.db.PartitionPosition$ForKey of org.apache.cassandra.db.PartitionPosition
  public KeyBound = org.apache.cassandra.dht.Token$KeyBound of org.apache.cassandra.dht.Token
  public abstract TokenFactory = org.apache.cassandra.dht.Token$TokenFactory of org.apache.cassandra.dht.Token