[1/2] cassandra git commit: Fix secondary index queries regression

2017-01-27 Thread blerer
Repository: cassandra
Updated Branches:
  refs/heads/trunk e71a49e81 -> 3580f6c05


Fix secondary index queries regression

patch by Benjamin Lerer; reviewed by Sylvain Lebresne for CASSANDRA-13013


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

Branch: refs/heads/trunk
Commit: 77f0f68313a4c36bf86363e71f4775e36ccf85bc
Parents: 078a841
Author: Benjamin Lerer 
Authored: Fri Jan 27 16:06:25 2017 +0100
Committer: Benjamin Lerer 
Committed: Fri Jan 27 16:06:25 2017 +0100

--
 CHANGES.txt |  1 +
 .../cql3/restrictions/RestrictionSet.java   | 23 --
 .../restrictions/StatementRestrictions.java | 26 +---
 .../cql3/statements/ModificationStatement.java  |  8 ++--
 .../cql3/statements/SelectStatement.java| 13 +-
 .../validation/entities/SecondaryIndexTest.java | 44 
 6 files changed, 100 insertions(+), 15 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/77f0f683/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 6f7b5c2..a32ef2f 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.10
+ * Fix secondary index queries regression (CASSANDRA-13013)
  * Add duration type to the protocol V5 (CASSANDRA-12850)
  * Fix duration type validation (CASSANDRA-13143)
  * Fix flaky GcCompactionTest (CASSANDRA-12664)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/77f0f683/src/java/org/apache/cassandra/cql3/restrictions/RestrictionSet.java
--
diff --git 
a/src/java/org/apache/cassandra/cql3/restrictions/RestrictionSet.java 
b/src/java/org/apache/cassandra/cql3/restrictions/RestrictionSet.java
index 0876f3e..3a1bcb1 100644
--- a/src/java/org/apache/cassandra/cql3/restrictions/RestrictionSet.java
+++ b/src/java/org/apache/cassandra/cql3/restrictions/RestrictionSet.java
@@ -72,14 +72,14 @@ final class RestrictionSet implements Restrictions, 
Iterable
 }
 
 @Override
-public final void addRowFilterTo(RowFilter filter, SecondaryIndexManager 
indexManager, QueryOptions options) throws InvalidRequestException
+public void addRowFilterTo(RowFilter filter, SecondaryIndexManager 
indexManager, QueryOptions options) throws InvalidRequestException
 {
 for (Restriction restriction : restrictions.values())
 restriction.addRowFilterTo(filter, indexManager, options);
 }
 
 @Override
-public final List getColumnDefs()
+public List getColumnDefs()
 {
 return new ArrayList<>(restrictions.keySet());
 }
@@ -92,18 +92,33 @@ final class RestrictionSet implements Restrictions, 
Iterable
 }
 
 @Override
-public final boolean isEmpty()
+public boolean isEmpty()
 {
 return restrictions.isEmpty();
 }
 
 @Override
