Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 d52c7b8c5 -> 4b00601e8


Fix reading columns with non-UTF names from schema

patch by Jordan West; reviewed by Aleksey Yeschenko for CASSANDRA-14468


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

Branch: refs/heads/cassandra-3.0
Commit: 4b00601e831690e4ccf4ea95f70c09381d0ce49a
Parents: d52c7b8
Author: Jordan West <jorda...@gmail.com>
Authored: Mon Jul 30 13:06:13 2018 -0700
Committer: Aleksey Yeshchenko <alek...@apple.com>
Committed: Tue Jul 31 20:26:12 2018 +0100

----------------------------------------------------------------------
 CHANGES.txt                                                     | 4 ++++
 src/java/org/apache/cassandra/config/ColumnDefinition.java      | 1 -
 src/java/org/apache/cassandra/cql3/ColumnIdentifier.java        | 5 +++++
 src/java/org/apache/cassandra/schema/SchemaKeyspace.java        | 4 +---
 .../org/apache/cassandra/utils/NativeSSTableLoaderClient.java   | 4 +---
 5 files changed, 11 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/4b00601e/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 47e5cd0..d2ca759 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,3 +1,7 @@
+3.0.18
+ * Fix reading columns with non-UTF names from schema (CASSANDRA-14468)
+
+
 3.0.17
  * Fix corrupted static collection deletions in 3.0 -> 2.{1,2} messages 
(CASSANDRA-14568)
  * Fix potential IndexOutOfBoundsException with counters (CASSANDRA-14167)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/4b00601e/src/java/org/apache/cassandra/config/ColumnDefinition.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/ColumnDefinition.java 
b/src/java/org/apache/cassandra/config/ColumnDefinition.java
index 6a0f530..6f7f749 100644
--- a/src/java/org/apache/cassandra/config/ColumnDefinition.java
+++ b/src/java/org/apache/cassandra/config/ColumnDefinition.java
@@ -153,7 +153,6 @@ public class ColumnDefinition extends ColumnSpecification 
implements Comparable<
     {
         super(ksName, cfName, name, type);
         assert name != null && type != null && kind != null;
-        assert name.isInterned();
         assert (position == NO_POSITION) == !kind.isPrimaryKeyKind(); // The 
position really only make sense for partition and clustering columns (and those 
must have one),
                                                                       // so 
make sure we don't sneak it for something else since it'd breaks equals()
         this.kind = kind;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/4b00601e/src/java/org/apache/cassandra/cql3/ColumnIdentifier.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/ColumnIdentifier.java 
b/src/java/org/apache/cassandra/cql3/ColumnIdentifier.java
index 9b9ec4a..71e7b9a 100644
--- a/src/java/org/apache/cassandra/cql3/ColumnIdentifier.java
+++ b/src/java/org/apache/cassandra/cql3/ColumnIdentifier.java
@@ -124,6 +124,11 @@ public class ColumnIdentifier extends Selectable 
implements IMeasurableMemory, C
         this(bytes, type.getString(bytes), false);
     }
 
+    public ColumnIdentifier(ByteBuffer bytes, String text)
+    {
+        this(bytes, text, false);
+    }
+
     private ColumnIdentifier(ByteBuffer bytes, String text, boolean interned)
     {
         this.bytes = bytes;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/4b00601e/src/java/org/apache/cassandra/schema/SchemaKeyspace.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/schema/SchemaKeyspace.java 
b/src/java/org/apache/cassandra/schema/SchemaKeyspace.java
index 81cc2e1..94832ed 100644
--- a/src/java/org/apache/cassandra/schema/SchemaKeyspace.java
+++ b/src/java/org/apache/cassandra/schema/SchemaKeyspace.java
@@ -1075,9 +1075,7 @@ public final class SchemaKeyspace
         if (order == ClusteringOrder.DESC)
             type = ReversedType.getInstance(type);
 
-        ColumnIdentifier name = ColumnIdentifier.getInterned(type,
-                                                             
row.getBytes("column_name_bytes"),
-                                                             
row.getString("column_name"));
+        ColumnIdentifier name = new 
ColumnIdentifier(row.getBytes("column_name_bytes"), 
row.getString("column_name"));
 
         return new ColumnDefinition(keyspace, table, name, type, position, 
kind);
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/4b00601e/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java 
b/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java
index 97237d0..3e0d97b 100644
--- a/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java
+++ b/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java
@@ -218,9 +218,7 @@ public class NativeSSTableLoaderClient extends 
SSTableLoader.Client
         if (order == ClusteringOrder.DESC)
             type = ReversedType.getInstance(type);
 
-        ColumnIdentifier name = ColumnIdentifier.getInterned(type,
-                                                             
row.getBytes("column_name_bytes"),
-                                                             
row.getString("column_name"));
+        ColumnIdentifier name = new 
ColumnIdentifier(row.getBytes("column_name_bytes"), 
row.getString("column_name"));
 
         int position = row.getInt("position");
         ColumnDefinition.Kind kind = 
ColumnDefinition.Kind.valueOf(row.getString("kind").toUpperCase());


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to