public class org.apache.cassandra.cql3.statements.BatchStatement implements org.apache.cassandra.cql3.CQLStatement
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.cql3.statements.BatchStatement
  super_class: java.lang.Object
{
  private final int boundTerms;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public final org.apache.cassandra.cql3.statements.BatchStatement$Type type;
    descriptor: Lorg/apache/cassandra/cql3/statements/BatchStatement$Type;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  private final java.util.List<org.apache.cassandra.cql3.statements.ModificationStatement> statements;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/apache/cassandra/cql3/statements/ModificationStatement;>;

  private final java.util.Map<java.util.UUID, org.apache.cassandra.db.PartitionColumns> updatedColumns;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/util/UUID;Lorg/apache/cassandra/db/PartitionColumns;>;

  private final org.apache.cassandra.db.PartitionColumns conditionColumns;
    descriptor: Lorg/apache/cassandra/db/PartitionColumns;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean updatesRegularRows;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean updatesStaticRow;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final boolean hasConditions;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final org.slf4j.Logger logger;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String UNLOGGED_BATCH_WARNING;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "Unlogged batch covering {} partitions detected against table{} {}. You should use a logged batch for atomicity, or asynchronous writes for performance."

  private static final java.lang.String LOGGED_BATCH_LOW_GCGS_WARNING;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "Executing a LOGGED BATCH on table{} {}, configured with a gc_grace_seconds of 0. The gc_grace_seconds is used to TTL batchlog entries, so setting gc_grace_seconds too low on tables involved in an atomic batch might cause batchlog entries to expire before being replayed."

  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/statements/BatchStatement;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.apache.cassandra.cql3.statements.BatchStatement.$assertionsDisabled:Z
         3: .line 70
            ldc Lorg/apache/cassandra/cql3/statements/BatchStatement;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic org.apache.cassandra.cql3.statements.BatchStatement.logger:Lorg/slf4j/Logger;
         4: .line 80
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(int, org.apache.cassandra.cql3.statements.BatchStatement$Type, java.util.List<org.apache.cassandra.cql3.statements.ModificationStatement>, org.apache.cassandra.cql3.Attributes);
    descriptor: (ILorg/apache/cassandra/cql3/statements/BatchStatement$Type;Ljava/util/List;Lorg/apache/cassandra/cql3/Attributes;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=12, args_size=5
        start local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
        start local 1 // int boundTerms
        start local 2 // org.apache.cassandra.cql3.statements.BatchStatement$Type type
        start local 3 // java.util.List statements
        start local 4 // org.apache.cassandra.cql3.Attributes attrs
         0: .line 90
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 92
            aload 0 /* this */
            iload 1 /* boundTerms */
            putfield org.apache.cassandra.cql3.statements.BatchStatement.boundTerms:I
         2: .line 93
            aload 0 /* this */
            aload 2 /* type */
            putfield org.apache.cassandra.cql3.statements.BatchStatement.type:Lorg/apache/cassandra/cql3/statements/BatchStatement$Type;
         3: .line 94
            aload 0 /* this */
            aload 3 /* statements */
            putfield org.apache.cassandra.cql3.statements.BatchStatement.statements:Ljava/util/List;
         4: .line 95
            aload 0 /* this */
            aload 4 /* attrs */
            putfield org.apache.cassandra.cql3.statements.BatchStatement.attrs:Lorg/apache/cassandra/cql3/Attributes;
         5: .line 97
            iconst_0
            istore 5 /* hasConditions */
        start local 5 // boolean hasConditions
         6: .line 98
            new org.apache.cassandra.cql3.statements.BatchStatement$MultiTableColumnsBuilder
            dup
            invokespecial org.apache.cassandra.cql3.statements.BatchStatement$MultiTableColumnsBuilder.<init>:()V
            astore 6 /* regularBuilder */
        start local 6 // org.apache.cassandra.cql3.statements.BatchStatement$MultiTableColumnsBuilder regularBuilder
         7: .line 99
            invokestatic org.apache.cassandra.db.PartitionColumns.builder:()Lorg/apache/cassandra/db/PartitionColumns$Builder;
            astore 7 /* conditionBuilder */
        start local 7 // org.apache.cassandra.db.PartitionColumns$Builder conditionBuilder
         8: .line 100
            iconst_0
            istore 8 /* updateRegular */
        start local 8 // boolean updateRegular
         9: .line 101
            iconst_0
            istore 9 /* updateStatic */
        start local 9 // boolean updateStatic
        10: .line 103
            aload 3 /* statements */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 11
            goto 18
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement int org.apache.cassandra.cql3.statements.BatchStatement$Type java.util.List org.apache.cassandra.cql3.Attributes int org.apache.cassandra.cql3.statements.BatchStatement$MultiTableColumnsBuilder org.apache.cassandra.db.PartitionColumns$Builder int int top java.util.Iterator
      StackMap stack:
        11: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.statements.ModificationStatement
            astore 10 /* stmt */
        start local 10 // org.apache.cassandra.cql3.statements.ModificationStatement stmt
        12: .line 105
            aload 6 /* regularBuilder */
            aload 10 /* stmt */
            getfield org.apache.cassandra.cql3.statements.ModificationStatement.cfm:Lorg/apache/cassandra/config/CFMetaData;
            aload 10 /* stmt */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.updatedColumns:()Lorg/apache/cassandra/db/PartitionColumns;
            invokevirtual org.apache.cassandra.cql3.statements.BatchStatement$MultiTableColumnsBuilder.addAll:(Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/db/PartitionColumns;)V
        13: .line 106
            iload 8 /* updateRegular */
            aload 10 /* stmt */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.updatesRegularRows:()Z
            ior
            istore 8 /* updateRegular */
        14: .line 107
            aload 10 /* stmt */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.hasConditions:()Z
            ifeq 18
        15: .line 109
            iconst_1
            istore 5 /* hasConditions */
        16: .line 110
            aload 7 /* conditionBuilder */
            aload 10 /* stmt */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.conditionColumns:()Lorg/apache/cassandra/db/PartitionColumns;
            invokevirtual org.apache.cassandra.db.PartitionColumns$Builder.addAll:(Lorg/apache/cassandra/db/PartitionColumns;)Lorg/apache/cassandra/db/PartitionColumns$Builder;
            pop
        17: .line 111
            iload 9 /* updateStatic */
            aload 10 /* stmt */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.updatesStaticRow:()Z
            ior
            istore 9 /* updateStatic */
        end local 10 // org.apache.cassandra.cql3.statements.ModificationStatement stmt
        18: .line 103
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        19: .line 115
            aload 0 /* this */
            aload 6 /* regularBuilder */
            invokevirtual org.apache.cassandra.cql3.statements.BatchStatement$MultiTableColumnsBuilder.build:()Ljava/util/Map;
            putfield org.apache.cassandra.cql3.statements.BatchStatement.updatedColumns:Ljava/util/Map;
        20: .line 116
            aload 0 /* this */
            aload 7 /* conditionBuilder */
            invokevirtual org.apache.cassandra.db.PartitionColumns$Builder.build:()Lorg/apache/cassandra/db/PartitionColumns;
            putfield org.apache.cassandra.cql3.statements.BatchStatement.conditionColumns:Lorg/apache/cassandra/db/PartitionColumns;
        21: .line 117
            aload 0 /* this */
            iload 8 /* updateRegular */
            putfield org.apache.cassandra.cql3.statements.BatchStatement.updatesRegularRows:Z
        22: .line 118
            aload 0 /* this */
            iload 9 /* updateStatic */
            putfield org.apache.cassandra.cql3.statements.BatchStatement.updatesStaticRow:Z
        23: .line 119
            aload 0 /* this */
            iload 5 /* hasConditions */
            putfield org.apache.cassandra.cql3.statements.BatchStatement.hasConditions:Z
        24: .line 120
            return
        end local 9 // boolean updateStatic
        end local 8 // boolean updateRegular
        end local 7 // org.apache.cassandra.db.PartitionColumns$Builder conditionBuilder
        end local 6 // org.apache.cassandra.cql3.statements.BatchStatement$MultiTableColumnsBuilder regularBuilder
        end local 5 // boolean hasConditions
        end local 4 // org.apache.cassandra.cql3.Attributes attrs
        end local 3 // java.util.List statements
        end local 2 // org.apache.cassandra.cql3.statements.BatchStatement$Type type
        end local 1 // int boundTerms
        end local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   25     0              this  Lorg/apache/cassandra/cql3/statements/BatchStatement;
            0   25     1        boundTerms  I
            0   25     2              type  Lorg/apache/cassandra/cql3/statements/BatchStatement$Type;
            0   25     3        statements  Ljava/util/List<Lorg/apache/cassandra/cql3/statements/ModificationStatement;>;
            0   25     4             attrs  Lorg/apache/cassandra/cql3/Attributes;
            6   25     5     hasConditions  Z
            7   25     6    regularBuilder  Lorg/apache/cassandra/cql3/statements/BatchStatement$MultiTableColumnsBuilder;
            8   25     7  conditionBuilder  Lorg/apache/cassandra/db/PartitionColumns$Builder;
            9   25     8     updateRegular  Z
           10   25     9      updateStatic  Z
           12   18    10              stmt  Lorg/apache/cassandra/cql3/statements/ModificationStatement;
    Signature: (ILorg/apache/cassandra/cql3/statements/BatchStatement$Type;Ljava/util/List<Lorg/apache/cassandra/cql3/statements/ModificationStatement;>;Lorg/apache/cassandra/cql3/Attributes;)V
    MethodParameters:
            Name  Flags
      boundTerms  
      type        
      statements  
      attrs       

  public java.lang.Iterable<org.apache.cassandra.cql3.functions.Function> getFunctions();
    descriptor: ()Ljava/lang/Iterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
         0: .line 124
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* functions */
        start local 1 // java.util.List functions
         1: .line 125
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.statements:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.statements.ModificationStatement
            astore 2 /* statement */
        start local 2 // org.apache.cassandra.cql3.statements.ModificationStatement statement
         3: .line 126
            aload 2 /* statement */
            aload 1 /* functions */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.addFunctionsTo:(Ljava/util/List;)V
        end local 2 // org.apache.cassandra.cql3.statements.ModificationStatement statement
         4: .line 125
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 127
            aload 1 /* functions */
            areturn
        end local 1 // java.util.List functions
        end local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/apache/cassandra/cql3/statements/BatchStatement;
            1    6     1  functions  Ljava/util/List<Lorg/apache/cassandra/cql3/functions/Function;>;
            3    4     2  statement  Lorg/apache/cassandra/cql3/statements/ModificationStatement;
    Signature: ()Ljava/lang/Iterable<Lorg/apache/cassandra/cql3/functions/Function;>;

  public int getBoundTerms();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
         0: .line 132
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.boundTerms:I
            ireturn
        end local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cql3/statements/BatchStatement;

  public void checkAccess(org.apache.cassandra.service.ClientState);
    descriptor: (Lorg/apache/cassandra/service/ClientState;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
        start local 1 // org.apache.cassandra.service.ClientState state
         0: .line 137
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.statements:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 3
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement org.apache.cassandra.service.ClientState top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.statements.ModificationStatement
            astore 2 /* statement */
        start local 2 // org.apache.cassandra.cql3.statements.ModificationStatement statement
         2: .line 138
            aload 2 /* statement */
            aload 1 /* state */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.checkAccess:(Lorg/apache/cassandra/service/ClientState;)V
        end local 2 // org.apache.cassandra.cql3.statements.ModificationStatement statement
         3: .line 137
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 139
            return
        end local 1 // org.apache.cassandra.service.ClientState state
        end local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/apache/cassandra/cql3/statements/BatchStatement;
            0    5     1      state  Lorg/apache/cassandra/service/ClientState;
            2    3     2  statement  Lorg/apache/cassandra/cql3/statements/ModificationStatement;
    Exceptions:
      throws org.apache.cassandra.exceptions.InvalidRequestException, org.apache.cassandra.exceptions.UnauthorizedException
    MethodParameters:
       Name  Flags
      state  

  public void validate();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=1
        start local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
         0: .line 144
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.attrs:Lorg/apache/cassandra/cql3/Attributes;
            invokevirtual org.apache.cassandra.cql3.Attributes.isTimeToLiveSet:()Z
            ifeq 2
         1: .line 145
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            ldc "Global TTL on the BATCH statement is not supported."
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 147
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.attrs:Lorg/apache/cassandra/cql3/Attributes;
            invokevirtual org.apache.cassandra.cql3.Attributes.isTimestampSet:()Z
            istore 1 /* timestampSet */
        start local 1 // boolean timestampSet
         3: .line 148
            iload 1 /* timestampSet */
            ifeq 8
         4: .line 150
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.hasConditions:Z
            ifeq 6
         5: .line 151
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            ldc "Cannot provide custom timestamp for conditional BATCH"
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 153
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.statements.BatchStatement.isCounter:()Z
            ifeq 8
         7: .line 154
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            ldc "Cannot provide custom timestamp for counter BATCH"
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 157
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* hasCounters */
        start local 2 // boolean hasCounters
         9: .line 158
            iconst_0
            istore 3 /* hasNonCounters */
        start local 3 // boolean hasNonCounters
        10: .line 160
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.statements:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 23
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement int int int top java.util.Iterator
      StackMap stack:
        11: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.statements.ModificationStatement
            astore 4 /* statement */
        start local 4 // org.apache.cassandra.cql3.statements.ModificationStatement statement
        12: .line 162
            iload 1 /* timestampSet */
            ifeq 14
            aload 4 /* statement */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.isCounter:()Z
            ifeq 14
        13: .line 163
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            ldc "Cannot provide custom timestamp for a BATCH containing counters"
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 165
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement int int int org.apache.cassandra.cql3.statements.ModificationStatement java.util.Iterator
      StackMap stack:
            iload 1 /* timestampSet */
            ifeq 16
            aload 4 /* statement */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.isTimestampSet:()Z
            ifeq 16
        15: .line 166
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            ldc "Timestamp must be set either on BATCH or individual statements"
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 168
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.statements.BatchStatement.isCounter:()Z
            ifeq 18
            aload 4 /* statement */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.isCounter:()Z
            ifne 18
        17: .line 169
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            ldc "Cannot include non-counter statement in a counter batch"
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 171
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.statements.BatchStatement.isLogged:()Z
            ifeq 20
            aload 4 /* statement */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.isCounter:()Z
            ifeq 20
        19: .line 172
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            ldc "Cannot include a counter statement in a logged batch"
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 174
      StackMap locals:
      StackMap stack:
            aload 4 /* statement */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.isCounter:()Z
            ifeq 22
        21: .line 175
            iconst_1
            istore 2 /* hasCounters */
            goto 23
        22: .line 177
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 3 /* hasNonCounters */
        end local 4 // org.apache.cassandra.cql3.statements.ModificationStatement statement
        23: .line 160
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement int int int top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        24: .line 180
            iload 2 /* hasCounters */
            ifeq 26
            iload 3 /* hasNonCounters */
            ifeq 26
        25: .line 181
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            ldc "Counter and non-counter mutations cannot exist in the same batch"
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
        26: .line 183
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement int int int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.hasConditions:Z
            ifeq 36
        27: .line 185
            aconst_null
            astore 4 /* ksName */
        start local 4 // java.lang.String ksName
        28: .line 186
            aconst_null
            astore 5 /* cfName */
        start local 5 // java.lang.String cfName
        29: .line 187
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.statements:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 35
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement int int int java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
        30: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.statements.ModificationStatement
            astore 6 /* stmt */
        start local 6 // org.apache.cassandra.cql3.statements.ModificationStatement stmt
        31: .line 189
            aload 4 /* ksName */
            ifnull 33
            aload 6 /* stmt */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.keyspace:()Ljava/lang/String;
            aload 4 /* ksName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 32
            aload 6 /* stmt */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.columnFamily:()Ljava/lang/String;
            aload 5 /* cfName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 33
        32: .line 190
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement int int int java.lang.String java.lang.String org.apache.cassandra.cql3.statements.ModificationStatement java.util.Iterator
      StackMap stack:
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            ldc "Batch with conditions cannot span multiple tables"
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
        33: .line 191
      StackMap locals:
      StackMap stack:
            aload 6 /* stmt */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.keyspace:()Ljava/lang/String;
            astore 4 /* ksName */
        34: .line 192
            aload 6 /* stmt */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.columnFamily:()Ljava/lang/String;
            astore 5 /* cfName */
        end local 6 // org.apache.cassandra.cql3.statements.ModificationStatement stmt
        35: .line 187
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement int int int java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 30
        end local 5 // java.lang.String cfName
        end local 4 // java.lang.String ksName
        36: .line 195
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement int int int
      StackMap stack:
            return
        end local 3 // boolean hasNonCounters
        end local 2 // boolean hasCounters
        end local 1 // boolean timestampSet
        end local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   37     0            this  Lorg/apache/cassandra/cql3/statements/BatchStatement;
            3   37     1    timestampSet  Z
            9   37     2     hasCounters  Z
           10   37     3  hasNonCounters  Z
           12   23     4       statement  Lorg/apache/cassandra/cql3/statements/ModificationStatement;
           28   36     4          ksName  Ljava/lang/String;
           29   36     5          cfName  Ljava/lang/String;
           31   35     6            stmt  Lorg/apache/cassandra/cql3/statements/ModificationStatement;
    Exceptions:
      throws org.apache.cassandra.exceptions.InvalidRequestException

  private boolean isCounter();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
         0: .line 199
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.type:Lorg/apache/cassandra/cql3/statements/BatchStatement$Type;
            getstatic org.apache.cassandra.cql3.statements.BatchStatement$Type.COUNTER:Lorg/apache/cassandra/cql3/statements/BatchStatement$Type;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/cql3/statements/BatchStatement;

  private boolean isLogged();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
         0: .line 204
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.type:Lorg/apache/cassandra/cql3/statements/BatchStatement$Type;
            getstatic org.apache.cassandra.cql3.statements.BatchStatement$Type.LOGGED:Lorg/apache/cassandra/cql3/statements/BatchStatement$Type;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/cql3/statements/BatchStatement;

  public void validate(org.apache.cassandra.service.ClientState);
    descriptor: (Lorg/apache/cassandra/service/ClientState;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
        start local 1 // org.apache.cassandra.service.ClientState state
         0: .line 211
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.statements:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 3
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement org.apache.cassandra.service.ClientState top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.statements.ModificationStatement
            astore 2 /* statement */
        start local 2 // org.apache.cassandra.cql3.statements.ModificationStatement statement
         2: .line 212
            aload 2 /* statement */
            aload 1 /* state */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.validate:(Lorg/apache/cassandra/service/ClientState;)V
        end local 2 // org.apache.cassandra.cql3.statements.ModificationStatement statement
         3: .line 211
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 213
            return
        end local 1 // org.apache.cassandra.service.ClientState state
        end local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/apache/cassandra/cql3/statements/BatchStatement;
            0    5     1      state  Lorg/apache/cassandra/service/ClientState;
            2    3     2  statement  Lorg/apache/cassandra/cql3/statements/ModificationStatement;
    Exceptions:
      throws org.apache.cassandra.exceptions.InvalidRequestException
    MethodParameters:
       Name  Flags
      state  

  public java.util.List<org.apache.cassandra.cql3.statements.ModificationStatement> getStatements();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
         0: .line 217
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.statements:Ljava/util/List;
            areturn
        end local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cql3/statements/BatchStatement;
    Signature: ()Ljava/util/List<Lorg/apache/cassandra/cql3/statements/ModificationStatement;>;

  private java.util.Collection<? extends org.apache.cassandra.db.IMutation> getMutations(org.apache.cassandra.cql3.BatchQueryOptions, boolean, long, long);
    descriptor: (Lorg/apache/cassandra/cql3/BatchQueryOptions;ZJJ)Ljava/util/Collection;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=14, args_size=5
        start local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
        start local 1 // org.apache.cassandra.cql3.BatchQueryOptions options
        start local 2 // boolean local
        start local 3 // long now
        start local 5 // long queryStartNanoTime
         0: .line 223
            aconst_null
            astore 7 /* tablesWithZeroGcGs */
        start local 7 // java.util.Set tablesWithZeroGcGs
         1: .line 224
            new org.apache.cassandra.cql3.statements.UpdatesCollector
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.updatedColumns:Ljava/util/Map;
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.statements.BatchStatement.updatedRows:()I
            invokespecial org.apache.cassandra.cql3.statements.UpdatesCollector.<init>:(Ljava/util/Map;I)V
            astore 8 /* collector */
        start local 8 // org.apache.cassandra.cql3.statements.UpdatesCollector collector
         2: .line 225
            iconst_0
            istore 9 /* i */
        start local 9 // int i
         3: goto 13
         4: .line 227
      StackMap locals: java.util.Set org.apache.cassandra.cql3.statements.UpdatesCollector int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.statements:Ljava/util/List;
            iload 9 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.statements.ModificationStatement
            astore 10 /* statement */
        start local 10 // org.apache.cassandra.cql3.statements.ModificationStatement statement
         5: .line 228
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.statements.BatchStatement.isLogged:()Z
            ifeq 9
            aload 10 /* statement */
            getfield org.apache.cassandra.cql3.statements.ModificationStatement.cfm:Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.params:Lorg/apache/cassandra/schema/TableParams;
            getfield org.apache.cassandra.schema.TableParams.gcGraceSeconds:I
            ifne 9
         6: .line 230
            aload 7 /* tablesWithZeroGcGs */
            ifnonnull 8
         7: .line 231
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 7 /* tablesWithZeroGcGs */
         8: .line 232
      StackMap locals: org.apache.cassandra.cql3.statements.ModificationStatement
      StackMap stack:
            aload 7 /* tablesWithZeroGcGs */
            ldc "%s.%s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 10 /* statement */
            getfield org.apache.cassandra.cql3.statements.ModificationStatement.cfm:Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.ksName:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 10 /* statement */
            getfield org.apache.cassandra.cql3.statements.ModificationStatement.cfm:Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.cfName:Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         9: .line 234
      StackMap locals:
      StackMap stack:
            aload 1 /* options */
            iload 9 /* i */
            invokevirtual org.apache.cassandra.cql3.BatchQueryOptions.forStatement:(I)Lorg/apache/cassandra/cql3/QueryOptions;
            astore 11 /* statementOptions */
        start local 11 // org.apache.cassandra.cql3.QueryOptions statementOptions
        10: .line 235
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.attrs:Lorg/apache/cassandra/cql3/Attributes;
            lload 3 /* now */
            aload 11 /* statementOptions */
            invokevirtual org.apache.cassandra.cql3.Attributes.getTimestamp:(JLorg/apache/cassandra/cql3/QueryOptions;)J
            lstore 12 /* timestamp */
        start local 12 // long timestamp
        11: .line 236
            aload 10 /* statement */
            aload 8 /* collector */
            aload 11 /* statementOptions */
            iload 2 /* local */
            lload 12 /* timestamp */
            lload 5 /* queryStartNanoTime */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.addUpdates:(Lorg/apache/cassandra/cql3/statements/UpdatesCollector;Lorg/apache/cassandra/cql3/QueryOptions;ZJJ)V
        end local 12 // long timestamp
        end local 11 // org.apache.cassandra.cql3.QueryOptions statementOptions
        end local 10 // org.apache.cassandra.cql3.statements.ModificationStatement statement
        12: .line 225
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 9 /* i */
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.statements:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 4
        end local 9 // int i
        14: .line 239
            aload 7 /* tablesWithZeroGcGs */
            ifnull 24
        15: .line 241
            aload 7 /* tablesWithZeroGcGs */
            invokeinterface java.util.Set.size:()I
            iconst_1
            if_icmpne 16
            ldc ""
            goto 17
      StackMap locals:
      StackMap stack:
        16: ldc "s"
      StackMap locals:
      StackMap stack: java.lang.String
        17: astore 9 /* suffix */
        start local 9 // java.lang.String suffix
        18: .line 242
            getstatic org.apache.cassandra.cql3.statements.BatchStatement.logger:Lorg/slf4j/Logger;
            getstatic org.apache.cassandra.utils.NoSpamLogger$Level.WARN:Lorg/apache/cassandra/utils/NoSpamLogger$Level;
            lconst_1
            getstatic java.util.concurrent.TimeUnit.MINUTES:Ljava/util/concurrent/TimeUnit;
            ldc "Executing a LOGGED BATCH on table{} {}, configured with a gc_grace_seconds of 0. The gc_grace_seconds is used to TTL batchlog entries, so setting gc_grace_seconds too low on tables involved in an atomic batch might cause batchlog entries to expire before being replayed."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        19: .line 243
            aload 9 /* suffix */
            aastore
            dup
            iconst_1
            aload 7 /* tablesWithZeroGcGs */
            aastore
        20: .line 242
            invokestatic org.apache.cassandra.utils.NoSpamLogger.log:(Lorg/slf4j/Logger;Lorg/apache/cassandra/utils/NoSpamLogger$Level;JLjava/util/concurrent/TimeUnit;Ljava/lang/String;[Ljava/lang/Object;)Z
            pop
        21: .line 244
            getstatic org.apache.cassandra.service.ClientWarn.instance:Lorg/apache/cassandra/service/ClientWarn;
            ldc "Executing a LOGGED BATCH on table{} {}, configured with a gc_grace_seconds of 0. The gc_grace_seconds is used to TTL batchlog entries, so setting gc_grace_seconds too low on tables involved in an atomic batch might cause batchlog entries to expire before being replayed."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 9 /* suffix */
            aastore
            dup
            iconst_1
            aload 7 /* tablesWithZeroGcGs */
            aastore
            invokestatic org.slf4j.helpers.MessageFormatter.arrayFormat:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/slf4j/helpers/FormattingTuple;
        22: .line 245
            invokevirtual org.slf4j.helpers.FormattingTuple.getMessage:()Ljava/lang/String;
        23: .line 244
            invokevirtual org.apache.cassandra.service.ClientWarn.warn:(Ljava/lang/String;)V
        end local 9 // java.lang.String suffix
        24: .line 248
      StackMap locals:
      StackMap stack:
            aload 8 /* collector */
            invokevirtual org.apache.cassandra.cql3.statements.UpdatesCollector.validateIndexedColumns:()V
        25: .line 249
            aload 8 /* collector */
            invokevirtual org.apache.cassandra.cql3.statements.UpdatesCollector.toMutations:()Ljava/util/Collection;
            areturn
        end local 8 // org.apache.cassandra.cql3.statements.UpdatesCollector collector
        end local 7 // java.util.Set tablesWithZeroGcGs
        end local 5 // long queryStartNanoTime
        end local 3 // long now
        end local 2 // boolean local
        end local 1 // org.apache.cassandra.cql3.BatchQueryOptions options
        end local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   26     0                this  Lorg/apache/cassandra/cql3/statements/BatchStatement;
            0   26     1             options  Lorg/apache/cassandra/cql3/BatchQueryOptions;
            0   26     2               local  Z
            0   26     3                 now  J
            0   26     5  queryStartNanoTime  J
            1   26     7  tablesWithZeroGcGs  Ljava/util/Set<Ljava/lang/String;>;
            2   26     8           collector  Lorg/apache/cassandra/cql3/statements/UpdatesCollector;
            3   14     9                   i  I
            5   12    10           statement  Lorg/apache/cassandra/cql3/statements/ModificationStatement;
           10   12    11    statementOptions  Lorg/apache/cassandra/cql3/QueryOptions;
           11   12    12           timestamp  J
           18   24     9              suffix  Ljava/lang/String;
    Exceptions:
      throws org.apache.cassandra.exceptions.RequestExecutionException, org.apache.cassandra.exceptions.RequestValidationException
    Signature: (Lorg/apache/cassandra/cql3/BatchQueryOptions;ZJJ)Ljava/util/Collection<+Lorg/apache/cassandra/db/IMutation;>;
    MethodParameters:
                    Name  Flags
      options             
      local               
      now                 
      queryStartNanoTime  

  private int updatedRows();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
         0: .line 256
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.statements:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ireturn
        end local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cql3/statements/BatchStatement;

  private static void verifyBatchSize(java.util.Collection<? extends org.apache.cassandra.db.IMutation>);
    descriptor: (Ljava/util/Collection;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=9, locals=10, args_size=1
        start local 0 // java.util.Collection mutations
         0: .line 267
            aload 0 /* mutations */
            invokeinterface java.util.Collection.size:()I
            iconst_1
            if_icmpgt 2
         1: .line 268
            return
         2: .line 270
      StackMap locals:
      StackMap stack:
            lconst_0
            lstore 1 /* size */
        start local 1 // long size
         3: .line 271
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getBatchSizeWarnThreshold:()I
            i2l
            lstore 3 /* warnThreshold */
        start local 3 // long warnThreshold
         4: .line 273
            aload 0 /* mutations */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 6
            goto 10
      StackMap locals: java.util.Collection long long top java.util.Iterator
      StackMap stack:
         5: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.IMutation
            astore 5 /* mutation */
        start local 5 // org.apache.cassandra.db.IMutation mutation
         6: .line 275
            aload 5 /* mutation */
            invokeinterface org.apache.cassandra.db.IMutation.getPartitionUpdates:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 8
            goto 9
      StackMap locals: java.util.Collection long long org.apache.cassandra.db.IMutation java.util.Iterator top java.util.Iterator
      StackMap stack:
         7: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.partitions.PartitionUpdate
            astore 7 /* update */
        start local 7 // org.apache.cassandra.db.partitions.PartitionUpdate update
         8: .line 276
            lload 1 /* size */
            aload 7 /* update */
            invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.dataSize:()I
            i2l
            ladd
            lstore 1 /* size */
        end local 7 // org.apache.cassandra.db.partitions.PartitionUpdate update
         9: .line 275
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        end local 5 // org.apache.cassandra.db.IMutation mutation
        10: .line 273
      StackMap locals: java.util.Collection long long top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        11: .line 279
            lload 1 /* size */
            lload 3 /* warnThreshold */
            lcmp
            ifle 35
        12: .line 281
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 5 /* tableNames */
        start local 5 // java.util.Set tableNames
        13: .line 282
            aload 0 /* mutations */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 7
            goto 19
      StackMap locals: java.util.Collection long long java.util.Set top java.util.Iterator
      StackMap stack:
        14: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.IMutation
            astore 6 /* mutation */
        start local 6 // org.apache.cassandra.db.IMutation mutation
        15: .line 284
            aload 6 /* mutation */
            invokeinterface org.apache.cassandra.db.IMutation.getPartitionUpdates:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 9
            goto 18
      StackMap locals: java.util.Collection long long java.util.Set org.apache.cassandra.db.IMutation java.util.Iterator top java.util.Iterator
      StackMap stack:
        16: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.partitions.PartitionUpdate
            astore 8 /* update */
        start local 8 // org.apache.cassandra.db.partitions.PartitionUpdate update
        17: .line 285
            aload 5 /* tableNames */
            ldc "%s.%s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 8 /* update */
            invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.metadata:()Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.ksName:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 8 /* update */
            invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.metadata:()Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.cfName:Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // org.apache.cassandra.db.partitions.PartitionUpdate update
        18: .line 284
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        end local 6 // org.apache.cassandra.db.IMutation mutation
        19: .line 282
      StackMap locals: java.util.Collection long long java.util.Set top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        20: .line 288
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getBatchSizeFailThreshold:()J
            lstore 6 /* failThreshold */
        start local 6 // long failThreshold
        21: .line 290
            ldc "Batch for {} is of size {}, exceeding specified threshold of {} by {}.{}"
            astore 8 /* format */
        start local 8 // java.lang.String format
        22: .line 291
            lload 1 /* size */
            lload 6 /* failThreshold */
            lcmp
            ifle 30
        23: .line 293
            aload 8 /* format */
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* tableNames */
            aastore
            dup
            iconst_1
            lload 1 /* size */
            invokestatic org.apache.cassandra.utils.FBUtilities.prettyPrintMemory:(J)Ljava/lang/String;
            aastore
            dup
            iconst_2
            lload 6 /* failThreshold */
            invokestatic org.apache.cassandra.utils.FBUtilities.prettyPrintMemory:(J)Ljava/lang/String;
            aastore
            dup
            iconst_3
        24: .line 294
            lload 1 /* size */
            lload 6 /* failThreshold */
            lsub
            invokestatic org.apache.cassandra.utils.FBUtilities.prettyPrintMemory:(J)Ljava/lang/String;
            aastore
            dup
            iconst_4
            ldc " (see batch_size_fail_threshold_in_kb)"
            aastore
        25: .line 293
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        26: .line 295
            getstatic org.apache.cassandra.cql3.statements.BatchStatement.logger:Lorg/slf4j/Logger;
            aload 8 /* format */
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* tableNames */
            aastore
            dup
            iconst_1
            lload 1 /* size */
            invokestatic org.apache.cassandra.utils.FBUtilities.prettyPrintMemory:(J)Ljava/lang/String;
            aastore
            dup
            iconst_2
            lload 6 /* failThreshold */
            invokestatic org.apache.cassandra.utils.FBUtilities.prettyPrintMemory:(J)Ljava/lang/String;
            aastore
            dup
            iconst_3
        27: .line 296
            lload 1 /* size */
            lload 6 /* failThreshold */
            lsub
            invokestatic org.apache.cassandra.utils.FBUtilities.prettyPrintMemory:(J)Ljava/lang/String;
            aastore
            dup
            iconst_4
            ldc " (see batch_size_fail_threshold_in_kb)"
            aastore
        28: .line 295
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;[Ljava/lang/Object;)V
        29: .line 297
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            ldc "Batch too large"
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
        30: .line 299
      StackMap locals: java.util.Collection long long java.util.Set long java.lang.String
      StackMap stack:
            getstatic org.apache.cassandra.cql3.statements.BatchStatement.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isWarnEnabled:()Z
            ifeq 34
        31: .line 301
            getstatic org.apache.cassandra.cql3.statements.BatchStatement.logger:Lorg/slf4j/Logger;
            aload 8 /* format */
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* tableNames */
            aastore
            dup
            iconst_1
            lload 1 /* size */
            invokestatic org.apache.cassandra.utils.FBUtilities.prettyPrintMemory:(J)Ljava/lang/String;
            aastore
            dup
            iconst_2
            lload 3 /* warnThreshold */
            invokestatic org.apache.cassandra.utils.FBUtilities.prettyPrintMemory:(J)Ljava/lang/String;
            aastore
            dup
            iconst_3
        32: .line 302
            lload 1 /* size */
            lload 3 /* warnThreshold */
            lsub
            invokestatic org.apache.cassandra.utils.FBUtilities.prettyPrintMemory:(J)Ljava/lang/String;
            aastore
            dup
            iconst_4
            ldc ""
            aastore
        33: .line 301
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;[Ljava/lang/Object;)V
        34: .line 304
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.ClientWarn.instance:Lorg/apache/cassandra/service/ClientWarn;
            aload 8 /* format */
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* tableNames */
            aastore
            dup
            iconst_1
            lload 1 /* size */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            lload 3 /* warnThreshold */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_3
            lload 1 /* size */
            lload 3 /* warnThreshold */
            lsub
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_4
            ldc ""
            aastore
            invokestatic org.slf4j.helpers.MessageFormatter.arrayFormat:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/slf4j/helpers/FormattingTuple;
            invokevirtual org.slf4j.helpers.FormattingTuple.getMessage:()Ljava/lang/String;
            invokevirtual org.apache.cassandra.service.ClientWarn.warn:(Ljava/lang/String;)V
        end local 8 // java.lang.String format
        end local 6 // long failThreshold
        end local 5 // java.util.Set tableNames
        35: .line 306
      StackMap locals:
      StackMap stack:
            return
        end local 3 // long warnThreshold
        end local 1 // long size
        end local 0 // java.util.Collection mutations
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   36     0      mutations  Ljava/util/Collection<+Lorg/apache/cassandra/db/IMutation;>;
            3   36     1           size  J
            4   36     3  warnThreshold  J
            6   10     5       mutation  Lorg/apache/cassandra/db/IMutation;
            8    9     7         update  Lorg/apache/cassandra/db/partitions/PartitionUpdate;
           13   35     5     tableNames  Ljava/util/Set<Ljava/lang/String;>;
           15   19     6       mutation  Lorg/apache/cassandra/db/IMutation;
           17   18     8         update  Lorg/apache/cassandra/db/partitions/PartitionUpdate;
           21   35     6  failThreshold  J
           22   35     8         format  Ljava/lang/String;
    Exceptions:
      throws org.apache.cassandra.exceptions.InvalidRequestException
    Signature: (Ljava/util/Collection<+Lorg/apache/cassandra/db/IMutation;>;)V
    MethodParameters:
           Name  Flags
      mutations  

  private void verifyBatchType(java.util.Collection<? extends org.apache.cassandra.db.IMutation>);
    descriptor: (Ljava/util/Collection;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=11, locals=8, args_size=2
        start local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
        start local 1 // java.util.Collection mutations
         0: .line 310
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.statements.BatchStatement.isLogged:()Z
            ifne 24
            aload 1 /* mutations */
            invokeinterface java.util.Collection.size:()I
            iconst_1
            if_icmple 24
         1: .line 312
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 2 /* keySet */
        start local 2 // java.util.Set keySet
         2: .line 313
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* tableNames */
        start local 3 // java.util.Set tableNames
         3: .line 315
            aload 1 /* mutations */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 10
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement java.util.Collection java.util.Set java.util.Set top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.IMutation
            astore 4 /* mutation */
        start local 4 // org.apache.cassandra.db.IMutation mutation
         5: .line 317
            aload 4 /* mutation */
            invokeinterface org.apache.cassandra.db.IMutation.getPartitionUpdates:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 7
            goto 9
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement java.util.Collection java.util.Set java.util.Set org.apache.cassandra.db.IMutation java.util.Iterator top java.util.Iterator
      StackMap stack:
         6: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.partitions.PartitionUpdate
            astore 6 /* update */
        start local 6 // org.apache.cassandra.db.partitions.PartitionUpdate update
         7: .line 319
            aload 2 /* keySet */
            aload 6 /* update */
            invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.partitionKey:()Lorg/apache/cassandra/db/DecoratedKey;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         8: .line 321
            aload 3 /* tableNames */
            ldc "%s.%s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 6 /* update */
            invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.metadata:()Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.ksName:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 6 /* update */
            invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.metadata:()Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.cfName:Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // org.apache.cassandra.db.partitions.PartitionUpdate update
         9: .line 317
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        end local 4 // org.apache.cassandra.db.IMutation mutation
        10: .line 315
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement java.util.Collection java.util.Set java.util.Set top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        11: .line 327
            aload 2 /* keySet */
            invokeinterface java.util.Set.size:()I
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getUnloggedBatchAcrossPartitionsWarnThreshold:()I
            if_icmple 24
        12: .line 329
            getstatic org.apache.cassandra.cql3.statements.BatchStatement.logger:Lorg/slf4j/Logger;
            getstatic org.apache.cassandra.utils.NoSpamLogger$Level.WARN:Lorg/apache/cassandra/utils/NoSpamLogger$Level;
            lconst_1
            getstatic java.util.concurrent.TimeUnit.MINUTES:Ljava/util/concurrent/TimeUnit;
            ldc "Unlogged batch covering {} partitions detected against table{} {}. You should use a logged batch for atomicity, or asynchronous writes for performance."
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        13: .line 330
            aload 2 /* keySet */
            invokeinterface java.util.Set.size:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 3 /* tableNames */
            invokeinterface java.util.Set.size:()I
            iconst_1
            if_icmpne 14
            ldc ""
            goto 15
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement java.util.Collection java.util.Set java.util.Set
      StackMap stack: org.slf4j.Logger org.apache.cassandra.utils.NoSpamLogger$Level long java.util.concurrent.TimeUnit java.lang.String java.lang.Object[] java.lang.Object[] int
        14: ldc "s"
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement java.util.Collection java.util.Set java.util.Set
      StackMap stack: org.slf4j.Logger org.apache.cassandra.utils.NoSpamLogger$Level long java.util.concurrent.TimeUnit java.lang.String java.lang.Object[] java.lang.Object[] int java.lang.String
        15: aastore
            dup
            iconst_2
            aload 3 /* tableNames */
            aastore
        16: .line 329
            invokestatic org.apache.cassandra.utils.NoSpamLogger.log:(Lorg/slf4j/Logger;Lorg/apache/cassandra/utils/NoSpamLogger$Level;JLjava/util/concurrent/TimeUnit;Ljava/lang/String;[Ljava/lang/Object;)Z
            pop
        17: .line 332
            getstatic org.apache.cassandra.service.ClientWarn.instance:Lorg/apache/cassandra/service/ClientWarn;
            ldc "Unlogged batch covering {} partitions detected against table{} {}. You should use a logged batch for atomicity, or asynchronous writes for performance."
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* keySet */
            invokeinterface java.util.Set.size:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
        18: .line 333
            aload 3 /* tableNames */
            invokeinterface java.util.Set.size:()I
            iconst_1
            if_icmpne 19
            ldc ""
            goto 20
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement java.util.Collection java.util.Set java.util.Set
      StackMap stack: org.apache.cassandra.service.ClientWarn java.lang.String java.lang.Object[] java.lang.Object[] int
        19: ldc "s"
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement java.util.Collection java.util.Set java.util.Set
      StackMap stack: org.apache.cassandra.service.ClientWarn java.lang.String java.lang.Object[] java.lang.Object[] int java.lang.String
        20: aastore
            dup
            iconst_2
            aload 3 /* tableNames */
            aastore
        21: .line 332
            invokestatic org.slf4j.helpers.MessageFormatter.arrayFormat:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/slf4j/helpers/FormattingTuple;
        22: .line 333
            invokevirtual org.slf4j.helpers.FormattingTuple.getMessage:()Ljava/lang/String;
        23: .line 332
            invokevirtual org.apache.cassandra.service.ClientWarn.warn:(Ljava/lang/String;)V
        end local 3 // java.util.Set tableNames
        end local 2 // java.util.Set keySet
        24: .line 336
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.Collection mutations
        end local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   25     0        this  Lorg/apache/cassandra/cql3/statements/BatchStatement;
            0   25     1   mutations  Ljava/util/Collection<+Lorg/apache/cassandra/db/IMutation;>;
            2   24     2      keySet  Ljava/util/Set<Lorg/apache/cassandra/db/DecoratedKey;>;
            3   24     3  tableNames  Ljava/util/Set<Ljava/lang/String;>;
            5   10     4    mutation  Lorg/apache/cassandra/db/IMutation;
            7    9     6      update  Lorg/apache/cassandra/db/partitions/PartitionUpdate;
    Signature: (Ljava/util/Collection<+Lorg/apache/cassandra/db/IMutation;>;)V
    MethodParameters:
           Name  Flags
      mutations  

  public org.apache.cassandra.transport.messages.ResultMessage execute(org.apache.cassandra.service.QueryState, org.apache.cassandra.cql3.QueryOptions, long);
    descriptor: (Lorg/apache/cassandra/service/QueryState;Lorg/apache/cassandra/cql3/QueryOptions;J)Lorg/apache/cassandra/transport/messages/ResultMessage;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
        start local 1 // org.apache.cassandra.service.QueryState queryState
        start local 2 // org.apache.cassandra.cql3.QueryOptions options
        start local 3 // long queryStartNanoTime
         0: .line 341
            aload 0 /* this */
            aload 1 /* queryState */
            aload 2 /* options */
            invokestatic org.apache.cassandra.cql3.BatchQueryOptions.withoutPerStatementVariables:(Lorg/apache/cassandra/cql3/QueryOptions;)Lorg/apache/cassandra/cql3/BatchQueryOptions;
            lload 3 /* queryStartNanoTime */
            invokevirtual org.apache.cassandra.cql3.statements.BatchStatement.execute:(Lorg/apache/cassandra/service/QueryState;Lorg/apache/cassandra/cql3/BatchQueryOptions;J)Lorg/apache/cassandra/transport/messages/ResultMessage;
            areturn
        end local 3 // long queryStartNanoTime
        end local 2 // org.apache.cassandra.cql3.QueryOptions options
        end local 1 // org.apache.cassandra.service.QueryState queryState
        end local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0                this  Lorg/apache/cassandra/cql3/statements/BatchStatement;
            0    1     1          queryState  Lorg/apache/cassandra/service/QueryState;
            0    1     2             options  Lorg/apache/cassandra/cql3/QueryOptions;
            0    1     3  queryStartNanoTime  J
    Exceptions:
      throws org.apache.cassandra.exceptions.RequestExecutionException, org.apache.cassandra.exceptions.RequestValidationException
    MethodParameters:
                    Name  Flags
      queryState          
      options             
      queryStartNanoTime  

  public org.apache.cassandra.transport.messages.ResultMessage execute(org.apache.cassandra.service.QueryState, org.apache.cassandra.cql3.BatchQueryOptions, long);
    descriptor: (Lorg/apache/cassandra/service/QueryState;Lorg/apache/cassandra/cql3/BatchQueryOptions;J)Lorg/apache/cassandra/transport/messages/ResultMessage;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=5, args_size=4
        start local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
        start local 1 // org.apache.cassandra.service.QueryState queryState
        start local 2 // org.apache.cassandra.cql3.BatchQueryOptions options
        start local 3 // long queryStartNanoTime
         0: .line 346
            aload 0 /* this */
            aload 1 /* queryState */
            aload 2 /* options */
            iconst_0
            aload 2 /* options */
            aload 1 /* queryState */
            invokevirtual org.apache.cassandra.cql3.BatchQueryOptions.getTimestamp:(Lorg/apache/cassandra/service/QueryState;)J
            lload 3 /* queryStartNanoTime */
            invokevirtual org.apache.cassandra.cql3.statements.BatchStatement.execute:(Lorg/apache/cassandra/service/QueryState;Lorg/apache/cassandra/cql3/BatchQueryOptions;ZJJ)Lorg/apache/cassandra/transport/messages/ResultMessage;
            areturn
        end local 3 // long queryStartNanoTime
        end local 2 // org.apache.cassandra.cql3.BatchQueryOptions options
        end local 1 // org.apache.cassandra.service.QueryState queryState
        end local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0                this  Lorg/apache/cassandra/cql3/statements/BatchStatement;
            0    1     1          queryState  Lorg/apache/cassandra/service/QueryState;
            0    1     2             options  Lorg/apache/cassandra/cql3/BatchQueryOptions;
            0    1     3  queryStartNanoTime  J
    Exceptions:
      throws org.apache.cassandra.exceptions.RequestExecutionException, org.apache.cassandra.exceptions.RequestValidationException
    MethodParameters:
                    Name  Flags
      queryState          
      options             
      queryStartNanoTime  

  private org.apache.cassandra.transport.messages.ResultMessage execute(org.apache.cassandra.service.QueryState, org.apache.cassandra.cql3.BatchQueryOptions, boolean, long, long);
    descriptor: (Lorg/apache/cassandra/service/QueryState;Lorg/apache/cassandra/cql3/BatchQueryOptions;ZJJ)Lorg/apache/cassandra/transport/messages/ResultMessage;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=8, args_size=6
        start local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
        start local 1 // org.apache.cassandra.service.QueryState queryState
        start local 2 // org.apache.cassandra.cql3.BatchQueryOptions options
        start local 3 // boolean local
        start local 4 // long now
        start local 6 // long queryStartNanoTime
         0: .line 352
            aload 2 /* options */
            invokevirtual org.apache.cassandra.cql3.BatchQueryOptions.getConsistency:()Lorg/apache/cassandra/db/ConsistencyLevel;
            ifnonnull 2
         1: .line 353
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            ldc "Invalid empty consistency level"
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 354
      StackMap locals:
      StackMap stack:
            aload 2 /* options */
            invokevirtual org.apache.cassandra.cql3.BatchQueryOptions.getSerialConsistency:()Lorg/apache/cassandra/db/ConsistencyLevel;
            ifnonnull 4
         3: .line 355
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            ldc "Invalid empty serial consistency level"
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 357
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.hasConditions:Z
            ifeq 6
         5: .line 358
            aload 0 /* this */
            aload 2 /* options */
            aload 1 /* queryState */
            lload 6 /* queryStartNanoTime */
            invokevirtual org.apache.cassandra.cql3.statements.BatchStatement.executeWithConditions:(Lorg/apache/cassandra/cql3/BatchQueryOptions;Lorg/apache/cassandra/service/QueryState;J)Lorg/apache/cassandra/transport/messages/ResultMessage;
            areturn
         6: .line 360
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* options */
            iload 3 /* local */
            lload 4 /* now */
            lload 6 /* queryStartNanoTime */
            invokevirtual org.apache.cassandra.cql3.statements.BatchStatement.getMutations:(Lorg/apache/cassandra/cql3/BatchQueryOptions;ZJJ)Ljava/util/Collection;
            aload 2 /* options */
            invokevirtual org.apache.cassandra.cql3.BatchQueryOptions.getConsistency:()Lorg/apache/cassandra/db/ConsistencyLevel;
            lload 6 /* queryStartNanoTime */
            invokevirtual org.apache.cassandra.cql3.statements.BatchStatement.executeWithoutConditions:(Ljava/util/Collection;Lorg/apache/cassandra/db/ConsistencyLevel;J)V
         7: .line 361
            new org.apache.cassandra.transport.messages.ResultMessage$Void
            dup
            invokespecial org.apache.cassandra.transport.messages.ResultMessage$Void.<init>:()V
            areturn
        end local 6 // long queryStartNanoTime
        end local 4 // long now
        end local 3 // boolean local
        end local 2 // org.apache.cassandra.cql3.BatchQueryOptions options
        end local 1 // org.apache.cassandra.service.QueryState queryState
        end local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    8     0                this  Lorg/apache/cassandra/cql3/statements/BatchStatement;
            0    8     1          queryState  Lorg/apache/cassandra/service/QueryState;
            0    8     2             options  Lorg/apache/cassandra/cql3/BatchQueryOptions;
            0    8     3               local  Z
            0    8     4                 now  J
            0    8     6  queryStartNanoTime  J
    Exceptions:
      throws org.apache.cassandra.exceptions.RequestExecutionException, org.apache.cassandra.exceptions.RequestValidationException
    MethodParameters:
                    Name  Flags
      queryState          
      options             
      local               
      now                 
      queryStartNanoTime  

  private void executeWithoutConditions(java.util.Collection<? extends org.apache.cassandra.db.IMutation>, org.apache.cassandra.db.ConsistencyLevel, );
    descriptor: (Ljava/util/Collection;Lorg/apache/cassandra/db/ConsistencyLevel;J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
        start local 1 // java.util.Collection mutations
        start local 2 // org.apache.cassandra.db.ConsistencyLevel cl
        start local 3 // long queryStartNanoTime
         0: .line 366
            aload 1 /* mutations */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 2
         1: .line 367
            return
         2: .line 369
      StackMap locals:
      StackMap stack:
            aload 1 /* mutations */
            invokestatic org.apache.cassandra.cql3.statements.BatchStatement.verifyBatchSize:(Ljava/util/Collection;)V
         3: .line 370
            aload 0 /* this */
            aload 1 /* mutations */
            invokevirtual org.apache.cassandra.cql3.statements.BatchStatement.verifyBatchType:(Ljava/util/Collection;)V
         4: .line 372
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cql3.statements.BatchStatement.isLogged:()Z
            ifeq 5
            aload 1 /* mutations */
            invokeinterface java.util.Collection.size:()I
            iconst_1
            if_icmple 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 5 /* mutateAtomic */
        start local 5 // boolean mutateAtomic
         7: .line 373
            aload 1 /* mutations */
            aload 2 /* cl */
            iload 5 /* mutateAtomic */
            lload 3 /* queryStartNanoTime */
            invokestatic org.apache.cassandra.service.StorageProxy.mutateWithTriggers:(Ljava/util/Collection;Lorg/apache/cassandra/db/ConsistencyLevel;ZJ)V
         8: .line 374
            return
        end local 5 // boolean mutateAtomic
        end local 3 // long queryStartNanoTime
        end local 2 // org.apache.cassandra.db.ConsistencyLevel cl
        end local 1 // java.util.Collection mutations
        end local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    9     0                this  Lorg/apache/cassandra/cql3/statements/BatchStatement;
            0    9     1           mutations  Ljava/util/Collection<+Lorg/apache/cassandra/db/IMutation;>;
            0    9     2                  cl  Lorg/apache/cassandra/db/ConsistencyLevel;
            0    9     3  queryStartNanoTime  J
            7    9     5        mutateAtomic  Z
    Exceptions:
      throws org.apache.cassandra.exceptions.RequestExecutionException, org.apache.cassandra.exceptions.RequestValidationException
    Signature: (Ljava/util/Collection<+Lorg/apache/cassandra/db/IMutation;>;Lorg/apache/cassandra/db/ConsistencyLevel;J)V
    MethodParameters:
                    Name  Flags
      mutations           
      cl                  
      queryStartNanoTime  

  private org.apache.cassandra.transport.messages.ResultMessage executeWithConditions(org.apache.cassandra.cql3.BatchQueryOptions, org.apache.cassandra.service.QueryState, long);
    descriptor: (Lorg/apache/cassandra/cql3/BatchQueryOptions;Lorg/apache/cassandra/service/QueryState;J)Lorg/apache/cassandra/transport/messages/ResultMessage;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=13, args_size=4
        start local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
        start local 1 // org.apache.cassandra.cql3.BatchQueryOptions options
        start local 2 // org.apache.cassandra.service.QueryState state
        start local 3 // long queryStartNanoTime
         0: .line 379
            aload 0 /* this */
            aload 1 /* options */
            aload 2 /* state */
            invokevirtual org.apache.cassandra.cql3.statements.BatchStatement.makeCasRequest:(Lorg/apache/cassandra/cql3/BatchQueryOptions;Lorg/apache/cassandra/service/QueryState;)Lorg/apache/cassandra/utils/Pair;
            astore 5 /* p */
        start local 5 // org.apache.cassandra.utils.Pair p
         1: .line 380
            aload 5 /* p */
            getfield org.apache.cassandra.utils.Pair.left:Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.statements.CQL3CasRequest
            astore 6 /* casRequest */
        start local 6 // org.apache.cassandra.cql3.statements.CQL3CasRequest casRequest
         2: .line 381
            aload 5 /* p */
            getfield org.apache.cassandra.utils.Pair.right:Ljava/lang/Object;
            checkcast java.util.Set
            astore 7 /* columnsWithConditions */
        start local 7 // java.util.Set columnsWithConditions
         3: .line 383
            aload 6 /* casRequest */
            getfield org.apache.cassandra.cql3.statements.CQL3CasRequest.cfm:Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.ksName:Ljava/lang/String;
            astore 8 /* ksName */
        start local 8 // java.lang.String ksName
         4: .line 384
            aload 6 /* casRequest */
            getfield org.apache.cassandra.cql3.statements.CQL3CasRequest.cfm:Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.cfName:Ljava/lang/String;
            astore 9 /* tableName */
        start local 9 // java.lang.String tableName
         5: .line 386
            aconst_null
            astore 10
            aconst_null
            astore 11
         6: aload 8 /* ksName */
         7: .line 387
            aload 9 /* tableName */
         8: .line 388
            aload 6 /* casRequest */
            getfield org.apache.cassandra.cql3.statements.CQL3CasRequest.key:Lorg/apache/cassandra/db/DecoratedKey;
         9: .line 389
            aload 6 /* casRequest */
        10: .line 390
            aload 1 /* options */
            invokevirtual org.apache.cassandra.cql3.BatchQueryOptions.getSerialConsistency:()Lorg/apache/cassandra/db/ConsistencyLevel;
        11: .line 391
            aload 1 /* options */
            invokevirtual org.apache.cassandra.cql3.BatchQueryOptions.getConsistency:()Lorg/apache/cassandra/db/ConsistencyLevel;
        12: .line 392
            aload 2 /* state */
            invokevirtual org.apache.cassandra.service.QueryState.getClientState:()Lorg/apache/cassandra/service/ClientState;
        13: .line 393
            lload 3 /* queryStartNanoTime */
        14: .line 386
            invokestatic org.apache.cassandra.service.StorageProxy.cas:(Ljava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/service/CASRequest;Lorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/service/ClientState;J)Lorg/apache/cassandra/db/rows/RowIterator;
            astore 12 /* result */
        start local 12 // org.apache.cassandra.db.rows.RowIterator result
        15: .line 395
            new org.apache.cassandra.transport.messages.ResultMessage$Rows
            dup
            aload 8 /* ksName */
            aload 9 /* tableName */
            aload 12 /* result */
            aload 7 /* columnsWithConditions */
            iconst_1
            aload 1 /* options */
            iconst_0
            invokevirtual org.apache.cassandra.cql3.BatchQueryOptions.forStatement:(I)Lorg/apache/cassandra/cql3/QueryOptions;
            invokestatic org.apache.cassandra.cql3.statements.ModificationStatement.buildCasResultSet:(Ljava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/db/rows/RowIterator;Ljava/lang/Iterable;ZLorg/apache/cassandra/cql3/QueryOptions;)Lorg/apache/cassandra/cql3/ResultSet;
            invokespecial org.apache.cassandra.transport.messages.ResultMessage$Rows.<init>:(Lorg/apache/cassandra/cql3/ResultSet;)V
        16: .line 396
            aload 12 /* result */
            ifnull 17
            aload 12 /* result */
            invokeinterface org.apache.cassandra.db.rows.RowIterator.close:()V
        17: .line 395
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement org.apache.cassandra.cql3.BatchQueryOptions org.apache.cassandra.service.QueryState long org.apache.cassandra.utils.Pair org.apache.cassandra.cql3.statements.CQL3CasRequest java.util.Set java.lang.String java.lang.String java.lang.Throwable java.lang.Throwable org.apache.cassandra.db.rows.RowIterator
      StackMap stack: org.apache.cassandra.transport.messages.ResultMessage$Rows
            areturn
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: astore 10
        19: .line 396
            aload 12 /* result */
            ifnull 20
            aload 12 /* result */
            invokeinterface org.apache.cassandra.db.rows.RowIterator.close:()V
        end local 12 // org.apache.cassandra.db.rows.RowIterator result
      StackMap locals:
      StackMap stack:
        20: aload 10
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        21: astore 11
            aload 10
            ifnonnull 22
            aload 11
            astore 10
            goto 23
      StackMap locals:
      StackMap stack:
        22: aload 10
            aload 11
            if_acmpeq 23
            aload 10
            aload 11
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        23: aload 10
            athrow
        end local 9 // java.lang.String tableName
        end local 8 // java.lang.String ksName
        end local 7 // java.util.Set columnsWithConditions
        end local 6 // org.apache.cassandra.cql3.statements.CQL3CasRequest casRequest
        end local 5 // org.apache.cassandra.utils.Pair p
        end local 3 // long queryStartNanoTime
        end local 2 // org.apache.cassandra.service.QueryState state
        end local 1 // org.apache.cassandra.cql3.BatchQueryOptions options
        end local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   24     0                   this  Lorg/apache/cassandra/cql3/statements/BatchStatement;
            0   24     1                options  Lorg/apache/cassandra/cql3/BatchQueryOptions;
            0   24     2                  state  Lorg/apache/cassandra/service/QueryState;
            0   24     3     queryStartNanoTime  J
            1   24     5                      p  Lorg/apache/cassandra/utils/Pair<Lorg/apache/cassandra/cql3/statements/CQL3CasRequest;Ljava/util/Set<Lorg/apache/cassandra/config/ColumnDefinition;>;>;
            2   24     6             casRequest  Lorg/apache/cassandra/cql3/statements/CQL3CasRequest;
            3   24     7  columnsWithConditions  Ljava/util/Set<Lorg/apache/cassandra/config/ColumnDefinition;>;
            4   24     8                 ksName  Ljava/lang/String;
            5   24     9              tableName  Ljava/lang/String;
           15   20    12                 result  Lorg/apache/cassandra/db/rows/RowIterator;
      Exception table:
        from    to  target  type
          15    16      18  any
           6    17      21  any
          18    21      21  any
    Exceptions:
      throws org.apache.cassandra.exceptions.RequestExecutionException, org.apache.cassandra.exceptions.RequestValidationException
    MethodParameters:
                    Name  Flags
      options             
      state               
      queryStartNanoTime  

  private org.apache.cassandra.utils.Pair<org.apache.cassandra.cql3.statements.CQL3CasRequest, java.util.Set<org.apache.cassandra.config.ColumnDefinition>> makeCasRequest(org.apache.cassandra.cql3.BatchQueryOptions, org.apache.cassandra.service.QueryState);
    descriptor: (Lorg/apache/cassandra/cql3/BatchQueryOptions;Lorg/apache/cassandra/service/QueryState;)Lorg/apache/cassandra/utils/Pair;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=17, args_size=3
        start local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
        start local 1 // org.apache.cassandra.cql3.BatchQueryOptions options
        start local 2 // org.apache.cassandra.service.QueryState state
         0: .line 402
            aload 2 /* state */
            invokevirtual org.apache.cassandra.service.QueryState.getTimestamp:()J
            lstore 3 /* now */
        start local 3 // long now
         1: .line 403
            aconst_null
            astore 5 /* key */
        start local 5 // org.apache.cassandra.db.DecoratedKey key
         2: .line 404
            aconst_null
            astore 6 /* casRequest */
        start local 6 // org.apache.cassandra.cql3.statements.CQL3CasRequest casRequest
         3: .line 405
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            astore 7 /* columnsWithConditions */
        start local 7 // java.util.Set columnsWithConditions
         4: .line 407
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         5: goto 43
         6: .line 409
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement org.apache.cassandra.cql3.BatchQueryOptions org.apache.cassandra.service.QueryState long org.apache.cassandra.db.DecoratedKey org.apache.cassandra.cql3.statements.CQL3CasRequest java.util.Set int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.statements:Ljava/util/List;
            iload 8 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.statements.ModificationStatement
            astore 9 /* statement */
        start local 9 // org.apache.cassandra.cql3.statements.ModificationStatement statement
         7: .line 410
            aload 1 /* options */
            iload 8 /* i */
            invokevirtual org.apache.cassandra.cql3.BatchQueryOptions.forStatement:(I)Lorg/apache/cassandra/cql3/QueryOptions;
            astore 10 /* statementOptions */
        start local 10 // org.apache.cassandra.cql3.QueryOptions statementOptions
         8: .line 411
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.attrs:Lorg/apache/cassandra/cql3/Attributes;
            lload 3 /* now */
            aload 10 /* statementOptions */
            invokevirtual org.apache.cassandra.cql3.Attributes.getTimestamp:(JLorg/apache/cassandra/cql3/QueryOptions;)J
            lstore 11 /* timestamp */
        start local 11 // long timestamp
         9: .line 412
            aload 9 /* statement */
            aload 10 /* statementOptions */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.buildPartitionKeyNames:(Lorg/apache/cassandra/cql3/QueryOptions;)Ljava/util/List;
            astore 13 /* pks */
        start local 13 // java.util.List pks
        10: .line 413
            aload 9 /* statement */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.getRestrictions:()Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.keyIsInRelation:()Z
            ifeq 12
        11: .line 414
            new java.lang.IllegalArgumentException
            dup
            ldc "Batch with conditions cannot span multiple partitions (you cannot use IN on the partition key)"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 415
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement org.apache.cassandra.cql3.BatchQueryOptions org.apache.cassandra.service.QueryState long org.apache.cassandra.db.DecoratedKey org.apache.cassandra.cql3.statements.CQL3CasRequest java.util.Set int org.apache.cassandra.cql3.statements.ModificationStatement org.apache.cassandra.cql3.QueryOptions long java.util.List
      StackMap stack:
            aload 5 /* key */
            ifnonnull 16
        13: .line 417
            aload 9 /* statement */
            getfield org.apache.cassandra.cql3.statements.ModificationStatement.cfm:Lorg/apache/cassandra/config/CFMetaData;
            aload 13 /* pks */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            invokevirtual org.apache.cassandra.config.CFMetaData.decorateKey:(Ljava/nio/ByteBuffer;)Lorg/apache/cassandra/db/DecoratedKey;
            astore 5 /* key */
        14: .line 418
            new org.apache.cassandra.cql3.statements.CQL3CasRequest
            dup
            aload 9 /* statement */
            getfield org.apache.cassandra.cql3.statements.ModificationStatement.cfm:Lorg/apache/cassandra/config/CFMetaData;
            aload 5 /* key */
            iconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.conditionColumns:Lorg/apache/cassandra/db/PartitionColumns;
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.updatesRegularRows:Z
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.updatesStaticRow:Z
            invokespecial org.apache.cassandra.cql3.statements.CQL3CasRequest.<init>:(Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/db/DecoratedKey;ZLorg/apache/cassandra/db/PartitionColumns;ZZ)V
            astore 6 /* casRequest */
        15: .line 419
            goto 18
        16: .line 420
      StackMap locals:
      StackMap stack:
            aload 5 /* key */
            invokevirtual org.apache.cassandra.db.DecoratedKey.getKey:()Ljava/nio/ByteBuffer;
            aload 13 /* pks */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokevirtual java.nio.ByteBuffer.equals:(Ljava/lang/Object;)Z
            ifne 18
        17: .line 422
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            ldc "Batch with conditions cannot span multiple partitions"
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 425
      StackMap locals:
      StackMap stack:
            aload 9 /* statement */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.getRestrictions:()Lorg/apache/cassandra/cql3/restrictions/StatementRestrictions;
            invokevirtual org.apache.cassandra.cql3.restrictions.StatementRestrictions.clusteringKeyRestrictionsHasIN:()Z
        19: .line 426
            ldc "IN on the clustering key columns is not supported with conditional %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        20: .line 427
            aload 9 /* statement */
            getfield org.apache.cassandra.cql3.statements.ModificationStatement.type:Lorg/apache/cassandra/cql3/statements/StatementType;
            invokevirtual org.apache.cassandra.cql3.statements.StatementType.isUpdate:()Z
            ifeq 21
            ldc "updates"
            goto 22
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement org.apache.cassandra.cql3.BatchQueryOptions org.apache.cassandra.service.QueryState long org.apache.cassandra.db.DecoratedKey org.apache.cassandra.cql3.statements.CQL3CasRequest java.util.Set int org.apache.cassandra.cql3.statements.ModificationStatement org.apache.cassandra.cql3.QueryOptions long java.util.List
      StackMap stack: int java.lang.String java.lang.Object[] java.lang.Object[] int
        21: ldc "deletions"
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement org.apache.cassandra.cql3.BatchQueryOptions org.apache.cassandra.service.QueryState long org.apache.cassandra.db.DecoratedKey org.apache.cassandra.cql3.statements.CQL3CasRequest java.util.Set int org.apache.cassandra.cql3.statements.ModificationStatement org.apache.cassandra.cql3.QueryOptions long java.util.List
      StackMap stack: int java.lang.String java.lang.Object[] java.lang.Object[] int java.lang.String
        22: aastore
        23: .line 425
            invokestatic org.apache.cassandra.cql3.statements.RequestValidations.checkFalse:(ZLjava/lang/String;[Ljava/lang/Object;)V
        24: .line 429
            aload 9 /* statement */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.hasSlices:()Z
            ifeq 34
        25: .line 432
            getstatic org.apache.cassandra.cql3.statements.BatchStatement.$assertionsDisabled:Z
            ifne 26
            aload 9 /* statement */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.hasConditions:()Z
            ifeq 26
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        26: .line 434
      StackMap locals:
      StackMap stack:
            aload 9 /* statement */
            aload 10 /* statementOptions */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.createSlices:(Lorg/apache/cassandra/cql3/QueryOptions;)Lorg/apache/cassandra/db/Slices;
            astore 14 /* slices */
        start local 14 // org.apache.cassandra.db.Slices slices
        27: .line 436
            aload 14 /* slices */
            invokevirtual org.apache.cassandra.db.Slices.isEmpty:()Z
            ifeq 29
        28: .line 437
            goto 42
        29: .line 439
      StackMap locals: org.apache.cassandra.db.Slices
      StackMap stack:
            aload 14 /* slices */
            invokevirtual org.apache.cassandra.db.Slices.iterator:()Ljava/util/Iterator;
            astore 16
            goto 32
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement org.apache.cassandra.cql3.BatchQueryOptions org.apache.cassandra.service.QueryState long org.apache.cassandra.db.DecoratedKey org.apache.cassandra.cql3.statements.CQL3CasRequest java.util.Set int org.apache.cassandra.cql3.statements.ModificationStatement org.apache.cassandra.cql3.QueryOptions long java.util.List org.apache.cassandra.db.Slices top java.util.Iterator
      StackMap stack:
        30: aload 16
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.Slice
            astore 15 /* slice */
        start local 15 // org.apache.cassandra.db.Slice slice
        31: .line 441
            aload 6 /* casRequest */
            aload 15 /* slice */
            aload 9 /* statement */
            aload 10 /* statementOptions */
            lload 11 /* timestamp */
            invokevirtual org.apache.cassandra.cql3.statements.CQL3CasRequest.addRangeDeletion:(Lorg/apache/cassandra/db/Slice;Lorg/apache/cassandra/cql3/statements/ModificationStatement;Lorg/apache/cassandra/cql3/QueryOptions;J)V
        end local 15 // org.apache.cassandra.db.Slice slice
        32: .line 439
      StackMap locals:
      StackMap stack:
            aload 16
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 30
        end local 14 // org.apache.cassandra.db.Slices slices
        33: .line 444
            goto 42
        34: .line 447
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement org.apache.cassandra.cql3.BatchQueryOptions org.apache.cassandra.service.QueryState long org.apache.cassandra.db.DecoratedKey org.apache.cassandra.cql3.statements.CQL3CasRequest java.util.Set int org.apache.cassandra.cql3.statements.ModificationStatement org.apache.cassandra.cql3.QueryOptions long java.util.List
      StackMap stack:
            aload 9 /* statement */
            aload 10 /* statementOptions */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.createClustering:(Lorg/apache/cassandra/cql3/QueryOptions;)Ljava/util/NavigableSet;
            invokestatic com.google.common.collect.Iterables.getOnlyElement:(Ljava/lang/Iterable;)Ljava/lang/Object;
            checkcast org.apache.cassandra.db.Clustering
            astore 14 /* clustering */
        start local 14 // org.apache.cassandra.db.Clustering clustering
        35: .line 448
            aload 9 /* statement */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.hasConditions:()Z
            ifeq 41
        36: .line 450
            aload 9 /* statement */
            aload 14 /* clustering */
            aload 6 /* casRequest */
            aload 10 /* statementOptions */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.addConditions:(Lorg/apache/cassandra/db/Clustering;Lorg/apache/cassandra/cql3/statements/CQL3CasRequest;Lorg/apache/cassandra/cql3/QueryOptions;)V
        37: .line 452
            aload 9 /* statement */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.hasIfNotExistCondition:()Z
            ifne 38
            aload 9 /* statement */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.hasIfExistCondition:()Z
            ifeq 39
        38: .line 453
      StackMap locals: org.apache.cassandra.db.Clustering
      StackMap stack:
            aconst_null
            astore 7 /* columnsWithConditions */
            goto 41
        39: .line 454
      StackMap locals:
      StackMap stack:
            aload 7 /* columnsWithConditions */
            ifnull 41
        40: .line 455
            aload 7 /* columnsWithConditions */
            aload 9 /* statement */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.getColumnsWithConditions:()Ljava/lang/Iterable;
            invokestatic com.google.common.collect.Iterables.addAll:(Ljava/util/Collection;Ljava/lang/Iterable;)Z
            pop
        41: .line 457
      StackMap locals:
      StackMap stack:
            aload 6 /* casRequest */
            aload 14 /* clustering */
            aload 9 /* statement */
            aload 10 /* statementOptions */
            lload 11 /* timestamp */
            invokevirtual org.apache.cassandra.cql3.statements.CQL3CasRequest.addRowUpdate:(Lorg/apache/cassandra/db/Clustering;Lorg/apache/cassandra/cql3/statements/ModificationStatement;Lorg/apache/cassandra/cql3/QueryOptions;J)V
        end local 14 // org.apache.cassandra.db.Clustering clustering
        end local 13 // java.util.List pks
        end local 11 // long timestamp
        end local 10 // org.apache.cassandra.cql3.QueryOptions statementOptions
        end local 9 // org.apache.cassandra.cql3.statements.ModificationStatement statement
        42: .line 407
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement org.apache.cassandra.cql3.BatchQueryOptions org.apache.cassandra.service.QueryState long org.apache.cassandra.db.DecoratedKey org.apache.cassandra.cql3.statements.CQL3CasRequest java.util.Set int
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        43: iload 8 /* i */
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.statements:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 6
        end local 8 // int i
        44: .line 461
            aload 6 /* casRequest */
            aload 7 /* columnsWithConditions */
            invokestatic org.apache.cassandra.utils.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/cassandra/utils/Pair;
            areturn
        end local 7 // java.util.Set columnsWithConditions
        end local 6 // org.apache.cassandra.cql3.statements.CQL3CasRequest casRequest
        end local 5 // org.apache.cassandra.db.DecoratedKey key
        end local 3 // long now
        end local 2 // org.apache.cassandra.service.QueryState state
        end local 1 // org.apache.cassandra.cql3.BatchQueryOptions options
        end local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   45     0                   this  Lorg/apache/cassandra/cql3/statements/BatchStatement;
            0   45     1                options  Lorg/apache/cassandra/cql3/BatchQueryOptions;
            0   45     2                  state  Lorg/apache/cassandra/service/QueryState;
            1   45     3                    now  J
            2   45     5                    key  Lorg/apache/cassandra/db/DecoratedKey;
            3   45     6             casRequest  Lorg/apache/cassandra/cql3/statements/CQL3CasRequest;
            4   45     7  columnsWithConditions  Ljava/util/Set<Lorg/apache/cassandra/config/ColumnDefinition;>;
            5   44     8                      i  I
            7   42     9              statement  Lorg/apache/cassandra/cql3/statements/ModificationStatement;
            8   42    10       statementOptions  Lorg/apache/cassandra/cql3/QueryOptions;
            9   42    11              timestamp  J
           10   42    13                    pks  Ljava/util/List<Ljava/nio/ByteBuffer;>;
           27   33    14                 slices  Lorg/apache/cassandra/db/Slices;
           31   32    15                  slice  Lorg/apache/cassandra/db/Slice;
           35   42    14             clustering  Lorg/apache/cassandra/db/Clustering;
    Signature: (Lorg/apache/cassandra/cql3/BatchQueryOptions;Lorg/apache/cassandra/service/QueryState;)Lorg/apache/cassandra/utils/Pair<Lorg/apache/cassandra/cql3/statements/CQL3CasRequest;Ljava/util/Set<Lorg/apache/cassandra/config/ColumnDefinition;>;>;
    MethodParameters:
         Name  Flags
      options  
      state    

  public org.apache.cassandra.transport.messages.ResultMessage executeInternal(org.apache.cassandra.service.QueryState, org.apache.cassandra.cql3.QueryOptions);
    descriptor: (Lorg/apache/cassandra/service/QueryState;Lorg/apache/cassandra/cql3/QueryOptions;)Lorg/apache/cassandra/transport/messages/ResultMessage;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
        start local 1 // org.apache.cassandra.service.QueryState queryState
        start local 2 // org.apache.cassandra.cql3.QueryOptions options
         0: .line 466
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.hasConditions:Z
            ifeq 2
         1: .line 467
            aload 0 /* this */
            aload 2 /* options */
            invokestatic org.apache.cassandra.cql3.BatchQueryOptions.withoutPerStatementVariables:(Lorg/apache/cassandra/cql3/QueryOptions;)Lorg/apache/cassandra/cql3/BatchQueryOptions;
            aload 1 /* queryState */
            invokevirtual org.apache.cassandra.cql3.statements.BatchStatement.executeInternalWithConditions:(Lorg/apache/cassandra/cql3/BatchQueryOptions;Lorg/apache/cassandra/service/QueryState;)Lorg/apache/cassandra/transport/messages/ResultMessage;
            areturn
         2: .line 469
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* queryState */
            aload 2 /* options */
            invokestatic java.lang.System.nanoTime:()J
            invokevirtual org.apache.cassandra.cql3.statements.BatchStatement.executeInternalWithoutCondition:(Lorg/apache/cassandra/service/QueryState;Lorg/apache/cassandra/cql3/QueryOptions;J)Lorg/apache/cassandra/transport/messages/ResultMessage;
            pop
         3: .line 470
            new org.apache.cassandra.transport.messages.ResultMessage$Void
            dup
            invokespecial org.apache.cassandra.transport.messages.ResultMessage$Void.<init>:()V
            areturn
        end local 2 // org.apache.cassandra.cql3.QueryOptions options
        end local 1 // org.apache.cassandra.service.QueryState queryState
        end local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/apache/cassandra/cql3/statements/BatchStatement;
            0    4     1  queryState  Lorg/apache/cassandra/service/QueryState;
            0    4     2     options  Lorg/apache/cassandra/cql3/QueryOptions;
    Exceptions:
      throws org.apache.cassandra.exceptions.RequestValidationException, org.apache.cassandra.exceptions.RequestExecutionException
    MethodParameters:
            Name  Flags
      queryState  
      options     

  private org.apache.cassandra.transport.messages.ResultMessage executeInternalWithoutCondition(org.apache.cassandra.service.QueryState, org.apache.cassandra.cql3.QueryOptions, long);
    descriptor: (Lorg/apache/cassandra/service/QueryState;Lorg/apache/cassandra/cql3/QueryOptions;J)Lorg/apache/cassandra/transport/messages/ResultMessage;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, args_size=4
        start local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
        start local 1 // org.apache.cassandra.service.QueryState queryState
        start local 2 // org.apache.cassandra.cql3.QueryOptions options
        start local 3 // long queryStartNanoTime
         0: .line 475
            aload 0 /* this */
            aload 2 /* options */
            invokestatic org.apache.cassandra.cql3.BatchQueryOptions.withoutPerStatementVariables:(Lorg/apache/cassandra/cql3/QueryOptions;)Lorg/apache/cassandra/cql3/BatchQueryOptions;
            iconst_1
            aload 1 /* queryState */
            invokevirtual org.apache.cassandra.service.QueryState.getTimestamp:()J
            lload 3 /* queryStartNanoTime */
            invokevirtual org.apache.cassandra.cql3.statements.BatchStatement.getMutations:(Lorg/apache/cassandra/cql3/BatchQueryOptions;ZJJ)Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 6
            goto 3
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement org.apache.cassandra.service.QueryState org.apache.cassandra.cql3.QueryOptions long top java.util.Iterator
      StackMap stack:
         1: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.IMutation
            astore 5 /* mutation */
        start local 5 // org.apache.cassandra.db.IMutation mutation
         2: .line 476
            aload 5 /* mutation */
            invokeinterface org.apache.cassandra.db.IMutation.apply:()V
        end local 5 // org.apache.cassandra.db.IMutation mutation
         3: .line 475
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 477
            aconst_null
            areturn
        end local 3 // long queryStartNanoTime
        end local 2 // org.apache.cassandra.cql3.QueryOptions options
        end local 1 // org.apache.cassandra.service.QueryState queryState
        end local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    5     0                this  Lorg/apache/cassandra/cql3/statements/BatchStatement;
            0    5     1          queryState  Lorg/apache/cassandra/service/QueryState;
            0    5     2             options  Lorg/apache/cassandra/cql3/QueryOptions;
            0    5     3  queryStartNanoTime  J
            2    3     5            mutation  Lorg/apache/cassandra/db/IMutation;
    Exceptions:
      throws org.apache.cassandra.exceptions.RequestValidationException, org.apache.cassandra.exceptions.RequestExecutionException
    MethodParameters:
                    Name  Flags
      queryState          
      options             
      queryStartNanoTime  

  private org.apache.cassandra.transport.messages.ResultMessage executeInternalWithConditions(org.apache.cassandra.cql3.BatchQueryOptions, org.apache.cassandra.service.QueryState);
    descriptor: (Lorg/apache/cassandra/cql3/BatchQueryOptions;Lorg/apache/cassandra/service/QueryState;)Lorg/apache/cassandra/transport/messages/ResultMessage;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=11, args_size=3
        start local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
        start local 1 // org.apache.cassandra.cql3.BatchQueryOptions options
        start local 2 // org.apache.cassandra.service.QueryState state
         0: .line 482
            aload 0 /* this */
            aload 1 /* options */
            aload 2 /* state */
            invokevirtual org.apache.cassandra.cql3.statements.BatchStatement.makeCasRequest:(Lorg/apache/cassandra/cql3/BatchQueryOptions;Lorg/apache/cassandra/service/QueryState;)Lorg/apache/cassandra/utils/Pair;
            astore 3 /* p */
        start local 3 // org.apache.cassandra.utils.Pair p
         1: .line 483
            aload 3 /* p */
            getfield org.apache.cassandra.utils.Pair.left:Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.statements.CQL3CasRequest
            astore 4 /* request */
        start local 4 // org.apache.cassandra.cql3.statements.CQL3CasRequest request
         2: .line 484
            aload 3 /* p */
            getfield org.apache.cassandra.utils.Pair.right:Ljava/lang/Object;
            checkcast java.util.Set
            astore 5 /* columnsWithConditions */
        start local 5 // java.util.Set columnsWithConditions
         3: .line 486
            aload 4 /* request */
            getfield org.apache.cassandra.cql3.statements.CQL3CasRequest.cfm:Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.ksName:Ljava/lang/String;
            astore 6 /* ksName */
        start local 6 // java.lang.String ksName
         4: .line 487
            aload 4 /* request */
            getfield org.apache.cassandra.cql3.statements.CQL3CasRequest.cfm:Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.cfName:Ljava/lang/String;
            astore 7 /* tableName */
        start local 7 // java.lang.String tableName
         5: .line 489
            aconst_null
            astore 8
            aconst_null
            astore 9
         6: aload 4 /* request */
            aload 2 /* state */
            invokestatic org.apache.cassandra.cql3.statements.ModificationStatement.casInternal:(Lorg/apache/cassandra/cql3/statements/CQL3CasRequest;Lorg/apache/cassandra/service/QueryState;)Lorg/apache/cassandra/db/rows/RowIterator;
            astore 10 /* result */
        start local 10 // org.apache.cassandra.db.rows.RowIterator result
         7: .line 491
            new org.apache.cassandra.transport.messages.ResultMessage$Rows
            dup
            aload 6 /* ksName */
            aload 7 /* tableName */
            aload 10 /* result */
            aload 5 /* columnsWithConditions */
            iconst_1
            aload 1 /* options */
            iconst_0
            invokevirtual org.apache.cassandra.cql3.BatchQueryOptions.forStatement:(I)Lorg/apache/cassandra/cql3/QueryOptions;
            invokestatic org.apache.cassandra.cql3.statements.ModificationStatement.buildCasResultSet:(Ljava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/db/rows/RowIterator;Ljava/lang/Iterable;ZLorg/apache/cassandra/cql3/QueryOptions;)Lorg/apache/cassandra/cql3/ResultSet;
            invokespecial org.apache.cassandra.transport.messages.ResultMessage$Rows.<init>:(Lorg/apache/cassandra/cql3/ResultSet;)V
         8: .line 492
            aload 10 /* result */
            ifnull 9
            aload 10 /* result */
            invokeinterface org.apache.cassandra.db.rows.RowIterator.close:()V
         9: .line 491
      StackMap locals: org.apache.cassandra.cql3.statements.BatchStatement org.apache.cassandra.cql3.BatchQueryOptions org.apache.cassandra.service.QueryState org.apache.cassandra.utils.Pair org.apache.cassandra.cql3.statements.CQL3CasRequest java.util.Set java.lang.String java.lang.String java.lang.Throwable java.lang.Throwable org.apache.cassandra.db.rows.RowIterator
      StackMap stack: org.apache.cassandra.transport.messages.ResultMessage$Rows
            areturn
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: astore 8
        11: .line 492
            aload 10 /* result */
            ifnull 12
            aload 10 /* result */
            invokeinterface org.apache.cassandra.db.rows.RowIterator.close:()V
        end local 10 // org.apache.cassandra.db.rows.RowIterator result
      StackMap locals:
      StackMap stack:
        12: aload 8
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 9
            aload 8
            ifnonnull 14
            aload 9
            astore 8
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 8
            aload 9
            if_acmpeq 15
            aload 8
            aload 9
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        15: aload 8
            athrow
        end local 7 // java.lang.String tableName
        end local 6 // java.lang.String ksName
        end local 5 // java.util.Set columnsWithConditions
        end local 4 // org.apache.cassandra.cql3.statements.CQL3CasRequest request
        end local 3 // org.apache.cassandra.utils.Pair p
        end local 2 // org.apache.cassandra.service.QueryState state
        end local 1 // org.apache.cassandra.cql3.BatchQueryOptions options
        end local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   16     0                   this  Lorg/apache/cassandra/cql3/statements/BatchStatement;
            0   16     1                options  Lorg/apache/cassandra/cql3/BatchQueryOptions;
            0   16     2                  state  Lorg/apache/cassandra/service/QueryState;
            1   16     3                      p  Lorg/apache/cassandra/utils/Pair<Lorg/apache/cassandra/cql3/statements/CQL3CasRequest;Ljava/util/Set<Lorg/apache/cassandra/config/ColumnDefinition;>;>;
            2   16     4                request  Lorg/apache/cassandra/cql3/statements/CQL3CasRequest;
            3   16     5  columnsWithConditions  Ljava/util/Set<Lorg/apache/cassandra/config/ColumnDefinition;>;
            4   16     6                 ksName  Ljava/lang/String;
            5   16     7              tableName  Ljava/lang/String;
            7   12    10                 result  Lorg/apache/cassandra/db/rows/RowIterator;
      Exception table:
        from    to  target  type
           7     8      10  any
           6     9      13  any
          10    13      13  any
    Exceptions:
      throws org.apache.cassandra.exceptions.RequestExecutionException, org.apache.cassandra.exceptions.RequestValidationException
    MethodParameters:
         Name  Flags
      options  
      state    

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
         0: .line 497
            ldc "BatchStatement(type=%s, statements=%s)"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.type:Lorg/apache/cassandra/cql3/statements/BatchStatement$Type;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.statements.BatchStatement.statements:Ljava/util/List;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.cql3.statements.BatchStatement this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cql3/statements/BatchStatement;
}
SourceFile: "BatchStatement.java"
NestMembers:
  org.apache.cassandra.cql3.statements.BatchStatement$MultiTableColumnsBuilder  org.apache.cassandra.cql3.statements.BatchStatement$Parsed  org.apache.cassandra.cql3.statements.BatchStatement$Type
InnerClasses:
  private MultiTableColumnsBuilder = org.apache.cassandra.cql3.statements.BatchStatement$MultiTableColumnsBuilder of org.apache.cassandra.cql3.statements.BatchStatement
  public Parsed = org.apache.cassandra.cql3.statements.BatchStatement$Parsed of org.apache.cassandra.cql3.statements.BatchStatement
  public final Type = org.apache.cassandra.cql3.statements.BatchStatement$Type of org.apache.cassandra.cql3.statements.BatchStatement
  public Builder = org.apache.cassandra.db.PartitionColumns$Builder of org.apache.cassandra.db.PartitionColumns
  public Rows = org.apache.cassandra.transport.messages.ResultMessage$Rows of org.apache.cassandra.transport.messages.ResultMessage
  public Void = org.apache.cassandra.transport.messages.ResultMessage$Void of org.apache.cassandra.transport.messages.ResultMessage
  public final Level = org.apache.cassandra.utils.NoSpamLogger$Level of org.apache.cassandra.utils.NoSpamLogger