Author: jbellis
Date: Sat Oct 9 21:04:03 2010
New Revision: 1006226
URL: http://svn.apache.org/viewvc?rev=1006226&view=rev
Log:
add cli support for column metadata.
patch by Pavel Yaskevich; reviewed by jbellis for CASSANDRA-1578
Modified:
cassandra/trunk/CHANGES.txt
cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java
Modified: cassandra/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1006226&r1=1006225&r2=1006226&view=diff
==============================================================================
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Sat Oct 9 21:04:03 2010
@@ -24,6 +24,7 @@ dev
* log auto-guessed memtable thresholds (CASSANDRA-1595)
* add ColumnDef support to cli (CASSANDRA-1583)
* reduce index sample time by 75% (CASSANDRA-1572)
+ * add cli support for column metadata (CASSANDRA-1578)
0.7-beta2
Modified: cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java?rev=1006226&r1=1006225&r2=1006226&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java Sat Oct 9
21:04:03 2010
@@ -520,13 +520,20 @@ public class CliClient
return
getFormatTypeForColumn(getCfDef(keyspace,columnFamily).comparator_type).getString(column.name);
}
- private AbstractType getFormatTypeForColumn(String compareWith) throws
IllegalAccessException, InstantiationException, NoSuchFieldException
+ private AbstractType getFormatTypeForColumn(String compareWith)
{
AbstractType type;
try {
// Get the singleton instance of the AbstractType subclass
Class c = Class.forName(compareWith);
- type = (AbstractType) c.getField("instance").get(c);
+ try
+ {
+ type = (AbstractType) c.getField("instance").get(c);
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException(e.getMessage(), e);
+ }
} catch (ClassNotFoundException e) {
type = BytesType.instance;
}
@@ -1335,23 +1342,23 @@ public class CliClient
*/
private AbstractType getValidatorForValue(final CfDef ColumnFamilyDef,
final byte[] columnNameInBytes)
{
+ final String defaultValidator =
ColumnFamilyDef.default_validation_class;
+
for (ColumnDef columnDefinition : ColumnFamilyDef.getColumn_metadata())
{
final byte[] nameInBytes = columnDefinition.getName();
if (Arrays.equals(nameInBytes, columnNameInBytes))
{
- try
- {
- return
getFormatTypeForColumn(columnDefinition.getValidation_class());
- }
- catch (Exception e)
- {
- throw new RuntimeException(e.getMessage(), e);
- }
+ return
getFormatTypeForColumn(columnDefinition.getValidation_class());
}
}
+ if (defaultValidator != null && !defaultValidator.isEmpty())
+ {
+ return getFormatTypeForColumn(defaultValidator);
+ }
+
return null;
}
}