You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2012/10/03 17:29:56 UTC

[3/3] git commit: Don't return ReversedType in CQL3 resultSet

Don't return ReversedType in CQL3 resultSet

patch by slebresne; reviewed by tjake for CASSANDRA-4717


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

Branch: refs/heads/trunk
Commit: 0e0213b60468232b43b3d9661c75b1021564a853
Parents: 6ddcf03
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Wed Oct 3 17:24:23 2012 +0200
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Wed Oct 3 17:24:43 2012 +0200

----------------------------------------------------------------------
 CHANGES.txt                                        |    1 +
 .../org/apache/cassandra/cql3/QueryProcessor.java  |    2 +-
 .../cassandra/cql3/statements/SelectStatement.java |   21 ++++++++++-----
 .../apache/cassandra/db/marshal/ReversedType.java  |    3 +-
 4 files changed, 17 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/0e0213b6/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index e922c3c..292db49 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -14,6 +14,7 @@
  * (CLI) display elapsed time in 2 fraction digits (CASSANDRA-3460)
  * add authentication support to sstableloader (CASSANDRA-4712)
  * Fix CQL3 'is reversed' logic (CASSANDRA-4716)
+ * (CQL3) Don't return ReversedType in result set metadata (CASSANDRA-4717)
 Merged from 1.0:
  * Switch from NBHM to CHM in MessagingService's callback map, which
    prevents OOM in long-running instances (CASSANDRA-4708)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0e0213b6/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 6c155ed..9522c61 100644
--- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java
+++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java
@@ -206,7 +206,7 @@ public class QueryProcessor
         List<String> var_names = new ArrayList<String>(prepared.boundNames.size());
         for (CFDefinition.Name n : prepared.boundNames)
         {
-            var_types.add(TypeParser.getShortName(n.type));
+            var_types.add(SelectStatement.getShortTypeName(n.type));
             var_names.add(n.name.toString());
         }
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0e0213b6/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
index fac0deb..d288294 100644
--- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
@@ -168,12 +168,19 @@ public class SelectStatement implements CQLStatement
         return process(rows, createSchema(), Collections.<ByteBuffer>emptyList());
     }
 
+    public static String getShortTypeName(AbstractType<?> type)
+    {
+        if (type instanceof ReversedType)
+            type = ((ReversedType)type).baseType;
+        return TypeParser.getShortName(type);
+    }
+
     private CqlMetadata createSchema()
     {
         return new CqlMetadata(new HashMap<ByteBuffer, String>(),
                                new HashMap<ByteBuffer, String>(),
-                               TypeParser.getShortName(cfDef.cfm.comparator),
-                               TypeParser.getShortName(cfDef.cfm.getDefaultValidator()));
+                               getShortTypeName(cfDef.cfm.comparator),
+                               getShortTypeName(cfDef.cfm.getDefaultValidator()));
     }
 
     public String keyspace()
@@ -616,22 +623,22 @@ public class SelectStatement implements CQLStatement
         if (p.right.hasFunction())
         {
             ByteBuffer nameAsRequested = ByteBufferUtil.bytes(p.right.toString());
-            schema.name_types.put(nameAsRequested, TypeParser.getShortName(cfDef.definitionType));
+            schema.name_types.put(nameAsRequested, getShortTypeName(cfDef.definitionType));
             switch (p.right.function())
             {
                 case WRITE_TIME:
-                    schema.value_types.put(nameAsRequested, TypeParser.getShortName(LongType.instance));
+                    schema.value_types.put(nameAsRequested, getShortTypeName(LongType.instance));
                     break;
                 case TTL:
-                    schema.value_types.put(nameAsRequested, TypeParser.getShortName(Int32Type.instance));
+                    schema.value_types.put(nameAsRequested, getShortTypeName(Int32Type.instance));
                     break;
             }
         }
         else
         {
             ByteBuffer nameAsRequested = p.right.id().key;
-            schema.name_types.put(nameAsRequested, TypeParser.getShortName(cfDef.getNameComparatorForResultSet(p.left)));
-            schema.value_types.put(nameAsRequested, TypeParser.getShortName(p.left.type));
+            schema.name_types.put(nameAsRequested, getShortTypeName(cfDef.getNameComparatorForResultSet(p.left)));
+            schema.value_types.put(nameAsRequested, getShortTypeName(p.left.type));
         }
     }
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0e0213b6/src/java/org/apache/cassandra/db/marshal/ReversedType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/ReversedType.java b/src/java/org/apache/cassandra/db/marshal/ReversedType.java
index a2eec15..6165f3c 100644
--- a/src/java/org/apache/cassandra/db/marshal/ReversedType.java
+++ b/src/java/org/apache/cassandra/db/marshal/ReversedType.java
@@ -30,8 +30,7 @@ public class ReversedType<T> extends AbstractType<T>
     // interning instances
     private static final Map<AbstractType<?>, ReversedType> instances = new HashMap<AbstractType<?>, ReversedType>();
 
-    // package protected for unit tests sake
-    final AbstractType<T> baseType;
+    public final AbstractType<T> baseType;
 
     public static <T> ReversedType<T> getInstance(TypeParser parser) throws ConfigurationException
     {