You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2011/10/14 23:54:13 UTC
svn commit: r1183516 -
/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/QueryProcessor.java
Author: jbellis
Date: Fri Oct 14 21:54:12 2011
New Revision: 1183516
URL: http://svn.apache.org/viewvc?rev=1183516&view=rev
Log:
r/m redundant validateColumnFamily calls
patch by jbellis
Modified:
cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/QueryProcessor.java
Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/QueryProcessor.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/QueryProcessor.java?rev=1183516&r1=1183515&r2=1183516&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/QueryProcessor.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/QueryProcessor.java Fri Oct 14 21:54:12 2011
@@ -73,11 +73,10 @@ public class QueryProcessor
public static final String DEFAULT_KEY_NAME = bufferToString(CFMetaData.DEFAULT_KEY_NAME);
- private static List<org.apache.cassandra.db.Row> getSlice(String keyspace, SelectStatement select)
+ private static List<org.apache.cassandra.db.Row> getSlice(CFMetaData metadata, SelectStatement select)
throws InvalidRequestException, TimedOutException, UnavailableException
{
QueryPath queryPath = new QueryPath(select.getColumnFamily());
- CFMetaData metadata = validateColumnFamily(keyspace, select.getColumnFamily());
List<ReadCommand> commands = new ArrayList<ReadCommand>();
// ...of a list of column names
@@ -91,13 +90,13 @@ public class QueryProcessor
ByteBuffer key = rawKey.getByteBuffer(metadata.getKeyValidator());
validateKey(key);
- commands.add(new SliceByNamesReadCommand(keyspace, key, queryPath, columnNames));
+ commands.add(new SliceByNamesReadCommand(metadata.ksName, key, queryPath, columnNames));
}
}
// ...a range (slice) of column names
else
{
- AbstractType<?> comparator = select.getComparator(keyspace);
+ AbstractType<?> comparator = select.getComparator(metadata.ksName);
ByteBuffer start = select.getColumnStart().getByteBuffer(comparator);
ByteBuffer finish = select.getColumnFinish().getByteBuffer(comparator);
@@ -107,7 +106,7 @@ public class QueryProcessor
validateKey(key);
validateSliceRange(metadata, start, finish, select.isColumnsReversed());
- commands.add(new SliceFromReadCommand(keyspace,
+ commands.add(new SliceFromReadCommand(metadata.ksName,
key,
queryPath,
start,
@@ -144,13 +143,13 @@ public class QueryProcessor
return columnNames;
}
- private static List<org.apache.cassandra.db.Row> multiRangeSlice(String keyspace, SelectStatement select)
+ private static List<org.apache.cassandra.db.Row> multiRangeSlice(CFMetaData metadata, SelectStatement select)
throws TimedOutException, UnavailableException, InvalidRequestException
{
List<org.apache.cassandra.db.Row> rows;
IPartitioner<?> p = StorageService.getPartitioner();
- AbstractType<?> keyType = Schema.instance.getCFMetaData(keyspace, select.getColumnFamily()).getKeyValidator();
+ AbstractType<?> keyType = Schema.instance.getCFMetaData(metadata.ksName, select.getColumnFamily()).getKeyValidator();
ByteBuffer startKey = (select.getKeyStart() != null)
? select.getKeyStart().getByteBuffer(keyType)
@@ -170,7 +169,6 @@ public class QueryProcessor
}
AbstractBounds bounds = new Bounds(startToken, finishToken);
- CFMetaData metadata = validateColumnFamily(keyspace, select.getColumnFamily());
// XXX: Our use of Thrift structs internally makes me Sad. :(
SlicePredicate thriftSlicePredicate = slicePredicateFromSelect(select, metadata);
validateSlicePredicate(metadata, thriftSlicePredicate);
@@ -181,7 +179,7 @@ public class QueryProcessor
try
{
- rows = StorageProxy.getRangeSlice(new RangeSliceCommand(keyspace,
+ rows = StorageProxy.getRangeSlice(new RangeSliceCommand(metadata.ksName,
select.getColumnFamily(),
null,
thriftSlicePredicate,
@@ -220,10 +218,9 @@ public class QueryProcessor
return rows.subList(0, select.getNumRecords() < rows.size() ? select.getNumRecords() : rows.size());
}
- private static List<org.apache.cassandra.db.Row> getIndexedSlices(String keyspace, SelectStatement select)
+ private static List<org.apache.cassandra.db.Row> getIndexedSlices(CFMetaData metadata, SelectStatement select)
throws TimedOutException, UnavailableException, InvalidRequestException
{
- CFMetaData metadata = validateColumnFamily(keyspace, select.getColumnFamily());
// XXX: Our use of Thrift structs internally (still) makes me Sad. :~(
SlicePredicate thriftSlicePredicate = slicePredicateFromSelect(select, metadata);
validateSlicePredicate(metadata, thriftSlicePredicate);
@@ -233,21 +230,21 @@ public class QueryProcessor
{
// Left and right side of relational expression encoded according to comparator/validator.
ByteBuffer entity = columnRelation.getEntity().getByteBuffer(metadata.comparator);
- ByteBuffer value = columnRelation.getValue().getByteBuffer(select.getValueValidator(keyspace, entity));
+ ByteBuffer value = columnRelation.getValue().getByteBuffer(select.getValueValidator(metadata.ksName, entity));
expressions.add(new IndexExpression(entity,
IndexOperator.valueOf(columnRelation.operator().toString()),
value));
}
- AbstractType<?> keyType = Schema.instance.getCFMetaData(keyspace, select.getColumnFamily()).getKeyValidator();
+ AbstractType<?> keyType = Schema.instance.getCFMetaData(metadata.ksName, select.getColumnFamily()).getKeyValidator();
ByteBuffer startKey = (!select.isKeyRange()) ? (new Term()).getByteBuffer() : select.getKeyStart().getByteBuffer(keyType);
IndexClause thriftIndexClause = new IndexClause(expressions, startKey, select.getNumRecords());
List<org.apache.cassandra.db.Row> rows;
try
{
- rows = StorageProxy.scan(keyspace,
+ rows = StorageProxy.scan(metadata.ksName,
select.getColumnFamily(),
thriftIndexClause,
thriftSlicePredicate,
@@ -529,19 +526,19 @@ public class QueryProcessor
// By-key
if (!select.isKeyRange() && (select.getKeys().size() > 0))
{
- rows = getSlice(keyspace, select);
+ rows = getSlice(metadata, select);
}
else
{
// Range query
if ((select.getKeyFinish() != null) || (select.getColumnRelations().size() == 0))
{
- rows = multiRangeSlice(keyspace, select);
+ rows = multiRangeSlice(metadata, select);
}
// Index scan
else
{
- rows = getIndexedSlices(keyspace, select);
+ rows = getIndexedSlices(metadata, select);
}
}