Merge branch 'cassandra-2.1' into trunk
Conflicts:
src/java/org/apache/cassandra/cql/QueryProcessor.java
src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
test/unit/org/apache/cassandra/db/CleanupTest.java
test/unit/org/apache/cassandra/db/ColumnFamilyStoreTest.java
test/unit/org/apache/cassandra/streaming/StreamingTransferTest.java
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/525ac00c
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/525ac00c
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/525ac00c
Branch: refs/heads/trunk
Commit: 525ac00c0fca71632fa9bb97b2a8b9e844b9850c
Parents: 72d187c 5117a5d
Author: Tyler Hobbs <[email protected]>
Authored: Tue Nov 4 10:39:36 2014 -0600
Committer: Tyler Hobbs <[email protected]>
Committed: Tue Nov 4 10:39:36 2014 -0600
----------------------------------------------------------------------
CHANGES.txt | 2 +
pylib/cqlshlib/cql3handling.py | 4 +-
.../org/apache/cassandra/config/CFMetaData.java | 2 +-
.../cassandra/config/ColumnDefinition.java | 12 +++
.../apache/cassandra/cql3/ColumnCondition.java | 98 ++++++++++----------
src/java/org/apache/cassandra/cql3/Cql.g | 18 ++--
.../cassandra/cql3/MultiColumnRelation.java | 14 +--
.../org/apache/cassandra/cql3/Operator.java | 93 +++++++++++++++++++
.../org/apache/cassandra/cql3/Relation.java | 45 +--------
.../cassandra/cql3/SingleColumnRelation.java | 18 ++--
.../cql3/statements/CreateIndexStatement.java | 6 +-
.../cql3/statements/ModificationStatement.java | 4 +-
.../cassandra/cql3/statements/Restriction.java | 12 ++-
.../cql3/statements/SelectStatement.java | 53 ++++++-----
.../statements/SingleColumnRestriction.java | 17 ++--
.../apache/cassandra/db/IndexExpression.java | 89 ++++++++++--------
.../apache/cassandra/db/PagedRangeCommand.java | 10 +-
.../apache/cassandra/db/RangeSliceCommand.java | 11 +--
.../cassandra/db/filter/ExtendedFilter.java | 31 ++++---
.../cassandra/db/index/SecondaryIndex.java | 18 ++++
.../db/index/SecondaryIndexManager.java | 2 +-
.../db/index/SecondaryIndexSearcher.java | 7 +-
.../db/index/composites/CompositesIndex.java | 9 +-
.../CompositesIndexOnCollectionKey.java | 8 ++
.../CompositesIndexOnCollectionValue.java | 7 ++
.../cassandra/db/marshal/CollectionType.java | 9 ++
.../cassandra/db/marshal/CompositeType.java | 4 +-
.../cassandra/thrift/ThriftConversion.java | 3 +-
.../cassandra/cql3/ColumnConditionTest.java | 48 +++++-----
.../cassandra/cql3/ContainsRelationTest.java | 44 +++++++++
.../org/apache/cassandra/db/CleanupTest.java | 11 ++-
.../cassandra/db/ColumnFamilyStoreTest.java | 47 +++++-----
.../cassandra/io/sstable/SSTableReaderTest.java | 3 +-
.../streaming/StreamingTransferTest.java | 3 +-
34 files changed, 473 insertions(+), 289 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/525ac00c/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 61d6226,7fb32fe..327bfef
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,37 -1,6 +1,39 @@@
+3.0
+ * Mark sstables as repaired after full repair (CASSANDRA-7586)
+ * Extend Descriptor to include a format value and refactor reader/writer
apis (CASSANDRA-7443)
+ * Integrate JMH for microbenchmarks (CASSANDRA-8151)
+ * Keep sstable levels when bootstrapping (CASSANDRA-7460)
+ * Add Sigar library and perform basic OS settings check on startup
(CASSANDRA-7838)
+ * Support for aggregation functions (CASSANDRA-4914)
+ * Remove cassandra-cli (CASSANDRA-7920)
+ * Accept dollar quoted strings in CQL (CASSANDRA-7769)
+ * Make assassinate a first class command (CASSANDRA-7935)
+ * Support IN clause on any clustering column (CASSANDRA-4762)
+ * Improve compaction logging (CASSANDRA-7818)
+ * Remove YamlFileNetworkTopologySnitch (CASSANDRA-7917)
+ * Do anticompaction in groups (CASSANDRA-6851)
+ * Support pure user-defined functions (CASSANDRA-7395, 7526, 7562, 7740,
7781, 7929,
+ 7924, 7812, 8063)
+ * Permit configurable timestamps with cassandra-stress (CASSANDRA-7416)
+ * Move sstable RandomAccessReader to nio2, which allows using the
+ FILE_SHARE_DELETE flag on Windows (CASSANDRA-4050)
+ * Remove CQL2 (CASSANDRA-5918)
+ * Add Thrift get_multi_slice call (CASSANDRA-6757)
+ * Optimize fetching multiple cells by name (CASSANDRA-6933)
+ * Allow compilation in java 8 (CASSANDRA-7028)
+ * Make incremental repair default (CASSANDRA-7250)
+ * Enable code coverage thru JaCoCo (CASSANDRA-7226)
+ * Switch external naming of 'column families' to 'tables' (CASSANDRA-4369)
+ * Shorten SSTable path (CASSANDRA-6962)
+ * Use unsafe mutations for most unit tests (CASSANDRA-6969)
+ * Fix race condition during calculation of pending ranges (CASSANDRA-7390)
+ * Fail on very large batch sizes (CASSANDRA-8011)
+ * improve concurrency of repair (CASSANDRA-6455)
+
+
2.1.2
+ * Fix issues with CONTAINS (KEY) queries on secondary indexes
+ (CASSANDRA-8147)
* Fix read-rate tracking of sstables for some queries (CASSANDRA-8239)
* Fix default timestamp in QueryOptions (CASSANDRA-8246)
* Set socket timeout when reading remote version (CASSANDRA-8188)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/525ac00c/pylib/cqlshlib/cql3handling.py
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/525ac00c/src/java/org/apache/cassandra/config/CFMetaData.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/525ac00c/src/java/org/apache/cassandra/config/ColumnDefinition.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/525ac00c/src/java/org/apache/cassandra/cql3/ColumnCondition.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/525ac00c/src/java/org/apache/cassandra/cql3/Cql.g
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/525ac00c/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/525ac00c/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
index 3e4ba96,aa01c93..de9da86
--- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
@@@ -822,16 -840,36 +823,16 @@@ public class SelectStatement implement
}
if (r.isSlice())
{
- builder.add(getSliceValue(r, b, options));
- Operator relType =
((Restriction.Slice)r).getRelation(eocBound, b);
- return
Collections.singletonList(builder.build().withEOC(eocForRelation(relType)));
+ compositeBuilder.addElementToAll(getSliceValue(r, b,
options));
- Relation.Type relType = ((Restriction.Slice)
r).getRelation(eocBound, b);
++ Operator relType = ((Restriction.Slice)
r).getRelation(eocBound, b);
+ return compositeBuilder.buildWithEOC(eocForRelation(relType));
}
- else
- {
- List<ByteBuffer> values = r.values(options);
- if (values.size() != 1)
- {
- // IN query, we only support it on the clustering columns
- assert def.position() == defs.size() - 1;
- // The IN query might not have listed the values in
comparator order, so we need to re-sort
- // the bounds lists to make sure the slices works
correctly (also, to avoid duplicates).
- TreeSet<Composite> s = new TreeSet<>(isReversed ?
type.reverseComparator() : type);
- for (ByteBuffer val : values)
- {
- if (val == null)
- throw new
InvalidRequestException(String.format("Invalid null clustering key part %s",
def.name));
- Composite prefix = builder.buildWith(val);
- // See below for why this
- s.add((eocBound == Bound.END &&
builder.remainingCount() > 0) ? prefix.end() : prefix);
- }
- return new ArrayList<>(s);
- }
- ByteBuffer val = values.get(0);
- if (val == null)
- throw new InvalidRequestException(String.format("Invalid
null clustering key part %s", def.name));
- builder.add(val);
- }
+ compositeBuilder.addEachElementToAll(r.values(options));
+
+ if (compositeBuilder.containsNull())
+ throw new InvalidRequestException(
+ String.format("Invalid null clustering key part %s",
def.name));
}
// Means no relation at all or everything was an equal
// Note: if the builder is "full", there is no need to use the
end-of-component bit. For columns selection,
@@@ -839,11 -877,11 +840,11 @@@
// with 2ndary index is done, and with the the partition provided
with an EQ, we'll end up here, and in that
// case using the eoc would be bad, since for the random partitioner
we have no guarantee that
// prefix.end() will sort after prefix (see #5240).
- Composite prefix = builder.build();
- return Collections.singletonList(eocBound == Bound.END &&
builder.remainingCount() > 0 ? prefix.end() : prefix);
+ EOC eoc = eocBound == Bound.END && compositeBuilder.hasRemaining() ?
EOC.END : EOC.NONE;
+ return compositeBuilder.buildWithEOC(eoc);
}
- private static Composite.EOC eocForRelation(Relation.Type op)
+ private static Composite.EOC eocForRelation(Operator op)
{
switch (op)
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/525ac00c/src/java/org/apache/cassandra/db/index/SecondaryIndex.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/index/SecondaryIndex.java
index c50019a,e2bafaa..b52b6a2
--- a/src/java/org/apache/cassandra/db/index/SecondaryIndex.java
+++ b/src/java/org/apache/cassandra/db/index/SecondaryIndex.java
@@@ -26,8 -26,8 +26,9 @@@ import java.util.concurrent.ConcurrentH
import java.util.concurrent.Future;
import java.util.concurrent.FutureTask;
+import org.apache.cassandra.io.sstable.format.SSTableReader;
import org.apache.commons.lang3.StringUtils;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/525ac00c/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/525ac00c/test/unit/org/apache/cassandra/cql3/ContainsRelationTest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/525ac00c/test/unit/org/apache/cassandra/db/CleanupTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/db/CleanupTest.java
index 21de96f,06f8997..5d2217b
--- a/test/unit/org/apache/cassandra/db/CleanupTest.java
+++ b/test/unit/org/apache/cassandra/db/CleanupTest.java
@@@ -29,12 -28,14 +28,16 @@@ import java.util.List
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
++import org.junit.BeforeClass;
+ import org.junit.Test;
+
import org.apache.cassandra.SchemaLoader;
import org.apache.cassandra.Util;
+import org.apache.cassandra.config.KSMetaData;
+ import org.apache.cassandra.cql3.Operator;
+import org.apache.cassandra.db.filter.IDiskAtomFilter;
import org.apache.cassandra.db.columniterator.IdentityQueryFilter;
import org.apache.cassandra.db.compaction.CompactionManager;
-import org.apache.cassandra.db.filter.IDiskAtomFilter;
import org.apache.cassandra.db.index.SecondaryIndex;
import org.apache.cassandra.dht.BytesToken;
import org.apache.cassandra.dht.Range;
@@@ -44,13 -43,13 +47,13 @@@ import org.apache.cassandra.locator.Sim
import org.apache.cassandra.locator.TokenMetadata;
import org.apache.cassandra.service.StorageService;
import org.apache.cassandra.utils.ByteBufferUtil;
- import org.junit.BeforeClass;
- import org.junit.Test;
+
+ import static org.junit.Assert.assertEquals;
-public class CleanupTest extends SchemaLoader
+public class CleanupTest
{
public static final int LOOPS = 200;
- public static final String KEYSPACE1 = "Keyspace1";
+ public static final String KEYSPACE1 = "CleanupTest1";
public static final String CF1 = "Indexed1";
public static final String CF2 = "Standard1";
public static final ByteBuffer COLUMN = ByteBufferUtil.bytes("birthdate");
http://git-wip-us.apache.org/repos/asf/cassandra/blob/525ac00c/test/unit/org/apache/cassandra/db/ColumnFamilyStoreTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/db/ColumnFamilyStoreTest.java
index 0b07e1a,243b2d2..bdb5670
--- a/test/unit/org/apache/cassandra/db/ColumnFamilyStoreTest.java
+++ b/test/unit/org/apache/cassandra/db/ColumnFamilyStoreTest.java
@@@ -55,7 -51,12 +55,8 @@@ import org.junit.runner.RunWith
import org.apache.cassandra.OrderedJUnit4ClassRunner;
import org.apache.cassandra.SchemaLoader;
import org.apache.cassandra.Util;
-import org.apache.cassandra.config.CFMetaData;
-import org.apache.cassandra.config.ColumnDefinition;
-import org.apache.cassandra.config.DatabaseDescriptor;
-import org.apache.cassandra.config.IndexType;
-import org.apache.cassandra.config.Schema;
+import org.apache.cassandra.config.*;
+ import org.apache.cassandra.cql3.Operator;
import org.apache.cassandra.db.columniterator.IdentityQueryFilter;
import org.apache.cassandra.db.composites.CellName;
import org.apache.cassandra.db.composites.CellNameType;
@@@ -255,28 -215,28 +256,28 @@@ public class ColumnFamilyStoreTes
CellName nobirthdate = cellname("notbirthdate");
CellName birthdate = cellname("birthdate");
- rm = new Mutation("Keyspace1", ByteBufferUtil.bytes("k1"));
- rm.add("Indexed1", nobirthdate, ByteBufferUtil.bytes(1L), 0);
- rm.add("Indexed1", birthdate, ByteBufferUtil.bytes(1L), 0);
- rm.apply();
+ rm = new Mutation(KEYSPACE1, ByteBufferUtil.bytes("k1"));
+ rm.add(CF_INDEX1, nobirthdate, ByteBufferUtil.bytes(1L), 0);
+ rm.add(CF_INDEX1, birthdate, ByteBufferUtil.bytes(1L), 0);
+ rm.applyUnsafe();
- rm = new Mutation("Keyspace1", ByteBufferUtil.bytes("k2"));
- rm.add("Indexed1", nobirthdate, ByteBufferUtil.bytes(2L), 0);
- rm.add("Indexed1", birthdate, ByteBufferUtil.bytes(2L), 0);
- rm.apply();
+ rm = new Mutation(KEYSPACE1, ByteBufferUtil.bytes("k2"));
+ rm.add(CF_INDEX1, nobirthdate, ByteBufferUtil.bytes(2L), 0);
+ rm.add(CF_INDEX1, birthdate, ByteBufferUtil.bytes(2L), 0);
+ rm.applyUnsafe();
- rm = new Mutation("Keyspace1", ByteBufferUtil.bytes("k3"));
- rm.add("Indexed1", nobirthdate, ByteBufferUtil.bytes(2L), 0);
- rm.add("Indexed1", birthdate, ByteBufferUtil.bytes(1L), 0);
- rm.apply();
+ rm = new Mutation(KEYSPACE1, ByteBufferUtil.bytes("k3"));
+ rm.add(CF_INDEX1, nobirthdate, ByteBufferUtil.bytes(2L), 0);
+ rm.add(CF_INDEX1, birthdate, ByteBufferUtil.bytes(1L), 0);
+ rm.applyUnsafe();
- rm = new Mutation("Keyspace1", ByteBufferUtil.bytes("k4aaaa"));
- rm.add("Indexed1", nobirthdate, ByteBufferUtil.bytes(2L), 0);
- rm.add("Indexed1", birthdate, ByteBufferUtil.bytes(3L), 0);
- rm.apply();
+ rm = new Mutation(KEYSPACE1, ByteBufferUtil.bytes("k4aaaa"));
+ rm.add(CF_INDEX1, nobirthdate, ByteBufferUtil.bytes(2L), 0);
+ rm.add(CF_INDEX1, birthdate, ByteBufferUtil.bytes(3L), 0);
+ rm.applyUnsafe();
// basic single-expression query
- IndexExpression expr = new
IndexExpression(ByteBufferUtil.bytes("birthdate"), IndexExpression.Operator.EQ,
ByteBufferUtil.bytes(1L));
+ IndexExpression expr = new
IndexExpression(ByteBufferUtil.bytes("birthdate"), Operator.EQ,
ByteBufferUtil.bytes(1L));
List<IndexExpression> clause = Arrays.asList(expr);
IDiskAtomFilter filter = new IdentityQueryFilter();
Range<RowPosition> range = Util.range("", "");
@@@ -363,14 -323,14 +364,14 @@@
@Test
public void testIndexDeletions() throws IOException
{
- ColumnFamilyStore cfs =
Keyspace.open("Keyspace3").getColumnFamilyStore("Indexed1");
+ ColumnFamilyStore cfs =
Keyspace.open(KEYSPACE3).getColumnFamilyStore(CF_INDEX1);
Mutation rm;
- rm = new Mutation("Keyspace3", ByteBufferUtil.bytes("k1"));
- rm.add("Indexed1", cellname("birthdate"), ByteBufferUtil.bytes(1L),
0);
- rm.apply();
+ rm = new Mutation(KEYSPACE3, ByteBufferUtil.bytes("k1"));
+ rm.add(CF_INDEX1, cellname("birthdate"), ByteBufferUtil.bytes(1L), 0);
+ rm.applyUnsafe();
- IndexExpression expr = new
IndexExpression(ByteBufferUtil.bytes("birthdate"), IndexExpression.Operator.EQ,
ByteBufferUtil.bytes(1L));
+ IndexExpression expr = new
IndexExpression(ByteBufferUtil.bytes("birthdate"), Operator.EQ,
ByteBufferUtil.bytes(1L));
List<IndexExpression> clause = Arrays.asList(expr);
IDiskAtomFilter filter = new IdentityQueryFilter();
Range<RowPosition> range = Util.range("", "");
@@@ -463,23 -423,23 +464,23 @@@
// create a row and update the birthdate value, test that the index
query fetches the new version
Mutation rm;
- rm = new Mutation("Keyspace2", ByteBufferUtil.bytes("k1"));
- rm.add("Indexed1", birthdate, ByteBufferUtil.bytes(1L), 1);
- rm.apply();
- rm = new Mutation("Keyspace2", ByteBufferUtil.bytes("k1"));
- rm.add("Indexed1", birthdate, ByteBufferUtil.bytes(2L), 2);
- rm.apply();
+ rm = new Mutation(KEYSPACE2, ByteBufferUtil.bytes("k1"));
+ rm.add(CF_INDEX1, birthdate, ByteBufferUtil.bytes(1L), 1);
+ rm.applyUnsafe();
+ rm = new Mutation(KEYSPACE2, ByteBufferUtil.bytes("k1"));
+ rm.add(CF_INDEX1, birthdate, ByteBufferUtil.bytes(2L), 2);
+ rm.applyUnsafe();
- IndexExpression expr = new
IndexExpression(ByteBufferUtil.bytes("birthdate"), IndexExpression.Operator.EQ,
ByteBufferUtil.bytes(1L));
+ IndexExpression expr = new
IndexExpression(ByteBufferUtil.bytes("birthdate"), Operator.EQ,
ByteBufferUtil.bytes(1L));
List<IndexExpression> clause = Arrays.asList(expr);
IDiskAtomFilter filter = new IdentityQueryFilter();
Range<RowPosition> range = Util.range("", "");
List<Row> rows = cfs.search(range, clause, filter, 100);
assert rows.size() == 0;
- expr = new IndexExpression(ByteBufferUtil.bytes("birthdate"),
IndexExpression.Operator.EQ, ByteBufferUtil.bytes(2L));
+ expr = new IndexExpression(ByteBufferUtil.bytes("birthdate"),
Operator.EQ, ByteBufferUtil.bytes(2L));
clause = Arrays.asList(expr);
- rows = keyspace.getColumnFamilyStore("Indexed1").search(range,
clause, filter, 100);
+ rows = keyspace.getColumnFamilyStore(CF_INDEX1).search(range, clause,
filter, 100);
String key = ByteBufferUtil.string(rows.get(0).key.getKey());
assert "k1".equals( key );
@@@ -502,11 -462,11 +503,11 @@@
// create a row and update the birthdate value with an expiring column
Mutation rm;
- rm = new Mutation("Keyspace2", ByteBufferUtil.bytes("k100"));
+ rm = new Mutation(KEYSPACE2, ByteBufferUtil.bytes("k100"));
rm.add("Indexed1", cellname("birthdate"), ByteBufferUtil.bytes(100L),
1, 1000);
- rm.apply();
+ rm.applyUnsafe();
- IndexExpression expr = new
IndexExpression(ByteBufferUtil.bytes("birthdate"), IndexExpression.Operator.EQ,
ByteBufferUtil.bytes(100L));
+ IndexExpression expr = new
IndexExpression(ByteBufferUtil.bytes("birthdate"), Operator.EQ,
ByteBufferUtil.bytes(100L));
List<IndexExpression> clause = Arrays.asList(expr);
IDiskAtomFilter filter = new IdentityQueryFilter();
Range<RowPosition> range = Util.range("", "");
@@@ -525,11 -485,11 +526,11 @@@
assertEquals(1, rows.size());
// check that modifying the indexed value using the same timestamp
behaves as expected
- rm = new Mutation("Keyspace2", ByteBufferUtil.bytes("k101"));
+ rm = new Mutation(KEYSPACE2, ByteBufferUtil.bytes("k101"));
rm.add("Indexed1", cellname("birthdate"), ByteBufferUtil.bytes(101L),
1, 1000);
- rm.apply();
+ rm.applyUnsafe();
- expr = new IndexExpression(ByteBufferUtil.bytes("birthdate"),
IndexExpression.Operator.EQ, ByteBufferUtil.bytes(101L));
+ expr = new IndexExpression(ByteBufferUtil.bytes("birthdate"),
Operator.EQ, ByteBufferUtil.bytes(101L));
clause = Arrays.asList(expr);
rows = keyspace.getColumnFamilyStore("Indexed1").search(range,
clause, filter, 100);
assertEquals(1, rows.size());
@@@ -567,8 -527,8 +568,8 @@@
Mutation rm;
rm = new Mutation(keySpace, rowKey);
rm.add(cfName, colName, val1, 0);
- rm.apply();
+ rm.applyUnsafe();
- IndexExpression expr = new
IndexExpression(ByteBufferUtil.bytes("birthdate"), IndexExpression.Operator.EQ,
val1);
+ IndexExpression expr = new
IndexExpression(ByteBufferUtil.bytes("birthdate"), Operator.EQ, val1);
List<IndexExpression> clause = Arrays.asList(expr);
IDiskAtomFilter filter = new IdentityQueryFilter();
Range<RowPosition> range = Util.range("", "");
@@@ -635,10 -595,10 +636,10 @@@
Mutation rm;
rm = new Mutation(keySpace, rowKey);
rm.add(cfName, compositeName, val1, 0);
- rm.apply();
+ rm.applyUnsafe();
// test that the index query fetches this version
- IndexExpression expr = new IndexExpression(colName,
IndexExpression.Operator.EQ, val1);
+ IndexExpression expr = new IndexExpression(colName, Operator.EQ,
val1);
List<IndexExpression> clause = Arrays.asList(expr);
IDiskAtomFilter filter = new IdentityQueryFilter();
Range<RowPosition> range = Util.range("", "");
@@@ -739,29 -699,29 +740,29 @@@
CellName nobirthdate = cellname("notbirthdate");
CellName birthdate = cellname("birthdate");
- rm = new Mutation("Keyspace1", ByteBufferUtil.bytes("kk1"));
- rm.add("Indexed1", nobirthdate, ByteBufferUtil.bytes(1L), 0);
- rm.add("Indexed1", birthdate, ByteBufferUtil.bytes(1L), 0);
- rm.apply();
+ rm = new Mutation(KEYSPACE1, ByteBufferUtil.bytes("kk1"));
+ rm.add(CF_INDEX1, nobirthdate, ByteBufferUtil.bytes(1L), 0);
+ rm.add(CF_INDEX1, birthdate, ByteBufferUtil.bytes(1L), 0);
+ rm.applyUnsafe();
- rm = new Mutation("Keyspace1", ByteBufferUtil.bytes("kk2"));
- rm.add("Indexed1", nobirthdate, ByteBufferUtil.bytes(2L), 0);
- rm.add("Indexed1", birthdate, ByteBufferUtil.bytes(1L), 0);
- rm.apply();
+ rm = new Mutation(KEYSPACE1, ByteBufferUtil.bytes("kk2"));
+ rm.add(CF_INDEX1, nobirthdate, ByteBufferUtil.bytes(2L), 0);
+ rm.add(CF_INDEX1, birthdate, ByteBufferUtil.bytes(1L), 0);
+ rm.applyUnsafe();
- rm = new Mutation("Keyspace1", ByteBufferUtil.bytes("kk3"));
- rm.add("Indexed1", nobirthdate, ByteBufferUtil.bytes(2L), 0);
- rm.add("Indexed1", birthdate, ByteBufferUtil.bytes(1L), 0);
- rm.apply();
+ rm = new Mutation(KEYSPACE1, ByteBufferUtil.bytes("kk3"));
+ rm.add(CF_INDEX1, nobirthdate, ByteBufferUtil.bytes(2L), 0);
+ rm.add(CF_INDEX1, birthdate, ByteBufferUtil.bytes(1L), 0);
+ rm.applyUnsafe();
- rm = new Mutation("Keyspace1", ByteBufferUtil.bytes("kk4"));
- rm.add("Indexed1", nobirthdate, ByteBufferUtil.bytes(2L), 0);
- rm.add("Indexed1", birthdate, ByteBufferUtil.bytes(1L), 0);
- rm.apply();
+ rm = new Mutation(KEYSPACE1, ByteBufferUtil.bytes("kk4"));
+ rm.add(CF_INDEX1, nobirthdate, ByteBufferUtil.bytes(2L), 0);
+ rm.add(CF_INDEX1, birthdate, ByteBufferUtil.bytes(1L), 0);
+ rm.applyUnsafe();
// basic single-expression query
- IndexExpression expr1 = new
IndexExpression(ByteBufferUtil.bytes("birthdate"), IndexExpression.Operator.EQ,
ByteBufferUtil.bytes(1L));
- IndexExpression expr2 = new
IndexExpression(ByteBufferUtil.bytes("notbirthdate"),
IndexExpression.Operator.GT, ByteBufferUtil.bytes(1L));
+ IndexExpression expr1 = new
IndexExpression(ByteBufferUtil.bytes("birthdate"), Operator.EQ,
ByteBufferUtil.bytes(1L));
+ IndexExpression expr2 = new
IndexExpression(ByteBufferUtil.bytes("notbirthdate"), Operator.GT,
ByteBufferUtil.bytes(1L));
List<IndexExpression> clause = Arrays.asList(expr1, expr2);
IDiskAtomFilter filter = new IdentityQueryFilter();
Range<RowPosition> range = Util.range("", "");
@@@ -805,10 -765,10 +806,10 @@@
private void queryBirthdate(Keyspace keyspace) throws
CharacterCodingException
{
- IndexExpression expr = new
IndexExpression(ByteBufferUtil.bytes("birthdate"), IndexExpression.Operator.EQ,
ByteBufferUtil.bytes(1L));
+ IndexExpression expr = new
IndexExpression(ByteBufferUtil.bytes("birthdate"), Operator.EQ,
ByteBufferUtil.bytes(1L));
List<IndexExpression> clause = Arrays.asList(expr);
IDiskAtomFilter filter = new IdentityQueryFilter();
- List<Row> rows =
keyspace.getColumnFamilyStore("Indexed2").search(Util.range("", ""), clause,
filter, 100);
+ List<Row> rows =
keyspace.getColumnFamilyStore(CF_INDEX2).search(Util.range("", ""), clause,
filter, 100);
assert rows.size() == 1 : StringUtils.join(rows, ",");
assertEquals("k1", ByteBufferUtil.string(rows.get(0).key.getKey()));
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/525ac00c/test/unit/org/apache/cassandra/io/sstable/SSTableReaderTest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/525ac00c/test/unit/org/apache/cassandra/streaming/StreamingTransferTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/streaming/StreamingTransferTest.java
index 6bc6827,5d44210..287a3a1
--- a/test/unit/org/apache/cassandra/streaming/StreamingTransferTest.java
+++ b/test/unit/org/apache/cassandra/streaming/StreamingTransferTest.java
@@@ -36,9 -35,8 +36,10 @@@ import org.slf4j.LoggerFactory
import org.apache.cassandra.OrderedJUnit4ClassRunner;
import org.apache.cassandra.SchemaLoader;
import org.apache.cassandra.Util;
+import org.apache.cassandra.config.CFMetaData;
import org.apache.cassandra.config.DatabaseDescriptor;
+import org.apache.cassandra.config.KSMetaData;
+ import org.apache.cassandra.cql3.Operator;
import org.apache.cassandra.db.*;
import org.apache.cassandra.db.columniterator.IdentityQueryFilter;
import org.apache.cassandra.db.context.CounterContext;