class org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber extends org.apache.cassandra.service.MigrationListener
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber
  super_class: org.apache.cassandra.service.MigrationListener
{
  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber this
         0: .line 623
            aload 0 /* this */
            invokespecial org.apache.cassandra.service.MigrationListener.<init>:()V
            return
        end local 0 // org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cql3/QueryProcessor$MigrationSubscriber;

  private static void removeInvalidPreparedStatements(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String ksName
        start local 1 // java.lang.String cfName
         0: .line 627
            getstatic org.apache.cassandra.cql3.QueryProcessor.internalStatements:Ljava/util/concurrent/ConcurrentMap;
            invokeinterface java.util.concurrent.ConcurrentMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            aload 0 /* ksName */
            aload 1 /* cfName */
            invokestatic org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber.removeInvalidPreparedStatements:(Ljava/util/Iterator;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 628
            getstatic org.apache.cassandra.cql3.QueryProcessor.preparedStatements:Lcom/googlecode/concurrentlinkedhashmap/ConcurrentLinkedHashMap;
            invokevirtual com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            aload 0 /* ksName */
            aload 1 /* cfName */
            invokestatic org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber.removeInvalidPersistentPreparedStatements:(Ljava/util/Iterator;Ljava/lang/String;Ljava/lang/String;)V
         2: .line 629
            getstatic org.apache.cassandra.cql3.QueryProcessor.thriftPreparedStatements:Lcom/googlecode/concurrentlinkedhashmap/ConcurrentLinkedHashMap;
            invokevirtual com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            aload 0 /* ksName */
            aload 1 /* cfName */
            invokestatic org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber.removeInvalidPreparedStatements:(Ljava/util/Iterator;Ljava/lang/String;Ljava/lang/String;)V
         3: .line 630
            return
        end local 1 // java.lang.String cfName
        end local 0 // java.lang.String ksName
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  ksName  Ljava/lang/String;
            0    4     1  cfName  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      ksName  
      cfName  

  private static void removeInvalidPreparedStatementsForFunction(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // java.lang.String ksName
        start local 1 // java.lang.String functionName
         0: .line 634
            aload 0 /* ksName */
            aload 1 /* functionName */
            invokedynamic apply(Ljava/lang/String;Ljava/lang/String;)Lcom/google/common/base/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  org/apache/cassandra/cql3/QueryProcessor$MigrationSubscriber.lambda$0(Ljava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/cql3/functions/Function;)Z (6)
                  (Lorg/apache/cassandra/cql3/functions/Function;)Z
            astore 2 /* matchesFunction */
        start local 2 // com.google.common.base.Predicate matchesFunction
         1: .line 636
            getstatic org.apache.cassandra.cql3.QueryProcessor.preparedStatements:Lcom/googlecode/concurrentlinkedhashmap/ConcurrentLinkedHashMap;
            invokevirtual com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3 /* iter */
        start local 3 // java.util.Iterator iter
         2: .line 637
            goto 7
         3: .line 639
      StackMap locals: com.google.common.base.Predicate java.util.Iterator
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* pstmt */
        start local 4 // java.util.Map$Entry pstmt
         4: .line 640
            aload 4 /* pstmt */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.statements.ParsedStatement$Prepared
            getfield org.apache.cassandra.cql3.statements.ParsedStatement$Prepared.statement:Lorg/apache/cassandra/cql3/CQLStatement;
            invokeinterface org.apache.cassandra.cql3.CQLStatement.getFunctions:()Ljava/lang/Iterable;
            aload 2 /* matchesFunction */
            invokestatic com.google.common.collect.Iterables.any:(Ljava/lang/Iterable;Lcom/google/common/base/Predicate;)Z
            ifeq 7
         5: .line 642
            aload 4 /* pstmt */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.apache.cassandra.utils.MD5Digest
            invokestatic org.apache.cassandra.db.SystemKeyspace.removePreparedStatement:(Lorg/apache/cassandra/utils/MD5Digest;)V
         6: .line 643
            aload 3 /* iter */
            invokeinterface java.util.Iterator.remove:()V
        end local 4 // java.util.Map$Entry pstmt
         7: .line 637
      StackMap locals:
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        end local 3 // java.util.Iterator iter
         8: .line 648
            getstatic org.apache.cassandra.cql3.QueryProcessor.internalStatements:Ljava/util/concurrent/ConcurrentMap;
            invokeinterface java.util.concurrent.ConcurrentMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
         9: .line 649
            aload 2 /* matchesFunction */
            invokedynamic apply(Lcom/google/common/base/Predicate;)Lcom/google/common/base/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  org/apache/cassandra/cql3/QueryProcessor$MigrationSubscriber.lambda$1(Lcom/google/common/base/Predicate;Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;)Z (6)
                  (Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;)Z
        10: .line 648
            invokestatic com.google.common.collect.Iterators.removeIf:(Ljava/util/Iterator;Lcom/google/common/base/Predicate;)Z
            pop
        11: .line 651
            getstatic org.apache.cassandra.cql3.QueryProcessor.thriftPreparedStatements:Lcom/googlecode/concurrentlinkedhashmap/ConcurrentLinkedHashMap;
            invokevirtual com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
        12: .line 652
            aload 2 /* matchesFunction */
            invokedynamic apply(Lcom/google/common/base/Predicate;)Lcom/google/common/base/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  org/apache/cassandra/cql3/QueryProcessor$MigrationSubscriber.lambda$2(Lcom/google/common/base/Predicate;Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;)Z (6)
                  (Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;)Z
        13: .line 651
            invokestatic com.google.common.collect.Iterators.removeIf:(Ljava/util/Iterator;Lcom/google/common/base/Predicate;)Z
            pop
        14: .line 653
            return
        end local 2 // com.google.common.base.Predicate matchesFunction
        end local 1 // java.lang.String functionName
        end local 0 // java.lang.String ksName
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   15     0           ksName  Ljava/lang/String;
            0   15     1     functionName  Ljava/lang/String;
            1   15     2  matchesFunction  Lcom/google/common/base/Predicate<Lorg/apache/cassandra/cql3/functions/Function;>;
            2    8     3             iter  Ljava/util/Iterator<Ljava/util/Map$Entry<Lorg/apache/cassandra/utils/MD5Digest;Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;>;>;
            4    7     4            pstmt  Ljava/util/Map$Entry<Lorg/apache/cassandra/utils/MD5Digest;Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;>;
    MethodParameters:
              Name  Flags
      ksName        
      functionName  

  private static void removeInvalidPersistentPreparedStatements(java.util.Iterator<java.util.Map$Entry<org.apache.cassandra.utils.MD5Digest, org.apache.cassandra.cql3.statements.ParsedStatement$Prepared>>, java.lang.String, java.lang.String);
    descriptor: (Ljava/util/Iterator;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.util.Iterator iterator
        start local 1 // java.lang.String ksName
        start local 2 // java.lang.String cfName
         0: .line 658
            goto 5
         1: .line 660
      StackMap locals:
      StackMap stack:
            aload 0 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* entry */
        start local 3 // java.util.Map$Entry entry
         2: .line 661
            aload 1 /* ksName */
            aload 2 /* cfName */
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.statements.ParsedStatement$Prepared
            getfield org.apache.cassandra.cql3.statements.ParsedStatement$Prepared.statement:Lorg/apache/cassandra/cql3/CQLStatement;
            invokestatic org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber.shouldInvalidate:(Ljava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/cql3/CQLStatement;)Z
            ifeq 5
         3: .line 663
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.apache.cassandra.utils.MD5Digest
            invokestatic org.apache.cassandra.db.SystemKeyspace.removePreparedStatement:(Lorg/apache/cassandra/utils/MD5Digest;)V
         4: .line 664
            aload 0 /* iterator */
            invokeinterface java.util.Iterator.remove:()V
        end local 3 // java.util.Map$Entry entry
         5: .line 658
      StackMap locals:
      StackMap stack:
            aload 0 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         6: .line 667
            return
        end local 2 // java.lang.String cfName
        end local 1 // java.lang.String ksName
        end local 0 // java.util.Iterator iterator
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0  iterator  Ljava/util/Iterator<Ljava/util/Map$Entry<Lorg/apache/cassandra/utils/MD5Digest;Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;>;>;
            0    7     1    ksName  Ljava/lang/String;
            0    7     2    cfName  Ljava/lang/String;
            2    5     3     entry  Ljava/util/Map$Entry<Lorg/apache/cassandra/utils/MD5Digest;Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;>;
    Signature: (Ljava/util/Iterator<Ljava/util/Map$Entry<Lorg/apache/cassandra/utils/MD5Digest;Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;>;>;Ljava/lang/String;Ljava/lang/String;)V
    MethodParameters:
          Name  Flags
      iterator  
      ksName    
      cfName    

  private static void removeInvalidPreparedStatements(java.util.Iterator<org.apache.cassandra.cql3.statements.ParsedStatement$Prepared>, java.lang.String, java.lang.String);
    descriptor: (Ljava/util/Iterator;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.util.Iterator iterator
        start local 1 // java.lang.String ksName
        start local 2 // java.lang.String cfName
         0: .line 671
            goto 3
         1: .line 673
      StackMap locals:
      StackMap stack:
            aload 1 /* ksName */
            aload 2 /* cfName */
            aload 0 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.statements.ParsedStatement$Prepared
            getfield org.apache.cassandra.cql3.statements.ParsedStatement$Prepared.statement:Lorg/apache/cassandra/cql3/CQLStatement;
            invokestatic org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber.shouldInvalidate:(Ljava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/cql3/CQLStatement;)Z
            ifeq 3
         2: .line 674
            aload 0 /* iterator */
            invokeinterface java.util.Iterator.remove:()V
         3: .line 671
      StackMap locals:
      StackMap stack:
            aload 0 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 676
            return
        end local 2 // java.lang.String cfName
        end local 1 // java.lang.String ksName
        end local 0 // java.util.Iterator iterator
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0  iterator  Ljava/util/Iterator<Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;>;
            0    5     1    ksName  Ljava/lang/String;
            0    5     2    cfName  Ljava/lang/String;
    Signature: (Ljava/util/Iterator<Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;>;Ljava/lang/String;Ljava/lang/String;)V
    MethodParameters:
          Name  Flags
      iterator  
      ksName    
      cfName    

  private static boolean shouldInvalidate(java.lang.String, java.lang.String, org.apache.cassandra.cql3.CQLStatement);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/cql3/CQLStatement;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // java.lang.String ksName
        start local 1 // java.lang.String cfName
        start local 2 // org.apache.cassandra.cql3.CQLStatement statement
         0: .line 683
            aload 2 /* statement */
            instanceof org.apache.cassandra.cql3.statements.ModificationStatement
            ifeq 5
         1: .line 685
            aload 2 /* statement */
            checkcast org.apache.cassandra.cql3.statements.ModificationStatement
            astore 5 /* modificationStatement */
        start local 5 // org.apache.cassandra.cql3.statements.ModificationStatement modificationStatement
         2: .line 686
            aload 5 /* modificationStatement */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.keyspace:()Ljava/lang/String;
            astore 3 /* statementKsName */
        start local 3 // java.lang.String statementKsName
         3: .line 687
            aload 5 /* modificationStatement */
            invokevirtual org.apache.cassandra.cql3.statements.ModificationStatement.columnFamily:()Ljava/lang/String;
            astore 4 /* statementCfName */
        end local 5 // org.apache.cassandra.cql3.statements.ModificationStatement modificationStatement
        start local 4 // java.lang.String statementCfName
         4: .line 688
            goto 19
        end local 4 // java.lang.String statementCfName
        end local 3 // java.lang.String statementKsName
         5: .line 689
      StackMap locals:
      StackMap stack:
            aload 2 /* statement */
            instanceof org.apache.cassandra.cql3.statements.SelectStatement
            ifeq 10
         6: .line 691
            aload 2 /* statement */
            checkcast org.apache.cassandra.cql3.statements.SelectStatement
            astore 5 /* selectStatement */
        start local 5 // org.apache.cassandra.cql3.statements.SelectStatement selectStatement
         7: .line 692
            aload 5 /* selectStatement */
            invokevirtual org.apache.cassandra.cql3.statements.SelectStatement.keyspace:()Ljava/lang/String;
            astore 3 /* statementKsName */
        start local 3 // java.lang.String statementKsName
         8: .line 693
            aload 5 /* selectStatement */
            invokevirtual org.apache.cassandra.cql3.statements.SelectStatement.columnFamily:()Ljava/lang/String;
            astore 4 /* statementCfName */
        end local 5 // org.apache.cassandra.cql3.statements.SelectStatement selectStatement
        start local 4 // java.lang.String statementCfName
         9: .line 694
            goto 19
        end local 4 // java.lang.String statementCfName
        end local 3 // java.lang.String statementKsName
        10: .line 695
      StackMap locals:
      StackMap stack:
            aload 2 /* statement */
            instanceof org.apache.cassandra.cql3.statements.BatchStatement
            ifeq 18
        11: .line 697
            aload 2 /* statement */
            checkcast org.apache.cassandra.cql3.statements.BatchStatement
            astore 5 /* batchStatement */
        start local 5 // org.apache.cassandra.cql3.statements.BatchStatement batchStatement
        12: .line 698
            aload 5 /* batchStatement */
            invokevirtual org.apache.cassandra.cql3.statements.BatchStatement.getStatements:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 16
      StackMap locals: java.lang.String java.lang.String org.apache.cassandra.cql3.CQLStatement top top org.apache.cassandra.cql3.statements.BatchStatement top java.util.Iterator
      StackMap stack:
        13: 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
        14: .line 700
            aload 0 /* ksName */
            aload 1 /* cfName */
            aload 6 /* stmt */
            invokestatic org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber.shouldInvalidate:(Ljava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/cql3/CQLStatement;)Z
            ifeq 16
        15: .line 701
            iconst_1
            ireturn
        end local 6 // org.apache.cassandra.cql3.statements.ModificationStatement stmt
        16: .line 698
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        17: .line 703
            iconst_0
            ireturn
        end local 5 // org.apache.cassandra.cql3.statements.BatchStatement batchStatement
        18: .line 707
      StackMap locals: java.lang.String java.lang.String org.apache.cassandra.cql3.CQLStatement
      StackMap stack:
            iconst_0
            ireturn
        start local 3 // java.lang.String statementKsName
        start local 4 // java.lang.String statementCfName
        19: .line 710
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* ksName */
            aload 3 /* statementKsName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
            aload 1 /* cfName */
            ifnull 20
            aload 1 /* cfName */
            aload 4 /* statementCfName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
      StackMap locals:
      StackMap stack:
        20: iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        21: iconst_0
            ireturn
        end local 4 // java.lang.String statementCfName
        end local 3 // java.lang.String statementKsName
        end local 2 // org.apache.cassandra.cql3.CQLStatement statement
        end local 1 // java.lang.String cfName
        end local 0 // java.lang.String ksName
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   22     0                 ksName  Ljava/lang/String;
            0   22     1                 cfName  Ljava/lang/String;
            0   22     2              statement  Lorg/apache/cassandra/cql3/CQLStatement;
            3    5     3        statementKsName  Ljava/lang/String;
            8   10     3        statementKsName  Ljava/lang/String;
           19   22     3        statementKsName  Ljava/lang/String;
            4    5     4        statementCfName  Ljava/lang/String;
            9   10     4        statementCfName  Ljava/lang/String;
           19   22     4        statementCfName  Ljava/lang/String;
            2    4     5  modificationStatement  Lorg/apache/cassandra/cql3/statements/ModificationStatement;
            7    9     5        selectStatement  Lorg/apache/cassandra/cql3/statements/SelectStatement;
           12   18     5         batchStatement  Lorg/apache/cassandra/cql3/statements/BatchStatement;
           14   16     6                   stmt  Lorg/apache/cassandra/cql3/statements/ModificationStatement;
    MethodParameters:
           Name  Flags
      ksName     
      cfName     
      statement  

  public void onCreateFunction(java.lang.String, java.lang.String, java.util.List<org.apache.cassandra.db.marshal.AbstractType<?>>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber this
        start local 1 // java.lang.String ksName
        start local 2 // java.lang.String functionName
        start local 3 // java.util.List argTypes
         0: .line 715
            aload 1 /* ksName */
            aload 2 /* functionName */
            aload 3 /* argTypes */
            invokestatic org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber.onCreateFunctionInternal:(Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
         1: .line 716
            return
        end local 3 // java.util.List argTypes
        end local 2 // java.lang.String functionName
        end local 1 // java.lang.String ksName
        end local 0 // org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/apache/cassandra/cql3/QueryProcessor$MigrationSubscriber;
            0    2     1        ksName  Ljava/lang/String;
            0    2     2  functionName  Ljava/lang/String;
            0    2     3      argTypes  Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;)V
    MethodParameters:
              Name  Flags
      ksName        
      functionName  
      argTypes      

  public void onCreateAggregate(java.lang.String, java.lang.String, java.util.List<org.apache.cassandra.db.marshal.AbstractType<?>>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber this
        start local 1 // java.lang.String ksName
        start local 2 // java.lang.String aggregateName
        start local 3 // java.util.List argTypes
         0: .line 720
            aload 1 /* ksName */
            aload 2 /* aggregateName */
            aload 3 /* argTypes */
            invokestatic org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber.onCreateFunctionInternal:(Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
         1: .line 721
            return
        end local 3 // java.util.List argTypes
        end local 2 // java.lang.String aggregateName
        end local 1 // java.lang.String ksName
        end local 0 // org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/apache/cassandra/cql3/QueryProcessor$MigrationSubscriber;
            0    2     1         ksName  Ljava/lang/String;
            0    2     2  aggregateName  Ljava/lang/String;
            0    2     3       argTypes  Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;)V
    MethodParameters:
               Name  Flags
      ksName         
      aggregateName  
      argTypes       

  private static void onCreateFunctionInternal(java.lang.String, java.lang.String, java.util.List<org.apache.cassandra.db.marshal.AbstractType<?>>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.lang.String ksName
        start local 1 // java.lang.String functionName
        start local 2 // java.util.List argTypes
         0: .line 727
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            aload 0 /* ksName */
            invokevirtual org.apache.cassandra.config.Schema.getKSMetaData:(Ljava/lang/String;)Lorg/apache/cassandra/schema/KeyspaceMetadata;
            getfield org.apache.cassandra.schema.KeyspaceMetadata.functions:Lorg/apache/cassandra/schema/Functions;
            new org.apache.cassandra.cql3.functions.FunctionName
            dup
            aload 0 /* ksName */
            aload 1 /* functionName */
            invokespecial org.apache.cassandra.cql3.functions.FunctionName.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            invokevirtual org.apache.cassandra.schema.Functions.get:(Lorg/apache/cassandra/cql3/functions/FunctionName;)Ljava/util/Collection;
            invokeinterface java.util.Collection.size:()I
            iconst_1
            if_icmple 2
         1: .line 728
            aload 0 /* ksName */
            aload 1 /* functionName */
            invokestatic org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber.removeInvalidPreparedStatementsForFunction:(Ljava/lang/String;Ljava/lang/String;)V
         2: .line 729
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.List argTypes
        end local 1 // java.lang.String functionName
        end local 0 // java.lang.String ksName
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0        ksName  Ljava/lang/String;
            0    3     1  functionName  Ljava/lang/String;
            0    3     2      argTypes  Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;)V
    MethodParameters:
              Name  Flags
      ksName        
      functionName  
      argTypes      

  public void onUpdateColumnFamily(java.lang.String, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber this
        start local 1 // java.lang.String ksName
        start local 2 // java.lang.String cfName
        start local 3 // boolean affectsStatements
         0: .line 733
            getstatic org.apache.cassandra.cql3.QueryProcessor.logger:Lorg/slf4j/Logger;
            ldc "Column definitions for {}.{} changed, invalidating related prepared statements"
            aload 1 /* ksName */
            aload 2 /* cfName */
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 734
            iload 3 /* affectsStatements */
            ifeq 3
         2: .line 735
            aload 1 /* ksName */
            aload 2 /* cfName */
            invokestatic org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber.removeInvalidPreparedStatements:(Ljava/lang/String;Ljava/lang/String;)V
         3: .line 736
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean affectsStatements
        end local 2 // java.lang.String cfName
        end local 1 // java.lang.String ksName
        end local 0 // org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lorg/apache/cassandra/cql3/QueryProcessor$MigrationSubscriber;
            0    4     1             ksName  Ljava/lang/String;
            0    4     2             cfName  Ljava/lang/String;
            0    4     3  affectsStatements  Z
    MethodParameters:
                   Name  Flags
      ksName             
      cfName             
      affectsStatements  

  public void onUpdateFunction(java.lang.String, java.lang.String, java.util.List<org.apache.cassandra.db.marshal.AbstractType<?>>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber this
        start local 1 // java.lang.String ksName
        start local 2 // java.lang.String functionName
        start local 3 // java.util.List argTypes
         0: .line 744
            aload 1 /* ksName */
            aload 2 /* functionName */
            invokestatic org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber.removeInvalidPreparedStatementsForFunction:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 745
            return
        end local 3 // java.util.List argTypes
        end local 2 // java.lang.String functionName
        end local 1 // java.lang.String ksName
        end local 0 // org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/apache/cassandra/cql3/QueryProcessor$MigrationSubscriber;
            0    2     1        ksName  Ljava/lang/String;
            0    2     2  functionName  Ljava/lang/String;
            0    2     3      argTypes  Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;)V
    MethodParameters:
              Name  Flags
      ksName        
      functionName  
      argTypes      

  public void onUpdateAggregate(java.lang.String, java.lang.String, java.util.List<org.apache.cassandra.db.marshal.AbstractType<?>>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber this
        start local 1 // java.lang.String ksName
        start local 2 // java.lang.String aggregateName
        start local 3 // java.util.List argTypes
         0: .line 753
            aload 1 /* ksName */
            aload 2 /* aggregateName */
            invokestatic org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber.removeInvalidPreparedStatementsForFunction:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 754
            return
        end local 3 // java.util.List argTypes
        end local 2 // java.lang.String aggregateName
        end local 1 // java.lang.String ksName
        end local 0 // org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/apache/cassandra/cql3/QueryProcessor$MigrationSubscriber;
            0    2     1         ksName  Ljava/lang/String;
            0    2     2  aggregateName  Ljava/lang/String;
            0    2     3       argTypes  Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;)V
    MethodParameters:
               Name  Flags
      ksName         
      aggregateName  
      argTypes       

  public void onDropKeyspace(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber this
        start local 1 // java.lang.String ksName
         0: .line 758
            getstatic org.apache.cassandra.cql3.QueryProcessor.logger:Lorg/slf4j/Logger;
            ldc "Keyspace {} was dropped, invalidating related prepared statements"
            aload 1 /* ksName */
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 759
            aload 1 /* ksName */
            aconst_null
            invokestatic org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber.removeInvalidPreparedStatements:(Ljava/lang/String;Ljava/lang/String;)V
         2: .line 760
            return
        end local 1 // java.lang.String ksName
        end local 0 // org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/apache/cassandra/cql3/QueryProcessor$MigrationSubscriber;
            0    3     1  ksName  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      ksName  

  public void onDropColumnFamily(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber this
        start local 1 // java.lang.String ksName
        start local 2 // java.lang.String cfName
         0: .line 764
            getstatic org.apache.cassandra.cql3.QueryProcessor.logger:Lorg/slf4j/Logger;
            ldc "Table {}.{} was dropped, invalidating related prepared statements"
            aload 1 /* ksName */
            aload 2 /* cfName */
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 765
            aload 1 /* ksName */
            aload 2 /* cfName */
            invokestatic org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber.removeInvalidPreparedStatements:(Ljava/lang/String;Ljava/lang/String;)V
         2: .line 766
            return
        end local 2 // java.lang.String cfName
        end local 1 // java.lang.String ksName
        end local 0 // org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/apache/cassandra/cql3/QueryProcessor$MigrationSubscriber;
            0    3     1  ksName  Ljava/lang/String;
            0    3     2  cfName  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      ksName  
      cfName  

  public void onDropFunction(java.lang.String, java.lang.String, java.util.List<org.apache.cassandra.db.marshal.AbstractType<?>>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber this
        start local 1 // java.lang.String ksName
        start local 2 // java.lang.String functionName
        start local 3 // java.util.List argTypes
         0: .line 770
            aload 1 /* ksName */
            aload 2 /* functionName */
            invokestatic org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber.removeInvalidPreparedStatementsForFunction:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 771
            return
        end local 3 // java.util.List argTypes
        end local 2 // java.lang.String functionName
        end local 1 // java.lang.String ksName
        end local 0 // org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/apache/cassandra/cql3/QueryProcessor$MigrationSubscriber;
            0    2     1        ksName  Ljava/lang/String;
            0    2     2  functionName  Ljava/lang/String;
            0    2     3      argTypes  Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;)V
    MethodParameters:
              Name  Flags
      ksName        
      functionName  
      argTypes      

  public void onDropAggregate(java.lang.String, java.lang.String, java.util.List<org.apache.cassandra.db.marshal.AbstractType<?>>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber this
        start local 1 // java.lang.String ksName
        start local 2 // java.lang.String aggregateName
        start local 3 // java.util.List argTypes
         0: .line 775
            aload 1 /* ksName */
            aload 2 /* aggregateName */
            invokestatic org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber.removeInvalidPreparedStatementsForFunction:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 776
            return
        end local 3 // java.util.List argTypes
        end local 2 // java.lang.String aggregateName
        end local 1 // java.lang.String ksName
        end local 0 // org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/apache/cassandra/cql3/QueryProcessor$MigrationSubscriber;
            0    2     1         ksName  Ljava/lang/String;
            0    2     2  aggregateName  Ljava/lang/String;
            0    2     3       argTypes  Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;)V
    MethodParameters:
               Name  Flags
      ksName         
      aggregateName  
      argTypes       

  private static boolean lambda$0(java.lang.String, java.lang.String, org.apache.cassandra.cql3.functions.Function);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/cql3/functions/Function;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 2 // org.apache.cassandra.cql3.functions.Function f
         0: .line 634
            aload 0
            aload 2 /* f */
            invokeinterface org.apache.cassandra.cql3.functions.Function.name:()Lorg/apache/cassandra/cql3/functions/FunctionName;
            getfield org.apache.cassandra.cql3.functions.FunctionName.keyspace:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 1
            aload 1
            aload 2 /* f */
            invokeinterface org.apache.cassandra.cql3.functions.Function.name:()Lorg/apache/cassandra/cql3/functions/FunctionName;
            getfield org.apache.cassandra.cql3.functions.FunctionName.name:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 2 // org.apache.cassandra.cql3.functions.Function f
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     2     f  Lorg/apache/cassandra/cql3/functions/Function;

  private static boolean lambda$1(com.google.common.base.Predicate, org.apache.cassandra.cql3.statements.ParsedStatement$Prepared);
    descriptor: (Lcom/google/common/base/Predicate;Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.apache.cassandra.cql3.statements.ParsedStatement$Prepared statement
         0: .line 649
            aload 1 /* statement */
            getfield org.apache.cassandra.cql3.statements.ParsedStatement$Prepared.statement:Lorg/apache/cassandra/cql3/CQLStatement;
            invokeinterface org.apache.cassandra.cql3.CQLStatement.getFunctions:()Ljava/lang/Iterable;
            aload 0
            invokestatic com.google.common.collect.Iterables.any:(Ljava/lang/Iterable;Lcom/google/common/base/Predicate;)Z
            ireturn
        end local 1 // org.apache.cassandra.cql3.statements.ParsedStatement$Prepared statement
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     1  statement  Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;

  private static boolean lambda$2(com.google.common.base.Predicate, org.apache.cassandra.cql3.statements.ParsedStatement$Prepared);
    descriptor: (Lcom/google/common/base/Predicate;Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.apache.cassandra.cql3.statements.ParsedStatement$Prepared statement
         0: .line 652
            aload 1 /* statement */
            getfield org.apache.cassandra.cql3.statements.ParsedStatement$Prepared.statement:Lorg/apache/cassandra/cql3/CQLStatement;
            invokeinterface org.apache.cassandra.cql3.CQLStatement.getFunctions:()Ljava/lang/Iterable;
            aload 0
            invokestatic com.google.common.collect.Iterables.any:(Ljava/lang/Iterable;Lcom/google/common/base/Predicate;)Z
            ireturn
        end local 1 // org.apache.cassandra.cql3.statements.ParsedStatement$Prepared statement
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     1  statement  Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;
}
SourceFile: "QueryProcessor.java"
NestHost: org.apache.cassandra.cql3.QueryProcessor
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map
  private MigrationSubscriber = org.apache.cassandra.cql3.QueryProcessor$MigrationSubscriber of org.apache.cassandra.cql3.QueryProcessor
  public Prepared = org.apache.cassandra.cql3.statements.ParsedStatement$Prepared of org.apache.cassandra.cql3.statements.ParsedStatement