Merge branch 'cassandra-3.0' into cassandra-3.11

Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fadf2e83
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fadf2e83
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fadf2e83

Branch: refs/heads/trunk
Commit: fadf2e8392bc41e75d475f9c6a141059c9480f6d
Parents: 0fdbcc3 433f24c
Author: Jeff Jirsa <jji...@apple.com>
Authored: Mon Sep 11 09:35:58 2017 -0700
Committer: Jeff Jirsa <jji...@apple.com>
Committed: Mon Sep 11 09:36:20 2017 -0700

----------------------------------------------------------------------
 CHANGES.txt                                     |   1 +
 .../cql3/statements/BatchStatement.java         |  36 ++++--
 .../cql3/statements/CQL3CasRequest.java         |  32 ++++++
 .../cql3/statements/ModificationStatement.java  |  15 ++-
 .../org/apache/cassandra/cql3/BatchTests.java   |  51 +++++++--
 .../cql3/validation/operations/BatchTest.java   | 111 +++++++++++++++++++
 6 files changed, 220 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/fadf2e83/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 23e6c8b,76d155e..52775e7
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,15 -1,5 +1,16 @@@
 -3.0.15
 +3.11.1
 + * Add a compaction option to TWCS to ignore sstables overlapping checks 
(CASSANDRA-13418)
 + * BTree.Builder memory leak (CASSANDRA-13754)
 + * Revert CASSANDRA-10368 of supporting non-pk column filtering due to 
correctness (CASSANDRA-13798)
 + * Fix cassandra-stress hang issues when an error during cluster connection 
happens (CASSANDRA-12938)
 + * Better bootstrap failure message when blocked by (potential) range 
movement (CASSANDRA-13744)
 + * "ignore" option is ignored in sstableloader (CASSANDRA-13721)
 + * Deadlock in AbstractCommitLogSegmentManager (CASSANDRA-13652)
 + * Duplicate the buffer before passing it to analyser in SASI operation 
(CASSANDRA-13512)
 + * Properly evict pstmts from prepared statements cache (CASSANDRA-13641)
 +Merged from 3.0:
+  * Range deletes in a CAS batch are ignored (CASSANDRA-13655)
 + * Avoid assertion error when IndexSummary > 2G (CASSANDRA-12014)
   * Change repair midpoint logging for tiny ranges (CASSANDRA-13603)
   * Better handle corrupt final commitlog segment (CASSANDRA-11995)
   * StreamingHistogram is not thread safe (CASSANDRA-13756)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/fadf2e83/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/fadf2e83/src/java/org/apache/cassandra/cql3/statements/CQL3CasRequest.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/cql3/statements/CQL3CasRequest.java
index 5683af4,e14ae6c..47920a4
--- a/src/java/org/apache/cassandra/cql3/statements/CQL3CasRequest.java
+++ b/src/java/org/apache/cassandra/cql3/statements/CQL3CasRequest.java
@@@ -226,8 -232,14 +232,10 @@@ public class CQL3CasRequest implements 
          PartitionUpdate update = new PartitionUpdate(cfm, key, 
updatedColumns(), conditions.size());
          for (RowUpdate upd : updates)
              upd.applyUpdates(current, update);
+         for (RangeDeletion upd : rangeDeletions)
+             upd.applyUpdates(current, update);
  
          Keyspace.openAndGetStore(cfm).indexManager.validate(update);
 -
 -        if (isBatch)
 -            BatchStatement.verifyBatchSize(Collections.singleton(update));
 -
          return update;
      }
  
@@@ -260,6 -272,29 +268,30 @@@
          }
      }
  
+     private class RangeDeletion
+     {
+         private final Slice slice;
+         private final ModificationStatement stmt;
+         private final QueryOptions options;
+         private final long timestamp;
+ 
+         private RangeDeletion(Slice slice, ModificationStatement stmt, 
QueryOptions options, long timestamp)
+         {
+             this.slice = slice;
+             this.stmt = stmt;
+             this.options = options;
+             this.timestamp = timestamp;
+         }
+ 
+         public void applyUpdates(FilteredPartition current, PartitionUpdate 
updates) throws InvalidRequestException
+         {
++            // No slice statements currently require a read, but this 
maintains consistency with RowUpdate, and future proofs us
+             Map<DecoratedKey, Partition> map = stmt.requiresRead() ? 
Collections.<DecoratedKey, Partition>singletonMap(key, current) : null;
+             UpdateParameters params = new UpdateParameters(cfm, 
updates.columns(), options, timestamp, stmt.getTimeToLive(options), map);
+             stmt.addUpdateForKey(updates, slice, params);
+         }
+     }
+ 
      private static abstract class RowCondition
      {
          public final Clustering clustering;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/fadf2e83/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java
----------------------------------------------------------------------
diff --cc 
src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java
index 832d417,0afd34d..c925128
--- a/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java
@@@ -406,7 -402,14 +406,14 @@@ public abstract class ModificationState
          return !conditions.isEmpty();
      }
  
+     public boolean hasSlices()
+     {
+         return type.allowClusteringColumnSlices()
 -               && getRestrictions().hasClusteringColumnsRestriction()
++               && getRestrictions().hasClusteringColumnsRestrictions()
+                && getRestrictions().isColumnRange();
+     }
+ 
 -    public ResultMessage execute(QueryState queryState, QueryOptions options)
 +    public ResultMessage execute(QueryState queryState, QueryOptions options, 
long queryStartNanoTime)
      throws RequestExecutionException, RequestValidationException
      {
          if (options.getConsistency() == null)
@@@ -697,10 -698,10 +702,10 @@@
          }
      }
  
-     private Slices createSlice(QueryOptions options)
+     Slices createSlices(QueryOptions options)
      {
 -        SortedSet<Slice.Bound> startBounds = 
restrictions.getClusteringColumnsBounds(Bound.START, options);
 -        SortedSet<Slice.Bound> endBounds = 
restrictions.getClusteringColumnsBounds(Bound.END, options);
 +        SortedSet<ClusteringBound> startBounds = 
restrictions.getClusteringColumnsBounds(Bound.START, options);
 +        SortedSet<ClusteringBound> endBounds = 
restrictions.getClusteringColumnsBounds(Bound.END, options);
  
          return toSlices(startBounds, endBounds);
      }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/fadf2e83/test/unit/org/apache/cassandra/cql3/validation/operations/BatchTest.java
----------------------------------------------------------------------


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

Reply via email to