Updated Branches: refs/heads/trunk 0456b7eb2 -> 7c92fc52e
change bind parms from string to bytes Patch by eevans; reviewed by Rick Shaw for CASSANDRA-3634 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/7c92fc52 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/7c92fc52 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/7c92fc52 Branch: refs/heads/trunk Commit: 7c92fc52ec9aebd1906441a676cec28aa8c07967 Parents: ce29659 Author: Eric Evans <eev...@sym-link.com> Authored: Thu Dec 15 09:33:42 2011 -0600 Committer: Eric Evans <eev...@apache.org> Committed: Wed Jan 18 09:00:17 2012 -0600 ---------------------------------------------------------------------- .../apache/cassandra/cql/AbstractModification.java | 5 ++- .../org/apache/cassandra/cql/BatchStatement.java | 3 +- .../cassandra/cql/CreateColumnFamilyStatement.java | 4 +- .../org/apache/cassandra/cql/DeleteStatement.java | 6 ++-- .../org/apache/cassandra/cql/QueryProcessor.java | 22 +++++++------- src/java/org/apache/cassandra/cql/Term.java | 4 +- .../org/apache/cassandra/cql/UpdateStatement.java | 6 ++-- .../apache/cassandra/thrift/CassandraServer.java | 2 +- 8 files changed, 27 insertions(+), 25 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/7c92fc52/src/java/org/apache/cassandra/cql/AbstractModification.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql/AbstractModification.java b/src/java/org/apache/cassandra/cql/AbstractModification.java index 38f323b..3a0b8cb 100644 --- a/src/java/org/apache/cassandra/cql/AbstractModification.java +++ b/src/java/org/apache/cassandra/cql/AbstractModification.java @@ -20,6 +20,7 @@ */ package org.apache.cassandra.cql; +import java.nio.ByteBuffer; import java.util.List; import org.apache.cassandra.db.IMutation; @@ -103,7 +104,7 @@ public abstract class AbstractModification * * @throws InvalidRequestException on the wrong request */ - public abstract List<IMutation> prepareRowMutations(String keyspace, ClientState clientState, List<String> variables) + public abstract List<IMutation> prepareRowMutations(String keyspace, ClientState clientState, List<ByteBuffer> variables) throws org.apache.cassandra.thrift.InvalidRequestException; /** @@ -117,6 +118,6 @@ public abstract class AbstractModification * * @throws InvalidRequestException on the wrong request */ - public abstract List<IMutation> prepareRowMutations(String keyspace, ClientState clientState, Long timestamp, List<String> variables) + public abstract List<IMutation> prepareRowMutations(String keyspace, ClientState clientState, Long timestamp, List<ByteBuffer> variables) throws org.apache.cassandra.thrift.InvalidRequestException; } http://git-wip-us.apache.org/repos/asf/cassandra/blob/7c92fc52/src/java/org/apache/cassandra/cql/BatchStatement.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql/BatchStatement.java b/src/java/org/apache/cassandra/cql/BatchStatement.java index 650b53d..2781833 100644 --- a/src/java/org/apache/cassandra/cql/BatchStatement.java +++ b/src/java/org/apache/cassandra/cql/BatchStatement.java @@ -20,6 +20,7 @@ */ package org.apache.cassandra.cql; +import java.nio.ByteBuffer; import java.util.LinkedList; import java.util.List; @@ -76,7 +77,7 @@ public class BatchStatement return timeToLive; } - public List<IMutation> getMutations(String keyspace, ClientState clientState, List<String> variables) + public List<IMutation> getMutations(String keyspace, ClientState clientState, List<ByteBuffer> variables) throws InvalidRequestException { List<IMutation> batch = new LinkedList<IMutation>(); http://git-wip-us.apache.org/repos/asf/cassandra/blob/7c92fc52/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java b/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java index 0f371f7..93b8331 100644 --- a/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java +++ b/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java @@ -55,7 +55,7 @@ public class CreateColumnFamilyStatement } /** Perform validation of parsed params */ - private void validate(List<String> variables) throws InvalidRequestException + private void validate(List<ByteBuffer> variables) throws InvalidRequestException { cfProps.validate(); @@ -164,7 +164,7 @@ public class CreateColumnFamilyStatement * @return a CFMetaData instance corresponding to the values parsed from this statement * @throws InvalidRequestException on failure to validate parsed parameters */ - public CFMetaData getCFMetaData(String keyspace, List<String> variables) throws InvalidRequestException + public CFMetaData getCFMetaData(String keyspace, List<ByteBuffer> variables) throws InvalidRequestException { validate(variables); http://git-wip-us.apache.org/repos/asf/cassandra/blob/7c92fc52/src/java/org/apache/cassandra/cql/DeleteStatement.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql/DeleteStatement.java b/src/java/org/apache/cassandra/cql/DeleteStatement.java index 3210421..f19cd3b 100644 --- a/src/java/org/apache/cassandra/cql/DeleteStatement.java +++ b/src/java/org/apache/cassandra/cql/DeleteStatement.java @@ -64,12 +64,12 @@ public class DeleteStatement extends AbstractModification return keys; } - public List<IMutation> prepareRowMutations(String keyspace, ClientState clientState, List<String> variables) throws InvalidRequestException + public List<IMutation> prepareRowMutations(String keyspace, ClientState clientState, List<ByteBuffer> variables) throws InvalidRequestException { return prepareRowMutations(keyspace, clientState, null, variables); } - public List<IMutation> prepareRowMutations(String keyspace, ClientState clientState, Long timestamp, List<String> variables) throws InvalidRequestException + public List<IMutation> prepareRowMutations(String keyspace, ClientState clientState, Long timestamp, List<ByteBuffer> variables) throws InvalidRequestException { clientState.hasColumnFamilyAccess(columnFamily, Permission.WRITE); AbstractType<?> keyType = Schema.instance.getCFMetaData(keyspace, columnFamily).getKeyValidator(); @@ -84,7 +84,7 @@ public class DeleteStatement extends AbstractModification return rowMutations; } - public RowMutation mutationForKey(ByteBuffer key, String keyspace, Long timestamp, ClientState clientState, List<String> variables) + public RowMutation mutationForKey(ByteBuffer key, String keyspace, Long timestamp, ClientState clientState, List<ByteBuffer> variables) throws InvalidRequestException { RowMutation rm = new RowMutation(keyspace, key); http://git-wip-us.apache.org/repos/asf/cassandra/blob/7c92fc52/src/java/org/apache/cassandra/cql/QueryProcessor.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql/QueryProcessor.java b/src/java/org/apache/cassandra/cql/QueryProcessor.java index 3b3040f..ae14476 100644 --- a/src/java/org/apache/cassandra/cql/QueryProcessor.java +++ b/src/java/org/apache/cassandra/cql/QueryProcessor.java @@ -73,7 +73,7 @@ public class QueryProcessor public static final String DEFAULT_KEY_NAME = bufferToString(CFMetaData.DEFAULT_KEY_NAME); - private static List<org.apache.cassandra.db.Row> getSlice(CFMetaData metadata, SelectStatement select, List<String> variables) + private static List<org.apache.cassandra.db.Row> getSlice(CFMetaData metadata, SelectStatement select, List<ByteBuffer> variables) throws InvalidRequestException, TimedOutException, UnavailableException { QueryPath queryPath = new QueryPath(select.getColumnFamily()); @@ -130,7 +130,7 @@ public class QueryProcessor } } - private static List<ByteBuffer> getColumnNames(SelectStatement select, CFMetaData metadata, List<String> variables) + private static List<ByteBuffer> getColumnNames(SelectStatement select, CFMetaData metadata, List<ByteBuffer> variables) throws InvalidRequestException { String keyString = getKeyString(metadata); @@ -144,7 +144,7 @@ public class QueryProcessor return columnNames; } - private static List<org.apache.cassandra.db.Row> multiRangeSlice(CFMetaData metadata, SelectStatement select, List<String> variables) + private static List<org.apache.cassandra.db.Row> multiRangeSlice(CFMetaData metadata, SelectStatement select, List<ByteBuffer> variables) throws TimedOutException, UnavailableException, InvalidRequestException { List<org.apache.cassandra.db.Row> rows; @@ -232,7 +232,7 @@ public class QueryProcessor return rows.subList(0, select.getNumRecords() < rows.size() ? select.getNumRecords() : rows.size()); } - private static void batchUpdate(ClientState clientState, List<UpdateStatement> updateStatements, ConsistencyLevel consistency, List<String> variables ) + private static void batchUpdate(ClientState clientState, List<UpdateStatement> updateStatements, ConsistencyLevel consistency, List<ByteBuffer> variables ) throws InvalidRequestException, UnavailableException, TimedOutException { String globalKeyspace = clientState.getKeyspace(); @@ -267,7 +267,7 @@ public class QueryProcessor } } - private static SlicePredicate slicePredicateFromSelect(SelectStatement select, CFMetaData metadata, List<String> variables) + private static SlicePredicate slicePredicateFromSelect(SelectStatement select, CFMetaData metadata, List<ByteBuffer> variables) throws InvalidRequestException { SlicePredicate thriftSlicePredicate = new SlicePredicate(); @@ -290,7 +290,7 @@ public class QueryProcessor } /* Test for SELECT-specific taboos */ - private static void validateSelect(String keyspace, SelectStatement select, List<String> variables) throws InvalidRequestException + private static void validateSelect(String keyspace, SelectStatement select, List<ByteBuffer> variables) throws InvalidRequestException { ThriftValidation.validateConsistencyLevel(keyspace, select.getConsistencyLevel(), RequestType.READ); @@ -463,7 +463,7 @@ public class QueryProcessor Predicates.not(Predicates.equalTo(StorageProxy.UNREACHABLE))); } - public static CqlResult processStatement(CQLStatement statement,ClientState clientState, List<String> variables ) + public static CqlResult processStatement(CQLStatement statement,ClientState clientState, List<ByteBuffer> variables ) throws UnavailableException, InvalidRequestException, TimedOutException, SchemaDisagreementException { String keyspace = null; @@ -624,7 +624,7 @@ public class QueryProcessor case UPDATE: UpdateStatement update = (UpdateStatement)statement.statement; ThriftValidation.validateConsistencyLevel(keyspace, update.getConsistencyLevel(), RequestType.WRITE); - batchUpdate(clientState, Collections.singletonList(update), update.getConsistencyLevel(),variables); + batchUpdate(clientState, Collections.singletonList(update), update.getConsistencyLevel(), variables); result.type = CqlResultType.VOID; return result; @@ -744,7 +744,7 @@ public class QueryProcessor CreateColumnFamilyStatement createCf = (CreateColumnFamilyStatement)statement.statement; clientState.hasColumnFamilySchemaAccess(Permission.WRITE); validateSchemaAgreement(); - CFMetaData cfmd = createCf.getCFMetaData(keyspace,variables); + CFMetaData cfmd = createCf.getCFMetaData(keyspace, variables); ThriftValidation.validateCfDef(cfmd.toThrift(), null); try @@ -937,7 +937,7 @@ public class QueryProcessor throws RecognitionException, UnavailableException, InvalidRequestException, TimedOutException, SchemaDisagreementException { logger.trace("CQL QUERY: {}", queryString); - return processStatement(getStatement(queryString), clientState, new ArrayList<String>()); + return processStatement(getStatement(queryString), clientState, new ArrayList<ByteBuffer>()); } public static CqlPreparedResult prepare(String queryString, ClientState clientState) @@ -957,7 +957,7 @@ public class QueryProcessor return new CqlPreparedResult(statementId, statement.boundTerms); } - public static CqlResult processPrepared(CQLStatement statement, ClientState clientState, List<String> variables) + public static CqlResult processPrepared(CQLStatement statement, ClientState clientState, List<ByteBuffer> variables) throws UnavailableException, InvalidRequestException, TimedOutException, SchemaDisagreementException { // Check to see if there are any bound variables to verify http://git-wip-us.apache.org/repos/asf/cassandra/blob/7c92fc52/src/java/org/apache/cassandra/cql/Term.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql/Term.java b/src/java/org/apache/cassandra/cql/Term.java index 2b4df1b..aef4659 100644 --- a/src/java/org/apache/cassandra/cql/Term.java +++ b/src/java/org/apache/cassandra/cql/Term.java @@ -89,7 +89,7 @@ public class Term * @return a ByteBuffer of the value. * @throws InvalidRequestException if unable to coerce the string to its type. */ - public ByteBuffer getByteBuffer(AbstractType<?> validator, List<String> variables) throws InvalidRequestException + public ByteBuffer getByteBuffer(AbstractType<?> validator, List<ByteBuffer> variables) throws InvalidRequestException { try { @@ -99,7 +99,7 @@ public class Term if (bindIndex == null) throw new AssertionError("a marker Term was encountered with no index value"); - return validator.fromString(variables.get(bindIndex)); + return variables.get(bindIndex); } catch (MarshalException e) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/7c92fc52/src/java/org/apache/cassandra/cql/UpdateStatement.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql/UpdateStatement.java b/src/java/org/apache/cassandra/cql/UpdateStatement.java index 9472527..8f772a2 100644 --- a/src/java/org/apache/cassandra/cql/UpdateStatement.java +++ b/src/java/org/apache/cassandra/cql/UpdateStatement.java @@ -124,13 +124,13 @@ public class UpdateStatement extends AbstractModification } /** {@inheritDoc} */ - public List<IMutation> prepareRowMutations(String keyspace, ClientState clientState, List<String> variables) throws InvalidRequestException + public List<IMutation> prepareRowMutations(String keyspace, ClientState clientState, List<ByteBuffer> variables) throws InvalidRequestException { return prepareRowMutations(keyspace, clientState, null, variables); } /** {@inheritDoc} */ - public List<IMutation> prepareRowMutations(String keyspace, ClientState clientState, Long timestamp, List<String> variables) throws InvalidRequestException + public List<IMutation> prepareRowMutations(String keyspace, ClientState clientState, Long timestamp, List<ByteBuffer> variables) throws InvalidRequestException { List<String> cfamsSeen = new ArrayList<String>(); @@ -182,7 +182,7 @@ public class UpdateStatement extends AbstractModification * * @throws InvalidRequestException on the wrong request */ - private IMutation mutationForKey(String keyspace, ByteBuffer key, CFMetaData metadata, Long timestamp, ClientState clientState, List<String> variables) + private IMutation mutationForKey(String keyspace, ByteBuffer key, CFMetaData metadata, Long timestamp, ClientState clientState, List<ByteBuffer> variables) throws InvalidRequestException { AbstractType<?> comparator = getComparator(keyspace); http://git-wip-us.apache.org/repos/asf/cassandra/blob/7c92fc52/src/java/org/apache/cassandra/thrift/CassandraServer.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/thrift/CassandraServer.java b/src/java/org/apache/cassandra/thrift/CassandraServer.java index 4987617..f28c10c 100644 --- a/src/java/org/apache/cassandra/thrift/CassandraServer.java +++ b/src/java/org/apache/cassandra/thrift/CassandraServer.java @@ -1257,7 +1257,7 @@ public class CassandraServer implements Cassandra.Iface } } - public CqlResult execute_prepared_cql_query(int itemId, List<String> bindVariables) + public CqlResult execute_prepared_cql_query(int itemId, List<ByteBuffer> bindVariables) throws InvalidRequestException, UnavailableException, TimedOutException, SchemaDisagreementException, TException { if (logger.isDebugEnabled()) logger.debug("execute_prepared_cql_query");