Author: eevans
Date: Sat Dec 5 05:26:56 2009
New Revision: 887497
URL: http://svn.apache.org/viewvc?rev=887497&view=rev
Log:
refactor of executeSet() to support super columns
Patch by eevans for CASSANDRA-567
Modified:
incubator/cassandra/trunk/bin/cassandra-cli
incubator/cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java
Modified: incubator/cassandra/trunk/bin/cassandra-cli
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/bin/cassandra-cli?rev=887497&r1=887496&r2=887497&view=diff
==============================================================================
--- incubator/cassandra/trunk/bin/cassandra-cli (original)
+++ incubator/cassandra/trunk/bin/cassandra-cli Sat Dec 5 05:26:56 2009
@@ -43,6 +43,6 @@
exit 1
fi
-$JAVA -cp $CLASSPATH org.apache.cassandra.cli.CliMain "$@"
+$JAVA -ea -cp $CLASSPATH org.apache.cassandra.cli.CliMain "$@"
# vi:ai sw=4 ts=4 tw=0 et
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java?rev=887497&r1=887496&r2=887497&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java
(original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java
Sat Dec 5 05:26:56 2009
@@ -259,45 +259,49 @@
if (!CliMain.isConnected())
return;
- int childCount = ast.getChildCount();
- assert(childCount == 2);
+ assert (ast.getChildCount() == 2) : "serious parsing error (this is a
bug).";
CommonTree columnFamilySpec = (CommonTree)ast.getChild(0);
assert(columnFamilySpec.getType() == CliParser.NODE_COLUMN_ACCESS);
- String tableName = CliCompiler.getTableName(columnFamilySpec);
- String key = CliCompiler.getKey(columnFamilySpec);
- String columnFamily = CliCompiler.getColumnFamily(columnFamilySpec);
- int columnSpecCnt =
CliCompiler.numColumnSpecifiers(columnFamilySpec);
- String value =
CliUtils.unescapeSQLString(ast.getChild(1).getText());
-
- // assume simple columnFamily for now
- if (columnSpecCnt == 1)
+ String tableName = CliCompiler.getTableName(columnFamilySpec);
+ String key = CliCompiler.getKey(columnFamilySpec);
+ String columnFamily = CliCompiler.getColumnFamily(columnFamilySpec);
+ int columnSpecCnt = CliCompiler.numColumnSpecifiers(columnFamilySpec);
+ String value = CliUtils.unescapeSQLString(ast.getChild(1).getText());
+
+ byte[] superColumnName = null;
+ byte[] columnName = null;
+
+ try
{
- // We have the table.cf['key']['column'] = 'value' case.
-
- // get the column name
- String columnName = CliCompiler.getColumn(columnFamilySpec, 0);
-
- // do the insert
- try
+ // table.cf['key']['column'] = 'value'
+ if (columnSpecCnt == 1)
{
- thriftClient_.insert(tableName, key, new
ColumnPath(columnFamily, null, columnName.getBytes("UTF-8")),
- value.getBytes(),
System.currentTimeMillis(), ConsistencyLevel.ONE);
+ // get the column name
+ columnName = CliCompiler.getColumn(columnFamilySpec,
0).getBytes("UTF-8");
}
- catch (UnsupportedEncodingException e)
+ // table.cf['key']['super_column']['column'] = 'value'
+ else
{
- throw new RuntimeException(e);
+ assert (columnSpecCnt == 2) : "serious parsing error (this is
a bug).";
+
+ // get the super column and column names
+ superColumnName = CliCompiler.getColumn(columnFamilySpec,
0).getBytes("UTF-8");
+ columnName = CliCompiler.getColumn(columnFamilySpec,
1).getBytes("UTF-8");
}
-
- css_.out.println("Value inserted.");
}
- else
+ catch (UnsupportedEncodingException e)
{
- /* for now (until we support batch sets) */
- assert(false);
+ throw new RuntimeException("Unable to encode column name as
UTF-8", e);
}
- }
+
+ // do the insert
+ thriftClient_.insert(tableName, key, new ColumnPath(columnFamily,
superColumnName, columnName),
+ value.getBytes(), System.currentTimeMillis(),
ConsistencyLevel.ONE);
+
+ css_.out.println("Value inserted.");
+ }
private void executeShowProperty(CommonTree ast, String propertyName)
throws TException
{