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/09/26 14:10:25 UTC
[2/3] git commit: Fix scrubbing of CQL3 create tables
Fix scrubbing of CQL3 create tables
patch by slebresne; reviewed by jbellis for CASSANDRA-4685
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2d765567
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2d765567
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2d765567
Branch: refs/heads/trunk
Commit: 2d76556742998ca332e562aba3398ab49c803d67
Parents: ccca5f1
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Wed Sep 26 14:06:37 2012 +0200
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Wed Sep 26 14:06:37 2012 +0200
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../org/apache/cassandra/config/CFMetaData.java | 21 ++++++++++++--
.../apache/cassandra/thrift/ThriftValidation.java | 22 +--------------
3 files changed, 20 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/2d765567/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index b70c412..9972c7c 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -4,6 +4,7 @@
movement (CASSANDRA-833)
* Change CQL version to 3.0.0 and stop accepting 3.0.0-beta1 (CASSANDRA-4649)
* Make prepared statement global instead of per connection (CASSANDRA-4449)
+ * Fix scrubbing of CQL3 created tables (CASSANDRA-4685)
1.2-beta1
* add atomic_batch_mutate (CASSANDRA-4542, -4635)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/2d765567/src/java/org/apache/cassandra/config/CFMetaData.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java
index f5c2293..f15ca00 100644
--- a/src/java/org/apache/cassandra/config/CFMetaData.java
+++ b/src/java/org/apache/cassandra/config/CFMetaData.java
@@ -646,7 +646,7 @@ public final class CFMetaData
public AbstractType<?> getValueValidator(ByteBuffer column)
{
- return getValueValidator(column_metadata.get(column));
+ return getValueValidator(getColumnDefinition(column));
}
public AbstractType<?> getValueValidator(ColumnDefinition columnDefinition)
@@ -932,9 +932,24 @@ public final class CFMetaData
return def;
}
- public ColumnDefinition getColumnDefinition(ByteBuffer name)
+ public ColumnDefinition getColumnDefinition(ByteBuffer columnName)
{
- return column_metadata.get(name);
+ if (comparator instanceof CompositeType)
+ {
+ CompositeType composite = (CompositeType)comparator;
+ ByteBuffer[] components = composite.split(columnName);
+ for (ColumnDefinition def : column_metadata.values())
+ {
+ ByteBuffer toCompare = def.componentIndex == null ? columnName : components[def.componentIndex];
+ if (def.name.equals(toCompare))
+ return def;
+ }
+ return null;
+ }
+ else
+ {
+ return column_metadata.get(columnName);
+ }
}
public ColumnDefinition getColumnDefinitionForIndex(String indexName)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/2d765567/src/java/org/apache/cassandra/thrift/ThriftValidation.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/thrift/ThriftValidation.java b/src/java/org/apache/cassandra/thrift/ThriftValidation.java
index 93b972d..b1b6c24 100644
--- a/src/java/org/apache/cassandra/thrift/ThriftValidation.java
+++ b/src/java/org/apache/cassandra/thrift/ThriftValidation.java
@@ -396,7 +396,7 @@ public class ThriftValidation
if (!column.isSetTimestamp())
throw new org.apache.cassandra.exceptions.InvalidRequestException("Column timestamp is required");
- ColumnDefinition columnDef = getColumnDefinition(metadata, column.name);
+ ColumnDefinition columnDef = metadata.getColumnDefinition(column.name);
try
{
AbstractType<?> validator = metadata.getValueValidator(columnDef);
@@ -423,26 +423,6 @@ public class ThriftValidation
metadata.ksName));
}
- private static ColumnDefinition getColumnDefinition(CFMetaData metadata, ByteBuffer columnName)
- {
- if (metadata.comparator instanceof CompositeType)
- {
- CompositeType composite = (CompositeType)metadata.comparator;
- ByteBuffer[] components = composite.split(columnName);
- for (ColumnDefinition def : metadata.getColumn_metadata().values())
- {
- ByteBuffer toCompare = def.componentIndex == null ? columnName : components[def.componentIndex];
- if (columnName.equals(toCompare))
- return def;
- }
- return null;
- }
- else
- {
- return metadata.getColumnDefinition(columnName);
- }
- }
-
/**
* Return, at most, the first 64K of the buffer. This avoids very large column values being
* logged in their entirety.