You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by bl...@apache.org on 2016/03/04 22:14:37 UTC
[6/6] cassandra git commit: Merge branch cassandra-3.0 into
cassandra-3.5
Merge branch cassandra-3.0 into cassandra-3.5
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/8c83c8ed
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/8c83c8ed
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/8c83c8ed
Branch: refs/heads/cassandra-3.5
Commit: 8c83c8edab4f1c23c382bb0ac076cab44d5f4dda
Parents: a8dc14d 9c3855b
Author: Benjamin Lerer <b....@gmail.com>
Authored: Fri Mar 4 22:12:33 2016 +0100
Committer: Benjamin Lerer <b....@gmail.com>
Committed: Fri Mar 4 22:13:35 2016 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../cassandra/cql3/SingleColumnRelation.java | 4 -
.../restrictions/StatementRestrictions.java | 25 +-
.../cql3/statements/SelectStatement.java | 12 +-
.../apache/cassandra/db/filter/RowFilter.java | 50 +-
.../index/internal/CassandraIndex.java | 23 +-
.../entities/FrozenCollectionsTest.java | 3 +-
.../validation/entities/SecondaryIndexTest.java | 3 +-
.../cql3/validation/operations/DeleteTest.java | 10 +-
.../SelectMultiColumnRelationTest.java | 54 +-
.../SelectSingleColumnRelationTest.java | 51 +-
.../cql3/validation/operations/SelectTest.java | 1063 +++++++++++++++++-
.../cql3/validation/operations/UpdateTest.java | 8 +-
.../apache/cassandra/index/CustomIndexTest.java | 4 +-
.../index/internal/CassandraIndexTest.java | 34 +-
15 files changed, 1199 insertions(+), 146 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8c83c8ed/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index a6cae21,7204098..4c21d66
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,5 -1,5 +1,6 @@@
-3.0.5
+3.5
+Merged from 3.0:
+ * Fix filtering on non-primary key columns for queries without index (CASSANDRA-6377)
* Fix sstableloader fail when using materialized view (CASSANDRA-11275)
Merged from 2.2:
* Only log yaml config once, at startup (CASSANDRA-11217)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8c83c8ed/src/java/org/apache/cassandra/cql3/SingleColumnRelation.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8c83c8ed/src/java/org/apache/cassandra/cql3/restrictions/StatementRestrictions.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8c83c8ed/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
index d3a79d0,51d675b..2f4d468
--- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
@@@ -702,9 -696,8 +696,7 @@@ public class SelectStatement implement
// we want to include static columns and we're done.
if (!partition.hasNext())
{
- if (!staticRow.isEmpty()
- && (!restrictions.hasClusteringColumnsRestriction() || cfm.isStaticCompactTable())
- && !restrictions.hasRegularColumnsRestriction())
- if (!staticRow.isEmpty() && (!restrictions.usesSecondaryIndexing() || cfm.isStaticCompactTable())
- && !restrictions.hasClusteringColumnsRestriction())
++ if (!staticRow.isEmpty() && (!restrictions.hasClusteringColumnsRestriction() || cfm.isStaticCompactTable()))
{
result.newRow(protocolVersion);
for (ColumnDefinition def : selection.getColumns())
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8c83c8ed/src/java/org/apache/cassandra/db/filter/RowFilter.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8c83c8ed/src/java/org/apache/cassandra/index/internal/CassandraIndex.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/index/internal/CassandraIndex.java
index f503e59,74d3f5d..c3e75e0
--- a/src/java/org/apache/cassandra/index/internal/CassandraIndex.java
+++ b/src/java/org/apache/cassandra/index/internal/CassandraIndex.java
@@@ -5,12 -5,13 +5,11 @@@ import java.util.*
import java.util.concurrent.Callable;
import java.util.concurrent.Future;
import java.util.function.BiFunction;
-import java.util.regex.Matcher;
--import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
import com.google.common.collect.ImmutableSet;
- import org.apache.cassandra.index.TargetParser;
-import org.apache.commons.lang3.StringUtils;
++
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@@ -31,9 -33,9 +30,7 @@@ import org.apache.cassandra.db.partitio
import org.apache.cassandra.db.rows.*;
import org.apache.cassandra.dht.LocalPartitioner;
import org.apache.cassandra.exceptions.InvalidRequestException;
--import org.apache.cassandra.index.Index;
--import org.apache.cassandra.index.IndexRegistry;
--import org.apache.cassandra.index.SecondaryIndexBuilder;
++import org.apache.cassandra.index.*;
import org.apache.cassandra.index.internal.composites.CompositesSearcher;
import org.apache.cassandra.index.internal.keys.KeysSearcher;
import org.apache.cassandra.index.transactions.IndexTransaction;
@@@ -266,7 -285,7 +278,6 @@@ public abstract class CassandraIndex im
if (target.isPresent())
{
-- target.get().validateForIndexing();
switch (getIndexMetadata().kind)
{
case COMPOSITES:
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8c83c8ed/test/unit/org/apache/cassandra/cql3/validation/entities/SecondaryIndexTest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8c83c8ed/test/unit/org/apache/cassandra/cql3/validation/operations/DeleteTest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8c83c8ed/test/unit/org/apache/cassandra/cql3/validation/operations/SelectTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/cql3/validation/operations/SelectTest.java
index 8622c98,a7eeeb8..c5feccb
--- a/test/unit/org/apache/cassandra/cql3/validation/operations/SelectTest.java
+++ b/test/unit/org/apache/cassandra/cql3/validation/operations/SelectTest.java
@@@ -511,18 -515,18 +515,18 @@@ public class SelectTest extends CQLTest
row("test", 5, map("lmn", "foo"))
);
- assertInvalidMessage("Unsupported null value for indexed column categories",
+ assertInvalidMessage("Unsupported null value for column categories",
"SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS ?", "test", 5, null);
- assertInvalidMessage("Unsupported unset value for indexed column categories",
+ assertInvalidMessage("Unsupported unset value for column categories",
"SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS ?", "test", 5, unset());
- assertInvalidMessage("Cannot execute this query as it might involve data filtering and thus may have unpredictable performance. If you want to execute this query despite the performance unpredictability, use ALLOW FILTERING",
+ assertInvalidMessage(StatementRestrictions.REQUIRES_ALLOW_FILTERING_MESSAGE,
- "SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS ? AND categories CONTAINS ?",
- "test", 5, "foo", "notPresent");
+ "SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS ? AND categories CONTAINS ?"
+ , "test", 5, "foo", "notPresent");
- assertEmpty(execute("SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS ? AND categories CONTAINS ? ALLOW FILTERING",
- "test", 5, "foo", "notPresent"));
+ assertEmpty(execute("SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS ? AND categories CONTAINS ? ALLOW FILTERING"
+ , "test", 5, "foo", "notPresent"));
}
// See CASSANDRA-7525
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8c83c8ed/test/unit/org/apache/cassandra/cql3/validation/operations/UpdateTest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8c83c8ed/test/unit/org/apache/cassandra/index/CustomIndexTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/index/CustomIndexTest.java
index 79e94ec,b1fd992..6be0ffa
--- a/test/unit/org/apache/cassandra/index/CustomIndexTest.java
+++ b/test/unit/org/apache/cassandra/index/CustomIndexTest.java
@@@ -15,12 -15,12 +15,12 @@@ import org.apache.cassandra.config.CFMe
import org.apache.cassandra.cql3.CQLTester;
import org.apache.cassandra.cql3.ColumnIdentifier;
import org.apache.cassandra.cql3.restrictions.IndexRestrictions;
+ import org.apache.cassandra.cql3.restrictions.StatementRestrictions;
import org.apache.cassandra.cql3.statements.IndexTarget;
import org.apache.cassandra.cql3.statements.ModificationStatement;
- import org.apache.cassandra.cql3.statements.SelectStatement;
import org.apache.cassandra.db.ColumnFamilyStore;
import org.apache.cassandra.db.ReadCommand;
-import org.apache.cassandra.db.ReadOrderGroup;
+import org.apache.cassandra.db.ReadExecutionController;
import org.apache.cassandra.db.marshal.AbstractType;
import org.apache.cassandra.db.marshal.Int32Type;
import org.apache.cassandra.db.marshal.UTF8Type;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8c83c8ed/test/unit/org/apache/cassandra/index/internal/CassandraIndexTest.java
----------------------------------------------------------------------