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

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

commit dbe58b55e3434fe54f92c0f2f044443914291c5c
Merge: 2da9af0 18c0fe8
Author: Mick Semb Wever <m...@apache.org>
AuthorDate: Thu Jan 2 12:22:52 2020 +0100

    Merge branch 'cassandra-3.11' into trunk

 CHANGES.txt                                        |  1 +
 .../cassandra/db/partitions/PartitionUpdate.java   | 18 ++++++++++++
 test/unit/org/apache/cassandra/SchemaLoader.java   |  9 ++++++
 .../apache/cassandra/db/RecoveryManagerTest.java   | 32 +++++++++++++++++++++-
 4 files changed, 59 insertions(+), 1 deletion(-)

diff --cc CHANGES.txt
index 81b095c,95fecc0..e1d0ce6
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,18 -1,9 +1,19 @@@
 -3.11.6
 +4.0-alpha3
 + * Prevent read repair mutations from increasing read timeout 
(CASSANDRA-15442)
 + * Document 4.0 system keyspace changes, bump generations (CASSANDRA-15454)
 + * Make it possible to disable STCS-in-L0 during runtime (CASSANDRA-15445)
 + * Removed obsolete OldNetworkTopologyStrategy (CASSANDRA-13990)
 + * Align record header of FQL and audit binary log (CASSANDRA-15076)
 + * Shuffle forwarding replica for messages to non-local DC (CASSANDRA-15318)
 + * Optimise native protocol ASCII string encoding (CASSANDRA-15410)
 + * Make sure all exceptions are propagated in DebuggableThreadPoolExecutor 
(CASSANDRA-15332)
 + * Make it possible to resize concurrent read / write thread pools at runtime 
(CASSANDRA-15277)
 + * Close channels on error (CASSANDRA-15407)
 +Merged from 3.11:
   * Fix nodetool compactionstats showing extra pending task for TWCS - patch 
implemented (CASSANDRA-15409)
   * Fix SELECT JSON formatting for the "duration" type (CASSANDRA-15075)
 - * Fix LegacyLayout to have same behavior as 2.x when handling unknown column 
names (CASSANDRA-15081)
  Merged from 3.0:
+  * Fix point-in-time recoevery ignoring timestamp of updates to static 
columns (CASSANDRA-15292)
   * GC logs are also put under $CASSANDRA_LOG_DIR (CASSANDRA-14306)
   * Fix sstabledump's position key value when partitions have multiple rows 
(CASSANDRA-14721)
   * Avoid over-scanning data directories in LogFile.verify() (CASSANDRA-15364)
diff --cc src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java
index 31f68f4,50e4cf8..feded07
--- a/src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java
+++ b/src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java
@@@ -400,6 -506,24 +400,24 @@@ public class PartitionUpdate extends Ab
                  }
              }
          }
+ 
 -        if (holder.staticRow != null)
++        if (this.holder.staticRow != null)
+         {
 -            for (ColumnData cd : holder.staticRow.columnData())
++            for (ColumnData cd : this.holder.staticRow.columnData())
+             {
+                 if (cd.column().isSimple())
+                 {
+                     maxTimestamp = Math.max(maxTimestamp, ((Cell) 
cd).timestamp());
+                 }
+                 else
+                 {
+                     ComplexColumnData complexData = (ComplexColumnData) cd;
+                     maxTimestamp = Math.max(maxTimestamp, 
complexData.complexDeletion().markedForDeleteAt());
+                     for (Cell cell : complexData)
+                         maxTimestamp = Math.max(maxTimestamp, 
cell.timestamp());
+                 }
+             }
+         }
          return maxTimestamp;
      }
  
diff --cc test/unit/org/apache/cassandra/SchemaLoader.java
index 2bc9bda,822ee67..50a06e1
--- a/test/unit/org/apache/cassandra/SchemaLoader.java
+++ b/test/unit/org/apache/cassandra/SchemaLoader.java
@@@ -387,11 -375,22 +387,20 @@@ public class SchemaLoade
          for (int i = 0; i < columnCount; i++)
              builder.addRegularColumn("val" + i, AsciiType.instance);
  
 -        return builder.build()
 -                      .compression(getCompressionParameters());
 +        return builder;
      }
  
 -    public static CFMetaData staticCFMD(String ksName, String cfName)
++    public static TableMetadata.Builder staticCFMD(String ksName, String 
cfName)
+     {
 -        return CFMetaData.Builder.create(ksName, cfName)
 -                                 .addPartitionKey("key", AsciiType.instance)
++        return TableMetadata.builder(ksName, cfName)
++                                 .addPartitionKeyColumn("key", 
AsciiType.instance)
+                                  .addClusteringColumn("cols", 
AsciiType.instance)
+                                  .addStaticColumn("val", AsciiType.instance)
 -                                 .addRegularColumn("val2", AsciiType.instance)
 -                                 .build();
++                                 .addRegularColumn("val2", 
AsciiType.instance);
+     }
+ 
  
 -    public static CFMetaData denseCFMD(String ksName, String cfName)
 +    public static TableMetadata.Builder denseCFMD(String ksName, String 
cfName)
      {
          return denseCFMD(ksName, cfName, AsciiType.instance);
      }
diff --cc test/unit/org/apache/cassandra/db/RecoveryManagerTest.java
index 7e397c1,cc9c667..527c6a7
--- a/test/unit/org/apache/cassandra/db/RecoveryManagerTest.java
+++ b/test/unit/org/apache/cassandra/db/RecoveryManagerTest.java
@@@ -275,6 -276,34 +277,34 @@@ public class RecoveryManagerTes
      }
  
      @Test
+     public void testRecoverPITStatic() throws Exception
+     {
+         CommitLog.instance.resetUnsafe(true);
+         Keyspace keyspace1 = Keyspace.open(KEYSPACE1);
+         ColumnFamilyStore cfs = keyspace1.getColumnFamilyStore(CF_STATIC1);
+         Date date = CommitLogArchiver.format.parse("2112:12:12 12:12:12");
+         long timeMS = date.getTime() - 5000;
+ 
+ 
+         for (int i = 0; i < 10; ++i)
+         {
+             long ts = TimeUnit.MILLISECONDS.toMicros(timeMS + (i * 1000));
 -            new RowUpdateBuilder(cfs.metadata, ts, "name-" + i)
++            new RowUpdateBuilder(cfs.metadata(), ts, "name-" + i)
+             .add("val", Integer.toString(i))
+             .build()
+             .apply();
+         }
+ 
+         // Sanity check row count prior to clear and replay
+         assertEquals(10, Util.getAll(Util.cmd(cfs).build()).size());
+ 
+         keyspace1.getColumnFamilyStore(CF_STATIC1).clearUnsafe();
+         CommitLog.instance.resetUnsafe(false);
+ 
+         assertEquals(6, Util.getAll(Util.cmd(cfs).build()).size());
+     }
+ 
+     @Test
      public void testRecoverPITUnordered() throws Exception
      {
          CommitLog.instance.resetUnsafe(true);


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

Reply via email to