Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 31342200BD3 for ; Mon, 31 Oct 2016 14:38:23 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 2FBE4160AF0; Mon, 31 Oct 2016 13:38:23 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id D5876160B0D for ; Mon, 31 Oct 2016 14:38:20 +0100 (CET) Received: (qmail 45802 invoked by uid 500); 31 Oct 2016 13:38:18 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 45389 invoked by uid 99); 31 Oct 2016 13:38:18 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 31 Oct 2016 13:38:18 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 2E025EFE5E; Mon, 31 Oct 2016 13:38:18 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: stefania@apache.org To: commits@cassandra.apache.org Date: Mon, 31 Oct 2016 13:38:22 -0000 Message-Id: <98e2fd203fa6401cac5ec7b15fcff4cb@git.apache.org> In-Reply-To: <8ff686105e8e4b15b0049e227489e81c@git.apache.org> References: <8ff686105e8e4b15b0049e227489e81c@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [05/11] cassandra git commit: Extend native protocol request flags, add versions to SUPPORTED, and introduce ProtocolVersion enum archived-at: Mon, 31 Oct 2016 13:38:23 -0000 Extend native protocol request flags, add versions to SUPPORTED, and introduce ProtocolVersion enum patch by Stefania Alborghetti; reviewed by Benjamin Lerer for CASSANDRA-12838 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e0adc166 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e0adc166 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e0adc166 Branch: refs/heads/cassandra-3.X Commit: e0adc166a33033c9d2668547803a1e034c2c2494 Parents: 0a1f1c8 Author: Stefania Alborghetti Authored: Tue Oct 25 16:01:40 2016 +0800 Committer: Stefania Alborghetti Committed: Mon Oct 31 21:14:42 2016 +0800 ---------------------------------------------------------------------- CHANGES.txt | 1 + doc/native_protocol_v5.spec | 13 +- ...driver-internal-only-3.7.0.post0-2481531.zip | Bin 0 -> 252057 bytes ...driver-internal-only-3.7.0.post0-70f41b5.zip | Bin 252036 -> 0 bytes .../org/apache/cassandra/cql3/CQL3Type.java | 20 +-- .../apache/cassandra/cql3/ColumnCondition.java | 14 +- .../org/apache/cassandra/cql3/Constants.java | 3 +- src/java/org/apache/cassandra/cql3/Lists.java | 8 +- src/java/org/apache/cassandra/cql3/Maps.java | 8 +- .../org/apache/cassandra/cql3/QueryOptions.java | 46 +++--- .../apache/cassandra/cql3/QueryProcessor.java | 5 +- .../org/apache/cassandra/cql3/ResultSet.java | 61 ++++++-- src/java/org/apache/cassandra/cql3/Sets.java | 8 +- src/java/org/apache/cassandra/cql3/Term.java | 3 +- src/java/org/apache/cassandra/cql3/Tuples.java | 5 +- .../apache/cassandra/cql3/UntypedResultSet.java | 4 +- .../org/apache/cassandra/cql3/UserTypes.java | 3 +- .../cassandra/cql3/functions/AggregateFcts.java | 81 +++++----- .../cql3/functions/AggregateFunction.java | 8 +- .../cql3/functions/BytesConversionFcts.java | 9 +- .../cassandra/cql3/functions/CastFcts.java | 8 +- .../cassandra/cql3/functions/FromJsonFct.java | 3 +- .../cassandra/cql3/functions/FunctionCall.java | 5 +- .../cql3/functions/JavaBasedUDFunction.java | 5 +- .../cassandra/cql3/functions/JavaUDF.java | 23 +-- .../cql3/functions/ScalarFunction.java | 3 +- .../cql3/functions/ScriptBasedUDFunction.java | 7 +- .../cassandra/cql3/functions/TimeFcts.java | 25 +-- .../cassandra/cql3/functions/ToJsonFct.java | 3 +- .../cassandra/cql3/functions/TokenFct.java | 3 +- .../cassandra/cql3/functions/UDAggregate.java | 5 +- .../cql3/functions/UDFByteCodeVerifier.java | 8 +- .../cassandra/cql3/functions/UDFunction.java | 28 ++-- .../cassandra/cql3/functions/UDHelper.java | 15 +- .../cassandra/cql3/functions/UuidFcts.java | 3 +- .../selection/AggregateFunctionSelector.java | 5 +- .../cassandra/cql3/selection/FieldSelector.java | 5 +- .../cql3/selection/ScalarFunctionSelector.java | 5 +- .../cassandra/cql3/selection/Selection.java | 18 ++- .../cassandra/cql3/selection/Selector.java | 5 +- .../cql3/selection/SimpleSelector.java | 5 +- .../cassandra/cql3/selection/TermSelector.java | 5 +- .../cql3/selection/WritetimeOrTTLSelector.java | 5 +- .../statements/CreateAggregateStatement.java | 4 +- .../cql3/statements/SelectStatement.java | 5 +- .../cassandra/db/PartitionRangeReadCommand.java | 3 +- src/java/org/apache/cassandra/db/ReadQuery.java | 5 +- .../db/SinglePartitionReadCommand.java | 7 +- .../org/apache/cassandra/db/SystemKeyspace.java | 4 +- .../db/marshal/AbstractCompositeType.java | 3 +- .../cassandra/db/marshal/AbstractType.java | 3 +- .../apache/cassandra/db/marshal/AsciiType.java | 3 +- .../cassandra/db/marshal/BooleanType.java | 3 +- .../apache/cassandra/db/marshal/ByteType.java | 3 +- .../apache/cassandra/db/marshal/BytesType.java | 3 +- .../cassandra/db/marshal/CollectionType.java | 3 +- .../db/marshal/ColumnToCollectionType.java | 3 +- .../cassandra/db/marshal/CounterColumnType.java | 3 +- .../apache/cassandra/db/marshal/DateType.java | 3 +- .../cassandra/db/marshal/DecimalType.java | 3 +- .../apache/cassandra/db/marshal/DoubleType.java | 3 +- .../cassandra/db/marshal/DurationType.java | 3 +- .../db/marshal/DynamicCompositeType.java | 3 +- .../apache/cassandra/db/marshal/FloatType.java | 3 +- .../apache/cassandra/db/marshal/FrozenType.java | 3 +- .../cassandra/db/marshal/InetAddressType.java | 3 +- .../apache/cassandra/db/marshal/Int32Type.java | 3 +- .../cassandra/db/marshal/IntegerType.java | 3 +- .../apache/cassandra/db/marshal/ListType.java | 13 +- .../apache/cassandra/db/marshal/LongType.java | 3 +- .../apache/cassandra/db/marshal/MapType.java | 6 +- .../db/marshal/PartitionerDefinedOrder.java | 3 +- .../cassandra/db/marshal/ReversedType.java | 3 +- .../apache/cassandra/db/marshal/SetType.java | 3 +- .../apache/cassandra/db/marshal/ShortType.java | 3 +- .../cassandra/db/marshal/SimpleDateType.java | 3 +- .../apache/cassandra/db/marshal/TimeType.java | 3 +- .../cassandra/db/marshal/TimestampType.java | 3 +- .../apache/cassandra/db/marshal/TupleType.java | 3 +- .../apache/cassandra/db/marshal/UTF8Type.java | 3 +- .../apache/cassandra/db/marshal/UserType.java | 5 +- .../apache/cassandra/schema/SchemaKeyspace.java | 4 +- .../serializers/CollectionSerializer.java | 26 ++-- .../cassandra/serializers/ListSerializer.java | 10 +- .../cassandra/serializers/MapSerializer.java | 12 +- .../cassandra/serializers/SetSerializer.java | 6 +- .../cassandra/service/StorageService.java | 5 +- .../service/pager/AbstractQueryPager.java | 5 +- .../service/pager/MultiPartitionPager.java | 3 +- .../cassandra/service/pager/PagingState.java | 24 +-- .../service/pager/PartitionRangeQueryPager.java | 5 +- .../cassandra/service/pager/QueryPagers.java | 4 +- .../service/pager/SinglePartitionPager.java | 5 +- .../org/apache/cassandra/transport/CBCodec.java | 6 +- .../org/apache/cassandra/transport/CBUtil.java | 8 +- .../org/apache/cassandra/transport/Client.java | 6 +- .../apache/cassandra/transport/Connection.java | 8 +- .../apache/cassandra/transport/DataType.java | 80 +++++----- .../org/apache/cassandra/transport/Event.java | 58 +++---- .../org/apache/cassandra/transport/Frame.java | 42 ++--- .../org/apache/cassandra/transport/Message.java | 23 +-- .../apache/cassandra/transport/OptionCodec.java | 26 ++-- .../cassandra/transport/ProtocolException.java | 17 +-- .../cassandra/transport/ProtocolVersion.java | 153 +++++++++++++++++++ .../org/apache/cassandra/transport/Server.java | 9 +- .../cassandra/transport/ServerConnection.java | 6 +- .../cassandra/transport/SimpleClient.java | 14 +- .../transport/messages/AuthChallenge.java | 7 +- .../transport/messages/AuthResponse.java | 8 +- .../transport/messages/AuthSuccess.java | 7 +- .../transport/messages/AuthenticateMessage.java | 7 +- .../transport/messages/BatchMessage.java | 10 +- .../transport/messages/CredentialsMessage.java | 9 +- .../transport/messages/ErrorMessage.java | 26 ++-- .../transport/messages/EventMessage.java | 7 +- .../transport/messages/ExecuteMessage.java | 10 +- .../transport/messages/OptionsMessage.java | 8 +- .../transport/messages/PrepareMessage.java | 6 +- .../transport/messages/QueryMessage.java | 11 +- .../transport/messages/ReadyMessage.java | 7 +- .../transport/messages/RegisterMessage.java | 8 +- .../transport/messages/ResultMessage.java | 42 ++--- .../transport/messages/StartupMessage.java | 9 +- .../transport/messages/SupportedMessage.java | 7 +- .../cassandra/cql3/functions/JavaSourceUDF.txt | 5 +- .../org/apache/cassandra/cql3/ViewLongTest.java | 3 +- test/unit/org/apache/cassandra/Util.java | 23 +++ .../cassandra/cql3/CQL3TypeLiteralTest.java | 26 ++-- .../org/apache/cassandra/cql3/CQLTester.java | 70 +++++---- .../cassandra/cql3/ViewFilteringTest.java | 3 +- .../apache/cassandra/cql3/ViewSchemaTest.java | 3 +- .../org/apache/cassandra/cql3/ViewTest.java | 3 +- .../cassandra/cql3/functions/TimeFctsTest.java | 4 +- .../validation/entities/UFPureScriptTest.java | 5 +- .../UFPureScriptTupleCollectionTest.java | 6 +- .../cql3/validation/entities/UFTest.java | 25 +-- .../entities/udfverify/CallClone.java | 5 +- .../entities/udfverify/CallComDatastax.java | 5 +- .../entities/udfverify/CallFinalize.java | 5 +- .../entities/udfverify/CallOrgApache.java | 5 +- .../entities/udfverify/ClassWithField.java | 5 +- .../udfverify/ClassWithInitializer.java | 5 +- .../udfverify/ClassWithInitializer2.java | 5 +- .../udfverify/ClassWithInitializer3.java | 5 +- .../entities/udfverify/ClassWithInnerClass.java | 5 +- .../udfverify/ClassWithInnerClass2.java | 5 +- .../udfverify/ClassWithStaticInitializer.java | 5 +- .../udfverify/ClassWithStaticInnerClass.java | 5 +- .../entities/udfverify/GoodClass.java | 5 +- .../entities/udfverify/UseOfSynchronized.java | 5 +- .../udfverify/UseOfSynchronizedWithNotify.java | 5 +- .../UseOfSynchronizedWithNotifyAll.java | 5 +- .../udfverify/UseOfSynchronizedWithWait.java | 5 +- .../udfverify/UseOfSynchronizedWithWaitL.java | 5 +- .../udfverify/UseOfSynchronizedWithWaitLI.java | 5 +- .../entities/udfverify/UsingMapEntry.java | 5 +- .../validation/operations/AggregationTest.java | 10 +- .../cql3/validation/operations/AlterTest.java | 6 +- .../apache/cassandra/index/CustomIndexTest.java | 24 +-- .../cassandra/service/ClientWarningsTest.java | 10 +- .../service/ProtocolBetaVersionTest.java | 40 ++++- .../cassandra/service/QueryPagerTest.java | 58 +++---- .../service/pager/PagingStateTest.java | 47 ++---- .../cassandra/transport/DataTypeTest.java | 14 +- .../cassandra/transport/ErrorMessageTest.java | 6 +- .../cassandra/transport/MessagePayloadTest.java | 2 +- .../cassandra/transport/ProtocolErrorTest.java | 13 +- .../transport/ProtocolVersionTest.java | 97 ++++++++++++ .../cassandra/transport/SerDeserTest.java | 138 +++++++++++++---- .../cassandra/utils/CassandraVersionTest.java | 14 +- 170 files changed, 1324 insertions(+), 821 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 82d3d9c..1b16518 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.10 + * Extend native protocol request flags, add versions to SUPPORTED, and introduce ProtocolVersion enum (CASSANDRA-12838) * Set JOINING mode when running pre-join tasks (CASSANDRA-12836) * remove net.mintern.primitive library due to license issue (CASSANDRA-12845) * Properly format IPv6 addresses when logging JMX service URL (CASSANDRA-12454) http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/doc/native_protocol_v5.spec ---------------------------------------------------------------------- diff --git a/doc/native_protocol_v5.spec b/doc/native_protocol_v5.spec index bbde714..35dd2d7 100644 --- a/doc/native_protocol_v5.spec +++ b/doc/native_protocol_v5.spec @@ -317,7 +317,7 @@ Table of Contents [[name_1]...[name_n]][][][][] where: - is the [consistency] level for the operation. - - is a [byte] whose bits define the options for this query and + - is a [int] whose bits define the options for this query and in particular influence what the remainder of the message contains. A flag is set if the bit corresponding to its `mask` is set. Supported flags are, given their mask: @@ -398,7 +398,7 @@ Table of Contents - If == 1, the batch will be "unlogged". - If == 2, the batch will be a "counter" batch (and non-counter statements will be rejected). - - is a [byte] whose bits define the options for this query and + - is a [int] whose bits define the options for this query and in particular influence what the remainder of the message contains. It is similar to the from QUERY and EXECUTE methods, except that the 4 rightmost bits must always be 0 as their corresponding options do not make sense for @@ -514,7 +514,12 @@ Table of Contents comes as a response to an OPTIONS message. The body of a SUPPORTED message is a [string multimap]. This multimap gives - for each of the supported STARTUP options, the list of supported values. + for each of the supported STARTUP options, the list of supported values. It + also includes: + - "PROTOCOL_VERSIONS": the list of native protocol versions that are + supported, encoded as the version number followed by a slash and the + version description. For example: 3/v3, 4/v4, 5/v5-beta. If a version is + in beta, it will have the word "beta" in its description. 4.2.5. RESULT @@ -1175,3 +1180,5 @@ Table of Contents * in Read_failure and Write_failure error message bodies (Section 9) has been replaced with . The maps node IP addresses to a failure reason code which indicates why the request failed on that node. + * Enlarged flag's bitmaps for QUERY, EXECUTE and BATCH messages from [byte] to [int] + (Sections 4.1.4, 4.1.6 and 4.1.7). http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/lib/cassandra-driver-internal-only-3.7.0.post0-2481531.zip ---------------------------------------------------------------------- diff --git a/lib/cassandra-driver-internal-only-3.7.0.post0-2481531.zip b/lib/cassandra-driver-internal-only-3.7.0.post0-2481531.zip new file mode 100644 index 0000000..11d5944 Binary files /dev/null and b/lib/cassandra-driver-internal-only-3.7.0.post0-2481531.zip differ http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/lib/cassandra-driver-internal-only-3.7.0.post0-70f41b5.zip ---------------------------------------------------------------------- diff --git a/lib/cassandra-driver-internal-only-3.7.0.post0-70f41b5.zip b/lib/cassandra-driver-internal-only-3.7.0.post0-70f41b5.zip deleted file mode 100644 index 4bbe903..0000000 Binary files a/lib/cassandra-driver-internal-only-3.7.0.post0-70f41b5.zip and /dev/null differ http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/src/java/org/apache/cassandra/cql3/CQL3Type.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/CQL3Type.java b/src/java/org/apache/cassandra/cql3/CQL3Type.java index 94b8f6d..20f3e2d 100644 --- a/src/java/org/apache/cassandra/cql3/CQL3Type.java +++ b/src/java/org/apache/cassandra/cql3/CQL3Type.java @@ -34,6 +34,7 @@ import org.apache.cassandra.schema.KeyspaceMetadata; import org.apache.cassandra.schema.Types; import org.apache.cassandra.serializers.CollectionSerializer; import org.apache.cassandra.serializers.MarshalException; +import org.apache.cassandra.transport.ProtocolVersion; import org.apache.cassandra.utils.ByteBufferUtil; public interface CQL3Type @@ -54,12 +55,11 @@ public interface CQL3Type /** * Generates CQL literal from a binary value of this type. - * - * @param buffer the value to convert to a CQL literal. This value must be + * @param buffer the value to convert to a CQL literal. This value must be * serialized with {@code version} of the native protocol. * @param version the native protocol version in which {@code buffer} is encoded. */ - public String toCQLLiteral(ByteBuffer buffer, int version); + public String toCQLLiteral(ByteBuffer buffer, ProtocolVersion version); public enum Native implements CQL3Type { @@ -105,7 +105,7 @@ public interface CQL3Type * {@link org.apache.cassandra.serializers.TypeSerializer#toString(Object)} * {@link org.apache.cassandra.serializers.TypeSerializer#deserialize(ByteBuffer)} implementations. */ - public String toCQLLiteral(ByteBuffer buffer, int version) + public String toCQLLiteral(ByteBuffer buffer, ProtocolVersion version) { return type.getSerializer().toCQLLiteral(buffer); } @@ -136,7 +136,7 @@ public interface CQL3Type return type; } - public String toCQLLiteral(ByteBuffer buffer, int version) + public String toCQLLiteral(ByteBuffer buffer, ProtocolVersion version) { // *always* use the 'blob' syntax to express custom types in CQL return Native.BLOB.toCQLLiteral(buffer, version); @@ -184,7 +184,7 @@ public interface CQL3Type return true; } - public String toCQLLiteral(ByteBuffer buffer, int version) + public String toCQLLiteral(ByteBuffer buffer, ProtocolVersion version) { if (buffer == null) return "null"; @@ -216,7 +216,7 @@ public interface CQL3Type return target.toString(); } - private void generateMapCQLLiteral(ByteBuffer buffer, int version, StringBuilder target, int size) + private void generateMapCQLLiteral(ByteBuffer buffer, ProtocolVersion version, StringBuilder target, int size) { CQL3Type keys = ((MapType) type).getKeysType().asCQL3Type(); CQL3Type values = ((MapType) type).getValuesType().asCQL3Type(); @@ -232,7 +232,7 @@ public interface CQL3Type } } - private static void generateSetOrListCQLLiteral(ByteBuffer buffer, int version, StringBuilder target, int size, CQL3Type elements) + private static void generateSetOrListCQLLiteral(ByteBuffer buffer, ProtocolVersion version, StringBuilder target, int size, CQL3Type elements) { for (int i = 0; i < size; i++) { @@ -316,7 +316,7 @@ public interface CQL3Type return type; } - public String toCQLLiteral(ByteBuffer buffer, int version) + public String toCQLLiteral(ByteBuffer buffer, ProtocolVersion version) { if (buffer == null) return "null"; @@ -404,7 +404,7 @@ public interface CQL3Type return type; } - public String toCQLLiteral(ByteBuffer buffer, int version) + public String toCQLLiteral(ByteBuffer buffer, ProtocolVersion version) { if (buffer == null) return "null"; http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/src/java/org/apache/cassandra/cql3/ColumnCondition.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/ColumnCondition.java b/src/java/org/apache/cassandra/cql3/ColumnCondition.java index 304f8bc..07f9f60 100644 --- a/src/java/org/apache/cassandra/cql3/ColumnCondition.java +++ b/src/java/org/apache/cassandra/cql3/ColumnCondition.java @@ -28,7 +28,7 @@ import org.apache.cassandra.cql3.functions.Function; import org.apache.cassandra.db.rows.*; import org.apache.cassandra.db.marshal.*; import org.apache.cassandra.exceptions.InvalidRequestException; -import org.apache.cassandra.transport.Server; +import org.apache.cassandra.transport.ProtocolVersion; import org.apache.cassandra.utils.ByteBufferUtil; /** @@ -508,11 +508,11 @@ public class ColumnCondition // make sure we use v3 serialization format for comparison ByteBuffer conditionValue; if (type.kind == CollectionType.Kind.LIST) - conditionValue = ((Lists.Value) value).get(Server.VERSION_3); + conditionValue = ((Lists.Value) value).get(ProtocolVersion.V3); else if (type.kind == CollectionType.Kind.SET) - conditionValue = ((Sets.Value) value).get(Server.VERSION_3); + conditionValue = ((Sets.Value) value).get(ProtocolVersion.V3); else - conditionValue = ((Maps.Value) value).get(Server.VERSION_3); + conditionValue = ((Maps.Value) value).get(ProtocolVersion.V3); return compareWithOperator(operator, type, conditionValue, cell.value()); } @@ -680,7 +680,7 @@ public class ColumnCondition if (cell == null) return true; } - else if (type.compare(value.get(Server.VERSION_3), cell.value()) == 0) + else if (type.compare(value.get(ProtocolVersion.V3), cell.value()) == 0) { return true; } @@ -782,7 +782,7 @@ public class ColumnCondition static class UDTBound extends Bound { private final ByteBuffer value; - private final int protocolVersion; + private final ProtocolVersion protocolVersion; private UDTBound(ColumnCondition condition, QueryOptions options) throws InvalidRequestException { @@ -826,7 +826,7 @@ public class ColumnCondition public static class UDTInBound extends Bound { private final List inValues; - private final int protocolVersion; + private final ProtocolVersion protocolVersion; private UDTInBound(ColumnCondition condition, QueryOptions options) throws InvalidRequestException { http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/src/java/org/apache/cassandra/cql3/Constants.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/Constants.java b/src/java/org/apache/cassandra/cql3/Constants.java index c701b71..03e2053 100644 --- a/src/java/org/apache/cassandra/cql3/Constants.java +++ b/src/java/org/apache/cassandra/cql3/Constants.java @@ -26,6 +26,7 @@ import org.apache.cassandra.db.*; import org.apache.cassandra.db.marshal.*; import org.apache.cassandra.exceptions.InvalidRequestException; import org.apache.cassandra.serializers.MarshalException; +import org.apache.cassandra.transport.ProtocolVersion; import org.apache.cassandra.utils.ByteBufferUtil; /** @@ -312,7 +313,7 @@ public abstract class Constants this.bytes = bytes; } - public ByteBuffer get(int protocolVersion) + public ByteBuffer get(ProtocolVersion protocolVersion) { return bytes; } http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/src/java/org/apache/cassandra/cql3/Lists.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/Lists.java b/src/java/org/apache/cassandra/cql3/Lists.java index ad0af6d..037162b 100644 --- a/src/java/org/apache/cassandra/cql3/Lists.java +++ b/src/java/org/apache/cassandra/cql3/Lists.java @@ -35,7 +35,7 @@ import org.apache.cassandra.db.marshal.ListType; import org.apache.cassandra.exceptions.InvalidRequestException; import org.apache.cassandra.serializers.CollectionSerializer; import org.apache.cassandra.serializers.MarshalException; -import org.apache.cassandra.transport.Server; +import org.apache.cassandra.transport.ProtocolVersion; import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.cassandra.utils.UUIDGen; @@ -141,7 +141,7 @@ public abstract class Lists this.elements = elements; } - public static Value fromSerialized(ByteBuffer value, ListType type, int version) throws InvalidRequestException + public static Value fromSerialized(ByteBuffer value, ListType type, ProtocolVersion version) throws InvalidRequestException { try { @@ -160,7 +160,7 @@ public abstract class Lists } } - public ByteBuffer get(int protocolVersion) + public ByteBuffer get(ProtocolVersion protocolVersion) { return CollectionSerializer.pack(elements, elements.size(), protocolVersion); } @@ -412,7 +412,7 @@ public abstract class Lists if (value == null) params.addTombstone(column); else - params.addCell(column, value.get(Server.CURRENT_VERSION)); + params.addCell(column, value.get(ProtocolVersion.CURRENT)); } } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/src/java/org/apache/cassandra/cql3/Maps.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/Maps.java b/src/java/org/apache/cassandra/cql3/Maps.java index 952bff0..5c3bc44 100644 --- a/src/java/org/apache/cassandra/cql3/Maps.java +++ b/src/java/org/apache/cassandra/cql3/Maps.java @@ -31,7 +31,7 @@ import org.apache.cassandra.db.marshal.*; import org.apache.cassandra.exceptions.InvalidRequestException; import org.apache.cassandra.serializers.CollectionSerializer; import org.apache.cassandra.serializers.MarshalException; -import org.apache.cassandra.transport.Server; +import org.apache.cassandra.transport.ProtocolVersion; import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.cassandra.utils.Pair; @@ -161,7 +161,7 @@ public abstract class Maps this.map = map; } - public static Value fromSerialized(ByteBuffer value, MapType type, int version) throws InvalidRequestException + public static Value fromSerialized(ByteBuffer value, MapType type, ProtocolVersion version) throws InvalidRequestException { try { @@ -179,7 +179,7 @@ public abstract class Maps } } - public ByteBuffer get(int protocolVersion) + public ByteBuffer get(ProtocolVersion protocolVersion) { List buffers = new ArrayList<>(2 * map.size()); for (Map.Entry entry : map.entrySet()) @@ -374,7 +374,7 @@ public abstract class Maps if (value == null) params.addTombstone(column); else - params.addCell(column, value.get(Server.CURRENT_VERSION)); + params.addCell(column, value.get(ProtocolVersion.CURRENT)); } } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/src/java/org/apache/cassandra/cql3/QueryOptions.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/QueryOptions.java b/src/java/org/apache/cassandra/cql3/QueryOptions.java index e6cda89..1ba8f89 100644 --- a/src/java/org/apache/cassandra/cql3/QueryOptions.java +++ b/src/java/org/apache/cassandra/cql3/QueryOptions.java @@ -21,6 +21,7 @@ import java.nio.ByteBuffer; import java.util.*; import com.google.common.collect.ImmutableList; + import io.netty.buffer.ByteBuf; import org.apache.cassandra.config.ColumnDefinition; @@ -32,7 +33,7 @@ import org.apache.cassandra.service.pager.PagingState; import org.apache.cassandra.transport.CBCodec; import org.apache.cassandra.transport.CBUtil; import org.apache.cassandra.transport.ProtocolException; -import org.apache.cassandra.transport.Server; +import org.apache.cassandra.transport.ProtocolVersion; import org.apache.cassandra.utils.Pair; /** @@ -44,7 +45,7 @@ public abstract class QueryOptions Collections.emptyList(), false, SpecificOptions.DEFAULT, - Server.CURRENT_VERSION); + ProtocolVersion.CURRENT); public static final CBCodec codec = new Codec(); @@ -53,27 +54,27 @@ public abstract class QueryOptions public static QueryOptions fromThrift(ConsistencyLevel consistency, List values) { - return new DefaultQueryOptions(consistency, values, false, SpecificOptions.DEFAULT, Server.VERSION_3); + return new DefaultQueryOptions(consistency, values, false, SpecificOptions.DEFAULT, ProtocolVersion.V3); } public static QueryOptions forInternalCalls(ConsistencyLevel consistency, List values) { - return new DefaultQueryOptions(consistency, values, false, SpecificOptions.DEFAULT, Server.VERSION_3); + return new DefaultQueryOptions(consistency, values, false, SpecificOptions.DEFAULT, ProtocolVersion.V3); } public static QueryOptions forInternalCalls(List values) { - return new DefaultQueryOptions(ConsistencyLevel.ONE, values, false, SpecificOptions.DEFAULT, Server.VERSION_3); + return new DefaultQueryOptions(ConsistencyLevel.ONE, values, false, SpecificOptions.DEFAULT, ProtocolVersion.V3); } - public static QueryOptions forProtocolVersion(int protocolVersion) + public static QueryOptions forProtocolVersion(ProtocolVersion protocolVersion) { return new DefaultQueryOptions(null, null, true, null, protocolVersion); } - public static QueryOptions create(ConsistencyLevel consistency, List values, boolean skipMetadata, int pageSize, PagingState pagingState, ConsistencyLevel serialConsistency) + public static QueryOptions create(ConsistencyLevel consistency, List values, boolean skipMetadata, int pageSize, PagingState pagingState, ConsistencyLevel serialConsistency, ProtocolVersion version) { - return new DefaultQueryOptions(consistency, values, skipMetadata, new SpecificOptions(pageSize, pagingState, serialConsistency, -1L), 0); + return new DefaultQueryOptions(consistency, values, skipMetadata, new SpecificOptions(pageSize, pagingState, serialConsistency, -1L), version); } public static QueryOptions addColumnSpecifications(QueryOptions options, List columnSpecs) @@ -180,7 +181,7 @@ public abstract class QueryOptions * The protocol version for the query. Will be 3 if the object don't come from * a native protocol request (i.e. it's been allocated locally or by CQL-over-thrift). */ - public abstract int getProtocolVersion(); + public abstract ProtocolVersion getProtocolVersion(); // Mainly for the sake of BatchQueryOptions abstract SpecificOptions getSpecificOptions(); @@ -198,9 +199,9 @@ public abstract class QueryOptions private final SpecificOptions options; - private final transient int protocolVersion; + private final transient ProtocolVersion protocolVersion; - DefaultQueryOptions(ConsistencyLevel consistency, List values, boolean skipMetadata, SpecificOptions options, int protocolVersion) + DefaultQueryOptions(ConsistencyLevel consistency, List values, boolean skipMetadata, SpecificOptions options, ProtocolVersion protocolVersion) { this.consistency = consistency; this.values = values; @@ -224,7 +225,7 @@ public abstract class QueryOptions return skipMetadata; } - public int getProtocolVersion() + public ProtocolVersion getProtocolVersion() { return protocolVersion; } @@ -259,7 +260,7 @@ public abstract class QueryOptions return wrapped.skipMetadata(); } - public int getProtocolVersion() + public ProtocolVersion getProtocolVersion() { return wrapped.getProtocolVersion(); } @@ -364,7 +365,7 @@ public abstract class QueryOptions private static class Codec implements CBCodec { - private static enum Flag + private enum Flag { // The order of that enum matters!! VALUES, @@ -397,10 +398,12 @@ public abstract class QueryOptions } } - public QueryOptions decode(ByteBuf body, int version) + public QueryOptions decode(ByteBuf body, ProtocolVersion version) { ConsistencyLevel consistency = CBUtil.readConsistencyLevel(body); - EnumSet flags = Flag.deserialize((int)body.readByte()); + EnumSet flags = Flag.deserialize(version.isGreaterOrEqualTo(ProtocolVersion.V5) + ? (int)body.readUnsignedInt() + : (int)body.readByte()); List values = Collections.emptyList(); List names = null; @@ -443,12 +446,15 @@ public abstract class QueryOptions return names == null ? opts : new OptionsWithNames(opts, names); } - public void encode(QueryOptions options, ByteBuf dest, int version) + public void encode(QueryOptions options, ByteBuf dest, ProtocolVersion version) { CBUtil.writeConsistencyLevel(options.getConsistency(), dest); EnumSet flags = gatherFlags(options); - dest.writeByte((byte)Flag.serialize(flags)); + if (version.isGreaterOrEqualTo(ProtocolVersion.V5)) + dest.writeInt(Flag.serialize(flags)); + else + dest.writeByte((byte)Flag.serialize(flags)); if (flags.contains(Flag.VALUES)) CBUtil.writeValueList(options.getValues(), dest); @@ -466,14 +472,14 @@ public abstract class QueryOptions // don't bother. } - public int encodedSize(QueryOptions options, int version) + public int encodedSize(QueryOptions options, ProtocolVersion version) { int size = 0; size += CBUtil.sizeOfConsistencyLevel(options.getConsistency()); EnumSet flags = gatherFlags(options); - size += 1; + size += (version.isGreaterOrEqualTo(ProtocolVersion.V5) ? 4 : 1); if (flags.contains(Flag.VALUES)) size += CBUtil.sizeOfValueList(options.getValues()); http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/src/java/org/apache/cassandra/cql3/QueryProcessor.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/QueryProcessor.java b/src/java/org/apache/cassandra/cql3/QueryProcessor.java index 1d5a024..288fd4b 100644 --- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java +++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java @@ -35,7 +35,6 @@ import org.slf4j.LoggerFactory; import com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap; import org.antlr.runtime.*; import org.apache.cassandra.concurrent.ScheduledExecutors; -import org.apache.cassandra.config.Config; import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.config.Schema; import org.apache.cassandra.config.SchemaConstants; @@ -53,7 +52,7 @@ import org.apache.cassandra.service.*; import org.apache.cassandra.service.pager.QueryPager; import org.apache.cassandra.thrift.ThriftClientState; import org.apache.cassandra.tracing.Tracing; -import org.apache.cassandra.transport.Server; +import org.apache.cassandra.transport.ProtocolVersion; import org.apache.cassandra.transport.messages.ResultMessage; import org.apache.cassandra.utils.*; @@ -342,7 +341,7 @@ public class QueryProcessor implements QueryHandler throw new IllegalArgumentException("Only SELECTs can be paged"); SelectStatement select = (SelectStatement)prepared.statement; - QueryPager pager = select.getQuery(makeInternalOptions(prepared, values), FBUtilities.nowInSeconds()).getPager(null, Server.CURRENT_VERSION); + QueryPager pager = select.getQuery(makeInternalOptions(prepared, values), FBUtilities.nowInSeconds()).getPager(null, ProtocolVersion.CURRENT); return UntypedResultSet.create(select, pager, pageSize); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/src/java/org/apache/cassandra/cql3/ResultSet.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/ResultSet.java b/src/java/org/apache/cassandra/cql3/ResultSet.java index e9a0f42..9659509 100644 --- a/src/java/org/apache/cassandra/cql3/ResultSet.java +++ b/src/java/org/apache/cassandra/cql3/ResultSet.java @@ -177,7 +177,7 @@ public class ResultSet * - rows count (4 bytes) * - rows */ - public ResultSet decode(ByteBuf body, int version) + public ResultSet decode(ByteBuf body, ProtocolVersion version) { ResultMetadata m = ResultMetadata.codec.decode(body, version); int rowCount = body.readInt(); @@ -191,7 +191,7 @@ public class ResultSet return rs; } - public void encode(ResultSet rs, ByteBuf dest, int version) + public void encode(ResultSet rs, ByteBuf dest, ProtocolVersion version) { ResultMetadata.codec.encode(rs.metadata, dest, version); dest.writeInt(rs.rows.size()); @@ -204,7 +204,7 @@ public class ResultSet } } - public int encodedSize(ResultSet rs, int version) + public int encodedSize(ResultSet rs, ProtocolVersion version) { int size = ResultMetadata.codec.encodedSize(rs.metadata, version) + 4; for (List row : rs.rows) @@ -296,6 +296,29 @@ public class ResultSet } @Override + public boolean equals(Object other) + { + if (this == other) + return true; + + if (!(other instanceof ResultMetadata)) + return false; + + ResultMetadata that = (ResultMetadata) other; + + return Objects.equals(flags, that.flags) + && Objects.equals(names, that.names) + && columnCount == that.columnCount + && Objects.equals(pagingState, that.pagingState); + } + + @Override + public int hashCode() + { + return Objects.hash(flags, names, columnCount, pagingState); + } + + @Override public String toString() { StringBuilder sb = new StringBuilder(); @@ -320,7 +343,7 @@ public class ResultSet private static class Codec implements CBCodec { - public ResultMetadata decode(ByteBuf body, int version) + public ResultMetadata decode(ByteBuf body, ProtocolVersion version) { // flags & column count int iflags = body.readInt(); @@ -358,13 +381,14 @@ public class ResultSet return new ResultMetadata(flags, names, names.size(), state); } - public void encode(ResultMetadata m, ByteBuf dest, int version) + public void encode(ResultMetadata m, ByteBuf dest, ProtocolVersion version) { boolean noMetadata = m.flags.contains(Flag.NO_METADATA); boolean globalTablesSpec = m.flags.contains(Flag.GLOBAL_TABLES_SPEC); boolean hasMorePages = m.flags.contains(Flag.HAS_MORE_PAGES); - assert version > 1 || (!hasMorePages && !noMetadata): "version = " + version + ", flags = " + m.flags; + assert version.isGreaterThan(ProtocolVersion.V1) || (!hasMorePages && !noMetadata) + : "version = " + version + ", flags = " + m.flags; dest.writeInt(Flag.serialize(m.flags)); dest.writeInt(m.columnCount); @@ -394,7 +418,7 @@ public class ResultSet } } - public int encodedSize(ResultMetadata m, int version) + public int encodedSize(ResultMetadata m, ProtocolVersion version) { boolean noMetadata = m.flags.contains(Flag.NO_METADATA); boolean globalTablesSpec = m.flags.contains(Flag.GLOBAL_TABLES_SPEC); @@ -462,6 +486,9 @@ public class ResultSet @Override public boolean equals(Object other) { + if (this == other) + return true; + if (!(other instanceof PreparedMetadata)) return false; @@ -472,6 +499,12 @@ public class ResultSet } @Override + public int hashCode() + { + return Objects.hash(names, flags) + Arrays.hashCode(partitionKeyBindIndexes); + } + + @Override public String toString() { StringBuilder sb = new StringBuilder(); @@ -498,7 +531,7 @@ public class ResultSet private static class Codec implements CBCodec { - public PreparedMetadata decode(ByteBuf body, int version) + public PreparedMetadata decode(ByteBuf body, ProtocolVersion version) { // flags & column count int iflags = body.readInt(); @@ -507,7 +540,7 @@ public class ResultSet EnumSet flags = Flag.deserialize(iflags); short[] partitionKeyBindIndexes = null; - if (version >= Server.VERSION_4) + if (version.isGreaterOrEqualTo(ProtocolVersion.V4)) { int numPKNames = body.readInt(); if (numPKNames > 0) @@ -541,13 +574,13 @@ public class ResultSet return new PreparedMetadata(flags, names, partitionKeyBindIndexes); } - public void encode(PreparedMetadata m, ByteBuf dest, int version) + public void encode(PreparedMetadata m, ByteBuf dest, ProtocolVersion version) { boolean globalTablesSpec = m.flags.contains(Flag.GLOBAL_TABLES_SPEC); dest.writeInt(Flag.serialize(m.flags)); dest.writeInt(m.names.size()); - if (version >= Server.VERSION_4) + if (version.isGreaterOrEqualTo(ProtocolVersion.V4)) { // there's no point in providing partition key bind indexes if the statements affect multiple tables if (m.partitionKeyBindIndexes == null || !globalTablesSpec) @@ -580,7 +613,7 @@ public class ResultSet } } - public int encodedSize(PreparedMetadata m, int version) + public int encodedSize(PreparedMetadata m, ProtocolVersion version) { boolean globalTablesSpec = m.flags.contains(Flag.GLOBAL_TABLES_SPEC); int size = 8; @@ -590,7 +623,7 @@ public class ResultSet size += CBUtil.sizeOfString(m.names.get(0).cfName); } - if (m.partitionKeyBindIndexes != null && version >= Server.VERSION_4) + if (m.partitionKeyBindIndexes != null && version.isGreaterOrEqualTo(ProtocolVersion.V4)) size += 4 + 2 * m.partitionKeyBindIndexes.length; for (ColumnSpecification name : m.names) @@ -608,7 +641,7 @@ public class ResultSet } } - public static enum Flag + public enum Flag { // The order of that enum matters!! GLOBAL_TABLES_SPEC, http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/src/java/org/apache/cassandra/cql3/Sets.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/Sets.java b/src/java/org/apache/cassandra/cql3/Sets.java index e8617aa..d17a771 100644 --- a/src/java/org/apache/cassandra/cql3/Sets.java +++ b/src/java/org/apache/cassandra/cql3/Sets.java @@ -31,7 +31,7 @@ import org.apache.cassandra.db.marshal.*; import org.apache.cassandra.exceptions.InvalidRequestException; import org.apache.cassandra.serializers.CollectionSerializer; import org.apache.cassandra.serializers.MarshalException; -import org.apache.cassandra.transport.Server; +import org.apache.cassandra.transport.ProtocolVersion; import org.apache.cassandra.utils.ByteBufferUtil; /** @@ -149,7 +149,7 @@ public abstract class Sets this.elements = elements; } - public static Value fromSerialized(ByteBuffer value, SetType type, int version) throws InvalidRequestException + public static Value fromSerialized(ByteBuffer value, SetType type, ProtocolVersion version) throws InvalidRequestException { try { @@ -167,7 +167,7 @@ public abstract class Sets } } - public ByteBuffer get(int protocolVersion) + public ByteBuffer get(ProtocolVersion protocolVersion) { return CollectionSerializer.pack(elements, elements.size(), protocolVersion); } @@ -308,7 +308,7 @@ public abstract class Sets if (value == null) params.addTombstone(column); else - params.addCell(column, value.get(Server.CURRENT_VERSION)); + params.addCell(column, value.get(ProtocolVersion.CURRENT)); } } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/src/java/org/apache/cassandra/cql3/Term.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/Term.java b/src/java/org/apache/cassandra/cql3/Term.java index 2c2eba6..11b9860 100644 --- a/src/java/org/apache/cassandra/cql3/Term.java +++ b/src/java/org/apache/cassandra/cql3/Term.java @@ -23,6 +23,7 @@ import java.util.List; import org.apache.cassandra.cql3.functions.Function; import org.apache.cassandra.db.marshal.AbstractType; import org.apache.cassandra.exceptions.InvalidRequestException; +import org.apache.cassandra.transport.ProtocolVersion; /** * A CQL3 term, i.e. a column value with or without bind variables. @@ -156,7 +157,7 @@ public interface Term * @return the serialized value of this terminal. * @param protocolVersion */ - public abstract ByteBuffer get(int protocolVersion) throws InvalidRequestException; + public abstract ByteBuffer get(ProtocolVersion protocolVersion) throws InvalidRequestException; public ByteBuffer bindAndGet(QueryOptions options) throws InvalidRequestException { http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/src/java/org/apache/cassandra/cql3/Tuples.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/Tuples.java b/src/java/org/apache/cassandra/cql3/Tuples.java index 267832d..32a31fd 100644 --- a/src/java/org/apache/cassandra/cql3/Tuples.java +++ b/src/java/org/apache/cassandra/cql3/Tuples.java @@ -30,6 +30,7 @@ import org.apache.cassandra.cql3.functions.Function; import org.apache.cassandra.db.marshal.*; import org.apache.cassandra.exceptions.InvalidRequestException; import org.apache.cassandra.serializers.MarshalException; +import org.apache.cassandra.transport.ProtocolVersion; import org.apache.cassandra.utils.ByteBufferUtil; /** @@ -179,7 +180,7 @@ public class Tuples return new Value(type.split(bytes)); } - public ByteBuffer get(int protocolVersion) + public ByteBuffer get(ProtocolVersion protocolVersion) { return TupleType.buildValue(elements); } @@ -296,7 +297,7 @@ public class Tuples } } - public ByteBuffer get(int protocolVersion) + public ByteBuffer get(ProtocolVersion protocolVersion) { throw new UnsupportedOperationException(); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/src/java/org/apache/cassandra/cql3/UntypedResultSet.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/UntypedResultSet.java b/src/java/org/apache/cassandra/cql3/UntypedResultSet.java index 3d70051..d896071 100644 --- a/src/java/org/apache/cassandra/cql3/UntypedResultSet.java +++ b/src/java/org/apache/cassandra/cql3/UntypedResultSet.java @@ -22,6 +22,7 @@ import java.net.InetAddress; import java.nio.ByteBuffer; import java.util.*; +import org.apache.cassandra.transport.ProtocolVersion; import org.apache.cassandra.utils.AbstractIterator; import org.apache.cassandra.config.CFMetaData; @@ -32,7 +33,6 @@ import org.apache.cassandra.db.rows.*; import org.apache.cassandra.db.partitions.PartitionIterator; import org.apache.cassandra.db.marshal.*; import org.apache.cassandra.service.pager.QueryPager; -import org.apache.cassandra.transport.Server; import org.apache.cassandra.utils.FBUtilities; /** a utility for doing internal cql-based queries */ @@ -245,7 +245,7 @@ public abstract class UntypedResultSet implements Iterable { ComplexColumnData complexData = row.getComplexColumnData(def); if (complexData != null) - data.put(def.name.toString(), ((CollectionType)def.type).serializeForNativeProtocol(complexData.iterator(), Server.VERSION_3)); + data.put(def.name.toString(), ((CollectionType)def.type).serializeForNativeProtocol(complexData.iterator(), ProtocolVersion.V3)); } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/src/java/org/apache/cassandra/cql3/UserTypes.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/UserTypes.java b/src/java/org/apache/cassandra/cql3/UserTypes.java index 41b8eed..e867179 100644 --- a/src/java/org/apache/cassandra/cql3/UserTypes.java +++ b/src/java/org/apache/cassandra/cql3/UserTypes.java @@ -26,6 +26,7 @@ import org.apache.cassandra.db.DecoratedKey; import org.apache.cassandra.db.marshal.*; import org.apache.cassandra.db.rows.CellPath; import org.apache.cassandra.exceptions.InvalidRequestException; +import org.apache.cassandra.transport.ProtocolVersion; import org.apache.cassandra.utils.ByteBufferUtil; import static org.apache.cassandra.cql3.Constants.UNSET_VALUE; @@ -172,7 +173,7 @@ public abstract class UserTypes return new Value(type, type.split(bytes)); } - public ByteBuffer get(int protocolVersion) + public ByteBuffer get(ProtocolVersion protocolVersion) { return TupleType.buildValue(elements); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/src/java/org/apache/cassandra/cql3/functions/AggregateFcts.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/functions/AggregateFcts.java b/src/java/org/apache/cassandra/cql3/functions/AggregateFcts.java index 530b7ba..85d3763 100644 --- a/src/java/org/apache/cassandra/cql3/functions/AggregateFcts.java +++ b/src/java/org/apache/cassandra/cql3/functions/AggregateFcts.java @@ -28,6 +28,7 @@ import java.util.List; import org.apache.cassandra.cql3.CQL3Type; import org.apache.cassandra.db.marshal.*; import org.apache.cassandra.exceptions.InvalidRequestException; +import org.apache.cassandra.transport.ProtocolVersion; /** * Factory methods for aggregate functions. @@ -102,12 +103,12 @@ public abstract class AggregateFcts count = 0; } - public ByteBuffer compute(int protocolVersion) + public ByteBuffer compute(ProtocolVersion protocolVersion) { return LongType.instance.decompose(count); } - public void addInput(int protocolVersion, List values) + public void addInput(ProtocolVersion protocolVersion, List values) { count++; } @@ -139,12 +140,12 @@ public abstract class AggregateFcts sum = BigDecimal.ZERO; } - public ByteBuffer compute(int protocolVersion) + public ByteBuffer compute(ProtocolVersion protocolVersion) { return ((DecimalType) returnType()).decompose(sum); } - public void addInput(int protocolVersion, List values) + public void addInput(ProtocolVersion protocolVersion, List values) { ByteBuffer value = values.get(0); @@ -178,12 +179,12 @@ public abstract class AggregateFcts avg = BigDecimal.ZERO; } - public ByteBuffer compute(int protocolVersion) + public ByteBuffer compute(ProtocolVersion protocolVersion) { return DecimalType.instance.decompose(avg); } - public void addInput(int protocolVersion, List values) + public void addInput(ProtocolVersion protocolVersion, List values) { ByteBuffer value = values.get(0); @@ -218,12 +219,12 @@ public abstract class AggregateFcts sum = BigInteger.ZERO; } - public ByteBuffer compute(int protocolVersion) + public ByteBuffer compute(ProtocolVersion protocolVersion) { return ((IntegerType) returnType()).decompose(sum); } - public void addInput(int protocolVersion, List values) + public void addInput(ProtocolVersion protocolVersion, List values) { ByteBuffer value = values.get(0); @@ -257,7 +258,7 @@ public abstract class AggregateFcts sum = BigInteger.ZERO; } - public ByteBuffer compute(int protocolVersion) + public ByteBuffer compute(ProtocolVersion protocolVersion) { if (count == 0) return IntegerType.instance.decompose(BigInteger.ZERO); @@ -265,7 +266,7 @@ public abstract class AggregateFcts return IntegerType.instance.decompose(sum.divide(BigInteger.valueOf(count))); } - public void addInput(int protocolVersion, List values) + public void addInput(ProtocolVersion protocolVersion, List values) { ByteBuffer value = values.get(0); @@ -297,12 +298,12 @@ public abstract class AggregateFcts sum = 0; } - public ByteBuffer compute(int protocolVersion) + public ByteBuffer compute(ProtocolVersion protocolVersion) { return ((ByteType) returnType()).decompose(sum); } - public void addInput(int protocolVersion, List values) + public void addInput(ProtocolVersion protocolVersion, List values) { ByteBuffer value = values.get(0); @@ -326,7 +327,7 @@ public abstract class AggregateFcts { return new AvgAggregate(ByteType.instance) { - public ByteBuffer compute(int protocolVersion) throws InvalidRequestException + public ByteBuffer compute(ProtocolVersion protocolVersion) throws InvalidRequestException { return ByteType.instance.decompose((byte) computeInternal()); } @@ -351,12 +352,12 @@ public abstract class AggregateFcts sum = 0; } - public ByteBuffer compute(int protocolVersion) + public ByteBuffer compute(ProtocolVersion protocolVersion) { return ((ShortType) returnType()).decompose(sum); } - public void addInput(int protocolVersion, List values) + public void addInput(ProtocolVersion protocolVersion, List values) { ByteBuffer value = values.get(0); @@ -380,7 +381,7 @@ public abstract class AggregateFcts { return new AvgAggregate(ShortType.instance) { - public ByteBuffer compute(int protocolVersion) + public ByteBuffer compute(ProtocolVersion protocolVersion) { return ShortType.instance.decompose((short) computeInternal()); } @@ -405,12 +406,12 @@ public abstract class AggregateFcts sum = 0; } - public ByteBuffer compute(int protocolVersion) + public ByteBuffer compute(ProtocolVersion protocolVersion) { return ((Int32Type) returnType()).decompose(sum); } - public void addInput(int protocolVersion, List values) + public void addInput(ProtocolVersion protocolVersion, List values) { ByteBuffer value = values.get(0); @@ -434,7 +435,7 @@ public abstract class AggregateFcts { return new AvgAggregate(Int32Type.instance) { - public ByteBuffer compute(int protocolVersion) + public ByteBuffer compute(ProtocolVersion protocolVersion) { return Int32Type.instance.decompose((int) computeInternal()); } @@ -464,7 +465,7 @@ public abstract class AggregateFcts { return new AvgAggregate(LongType.instance) { - public ByteBuffer compute(int protocolVersion) + public ByteBuffer compute(ProtocolVersion protocolVersion) { return LongType.instance.decompose(computeInternal()); } @@ -482,7 +483,7 @@ public abstract class AggregateFcts { return new FloatSumAggregate(FloatType.instance) { - public ByteBuffer compute(int protocolVersion) throws InvalidRequestException + public ByteBuffer compute(ProtocolVersion protocolVersion) throws InvalidRequestException { return FloatType.instance.decompose((float) computeInternal()); } @@ -500,7 +501,7 @@ public abstract class AggregateFcts { return new FloatAvgAggregate(FloatType.instance) { - public ByteBuffer compute(int protocolVersion) throws InvalidRequestException + public ByteBuffer compute(ProtocolVersion protocolVersion) throws InvalidRequestException { return FloatType.instance.decompose((float) computeInternal()); } @@ -518,7 +519,7 @@ public abstract class AggregateFcts { return new FloatSumAggregate(DoubleType.instance) { - public ByteBuffer compute(int protocolVersion) throws InvalidRequestException + public ByteBuffer compute(ProtocolVersion protocolVersion) throws InvalidRequestException { return DoubleType.instance.decompose(computeInternal()); } @@ -550,7 +551,7 @@ public abstract class AggregateFcts simpleSum = 0; } - public void addInput(int protocolVersion, List values) + public void addInput(ProtocolVersion protocolVersion, List values) { ByteBuffer value = values.get(0); @@ -635,7 +636,7 @@ public abstract class AggregateFcts } } - public void addInput(int protocolVersion, List values) + public void addInput(ProtocolVersion protocolVersion, List values) { ByteBuffer value = values.get(0); @@ -678,7 +679,7 @@ public abstract class AggregateFcts { return new FloatAvgAggregate(DoubleType.instance) { - public ByteBuffer compute(int protocolVersion) throws InvalidRequestException + public ByteBuffer compute(ProtocolVersion protocolVersion) throws InvalidRequestException { return DoubleType.instance.decompose(computeInternal()); } @@ -708,7 +709,7 @@ public abstract class AggregateFcts { return new AvgAggregate(LongType.instance) { - public ByteBuffer compute(int protocolVersion) throws InvalidRequestException + public ByteBuffer compute(ProtocolVersion protocolVersion) throws InvalidRequestException { return CounterColumnType.instance.decompose(computeInternal()); } @@ -733,12 +734,12 @@ public abstract class AggregateFcts min = null; } - public ByteBuffer compute(int protocolVersion) + public ByteBuffer compute(ProtocolVersion protocolVersion) { return min != null ? LongType.instance.decompose(min) : null; } - public void addInput(int protocolVersion, List values) + public void addInput(ProtocolVersion protocolVersion, List values) { ByteBuffer value = values.get(0); @@ -771,12 +772,12 @@ public abstract class AggregateFcts max = null; } - public ByteBuffer compute(int protocolVersion) + public ByteBuffer compute(ProtocolVersion protocolVersion) { return max != null ? LongType.instance.decompose(max) : null; } - public void addInput(int protocolVersion, List values) + public void addInput(ProtocolVersion protocolVersion, List values) { ByteBuffer value = values.get(0); @@ -813,12 +814,12 @@ public abstract class AggregateFcts max = null; } - public ByteBuffer compute(int protocolVersion) + public ByteBuffer compute(ProtocolVersion protocolVersion) { return max; } - public void addInput(int protocolVersion, List values) + public void addInput(ProtocolVersion protocolVersion, List values) { ByteBuffer value = values.get(0); @@ -854,12 +855,12 @@ public abstract class AggregateFcts min = null; } - public ByteBuffer compute(int protocolVersion) + public ByteBuffer compute(ProtocolVersion protocolVersion) { return min; } - public void addInput(int protocolVersion, List values) + public void addInput(ProtocolVersion protocolVersion, List values) { ByteBuffer value = values.get(0); @@ -895,12 +896,12 @@ public abstract class AggregateFcts count = 0; } - public ByteBuffer compute(int protocolVersion) + public ByteBuffer compute(ProtocolVersion protocolVersion) { return ((LongType) returnType()).decompose(count); } - public void addInput(int protocolVersion, List values) + public void addInput(ProtocolVersion protocolVersion, List values) { ByteBuffer value = values.get(0); @@ -923,12 +924,12 @@ public abstract class AggregateFcts sum = 0; } - public ByteBuffer compute(int protocolVersion) + public ByteBuffer compute(ProtocolVersion protocolVersion) { return LongType.instance.decompose(sum); } - public void addInput(int protocolVersion, List values) + public void addInput(ProtocolVersion protocolVersion, List values) { ByteBuffer value = values.get(0); @@ -979,7 +980,7 @@ public abstract class AggregateFcts } } - public void addInput(int protocolVersion, List values) + public void addInput(ProtocolVersion protocolVersion, List values) { ByteBuffer value = values.get(0); http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/src/java/org/apache/cassandra/cql3/functions/AggregateFunction.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/functions/AggregateFunction.java b/src/java/org/apache/cassandra/cql3/functions/AggregateFunction.java index ddbc9d1..b207563 100644 --- a/src/java/org/apache/cassandra/cql3/functions/AggregateFunction.java +++ b/src/java/org/apache/cassandra/cql3/functions/AggregateFunction.java @@ -21,6 +21,7 @@ import java.nio.ByteBuffer; import java.util.List; import org.apache.cassandra.exceptions.InvalidRequestException; +import org.apache.cassandra.transport.ProtocolVersion; /** * Performs a calculation on a set of values and return a single value. @@ -41,11 +42,10 @@ public interface AggregateFunction extends Function { /** * Adds the specified input to this aggregate. - * - * @param protocolVersion native protocol version + * @param protocolVersion native protocol version * @param values the values to add to the aggregate. */ - public void addInput(int protocolVersion, List values) throws InvalidRequestException; + public void addInput(ProtocolVersion protocolVersion, List values) throws InvalidRequestException; /** * Computes and returns the aggregate current value. @@ -53,7 +53,7 @@ public interface AggregateFunction extends Function * @param protocolVersion native protocol version * @return the aggregate current value. */ - public ByteBuffer compute(int protocolVersion) throws InvalidRequestException; + public ByteBuffer compute(ProtocolVersion protocolVersion) throws InvalidRequestException; /** * Reset this aggregate. http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/src/java/org/apache/cassandra/cql3/functions/BytesConversionFcts.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/functions/BytesConversionFcts.java b/src/java/org/apache/cassandra/cql3/functions/BytesConversionFcts.java index d9c6a52..33771b7 100644 --- a/src/java/org/apache/cassandra/cql3/functions/BytesConversionFcts.java +++ b/src/java/org/apache/cassandra/cql3/functions/BytesConversionFcts.java @@ -26,6 +26,7 @@ import org.apache.cassandra.cql3.CQL3Type; import org.apache.cassandra.db.marshal.AbstractType; import org.apache.cassandra.db.marshal.BytesType; import org.apache.cassandra.db.marshal.UTF8Type; +import org.apache.cassandra.transport.ProtocolVersion; import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.cassandra.exceptions.InvalidRequestException; import org.apache.cassandra.serializers.MarshalException; @@ -60,7 +61,7 @@ public abstract class BytesConversionFcts String name = fromType.asCQL3Type() + "asblob"; return new NativeScalarFunction(name, BytesType.instance, fromType) { - public ByteBuffer execute(int protocolVersion, List parameters) + public ByteBuffer execute(ProtocolVersion protocolVersion, List parameters) { return parameters.get(0); } @@ -72,7 +73,7 @@ public abstract class BytesConversionFcts final String name = "blobas" + toType.asCQL3Type(); return new NativeScalarFunction(name, toType, BytesType.instance) { - public ByteBuffer execute(int protocolVersion, List parameters) throws InvalidRequestException + public ByteBuffer execute(ProtocolVersion protocolVersion, List parameters) throws InvalidRequestException { ByteBuffer val = parameters.get(0); try @@ -92,7 +93,7 @@ public abstract class BytesConversionFcts public static final Function VarcharAsBlobFct = new NativeScalarFunction("varcharasblob", BytesType.instance, UTF8Type.instance) { - public ByteBuffer execute(int protocolVersion, List parameters) + public ByteBuffer execute(ProtocolVersion protocolVersion, List parameters) { return parameters.get(0); } @@ -100,7 +101,7 @@ public abstract class BytesConversionFcts public static final Function BlobAsVarcharFct = new NativeScalarFunction("blobasvarchar", UTF8Type.instance, BytesType.instance) { - public ByteBuffer execute(int protocolVersion, List parameters) + public ByteBuffer execute(ProtocolVersion protocolVersion, List parameters) { return parameters.get(0); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/src/java/org/apache/cassandra/cql3/functions/CastFcts.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/functions/CastFcts.java b/src/java/org/apache/cassandra/cql3/functions/CastFcts.java index b5d3698..9e5c729 100644 --- a/src/java/org/apache/cassandra/cql3/functions/CastFcts.java +++ b/src/java/org/apache/cassandra/cql3/functions/CastFcts.java @@ -44,6 +44,8 @@ import org.apache.cassandra.db.marshal.TimeUUIDType; import org.apache.cassandra.db.marshal.TimestampType; import org.apache.cassandra.db.marshal.UTF8Type; import org.apache.cassandra.db.marshal.UUIDType; +import org.apache.cassandra.transport.ProtocolVersion; + import org.apache.commons.lang3.text.WordUtils; /** @@ -224,7 +226,7 @@ public final class CastFcts this.converter = converter; } - public final ByteBuffer execute(int protocolVersion, List parameters) + public final ByteBuffer execute(ProtocolVersion protocolVersion, List parameters) { ByteBuffer bb = parameters.get(0); if (bb == null) @@ -297,7 +299,7 @@ public final class CastFcts this.delegate = delegate; } - public ByteBuffer execute(int protocolVersion, List parameters) + public ByteBuffer execute(ProtocolVersion protocolVersion, List parameters) { return delegate.execute(protocolVersion, parameters); } @@ -323,7 +325,7 @@ public final class CastFcts super(inputType, outputType); } - public ByteBuffer execute(int protocolVersion, List parameters) + public ByteBuffer execute(ProtocolVersion protocolVersion, List parameters) { ByteBuffer bb = parameters.get(0); if (bb == null) http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/src/java/org/apache/cassandra/cql3/functions/FromJsonFct.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/functions/FromJsonFct.java b/src/java/org/apache/cassandra/cql3/functions/FromJsonFct.java index 2b9e8c6..8f07b38 100644 --- a/src/java/org/apache/cassandra/cql3/functions/FromJsonFct.java +++ b/src/java/org/apache/cassandra/cql3/functions/FromJsonFct.java @@ -28,6 +28,7 @@ import org.apache.cassandra.cql3.QueryOptions; import org.apache.cassandra.db.marshal.*; import org.apache.cassandra.exceptions.FunctionExecutionException; import org.apache.cassandra.serializers.MarshalException; +import org.apache.cassandra.transport.ProtocolVersion; public class FromJsonFct extends NativeScalarFunction { @@ -51,7 +52,7 @@ public class FromJsonFct extends NativeScalarFunction super("fromjson", returnType, UTF8Type.instance); } - public ByteBuffer execute(int protocolVersion, List parameters) + public ByteBuffer execute(ProtocolVersion protocolVersion, List parameters) { assert parameters.size() == 1 : "Unexpectedly got " + parameters.size() + " arguments for fromJson()"; ByteBuffer argument = parameters.get(0); http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/src/java/org/apache/cassandra/cql3/functions/FunctionCall.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/functions/FunctionCall.java b/src/java/org/apache/cassandra/cql3/functions/FunctionCall.java index 3905c83..bcc912f 100644 --- a/src/java/org/apache/cassandra/cql3/functions/FunctionCall.java +++ b/src/java/org/apache/cassandra/cql3/functions/FunctionCall.java @@ -27,6 +27,7 @@ import org.apache.cassandra.cql3.statements.RequestValidations; import org.apache.cassandra.db.marshal.*; import org.apache.cassandra.exceptions.InvalidRequestException; import org.apache.cassandra.serializers.MarshalException; +import org.apache.cassandra.transport.ProtocolVersion; import org.apache.cassandra.utils.ByteBufferUtil; public class FunctionCall extends Term.NonTerminal @@ -69,7 +70,7 @@ public class FunctionCall extends Term.NonTerminal return executeInternal(options.getProtocolVersion(), fun, buffers); } - private static ByteBuffer executeInternal(int protocolVersion, ScalarFunction fun, List params) throws InvalidRequestException + private static ByteBuffer executeInternal(ProtocolVersion protocolVersion, ScalarFunction fun, List params) throws InvalidRequestException { ByteBuffer result = fun.execute(protocolVersion, params); try @@ -96,7 +97,7 @@ public class FunctionCall extends Term.NonTerminal return false; } - private static Term.Terminal makeTerminal(Function fun, ByteBuffer result, int version) throws InvalidRequestException + private static Term.Terminal makeTerminal(Function fun, ByteBuffer result, ProtocolVersion version) throws InvalidRequestException { if (fun.returnType().isCollection()) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/src/java/org/apache/cassandra/cql3/functions/JavaBasedUDFunction.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/functions/JavaBasedUDFunction.java b/src/java/org/apache/cassandra/cql3/functions/JavaBasedUDFunction.java index 34c6cc9..8f12899 100644 --- a/src/java/org/apache/cassandra/cql3/functions/JavaBasedUDFunction.java +++ b/src/java/org/apache/cassandra/cql3/functions/JavaBasedUDFunction.java @@ -48,6 +48,7 @@ import org.apache.cassandra.concurrent.NamedThreadFactory; import org.apache.cassandra.cql3.ColumnIdentifier; import org.apache.cassandra.db.marshal.AbstractType; import org.apache.cassandra.exceptions.InvalidRequestException; +import org.apache.cassandra.transport.ProtocolVersion; import org.apache.cassandra.utils.FBUtilities; import org.eclipse.jdt.core.compiler.IProblem; import org.eclipse.jdt.internal.compiler.*; @@ -362,12 +363,12 @@ public final class JavaBasedUDFunction extends UDFunction return executor; } - protected ByteBuffer executeUserDefined(int protocolVersion, List params) + protected ByteBuffer executeUserDefined(ProtocolVersion protocolVersion, List params) { return javaUDF.executeImpl(protocolVersion, params); } - protected Object executeAggregateUserDefined(int protocolVersion, Object firstParam, List params) + protected Object executeAggregateUserDefined(ProtocolVersion protocolVersion, Object firstParam, List params) { return javaUDF.executeAggregateImpl(protocolVersion, firstParam, params); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/src/java/org/apache/cassandra/cql3/functions/JavaUDF.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/functions/JavaUDF.java b/src/java/org/apache/cassandra/cql3/functions/JavaUDF.java index 56a7ced..fab29f3 100644 --- a/src/java/org/apache/cassandra/cql3/functions/JavaUDF.java +++ b/src/java/org/apache/cassandra/cql3/functions/JavaUDF.java @@ -22,6 +22,7 @@ import java.nio.ByteBuffer; import java.util.List; import com.datastax.driver.core.TypeCodec; +import org.apache.cassandra.transport.ProtocolVersion; /** * Base class for all Java UDFs. @@ -43,64 +44,64 @@ public abstract class JavaUDF this.udfContext = udfContext; } - protected abstract ByteBuffer executeImpl(int protocolVersion, List params); + protected abstract ByteBuffer executeImpl(ProtocolVersion protocolVersion, List params); - protected abstract Object executeAggregateImpl(int protocolVersion, Object firstParam, List params); + protected abstract Object executeAggregateImpl(ProtocolVersion protocolVersion, Object firstParam, List params); - protected Object compose(int protocolVersion, int argIndex, ByteBuffer value) + protected Object compose(ProtocolVersion protocolVersion, int argIndex, ByteBuffer value) { return UDFunction.compose(argCodecs, protocolVersion, argIndex, value); } - protected ByteBuffer decompose(int protocolVersion, Object value) + protected ByteBuffer decompose(ProtocolVersion protocolVersion, Object value) { return UDFunction.decompose(returnCodec, protocolVersion, value); } // do not remove - used by generated Java UDFs - protected float compose_float(int protocolVersion, int argIndex, ByteBuffer value) + protected float compose_float(ProtocolVersion protocolVersion, int argIndex, ByteBuffer value) { assert value != null && value.remaining() > 0; return (float) UDHelper.deserialize(TypeCodec.cfloat(), protocolVersion, value); } // do not remove - used by generated Java UDFs - protected double compose_double(int protocolVersion, int argIndex, ByteBuffer value) + protected double compose_double(ProtocolVersion protocolVersion, int argIndex, ByteBuffer value) { assert value != null && value.remaining() > 0; return (double) UDHelper.deserialize(TypeCodec.cdouble(), protocolVersion, value); } // do not remove - used by generated Java UDFs - protected byte compose_byte(int protocolVersion, int argIndex, ByteBuffer value) + protected byte compose_byte(ProtocolVersion protocolVersion, int argIndex, ByteBuffer value) { assert value != null && value.remaining() > 0; return (byte) UDHelper.deserialize(TypeCodec.tinyInt(), protocolVersion, value); } // do not remove - used by generated Java UDFs - protected short compose_short(int protocolVersion, int argIndex, ByteBuffer value) + protected short compose_short(ProtocolVersion protocolVersion, int argIndex, ByteBuffer value) { assert value != null && value.remaining() > 0; return (short) UDHelper.deserialize(TypeCodec.smallInt(), protocolVersion, value); } // do not remove - used by generated Java UDFs - protected int compose_int(int protocolVersion, int argIndex, ByteBuffer value) + protected int compose_int(ProtocolVersion protocolVersion, int argIndex, ByteBuffer value) { assert value != null && value.remaining() > 0; return (int) UDHelper.deserialize(TypeCodec.cint(), protocolVersion, value); } // do not remove - used by generated Java UDFs - protected long compose_long(int protocolVersion, int argIndex, ByteBuffer value) + protected long compose_long(ProtocolVersion protocolVersion, int argIndex, ByteBuffer value) { assert value != null && value.remaining() > 0; return (long) UDHelper.deserialize(TypeCodec.bigint(), protocolVersion, value); } // do not remove - used by generated Java UDFs - protected boolean compose_boolean(int protocolVersion, int argIndex, ByteBuffer value) + protected boolean compose_boolean(ProtocolVersion protocolVersion, int argIndex, ByteBuffer value) { assert value != null && value.remaining() > 0; return (boolean) UDHelper.deserialize(TypeCodec.cboolean(), protocolVersion, value); http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/src/java/org/apache/cassandra/cql3/functions/ScalarFunction.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/functions/ScalarFunction.java b/src/java/org/apache/cassandra/cql3/functions/ScalarFunction.java index ba258df..1f98372 100644 --- a/src/java/org/apache/cassandra/cql3/functions/ScalarFunction.java +++ b/src/java/org/apache/cassandra/cql3/functions/ScalarFunction.java @@ -21,6 +21,7 @@ import java.nio.ByteBuffer; import java.util.List; import org.apache.cassandra.exceptions.InvalidRequestException; +import org.apache.cassandra.transport.ProtocolVersion; /** * Determines a single output value based on a single input value. @@ -37,5 +38,5 @@ public interface ScalarFunction extends Function * @return the result of applying this function to the parameter * @throws InvalidRequestException if this function cannot not be applied to the parameter */ - public ByteBuffer execute(int protocolVersion, List parameters) throws InvalidRequestException; + public ByteBuffer execute(ProtocolVersion protocolVersion, List parameters) throws InvalidRequestException; } http://git-wip-us.apache.org/repos/asf/cassandra/blob/e0adc166/src/java/org/apache/cassandra/cql3/functions/ScriptBasedUDFunction.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/functions/ScriptBasedUDFunction.java b/src/java/org/apache/cassandra/cql3/functions/ScriptBasedUDFunction.java index 8c15dc9..3ad60d0 100644 --- a/src/java/org/apache/cassandra/cql3/functions/ScriptBasedUDFunction.java +++ b/src/java/org/apache/cassandra/cql3/functions/ScriptBasedUDFunction.java @@ -32,6 +32,7 @@ import org.apache.cassandra.concurrent.NamedThreadFactory; import org.apache.cassandra.cql3.ColumnIdentifier; import org.apache.cassandra.db.marshal.AbstractType; import org.apache.cassandra.exceptions.InvalidRequestException; +import org.apache.cassandra.transport.ProtocolVersion; final class ScriptBasedUDFunction extends UDFunction { @@ -171,7 +172,7 @@ final class ScriptBasedUDFunction extends UDFunction return executor; } - public ByteBuffer executeUserDefined(int protocolVersion, List parameters) + public ByteBuffer executeUserDefined(ProtocolVersion protocolVersion, List parameters) { Object[] params = new Object[argTypes.size()]; for (int i = 0; i < params.length; i++) @@ -183,12 +184,12 @@ final class ScriptBasedUDFunction extends UDFunction } /** - * Like {@link #executeUserDefined(int, List)} but the first parameter is already in non-serialized form. + * Like {@link UDFunction#executeUserDefined(ProtocolVersion, List)} but the first parameter is already in non-serialized form. * Remaining parameters (2nd paramters and all others) are in {@code parameters}. * This is used to prevent superfluous (de)serialization of the state of aggregates. * Means: scalar functions of aggregates are called using this variant. */ - protected Object executeAggregateUserDefined(int protocolVersion, Object firstParam, List parameters) + protected Object executeAggregateUserDefined(ProtocolVersion protocolVersion, Object firstParam, List parameters) { Object[] params = new Object[argTypes.size()]; params[0] = firstParam;