-public final int size()
+public int size()
 {
 return restrictions.size();
 }
 
 /**
+ * Checks if one of the restrictions applies to a column of the specific 
kind.
+ * @param kind the column kind
+ * @return {@code true} if one of the restrictions applies to a column of 
the specific kind, {@code false} otherwise.
+ */
+public boolean hasRestrictionFor(ColumnDefinition.Kind kind)
+{
+for (ColumnDefinition column : restrictions.keySet())
+{
+if (column.kind == kind)
+return true;
+}
+return false;
+}
+
+/**
  * Adds the specified restriction to this set of restrictions.
  *
  * @param restriction the restriction to add

http://git-wip-us.apache.org/repos/asf/cassandra/blob/77f0f683/src/java/org/apache/cassandra/cql3/restrictions/StatementRestrictions.java
--
diff --git 
a/src/java/org/apache/cassandra/cql3/restrictions/StatementRestrictions.java 
b/src/java/org/apache/cassandra/cql3/restrictions/StatementRestrictions.java
index 6b89579..8a8ee56 100644
--- a/src/java/org/apache/cassandra/cql3/restrictions/StatementRestrictions.java
+++ b/src/java/org/apache/cassandra/cql3/restrictions/StatementRestrictions.java
@@ -24,6 +24,7 @@ import com.google.common.base.Joiner;
 
 import org.apache.cassandra.config.CFMetaData;
 import org.apache.cassandra.config.ColumnDefinition;
+import org.apache.cassandra.config.ColumnDefinition.Kind;
 import org.apache.cassandra.cql3.*;
 import org.apache.cassandra.cql3.functions.Function;
 import org.apache.cassandra.cql3.statements.Bound;
@@ -96,6 +97,12 

cassandra git commit: Fix secondary index queries regression

2017-01-27 Thread blerer
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.11 078a84154 -> 77f0f6831


Fix secondary index queries regression

patch by Benjamin Lerer; reviewed by Sylvain Lebresne for CASSANDRA-13013


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

Branch: refs/heads/cassandra-3.11
Commit: 77f0f68313a4c36bf86363e71f4775e36ccf85bc
Parents: 078a841
Author: Benjamin Lerer 
Authored: Fri Jan 27 16:06:25 2017 +0100
Committer: Benjamin Lerer 
Committed: Fri Jan 27 16:06:25 2017 +0100

--
 CHANGES.txt |  1 +
 .../cql3/restrictions/RestrictionSet.java   | 23 --
 .../restrictions/StatementRestrictions.java | 26 +---
 .../cql3/statements/ModificationStatement.java  |  8 ++--
 .../cql3/statements/SelectStatement.java| 13 +-
 .../validation/entities/SecondaryIndexTest.java | 44 
 6 files changed, 100 insertions(+), 15 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/77f0f683/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 6f7b5c2..a32ef2f 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.10
+ * Fix secondary index queries regression (CASSANDRA-13013)
  * Add duration type to the protocol V5 (CASSANDRA-12850)
  * Fix duration type validation (CASSANDRA-13143)
  * Fix flaky GcCompactionTest (CASSANDRA-12664)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/77f0f683/src/java/org/apache/cassandra/cql3/restrictions/RestrictionSet.java
--
diff --git 
a/src/java/org/apache/cassandra/cql3/restrictions/RestrictionSet.java 
b/src/java/org/apache/cassandra/cql3/restrictions/RestrictionSet.java
index 0876f3e..3a1bcb1 100644
--- a/src/java/org/apache/cassandra/cql3/restrictions/RestrictionSet.java
+++ b/src/java/org/apache/cassandra/cql3/restrictions/RestrictionSet.java
@@ -72,14 +72,14 @@ final class RestrictionSet implements Restrictions, 
Iterable
 }
 
 @Override
-public final void addRowFilterTo(RowFilter filter, SecondaryIndexManager 
indexManager, QueryOptions options) throws InvalidRequestException
+public void addRowFilterTo(RowFilter filter, SecondaryIndexManager 
indexManager, QueryOptions options) throws InvalidRequestException
 {
 for (Restriction restriction : restrictions.values())
 restriction.addRowFilterTo(filter, indexManager, options);
 }
 
 @Override
-public final List getColumnDefs()
+public List getColumnDefs()
 {
 return new ArrayList<>(restrictions.keySet());
 }
@@ -92,18 +92,33 @@ final class RestrictionSet implements Restrictions, 
Iterable
 }
 
 @Override
-public final boolean isEmpty()
+public boolean isEmpty()
 {
 return restrictions.isEmpty();
 }
 
 @Override
-public final int size()
+public int size()
 {
 return restrictions.size();
 }
 
 /**
+ * Checks if one of the restrictions applies to a column of the specific 
kind.
+ * @param kind the column kind
+ * @return {@code true} if one of the restrictions applies to a column of 
the specific kind, {@code false} otherwise.
+ */
+public boolean hasRestrictionFor(ColumnDefinition.Kind kind)
+{
+for (ColumnDefinition column : restrictions.keySet())
+{
+if (column.kind == kind)
+return true;
+}
+return false;
+}
+
+/**
  * Adds the specified restriction to this set of restrictions.
  *
  * @param restriction the restriction to add

http://git-wip-us.apache.org/repos/asf/cassandra/blob/77f0f683/src/java/org/apache/cassandra/cql3/restrictions/StatementRestrictions.java
--
diff --git 
a/src/java/org/apache/cassandra/cql3/restrictions/StatementRestrictions.java 
b/src/java/org/apache/cassandra/cql3/restrictions/StatementRestrictions.java
index 6b89579..8a8ee56 100644
--- a/src/java/org/apache/cassandra/cql3/restrictions/StatementRestrictions.java
+++ b/src/java/org/apache/cassandra/cql3/restrictions/StatementRestrictions.java
@@ -24,6 +24,7 @@ import com.google.common.base.Joiner;
 
 import org.apache.cassandra.config.CFMetaData;
 import org.apache.cassandra.config.ColumnDefinition;
+import org.apache.cassandra.config.ColumnDefinition.Kind;
 import org.apache.cassandra.cql3.*;
 import org.apache.cassandra.cql3.functions.Function;
 import org.apache.cassandra.cql3.statements.Bound;