[1/2] cassandra git commit: Fix secondary index queries regression
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 LererAuthored: 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
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 LererAuthored: 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;