Author: jbellis
Date: Mon May 9 02:34:22 2011
New Revision: 1100864
URL: http://svn.apache.org/viewvc?rev=1100864&view=rev
Log:
JDBC ResultSetMetadata properties added to AbstractType
Added:
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/AbstractUUIDType.java
Removed:
cassandra/branches/cassandra-0.8/drivers/java/src/org/apache/cassandra/cql/jdbc/ColumnMetaData.java
Modified:
cassandra/branches/cassandra-0.8/CHANGES.txt
cassandra/branches/cassandra-0.8/drivers/java/src/org/apache/cassandra/cql/jdbc/CResultSet.java
cassandra/branches/cassandra-0.8/drivers/java/src/org/apache/cassandra/cql/jdbc/CassandraPreparedStatement.java
cassandra/branches/cassandra-0.8/drivers/java/src/org/apache/cassandra/cql/jdbc/Utils.java
cassandra/branches/cassandra-0.8/drivers/java/test/org/apache/cassandra/cql/JdbcDriverTest.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/AbstractCommutativeType.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/AbstractType.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/AsciiType.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/BytesType.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/IntegerType.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/LocalByPartionerType.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/LongType.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/UTF8Type.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/UUIDType.java
Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1100864&r1=1100863&r2=1100864&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Mon May 9 02:34:22 2011
@@ -8,6 +8,8 @@
* fix CQL treatment of > and < operators in range slices (CASSANDRA-2592)
* fix potential double-application of counter updates on commitlog replay
(CASSANDRA-2419)
+ * JDBC CQL driver exposes getColumn for access to timestamp
+ * JDBC ResultSetMetadata properties added to AbstractType
0.8.0-beta2
Modified:
cassandra/branches/cassandra-0.8/drivers/java/src/org/apache/cassandra/cql/jdbc/CResultSet.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/drivers/java/src/org/apache/cassandra/cql/jdbc/CResultSet.java?rev=1100864&r1=1100863&r2=1100864&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.8/drivers/java/src/org/apache/cassandra/cql/jdbc/CResultSet.java
(original)
+++
cassandra/branches/cassandra-0.8/drivers/java/src/org/apache/cassandra/cql/jdbc/CResultSet.java
Mon May 9 02:34:22 2011
@@ -32,7 +32,6 @@ import java.sql.Clob;
import java.sql.Date;
import java.sql.NClob;
import java.sql.Ref;
-import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.RowId;
import java.sql.SQLException;
@@ -44,9 +43,7 @@ import java.sql.Time;
import java.sql.Timestamp;
import java.util.*;
-import org.apache.cassandra.db.marshal.BytesType;
import org.apache.cassandra.db.marshal.CounterColumnType;
-import org.apache.cassandra.db.marshal.LongType;
import org.apache.cassandra.thrift.Column;
import org.apache.cassandra.thrift.CqlResult;
import org.apache.cassandra.thrift.CqlRow;
@@ -1163,10 +1160,7 @@ public class CResultSet implements Cassa
column--;
checkIndex(column);
TypedColumn tc = values.get(column);
- if (tc.getValueType() instanceof ColumnMetaData)
- return ((ColumnMetaData)tc.getValueType()).isCaseSensitive();
- else
- return tc.getValueType().getType().equals(String.class);
+ return tc.getValueType().isCaseSensitive();
}
public boolean isSearchable(int column) throws SQLException
@@ -1179,16 +1173,13 @@ public class CResultSet implements Cassa
column--;
checkIndex(column);
TypedColumn tc = values.get(column);
- if (tc.getValueType() instanceof ColumnMetaData)
- return ((ColumnMetaData)tc.getValueType()).isCurrency();
- else
- return false;
+ return tc.getValueType().isCurrency();
}
+ /** absence is the equivalent of null in Cassandra */
public int isNullable(int column) throws SQLException
{
- // no such thing as null in cassandra.
- return ResultSetMetaData.columnNullableUnknown;
+ return ResultSetMetaData.columnNullable;
}
public boolean isSigned(int column) throws SQLException
@@ -1196,7 +1187,7 @@ public class CResultSet implements Cassa
column--;
checkIndex(column);
TypedColumn tc = values.get(column);
- return Utils.isTypeSigned(tc.getValueType());
+ return tc.getValueType().isSigned();
}
public int getColumnDisplaySize(int column) throws SQLException
@@ -1228,25 +1219,15 @@ public class CResultSet implements Cassa
column--;
checkIndex(column);
TypedColumn col = values.get(column);
- if (col.getValueType() instanceof ColumnMetaData)
- return ((ColumnMetaData)col.getValueType()).getPrecision();
- else if (col.getValueType().getType().equals(String.class))
- return col.getValueString().length();
- else if (col.getValueType() == BytesType.instance)
- return col.getValueString().length();
- else if (col.getValueType().getType().equals(UUID.class))
- return 36; // xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- else if (col.getValueType() == LongType.instance)
- return 19; // number of digits in 2**63-1.
- else
- return 0;
+ return col.getValueType().getPrecision(col.getValue());
}
public int getScale(int column) throws SQLException
{
column--;
checkIndex(column);
- return Utils.getTypeScale(values.get(column).getValueType());
+ TypedColumn tc = values.get(column);
+ return tc.getValueType().getScale(tc.getValue());
}
public String getTableName(int column) throws SQLException
@@ -1263,7 +1244,7 @@ public class CResultSet implements Cassa
{
column--;
checkIndex(column);
- return Utils.getJdbcType(values.get(column).getValueType());
+ return values.get(column).getValueType().getJdbcType();
}
// todo: spec says "database specific type name". this means the
abstract type.
Modified:
cassandra/branches/cassandra-0.8/drivers/java/src/org/apache/cassandra/cql/jdbc/CassandraPreparedStatement.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/drivers/java/src/org/apache/cassandra/cql/jdbc/CassandraPreparedStatement.java?rev=1100864&r1=1100863&r2=1100864&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.8/drivers/java/src/org/apache/cassandra/cql/jdbc/CassandraPreparedStatement.java
(original)
+++
cassandra/branches/cassandra-0.8/drivers/java/src/org/apache/cassandra/cql/jdbc/CassandraPreparedStatement.java
Mon May 9 02:34:22 2011
@@ -72,21 +72,7 @@ public class CassandraPreparedStatement
}
// impl specific methods start here.
-
- // determines which types need to be quoted.
- private static boolean needsQuotes(AbstractType type)
- {
- if (type instanceof ColumnMetaData)
- return ((ColumnMetaData)type).needsQuotes();
- else
- return type == BytesType.instance ||
- type == AsciiType.instance ||
- type == UTF8Type.instance ||
- type == LexicalUUIDType.instance ||
- type == TimeUUIDType.instance ||
- type == UUIDType.instance;
- }
-
+
// double quotes strings (in parameters)
private static String makeCqlString(String s)
{
@@ -116,7 +102,7 @@ public class CassandraPreparedStatement
Object param = params.nextParam();
String stringParam = type == null ? param.toString() :
type.toString(param);
stringParam = makeCqlString(stringParam);
- if (type == null || needsQuotes(type))
+ if (type == null || type.needsQuotes())
stringParam = "'" + stringParam + "'";
sb.append(stringParam);
}
@@ -153,7 +139,7 @@ public class CassandraPreparedStatement
Object param = params.nextParam();
AbstractType type = left ? ltype : rtype;
String stringParam = makeCqlString(type.toString(param));
- if (needsQuotes(type))
+ if (type.needsQuotes())
stringParam = "'" + stringParam + "'";
sb.append(stringParam);
}
Modified:
cassandra/branches/cassandra-0.8/drivers/java/src/org/apache/cassandra/cql/jdbc/Utils.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/drivers/java/src/org/apache/cassandra/cql/jdbc/Utils.java?rev=1100864&r1=1100863&r2=1100864&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.8/drivers/java/src/org/apache/cassandra/cql/jdbc/Utils.java
(original)
+++
cassandra/branches/cassandra-0.8/drivers/java/src/org/apache/cassandra/cql/jdbc/Utils.java
Mon May 9 02:34:22 2011
@@ -63,40 +63,4 @@ class Utils
return ByteBuffer.wrap(byteArray.toByteArray());
}
-
- static int getJdbcType(AbstractType type) throws SQLException
- {
- if (type instanceof ColumnMetaData)
- return ((ColumnMetaData)type).getType();
- else if (type == IntegerType.instance)
- return Types.BIGINT;
- else if (type.getType().equals(Long.class))
- return Types.BIGINT; // not the best fit.
- else if (type.getType().equals(String.class))
- return Types.VARCHAR;
- else if (type.getType().equals(UUID.class))
- return Types.TIMESTAMP;
- else if (type == BytesType.instance)
- return Types.BINARY;
- else
- throw new SQLException("Uninterpretable JDBC type " +
type.getClass().getName());
- }
-
- static boolean isTypeSigned(AbstractType type)
- {
- if (type == IntegerType.instance || type == LongType.instance)
- return true;
- else if (type instanceof ColumnMetaData)
- return ((ColumnMetaData)type).isSigned();
- else
- return false;
- }
-
- static int getTypeScale(AbstractType type)
- {
- if (type instanceof ColumnMetaData)
- return ((ColumnMetaData)type).getScale();
- else
- return 0;
- }
}
Modified:
cassandra/branches/cassandra-0.8/drivers/java/test/org/apache/cassandra/cql/JdbcDriverTest.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/drivers/java/test/org/apache/cassandra/cql/JdbcDriverTest.java?rev=1100864&r1=1100863&r2=1100864&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.8/drivers/java/test/org/apache/cassandra/cql/JdbcDriverTest.java
(original)
+++
cassandra/branches/cassandra-0.8/drivers/java/test/org/apache/cassandra/cql/JdbcDriverTest.java
Mon May 9 02:34:22 2011
@@ -82,15 +82,15 @@ public class JdbcDriverTest extends Embe
private static void expectedMetaData(ResultSetMetaData md, int col, String
colClass, String table, String schema,
String label, int type, String typeName,
boolean signed, boolean caseSensitive) throws SQLException
{
- assert colClass.equals(md.getColumnClassName(col)); // full class name
of type<T>
- assert table.equals(md.getTableName(col));
- assert schema.equals(md.getSchemaName(col));
- assert label.equals(md.getColumnLabel(col)) : "expected " + label + "
got " + md.getColumnLabel(col);
- assert label.equals(md.getColumnName(col));
- assert type == md.getColumnType(col);
- assert typeName.equals(md.getColumnTypeName(col)) : "expected " +
typeName + " got " + md.getColumnTypeName(col); // simple name of abstract type.
- assert md.isSigned(col) == signed;
- assert md.isCaseSensitive(col) == caseSensitive;
+ assertEquals(colClass, md.getColumnClassName(col)); // full class name
of type<T>
+ assertEquals(table, md.getTableName(col));
+ assertEquals(schema, md.getSchemaName(col));
+ assertEquals(label, md.getColumnLabel(col));
+ assertEquals(label, md.getColumnName(col));
+ assertEquals(type, md.getColumnType(col));
+ assertEquals(typeName, md.getColumnTypeName(col));
+ assertEquals(signed, md.isSigned(col));
+ assertEquals(caseSensitive, md.isCaseSensitive(col));
}
private static void expectedMetaData(ResultSetMetaData md, int col,
@@ -174,19 +174,13 @@ public class JdbcDriverTest extends Embe
ResultSetMetaData md = rs.getMetaData();
assert md.getColumnCount() == 2;
- expectedMetaData(md, 1, Long.class.getName(), "JdbcLong", "Keyspace1",
"1", Types.BIGINT, LongType.class.getSimpleName(), true, false);
- expectedMetaData(md, 2, Long.class.getName(), "JdbcLong", "Keyspace1",
"2", Types.BIGINT, LongType.class.getSimpleName(), true, false);
+ expectedMetaData(md, 1, Long.class.getName(), "JdbcLong", "Keyspace1",
"1", Types.INTEGER, LongType.class.getSimpleName(), true, false);
+ expectedMetaData(md, 2, Long.class.getName(), "JdbcLong", "Keyspace1",
"2", Types.INTEGER, LongType.class.getSimpleName(), true, false);
for (int i = 0; i < md.getColumnCount(); i++)
- expectedMetaData(md,
- i + 1,
- Long.class.getName(),
- Types.BIGINT,
- LongType.class.getSimpleName(),
- true,
- false);
+ expectedMetaData(md, i + 1, Long.class.getName(), Types.INTEGER,
LongType.class.getSimpleName(), true, false);
}
-
+
@Test
public void testStringMetadata() throws SQLException
{
Modified:
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/AbstractCommutativeType.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/AbstractCommutativeType.java?rev=1100864&r1=1100863&r2=1100864&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/AbstractCommutativeType.java
(original)
+++
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/AbstractCommutativeType.java
Mon May 9 02:34:22 2011
@@ -21,6 +21,7 @@
package org.apache.cassandra.db.marshal;
import java.nio.ByteBuffer;
+import java.sql.Types;
import org.apache.cassandra.db.Column;
import org.apache.cassandra.db.context.CounterContext;
@@ -52,4 +53,39 @@ public abstract class AbstractCommutativ
{
return Long.class;
}
+
+ public boolean isSigned()
+ {
+ return true;
+ }
+
+ public boolean isCaseSensitive()
+ {
+ return false;
+ }
+
+ public boolean isCurrency()
+ {
+ return false;
+ }
+
+ public int getPrecision(Long obj)
+ {
+ return obj.toString().length();
+ }
+
+ public int getScale(Long obj)
+ {
+ return 0;
+ }
+
+ public int getJdbcType()
+ {
+ return Types.INTEGER;
+ }
+
+ public boolean needsQuotes()
+ {
+ return false;
+ }
}
Modified:
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/AbstractType.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/AbstractType.java?rev=1100864&r1=1100863&r2=1100864&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/AbstractType.java
(original)
+++
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/AbstractType.java
Mon May 9 02:34:22 2011
@@ -147,4 +147,16 @@ public abstract class AbstractType<T> im
/** returns the class this AbstractType represents. */
public abstract Class<T> getType();
+
+ //
+ // JDBC metadata
+ //
+
+ public abstract boolean isSigned();
+ public abstract boolean isCaseSensitive();
+ public abstract boolean isCurrency();
+ public abstract int getPrecision(T obj);
+ public abstract int getScale(T obj);
+ public abstract int getJdbcType();
+ public abstract boolean needsQuotes();
}
Added:
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/AbstractUUIDType.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/AbstractUUIDType.java?rev=1100864&view=auto
==============================================================================
---
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/AbstractUUIDType.java
(added)
+++
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/AbstractUUIDType.java
Mon May 9 02:34:22 2011
@@ -0,0 +1,47 @@
+package org.apache.cassandra.db.marshal;
+
+import java.sql.Types;
+import java.util.UUID;
+
+public abstract class AbstractUUIDType extends AbstractType<UUID>
+{
+ public Class<UUID> getType()
+ {
+ return UUID.class;
+ }
+
+ public boolean isSigned()
+ {
+ return false;
+ }
+
+ public boolean isCaseSensitive()
+ {
+ return false;
+ }
+
+ public boolean isCurrency()
+ {
+ return false;
+ }
+
+ public int getPrecision(UUID obj)
+ {
+ return -1;
+ }
+
+ public int getScale(UUID obj)
+ {
+ return -1;
+ }
+
+ public int getJdbcType()
+ {
+ return Types.OTHER;
+ }
+
+ public boolean needsQuotes()
+ {
+ return false;
+ }
+}
Modified:
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/AsciiType.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/AsciiType.java?rev=1100864&r1=1100863&r2=1100864&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/AsciiType.java
(original)
+++
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/AsciiType.java
Mon May 9 02:34:22 2011
@@ -23,6 +23,7 @@ package org.apache.cassandra.db.marshal;
import java.nio.ByteBuffer;
import java.nio.charset.CharacterCodingException;
+import java.sql.Types;
import com.google.common.base.Charsets;
@@ -86,4 +87,39 @@ public class AsciiType extends AbstractT
{
return String.class;
}
+
+ public boolean isSigned()
+ {
+ return false;
+ }
+
+ public boolean isCaseSensitive()
+ {
+ return true;
+ }
+
+ public boolean isCurrency()
+ {
+ return false;
+ }
+
+ public int getPrecision(String obj)
+ {
+ return -1;
+ }
+
+ public int getScale(String obj)
+ {
+ return -1;
+ }
+
+ public int getJdbcType()
+ {
+ return Types.VARCHAR;
+ }
+
+ public boolean needsQuotes()
+ {
+ return true;
+ }
}
Modified:
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/BytesType.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/BytesType.java?rev=1100864&r1=1100863&r2=1100864&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/BytesType.java
(original)
+++
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/BytesType.java
Mon May 9 02:34:22 2011
@@ -22,6 +22,7 @@ package org.apache.cassandra.db.marshal;
import java.nio.ByteBuffer;
+import java.sql.Types;
import org.apache.cassandra.utils.ByteBufferUtil;
import org.apache.cassandra.utils.FBUtilities;
@@ -88,4 +89,39 @@ public class BytesType extends AbstractT
{
return ByteBuffer.class;
}
+
+ public boolean isSigned()
+ {
+ return false;
+ }
+
+ public boolean isCaseSensitive()
+ {
+ return false;
+ }
+
+ public boolean isCurrency()
+ {
+ return false;
+ }
+
+ public int getPrecision(ByteBuffer obj)
+ {
+ return -1;
+ }
+
+ public int getScale(ByteBuffer obj)
+ {
+ return -1;
+ }
+
+ public int getJdbcType()
+ {
+ return Types.BINARY;
+ }
+
+ public boolean needsQuotes()
+ {
+ return true;
+ }
}
Modified:
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/IntegerType.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/IntegerType.java?rev=1100864&r1=1100863&r2=1100864&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/IntegerType.java
(original)
+++
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/IntegerType.java
Mon May 9 02:34:22 2011
@@ -21,6 +21,7 @@ package org.apache.cassandra.db.marshal;
import java.math.BigInteger;
import java.nio.ByteBuffer;
+import java.sql.Types;
import org.apache.cassandra.utils.ByteBufferUtil;
import org.apache.thrift.TBaseHelper;
@@ -169,4 +170,39 @@ public final class IntegerType extends A
{
return BigInteger.class;
}
+
+ public boolean isSigned()
+ {
+ return true;
+ }
+
+ public boolean isCaseSensitive()
+ {
+ return false;
+ }
+
+ public boolean isCurrency()
+ {
+ return false;
+ }
+
+ public int getPrecision(BigInteger obj)
+ {
+ return obj.toString().length();
+ }
+
+ public int getScale(BigInteger obj)
+ {
+ return 0;
+ }
+
+ public int getJdbcType()
+ {
+ return Types.BIGINT;
+ }
+
+ public boolean needsQuotes()
+ {
+ return false;
+ }
}
Modified:
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java?rev=1100864&r1=1100863&r2=1100864&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java
(original)
+++
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java
Mon May 9 02:34:22 2011
@@ -27,7 +27,7 @@ import java.util.UUID;
import org.apache.cassandra.utils.ByteBufferUtil;
import org.apache.cassandra.utils.UUIDGen;
-public class LexicalUUIDType extends AbstractType<UUID>
+public class LexicalUUIDType extends AbstractUUIDType
{
public static final LexicalUUIDType instance = new LexicalUUIDType();
Modified:
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/LocalByPartionerType.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/LocalByPartionerType.java?rev=1100864&r1=1100863&r2=1100864&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/LocalByPartionerType.java
(original)
+++
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/LocalByPartionerType.java
Mon May 9 02:34:22 2011
@@ -77,4 +77,39 @@ public class LocalByPartionerType<T exte
{
return ByteBuffer.class;
}
+
+ public boolean isSigned()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean isCaseSensitive()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean isCurrency()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public int getPrecision(ByteBuffer obj)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public int getScale(ByteBuffer obj)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public int getJdbcType()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean needsQuotes()
+ {
+ throw new UnsupportedOperationException();
+ }
}
Modified:
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/LongType.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/LongType.java?rev=1100864&r1=1100863&r2=1100864&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/LongType.java
(original)
+++
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/LongType.java
Mon May 9 02:34:22 2011
@@ -22,6 +22,7 @@ package org.apache.cassandra.db.marshal;
import java.nio.ByteBuffer;
+import java.sql.Types;
import org.apache.cassandra.utils.ByteBufferUtil;
@@ -109,4 +110,39 @@ public class LongType extends AbstractTy
{
return Long.class;
}
+
+ public boolean isSigned()
+ {
+ return true;
+ }
+
+ public boolean isCaseSensitive()
+ {
+ return false;
+ }
+
+ public boolean isCurrency()
+ {
+ return false;
+ }
+
+ public int getPrecision(Long obj)
+ {
+ return obj.toString().length();
+ }
+
+ public int getScale(Long obj)
+ {
+ return 0;
+ }
+
+ public int getJdbcType()
+ {
+ return Types.INTEGER;
+ }
+
+ public boolean needsQuotes()
+ {
+ return false;
+ }
}
Modified:
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java?rev=1100864&r1=1100863&r2=1100864&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java
(original)
+++
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java
Mon May 9 02:34:22 2011
@@ -31,7 +31,7 @@ import org.apache.cassandra.utils.FBUtil
import org.apache.cassandra.utils.UUIDGen;
import org.apache.commons.lang.time.DateUtils;
-public class TimeUUIDType extends AbstractType<UUID>
+public class TimeUUIDType extends AbstractUUIDType
{
public static final TimeUUIDType instance = new TimeUUIDType();
Modified:
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/UTF8Type.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/UTF8Type.java?rev=1100864&r1=1100863&r2=1100864&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/UTF8Type.java
(original)
+++
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/UTF8Type.java
Mon May 9 02:34:22 2011
@@ -22,6 +22,7 @@ package org.apache.cassandra.db.marshal;
import java.nio.ByteBuffer;
import java.nio.charset.CharacterCodingException;
+import java.sql.Types;
import com.google.common.base.Charsets;
import org.apache.cassandra.utils.ByteBufferUtil;
@@ -196,4 +197,39 @@ public class UTF8Type extends AbstractTy
{
return String.class;
}
+
+ public boolean isSigned()
+ {
+ return false;
+ }
+
+ public boolean isCaseSensitive()
+ {
+ return true;
+ }
+
+ public boolean isCurrency()
+ {
+ return false;
+ }
+
+ public int getPrecision(String obj)
+ {
+ return -1;
+ }
+
+ public int getScale(String obj)
+ {
+ return -1;
+ }
+
+ public int getJdbcType()
+ {
+ return Types.VARCHAR;
+ }
+
+ public boolean needsQuotes()
+ {
+ return true;
+ }
}
Modified:
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/UUIDType.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/UUIDType.java?rev=1100864&r1=1100863&r2=1100864&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/UUIDType.java
(original)
+++
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/UUIDType.java
Mon May 9 02:34:22 2011
@@ -43,7 +43,7 @@ import org.apache.cassandra.utils.UUIDGe
* @see "com.fasterxml.uuid.UUIDComparator"
*
*/
-public class UUIDType extends AbstractType<UUID>
+public class UUIDType extends AbstractUUIDType
{
public static final UUIDType instance = new UUIDType();