You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ee...@apache.org on 2012/01/20 23:13:32 UTC
git commit: relocate decompose() methods to JDBC types
Updated Branches:
refs/heads/trunk c641acca7 -> b226cf93f
relocate decompose() methods to JDBC types
Patch by Rick Shaw; reviewed by eevans for CASSANDRA-3760
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b226cf93
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b226cf93
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b226cf93
Branch: refs/heads/trunk
Commit: b226cf93f8f3a6b6d7c2863df427656a86dd1361
Parents: c641acc
Author: Eric Evans <ee...@apache.org>
Authored: Fri Jan 20 15:23:41 2012 -0600
Committer: Eric Evans <ee...@apache.org>
Committed: Fri Jan 20 16:11:39 2012 -0600
----------------------------------------------------------------------
.../cassandra/cql/jdbc/AbstractJdbcType.java | 1 +
.../org/apache/cassandra/cql/jdbc/JdbcAscii.java | 6 +++-
.../org/apache/cassandra/cql/jdbc/JdbcBoolean.java | 10 ++++++-
.../org/apache/cassandra/cql/jdbc/JdbcBytes.java | 5 +++
.../org/apache/cassandra/cql/jdbc/JdbcDate.java | 7 ++++
.../org/apache/cassandra/cql/jdbc/JdbcDecimal.java | 23 +++++++++++++++
.../org/apache/cassandra/cql/jdbc/JdbcDouble.java | 5 +++
.../org/apache/cassandra/cql/jdbc/JdbcFloat.java | 5 +++
.../org/apache/cassandra/cql/jdbc/JdbcInt32.java | 5 +++
.../org/apache/cassandra/cql/jdbc/JdbcInteger.java | 5 +++
.../apache/cassandra/cql/jdbc/JdbcLexicalUUID.java | 5 +++
.../org/apache/cassandra/cql/jdbc/JdbcLong.java | 5 +++
.../apache/cassandra/cql/jdbc/JdbcTimeUUID.java | 5 +++
.../org/apache/cassandra/cql/jdbc/JdbcUTF8.java | 7 ++++
.../org/apache/cassandra/cql/jdbc/JdbcUUID.java | 7 ++++
.../org/apache/cassandra/db/marshal/AsciiType.java | 5 +--
.../apache/cassandra/db/marshal/BooleanType.java | 5 +--
.../org/apache/cassandra/db/marshal/BytesType.java | 2 +-
.../cassandra/db/marshal/CounterColumnType.java | 2 -
.../org/apache/cassandra/db/marshal/DateType.java | 4 +--
.../apache/cassandra/db/marshal/DecimalType.java | 14 +--------
.../apache/cassandra/db/marshal/DoubleType.java | 5 +--
.../org/apache/cassandra/db/marshal/FloatType.java | 5 +--
.../org/apache/cassandra/db/marshal/Int32Type.java | 4 +-
.../apache/cassandra/db/marshal/IntegerType.java | 2 +-
.../cassandra/db/marshal/LexicalUUIDType.java | 2 +-
.../org/apache/cassandra/db/marshal/LongType.java | 4 +-
.../apache/cassandra/db/marshal/TimeUUIDType.java | 2 +-
.../org/apache/cassandra/db/marshal/UTF8Type.java | 5 +--
.../org/apache/cassandra/db/marshal/UUIDType.java | 2 +-
30 files changed, 117 insertions(+), 47 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/cql/jdbc/AbstractJdbcType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/jdbc/AbstractJdbcType.java b/src/java/org/apache/cassandra/cql/jdbc/AbstractJdbcType.java
index 551fbd0..3e86e53 100644
--- a/src/java/org/apache/cassandra/cql/jdbc/AbstractJdbcType.java
+++ b/src/java/org/apache/cassandra/cql/jdbc/AbstractJdbcType.java
@@ -36,4 +36,5 @@ public abstract class AbstractJdbcType<T>
public abstract Class<T> getType();
public abstract int getJdbcType();
public abstract T compose(ByteBuffer bytes);
+ public abstract ByteBuffer decompose(T obj);
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/cql/jdbc/JdbcAscii.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/jdbc/JdbcAscii.java b/src/java/org/apache/cassandra/cql/jdbc/JdbcAscii.java
index f4fd325..f4c4f17 100644
--- a/src/java/org/apache/cassandra/cql/jdbc/JdbcAscii.java
+++ b/src/java/org/apache/cassandra/cql/jdbc/JdbcAscii.java
@@ -96,5 +96,9 @@ public class JdbcAscii extends AbstractJdbcType<String>
{
return getString(bytes);
}
-
+
+ public ByteBuffer decompose(String value)
+ {
+ return ByteBufferUtil.bytes(value, Charsets.US_ASCII);
+ }
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/cql/jdbc/JdbcBoolean.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/jdbc/JdbcBoolean.java b/src/java/org/apache/cassandra/cql/jdbc/JdbcBoolean.java
index ea610cb..99b5805 100644
--- a/src/java/org/apache/cassandra/cql/jdbc/JdbcBoolean.java
+++ b/src/java/org/apache/cassandra/cql/jdbc/JdbcBoolean.java
@@ -24,6 +24,8 @@ package org.apache.cassandra.cql.jdbc;
import java.nio.ByteBuffer;
import java.sql.Types;
+import org.apache.cassandra.utils.ByteBufferUtil;
+
public class JdbcBoolean extends AbstractJdbcType<Boolean>
{
public static final JdbcBoolean instance = new JdbcBoolean();
@@ -95,5 +97,11 @@ public class JdbcBoolean extends AbstractJdbcType<Boolean>
byte value = bytes.get(bytes.position());
return Boolean.valueOf(value ==0 ? false:true);
}
-
+
+ public ByteBuffer decompose(Boolean value)
+ {
+ return (value==null) ? ByteBufferUtil.EMPTY_BYTE_BUFFER
+ : value ? ByteBuffer.wrap(new byte[]{1}) // true
+ : ByteBuffer.wrap(new byte[]{0}); // false
+ }
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/cql/jdbc/JdbcBytes.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/jdbc/JdbcBytes.java b/src/java/org/apache/cassandra/cql/jdbc/JdbcBytes.java
index 397de2d..cbb6355 100644
--- a/src/java/org/apache/cassandra/cql/jdbc/JdbcBytes.java
+++ b/src/java/org/apache/cassandra/cql/jdbc/JdbcBytes.java
@@ -87,4 +87,9 @@ public class JdbcBytes extends AbstractJdbcType<ByteBuffer>
{
return bytes.duplicate();
}
+
+ public ByteBuffer decompose(ByteBuffer value)
+ {
+ return value;
+ }
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/cql/jdbc/JdbcDate.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/jdbc/JdbcDate.java b/src/java/org/apache/cassandra/cql/jdbc/JdbcDate.java
index ae4bb39..44c2274 100644
--- a/src/java/org/apache/cassandra/cql/jdbc/JdbcDate.java
+++ b/src/java/org/apache/cassandra/cql/jdbc/JdbcDate.java
@@ -113,4 +113,11 @@ public class JdbcDate extends AbstractJdbcType<Date>
{
return new Date(ByteBufferUtil.toLong(bytes));
}
+
+ public ByteBuffer decompose(Date value)
+ {
+ return (value==null) ? ByteBufferUtil.EMPTY_BYTE_BUFFER
+ : ByteBufferUtil.bytes(value.getTime());
+ }
+
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/cql/jdbc/JdbcDecimal.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/jdbc/JdbcDecimal.java b/src/java/org/apache/cassandra/cql/jdbc/JdbcDecimal.java
index f97634e..3792795 100644
--- a/src/java/org/apache/cassandra/cql/jdbc/JdbcDecimal.java
+++ b/src/java/org/apache/cassandra/cql/jdbc/JdbcDecimal.java
@@ -25,6 +25,8 @@ import java.math.BigInteger;
import java.nio.ByteBuffer;
import java.sql.Types;
+import org.apache.cassandra.utils.ByteBufferUtil;
+
public class JdbcDecimal extends AbstractJdbcType<BigDecimal>
{
public static final JdbcDecimal instance = new JdbcDecimal();
@@ -96,4 +98,25 @@ public class JdbcDecimal extends AbstractJdbcType<BigDecimal>
BigInteger bi = new BigInteger(bibytes);
return new BigDecimal(bi,scale);
}
+
+ /**
+ * The bytes of the ByteBuffer are made up of 4 bytes of int containing the scale
+ * followed by the n bytes it takes to store a BigInteger.
+ */
+ public ByteBuffer decompose(BigDecimal value)
+ {
+ if (value == null) return ByteBufferUtil.EMPTY_BYTE_BUFFER;
+
+ BigInteger bi = value.unscaledValue();
+ Integer scale = value.scale();
+ byte[] bibytes = bi.toByteArray();
+ byte[] sbytes = ByteBufferUtil.bytes(scale).array();
+ byte[] bytes = new byte[bi.toByteArray().length+4];
+
+ for (int i = 0 ; i < 4 ; i++) bytes[i] = sbytes[i];
+ for (int i = 4 ; i < bibytes.length+4 ; i++) bytes[i] = bibytes[i-4];
+
+ return ByteBuffer.wrap(bytes);
+ }
+
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/cql/jdbc/JdbcDouble.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/jdbc/JdbcDouble.java b/src/java/org/apache/cassandra/cql/jdbc/JdbcDouble.java
index 89f3d28..6036608 100644
--- a/src/java/org/apache/cassandra/cql/jdbc/JdbcDouble.java
+++ b/src/java/org/apache/cassandra/cql/jdbc/JdbcDouble.java
@@ -95,4 +95,9 @@ public class JdbcDouble extends AbstractJdbcType<Double>
{
return ByteBufferUtil.toDouble(bytes);
}
+
+ public ByteBuffer decompose(Double value)
+ {
+ return (value==null) ? ByteBufferUtil.EMPTY_BYTE_BUFFER : ByteBufferUtil.bytes(value);
+ }
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/cql/jdbc/JdbcFloat.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/jdbc/JdbcFloat.java b/src/java/org/apache/cassandra/cql/jdbc/JdbcFloat.java
index e06e860..82d755b 100644
--- a/src/java/org/apache/cassandra/cql/jdbc/JdbcFloat.java
+++ b/src/java/org/apache/cassandra/cql/jdbc/JdbcFloat.java
@@ -95,4 +95,9 @@ public class JdbcFloat extends AbstractJdbcType<Float>
{
return ByteBufferUtil.toFloat(bytes);
}
+
+ public ByteBuffer decompose(Float value)
+ {
+ return (value==null) ? ByteBufferUtil.EMPTY_BYTE_BUFFER : ByteBufferUtil.bytes(value);
+ }
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/cql/jdbc/JdbcInt32.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/jdbc/JdbcInt32.java b/src/java/org/apache/cassandra/cql/jdbc/JdbcInt32.java
index 21bdc33..5a05a80 100644
--- a/src/java/org/apache/cassandra/cql/jdbc/JdbcInt32.java
+++ b/src/java/org/apache/cassandra/cql/jdbc/JdbcInt32.java
@@ -97,4 +97,9 @@ public class JdbcInt32 extends AbstractJdbcType<Integer>
{
return ByteBufferUtil.toInt(bytes);
}
+
+ public ByteBuffer decompose(Integer value)
+ {
+ return ByteBufferUtil.bytes(value);
+ }
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/cql/jdbc/JdbcInteger.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/jdbc/JdbcInteger.java b/src/java/org/apache/cassandra/cql/jdbc/JdbcInteger.java
index b1f68b0..358a1a4 100644
--- a/src/java/org/apache/cassandra/cql/jdbc/JdbcInteger.java
+++ b/src/java/org/apache/cassandra/cql/jdbc/JdbcInteger.java
@@ -92,4 +92,9 @@ public class JdbcInteger extends AbstractJdbcType<BigInteger>
{
return new BigInteger(ByteBufferUtil.getArray(bytes));
}
+
+ public ByteBuffer decompose(BigInteger value)
+ {
+ return ByteBuffer.wrap(value.toByteArray());
+ }
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/cql/jdbc/JdbcLexicalUUID.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/jdbc/JdbcLexicalUUID.java b/src/java/org/apache/cassandra/cql/jdbc/JdbcLexicalUUID.java
index ea39232..30fbdee 100644
--- a/src/java/org/apache/cassandra/cql/jdbc/JdbcLexicalUUID.java
+++ b/src/java/org/apache/cassandra/cql/jdbc/JdbcLexicalUUID.java
@@ -49,4 +49,9 @@ public class JdbcLexicalUUID extends AbstractJdbcUUID
{
return UUIDGen.getUUID(bytes);
}
+
+ public ByteBuffer decompose(UUID value)
+ {
+ return ByteBuffer.wrap(UUIDGen.decompose(value));
+ }
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/cql/jdbc/JdbcLong.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/jdbc/JdbcLong.java b/src/java/org/apache/cassandra/cql/jdbc/JdbcLong.java
index b6c6e27..c54d871 100644
--- a/src/java/org/apache/cassandra/cql/jdbc/JdbcLong.java
+++ b/src/java/org/apache/cassandra/cql/jdbc/JdbcLong.java
@@ -97,4 +97,9 @@ public class JdbcLong extends AbstractJdbcType<Long>
{
return ByteBufferUtil.toLong(bytes);
}
+
+ public ByteBuffer decompose(Long value)
+ {
+ return ByteBufferUtil.bytes(value);
+ }
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/cql/jdbc/JdbcTimeUUID.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/jdbc/JdbcTimeUUID.java b/src/java/org/apache/cassandra/cql/jdbc/JdbcTimeUUID.java
index 3fc7db4..314ab82 100644
--- a/src/java/org/apache/cassandra/cql/jdbc/JdbcTimeUUID.java
+++ b/src/java/org/apache/cassandra/cql/jdbc/JdbcTimeUUID.java
@@ -54,4 +54,9 @@ public class JdbcTimeUUID extends AbstractJdbcUUID
{
return UUIDGen.getUUID(bytes);
}
+
+ public ByteBuffer decompose(UUID value)
+ {
+ return ByteBuffer.wrap(UUIDGen.decompose(value));
+ }
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/cql/jdbc/JdbcUTF8.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/jdbc/JdbcUTF8.java b/src/java/org/apache/cassandra/cql/jdbc/JdbcUTF8.java
index d7379c0..1d8aba9 100644
--- a/src/java/org/apache/cassandra/cql/jdbc/JdbcUTF8.java
+++ b/src/java/org/apache/cassandra/cql/jdbc/JdbcUTF8.java
@@ -27,6 +27,8 @@ import java.sql.Types;
import org.apache.cassandra.utils.ByteBufferUtil;
+import com.google.common.base.Charsets;
+
public class JdbcUTF8 extends AbstractJdbcType<String>
{
public static final JdbcUTF8 instance = new JdbcUTF8();
@@ -94,4 +96,9 @@ public class JdbcUTF8 extends AbstractJdbcType<String>
{
return getString(bytes);
}
+
+ public ByteBuffer decompose(String value)
+ {
+ return ByteBufferUtil.bytes(value, Charsets.UTF_8);
+ }
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/cql/jdbc/JdbcUUID.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/jdbc/JdbcUUID.java b/src/java/org/apache/cassandra/cql/jdbc/JdbcUUID.java
index a375c81..375c1f0 100644
--- a/src/java/org/apache/cassandra/cql/jdbc/JdbcUUID.java
+++ b/src/java/org/apache/cassandra/cql/jdbc/JdbcUUID.java
@@ -24,6 +24,8 @@ package org.apache.cassandra.cql.jdbc;
import java.nio.ByteBuffer;
import java.util.UUID;
+import org.apache.cassandra.utils.UUIDGen;
+
public class JdbcUUID extends AbstractJdbcUUID
{
public static final JdbcUUID instance = new JdbcUUID();
@@ -51,4 +53,9 @@ public class JdbcUUID extends AbstractJdbcUUID
return compose(bytes).toString();
}
+
+ public ByteBuffer decompose(UUID value)
+ {
+ return ByteBuffer.wrap(UUIDGen.decompose(value));
+ }
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/db/marshal/AsciiType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/AsciiType.java b/src/java/org/apache/cassandra/db/marshal/AsciiType.java
index b759f7f..9522f09 100644
--- a/src/java/org/apache/cassandra/db/marshal/AsciiType.java
+++ b/src/java/org/apache/cassandra/db/marshal/AsciiType.java
@@ -23,10 +23,7 @@ package org.apache.cassandra.db.marshal;
import java.nio.ByteBuffer;
-import com.google.common.base.Charsets;
-
import org.apache.cassandra.cql.jdbc.JdbcAscii;
-import org.apache.cassandra.utils.ByteBufferUtil;
public class AsciiType extends AbstractType<String>
{
@@ -58,7 +55,7 @@ public class AsciiType extends AbstractType<String>
public ByteBuffer decompose(String value)
{
- return ByteBufferUtil.bytes(value, Charsets.US_ASCII);
+ return JdbcAscii.instance.decompose(value);
}
public ByteBuffer fromString(String source)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/db/marshal/BooleanType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/BooleanType.java b/src/java/org/apache/cassandra/db/marshal/BooleanType.java
index 5bddc3c..00af80a 100644
--- a/src/java/org/apache/cassandra/db/marshal/BooleanType.java
+++ b/src/java/org/apache/cassandra/db/marshal/BooleanType.java
@@ -23,7 +23,6 @@ package org.apache.cassandra.db.marshal;
import java.nio.ByteBuffer;
import org.apache.cassandra.cql.jdbc.JdbcBoolean;
-import org.apache.cassandra.utils.ByteBufferUtil;
public class BooleanType extends AbstractType<Boolean>
{
@@ -38,9 +37,7 @@ public class BooleanType extends AbstractType<Boolean>
public ByteBuffer decompose(Boolean value)
{
- return (value==null) ? ByteBufferUtil.EMPTY_BYTE_BUFFER
- : value ? ByteBuffer.wrap(new byte[]{1}) // true
- : ByteBuffer.wrap(new byte[]{0}); // false
+ return JdbcBoolean.instance.decompose(value);
}
public int compare(ByteBuffer o1, ByteBuffer o2)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/db/marshal/BytesType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/BytesType.java b/src/java/org/apache/cassandra/db/marshal/BytesType.java
index 5da76f4..7ab70df 100644
--- a/src/java/org/apache/cassandra/db/marshal/BytesType.java
+++ b/src/java/org/apache/cassandra/db/marshal/BytesType.java
@@ -40,7 +40,7 @@ public class BytesType extends AbstractType<ByteBuffer>
public ByteBuffer decompose(ByteBuffer value)
{
- return value;
+ return JdbcBytes.instance.decompose(value);
}
public int compare(ByteBuffer o1, ByteBuffer o2)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/db/marshal/CounterColumnType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/CounterColumnType.java b/src/java/org/apache/cassandra/db/marshal/CounterColumnType.java
index 52b7f24..6dbd2cb 100644
--- a/src/java/org/apache/cassandra/db/marshal/CounterColumnType.java
+++ b/src/java/org/apache/cassandra/db/marshal/CounterColumnType.java
@@ -20,12 +20,10 @@
*/
package org.apache.cassandra.db.marshal;
-import java.net.InetAddress;
import java.nio.ByteBuffer;
import org.apache.cassandra.db.*;
import org.apache.cassandra.utils.ByteBufferUtil;
-import org.apache.cassandra.utils.HeapAllocator;
public class CounterColumnType extends AbstractCommutativeType
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/db/marshal/DateType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/DateType.java b/src/java/org/apache/cassandra/db/marshal/DateType.java
index affeb07..a8dbcef 100644
--- a/src/java/org/apache/cassandra/db/marshal/DateType.java
+++ b/src/java/org/apache/cassandra/db/marshal/DateType.java
@@ -47,11 +47,9 @@ public class DateType extends AbstractType<Date>
public ByteBuffer decompose(Date value)
{
- return (value==null) ? ByteBufferUtil.EMPTY_BYTE_BUFFER
- : ByteBufferUtil.bytes(value.getTime());
+ return JdbcDate.instance.decompose(value);
}
-
public int compare(ByteBuffer o1, ByteBuffer o2)
{
if (o1.remaining() == 0)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/db/marshal/DecimalType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/DecimalType.java b/src/java/org/apache/cassandra/db/marshal/DecimalType.java
index e98e228..1c44b97 100644
--- a/src/java/org/apache/cassandra/db/marshal/DecimalType.java
+++ b/src/java/org/apache/cassandra/db/marshal/DecimalType.java
@@ -21,7 +21,6 @@ package org.apache.cassandra.db.marshal;
*/
import java.math.BigDecimal;
-import java.math.BigInteger;
import java.nio.ByteBuffer;
import org.apache.cassandra.cql.jdbc.JdbcDecimal;
@@ -58,18 +57,7 @@ public class DecimalType extends AbstractType<BigDecimal>
*/
public ByteBuffer decompose(BigDecimal value)
{
- if (value == null) return ByteBufferUtil.EMPTY_BYTE_BUFFER;
-
- BigInteger bi = value.unscaledValue();
- Integer scale = value.scale();
- byte[] bibytes = bi.toByteArray();
- byte[] sbytes = ByteBufferUtil.bytes(scale).array();
- byte[] bytes = new byte[bi.toByteArray().length+4];
-
- for (int i = 0 ; i < 4 ; i++) bytes[i] = sbytes[i];
- for (int i = 4 ; i < bibytes.length+4 ; i++) bytes[i] = bibytes[i-4];
-
- return ByteBuffer.wrap(bytes);
+ return JdbcDecimal.instance.decompose(value);
}
public String getString(ByteBuffer bytes)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/db/marshal/DoubleType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/DoubleType.java b/src/java/org/apache/cassandra/db/marshal/DoubleType.java
index 728477d..44d086b 100644
--- a/src/java/org/apache/cassandra/db/marshal/DoubleType.java
+++ b/src/java/org/apache/cassandra/db/marshal/DoubleType.java
@@ -38,9 +38,8 @@ public class DoubleType extends AbstractType<Double>
public ByteBuffer decompose(Double value)
{
- return (value==null) ? ByteBufferUtil.EMPTY_BYTE_BUFFER : ByteBufferUtil.bytes(value);
- }
-
+ return JdbcDouble.instance.decompose(value);
+ }
public int compare(ByteBuffer o1, ByteBuffer o2)
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/db/marshal/FloatType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/FloatType.java b/src/java/org/apache/cassandra/db/marshal/FloatType.java
index 9da60de..b946407 100644
--- a/src/java/org/apache/cassandra/db/marshal/FloatType.java
+++ b/src/java/org/apache/cassandra/db/marshal/FloatType.java
@@ -39,9 +39,8 @@ public class FloatType extends AbstractType<Float>
public ByteBuffer decompose(Float value)
{
- return (value==null) ? ByteBufferUtil.EMPTY_BYTE_BUFFER : ByteBufferUtil.bytes(value);
- }
-
+ return JdbcFloat.instance.decompose(value);
+ }
public int compare(ByteBuffer o1, ByteBuffer o2)
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/db/marshal/Int32Type.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/Int32Type.java b/src/java/org/apache/cassandra/db/marshal/Int32Type.java
index 22ec9e4..c377496 100644
--- a/src/java/org/apache/cassandra/db/marshal/Int32Type.java
+++ b/src/java/org/apache/cassandra/db/marshal/Int32Type.java
@@ -34,12 +34,12 @@ public class Int32Type extends AbstractType<Integer>
public Integer compose(ByteBuffer bytes)
{
- return ByteBufferUtil.toInt(bytes);
+ return JdbcInt32.instance.compose(bytes);
}
public ByteBuffer decompose(Integer value)
{
- return ByteBufferUtil.bytes(value);
+ return JdbcInt32.instance.decompose(value);
}
public int compare(ByteBuffer o1, ByteBuffer o2)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/db/marshal/IntegerType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/IntegerType.java b/src/java/org/apache/cassandra/db/marshal/IntegerType.java
index 6d87cd1..9f303b2 100644
--- a/src/java/org/apache/cassandra/db/marshal/IntegerType.java
+++ b/src/java/org/apache/cassandra/db/marshal/IntegerType.java
@@ -64,7 +64,7 @@ public final class IntegerType extends AbstractType<BigInteger>
public ByteBuffer decompose(BigInteger value)
{
- return ByteBuffer.wrap(value.toByteArray());
+ return JdbcInteger.instance.decompose(value);
}
public int compare(ByteBuffer lhs, ByteBuffer rhs)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java b/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java
index decf3f9..664752c 100644
--- a/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java
+++ b/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java
@@ -41,7 +41,7 @@ public class LexicalUUIDType extends AbstractType<UUID>
public ByteBuffer decompose(UUID value)
{
- return ByteBuffer.wrap(UUIDGen.decompose(value));
+ return JdbcLexicalUUID.instance.decompose(value);
}
public int compare(ByteBuffer o1, ByteBuffer o2)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/db/marshal/LongType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/LongType.java b/src/java/org/apache/cassandra/db/marshal/LongType.java
index 1cecb72..b604cac 100644
--- a/src/java/org/apache/cassandra/db/marshal/LongType.java
+++ b/src/java/org/apache/cassandra/db/marshal/LongType.java
@@ -34,12 +34,12 @@ public class LongType extends AbstractType<Long>
public Long compose(ByteBuffer bytes)
{
- return ByteBufferUtil.toLong(bytes);
+ return JdbcLong.instance.compose(bytes);
}
public ByteBuffer decompose(Long value)
{
- return ByteBufferUtil.bytes(value);
+ return JdbcLong.instance.decompose(value);
}
public int compare(ByteBuffer o1, ByteBuffer o2)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java b/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java
index bf9a693..81f226c 100644
--- a/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java
+++ b/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java
@@ -49,7 +49,7 @@ public class TimeUUIDType extends AbstractType<UUID>
public ByteBuffer decompose(UUID value)
{
- return ByteBuffer.wrap(UUIDGen.decompose(value));
+ return JdbcTimeUUID.instance.decompose(value);
}
public int compare(ByteBuffer o1, ByteBuffer o2)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/db/marshal/UTF8Type.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/UTF8Type.java b/src/java/org/apache/cassandra/db/marshal/UTF8Type.java
index 434ea19..e743e96 100644
--- a/src/java/org/apache/cassandra/db/marshal/UTF8Type.java
+++ b/src/java/org/apache/cassandra/db/marshal/UTF8Type.java
@@ -22,10 +22,7 @@ package org.apache.cassandra.db.marshal;
import java.nio.ByteBuffer;
-import com.google.common.base.Charsets;
-
import org.apache.cassandra.cql.jdbc.JdbcUTF8;
-import org.apache.cassandra.utils.ByteBufferUtil;
public class UTF8Type extends AbstractType<String>
{
@@ -40,7 +37,7 @@ public class UTF8Type extends AbstractType<String>
public ByteBuffer decompose(String value)
{
- return ByteBufferUtil.bytes(value, Charsets.UTF_8);
+ return JdbcUTF8.instance.decompose(value);
}
public int compare(ByteBuffer o1, ByteBuffer o2)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b226cf93/src/java/org/apache/cassandra/db/marshal/UUIDType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/UUIDType.java b/src/java/org/apache/cassandra/db/marshal/UUIDType.java
index 77f984c..e6ab166 100644
--- a/src/java/org/apache/cassandra/db/marshal/UUIDType.java
+++ b/src/java/org/apache/cassandra/db/marshal/UUIDType.java
@@ -187,7 +187,7 @@ public class UUIDType extends AbstractType<UUID>
public ByteBuffer decompose(UUID value)
{
- return ByteBuffer.wrap(UUIDGen.decompose(value));
+ return JdbcUUID.instance.decompose(value);
}
@Override