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/01/26 10:58:28 UTC

git commit: Return correct comparator for names in ResultSet

Updated Branches:
  refs/heads/trunk 26083f71f -> 48fbdb34a


Return correct comparator for names in ResultSet


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

Branch: refs/heads/trunk
Commit: 48fbdb34a9c5c548e68726f56d3c32b6ac2028e7
Parents: 26083f7
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Thu Jan 26 09:58:36 2012 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Thu Jan 26 10:58:03 2012 +0100

----------------------------------------------------------------------
 .../org/apache/cassandra/cql3/CFDefinition.java    |   11 +++++++++++
 .../cassandra/cql3/statements/SelectStatement.java |    2 +-
 2 files changed, 12 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/48fbdb34/src/java/org/apache/cassandra/cql3/CFDefinition.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/CFDefinition.java b/src/java/org/apache/cassandra/cql3/CFDefinition.java
index b3725db..def2d2d 100644
--- a/src/java/org/apache/cassandra/cql3/CFDefinition.java
+++ b/src/java/org/apache/cassandra/cql3/CFDefinition.java
@@ -195,6 +195,17 @@ public class CFDefinition implements Iterable<CFDefinition.Name>
              : new NonCompositeBuilder(cfm.comparator);
     }
 
+    public AbstractType<?> getNameComparatorForResultSet(Name name)
+    {
+        // In the resultSet, a name should always be UTF8. However, for
+        // backward compatibility sake, this method allows to support non UTF8
+        // names for static CF column names.
+        if (!isCompact && !isComposite)
+            return cfm.comparator;
+        else
+            return definitionType;
+    }
+
     public static class Name
     {
         public static enum Kind

http://git-wip-us.apache.org/repos/asf/cassandra/blob/48fbdb34/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 7fd9234..a468350 100644
--- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
@@ -522,7 +522,7 @@ public class SelectStatement extends CQLStatement
     private void addToSchema(CqlMetadata schema, Pair<CFDefinition.Name, ColumnIdentifier> p)
     {
         ByteBuffer nameAsRequested = p.right.key;
-        schema.name_types.put(nameAsRequested, TypeParser.getShortName(cfDef.cfm.comparator));
+        schema.name_types.put(nameAsRequested, TypeParser.getShortName(cfDef.getNameComparatorForResultSet(p.left)));
         schema.value_types.put(nameAsRequested, TypeParser.getShortName(p.left.type));
     }