You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by bl...@apache.org on 2017/03/21 16:13:44 UTC

cassandra git commit: Fix SmallInt and TinyInt serialization (Followup CASSANDRA-11935)

Repository: cassandra
Updated Branches:
  refs/heads/trunk 3177de5d7 -> f5e0a7cdb


Fix SmallInt and TinyInt serialization (Followup CASSANDRA-11935)

patch by Benjamin Lerer; reviewed by Sylvain Lebresne for CASSANDRA-11935


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f5e0a7cd
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f5e0a7cd
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f5e0a7cd

Branch: refs/heads/trunk
Commit: f5e0a7cdba7c361c04ac21f49f6e5e20af502b9e
Parents: 3177de5
Author: Benjamin Lerer <b....@gmail.com>
Authored: Tue Mar 21 17:08:18 2017 +0100
Committer: Benjamin Lerer <b....@gmail.com>
Committed: Tue Mar 21 17:08:18 2017 +0100

----------------------------------------------------------------------
 .../org/apache/cassandra/cql3/functions/OperationFcts.java   | 8 ++++++++
 src/java/org/apache/cassandra/db/marshal/ByteType.java       | 6 ------
 src/java/org/apache/cassandra/db/marshal/ShortType.java      | 6 ------
 3 files changed, 8 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/f5e0a7cd/src/java/org/apache/cassandra/cql3/functions/OperationFcts.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/functions/OperationFcts.java b/src/java/org/apache/cassandra/cql3/functions/OperationFcts.java
index 9232fc1..4994660 100644
--- a/src/java/org/apache/cassandra/cql3/functions/OperationFcts.java
+++ b/src/java/org/apache/cassandra/cql3/functions/OperationFcts.java
@@ -297,6 +297,14 @@ public final class OperationFcts
         if (size > 0)
             return size;
 
+        // tinyint and smallint type are not fixed length types even if they should be.
+        // So we need to handle them in a special way.
+        if (type == ByteType.instance)
+            return 1;
+
+        if (type == ShortType.instance)
+            return 2;
+
         if (type.isCounter())
             return LongType.instance.valueLengthIfFixed();
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f5e0a7cd/src/java/org/apache/cassandra/db/marshal/ByteType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/ByteType.java b/src/java/org/apache/cassandra/db/marshal/ByteType.java
index 517e734..c19fdd9 100644
--- a/src/java/org/apache/cassandra/db/marshal/ByteType.java
+++ b/src/java/org/apache/cassandra/db/marshal/ByteType.java
@@ -84,12 +84,6 @@ public class ByteType extends NumberType<Byte>
     }
 
     @Override
-    public int valueLengthIfFixed()
-    {
-        return 1;
-    }
-
-    @Override
     public TypeSerializer<Byte> getSerializer()
     {
         return ByteSerializer.instance;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f5e0a7cd/src/java/org/apache/cassandra/db/marshal/ShortType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/ShortType.java b/src/java/org/apache/cassandra/db/marshal/ShortType.java
index b37a0b7..01dca4e 100644
--- a/src/java/org/apache/cassandra/db/marshal/ShortType.java
+++ b/src/java/org/apache/cassandra/db/marshal/ShortType.java
@@ -93,12 +93,6 @@ public class ShortType extends NumberType<Short>
     }
 
     @Override
-    public int valueLengthIfFixed()
-    {
-        return 2;
-    }
-
-    @Override
     public short toShort(ByteBuffer value)
     {
         return ByteBufferUtil.toShort(value);