This is an automated email from the ASF dual-hosted git repository.

marcuse pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git


The following commit(s) were added to refs/heads/trunk by this push:
     new bd25c05d52 Test failure: 
materialized_views_test.TestMaterializedViewsConsistency.test_multi_partition_consistent_reads_after_write
bd25c05d52 is described below

commit bd25c05d526a87b90d64300fde5635aeb78a565a
Author: Marcus Eriksson <marc...@apache.org>
AuthorDate: Thu Nov 30 16:25:46 2023 +0100

    Test failure: 
materialized_views_test.TestMaterializedViewsConsistency.test_multi_partition_consistent_reads_after_write
    
    Patch by marcuse; reviewed by Sam Tunnicliffe for CASSANDRA-19056
---
 src/java/org/apache/cassandra/db/view/TableViews.java  | 8 +++++---
 src/java/org/apache/cassandra/db/view/ViewManager.java | 4 +++-
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/java/org/apache/cassandra/db/view/TableViews.java 
b/src/java/org/apache/cassandra/db/view/TableViews.java
index f717e3ec85..d054c54493 100644
--- a/src/java/org/apache/cassandra/db/view/TableViews.java
+++ b/src/java/org/apache/cassandra/db/view/TableViews.java
@@ -67,6 +67,7 @@ import org.apache.cassandra.dht.Token;
 import org.apache.cassandra.schema.TableMetadata;
 import org.apache.cassandra.schema.TableMetadataRef;
 import org.apache.cassandra.service.StorageProxy;
+import org.apache.cassandra.tcm.ClusterMetadata;
 import org.apache.cassandra.utils.FBUtilities;
 import org.apache.cassandra.utils.btree.BTree;
 import org.apache.cassandra.utils.btree.BTreeSet;
@@ -172,7 +173,7 @@ public class TableViews extends AbstractCollection<View>
     {
         assert update.metadata().id.equals(baseTableMetadata.id);
 
-        Collection<View> views = updatedViews(update);
+        Collection<View> views = updatedViews(update, 
ClusterMetadata.currentNullable());
         if (views.isEmpty())
             return;
 
@@ -391,7 +392,7 @@ public class TableViews extends AbstractCollection<View>
      * @param updates the updates applied to the base table.
      * @return the views affected by {@code updates}.
      */
-    public Collection<View> updatedViews(PartitionUpdate updates)
+    public Collection<View> updatedViews(PartitionUpdate updates, 
ClusterMetadata metadata)
     {
         List<View> matchingViews = new ArrayList<>(views.size());
 
@@ -400,7 +401,8 @@ public class TableViews extends AbstractCollection<View>
             ReadQuery selectQuery = view.getReadQuery();
             if (!selectQuery.selectsKey(updates.partitionKey()))
                 continue;
-
+            if (metadata != null && 
!metadata.schema.getKeyspaceMetadata(view.getDefinition().keyspace()).hasView(view.name))
+                continue;
             matchingViews.add(view);
         }
         return matchingViews;
diff --git a/src/java/org/apache/cassandra/db/view/ViewManager.java 
b/src/java/org/apache/cassandra/db/view/ViewManager.java
index cf6b916e05..fe0f8236f4 100644
--- a/src/java/org/apache/cassandra/db/view/ViewManager.java
+++ b/src/java/org/apache/cassandra/db/view/ViewManager.java
@@ -32,6 +32,7 @@ import org.apache.cassandra.schema.*;
 import org.apache.cassandra.db.*;
 import org.apache.cassandra.db.partitions.*;
 import org.apache.cassandra.service.StorageService;
+import org.apache.cassandra.tcm.ClusterMetadata;
 
 import static 
org.apache.cassandra.config.CassandraRelevantProperties.MV_ENABLE_COORDINATOR_BATCHLOG;
 
@@ -72,6 +73,7 @@ public class ViewManager
         if (!enableCoordinatorBatchlog && coordinatorBatchlog)
             return false;
 
+        ClusterMetadata metadata = ClusterMetadata.currentNullable();
         for (IMutation mutation : mutations)
         {
             for (PartitionUpdate update : mutation.getPartitionUpdates())
@@ -81,7 +83,7 @@ public class ViewManager
                 if (coordinatorBatchlog && 
keyspace.getReplicationStrategy().getReplicationFactor().allReplicas == 1)
                     continue;
 
-                if 
(!forTable(update.metadata()).updatedViews(update).isEmpty())
+                if (!forTable(update.metadata()).updatedViews(update, 
metadata).isEmpty())
                     return true;
             }
         }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to