Author: jbellis
Date: Fri Dec 17 15:12:54 2010
New Revision: 1050413
URL: http://svn.apache.org/viewvc?rev=1050413&view=rev
Log:
merge from 0.6
Modified:
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/SSTableExport.java
Modified:
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/SSTableExport.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/SSTableExport.java?rev=1050413&r1=1050412&r2=1050413&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/SSTableExport.java
(original)
+++
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/SSTableExport.java
Fri Dec 17 15:12:54 2010
@@ -80,72 +80,68 @@ public class SSTableExport
return String.format("%s: ", quote(val));
}
- private static String serializeColumns(Collection<IColumn> cols,
AbstractType comp)
+ private static void serializeColumns(PrintStream outs, Collection<IColumn>
cols, AbstractType comp)
{
- StringBuilder json = new StringBuilder("[");
-
+ outs.print("[");
+
Iterator<IColumn> iter = cols.iterator();
while (iter.hasNext())
{
- json.append("[");
+ outs.print("[");
IColumn column = iter.next();
- json.append(quote(bytesToHex(column.name())));
- json.append(", ");
- json.append(quote(bytesToHex(column.value())));
- json.append(", ");
- json.append(column.timestamp());
- json.append(", ");
- json.append(column.isMarkedForDelete());
+ outs.print(quote(bytesToHex(column.name())));
+ outs.print(", ");
+ outs.print(quote(bytesToHex(column.value())));
+ outs.print(", ");
+ outs.print(column.timestamp());
+ outs.print(", ");
+ outs.print(column.isMarkedForDelete());
if (column instanceof ExpiringColumn) {
- json.append(", ");
- json.append(((ExpiringColumn)column).getTimeToLive());
- json.append(", ");
- json.append(column.getLocalDeletionTime());
+ outs.print(", ");
+ outs.print(((ExpiringColumn)column).getTimeToLive());
+ outs.print(", ");
+ outs.print(column.getLocalDeletionTime());
}
- json.append("]");
+ outs.print("]");
if (iter.hasNext())
- json.append(", ");
+ outs.print(", ");
}
- json.append("]");
-
- return json.toString();
+ outs.print("]");
}
- private static String serializeRow(SSTableIdentityIterator row) throws
IOException
+ private static void serializeRow(PrintStream outs, SSTableIdentityIterator
row) throws IOException
{
ColumnFamily cf = row.getColumnFamilyWithColumns();
AbstractType comparator = cf.getComparator();
- StringBuilder json = new
StringBuilder(asKey(bytesToHex(row.getKey().key)));
-
+ outs.print(asKey(bytesToHex(row.getKey().key)));
+
if (cf.isSuper())
{
- json.append("{ ");
+ outs.print("{ ");
Iterator<IColumn> iter = cf.getSortedColumns().iterator();
while (iter.hasNext())
{
IColumn column = iter.next();
- json.append(asKey(bytesToHex(column.name())));
- json.append("{");
- json.append(asKey("deletedAt"));
- json.append(column.getMarkedForDeleteAt());
- json.append(", ");
- json.append(asKey("subColumns"));
- json.append(serializeColumns(column.getSubColumns(),
comparator));
- json.append("}");
+ outs.print(asKey(bytesToHex(column.name())));
+ outs.print("{");
+ outs.print(asKey("deletedAt"));
+ outs.print(column.getMarkedForDeleteAt());
+ outs.print(", ");
+ outs.print(asKey("subColumns"));
+ serializeColumns(outs, column.getSubColumns(), comparator);
+ outs.print("}");
if (iter.hasNext())
- json.append(", ");
+ outs.print(", ");
}
- json.append("}");
+ outs.print("}");
}
else
{
- json.append(serializeColumns(cf.getSortedColumns(), comparator));
+ serializeColumns(outs, cf.getSortedColumns(), comparator);
}
-
- return json.toString();
}
/**
@@ -205,10 +201,9 @@ public class SSTableExport
SSTableIdentityIterator row = (SSTableIdentityIterator)
scanner.next();
try
{
- String jsonOut = serializeRow(row);
+ serializeRow(outs, row);
if (i != 1)
outs.println(",");
- outs.print(" " + jsonOut);
}
catch (IOException ioexc)
{
@@ -246,8 +241,8 @@ public class SSTableExport
continue;
try
{
- String jsonOut = serializeRow(row);
- outs.print(" " + jsonOut);
+ serializeRow(outs, row);
+ outs.print(" ");
if (scanner.hasNext())
outs.println(",");
else