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);
}
}