You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by xe...@apache.org on 2012/07/07 01:38:04 UTC
[2/2] git commit: changes required for CASSANDRA-4327 with 1.2
changes to CQL3
changes required for CASSANDRA-4327 with 1.2 changes to CQL3
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/df8f823e
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/df8f823e
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/df8f823e
Branch: refs/heads/trunk
Commit: df8f823ef4c73920f2b52085c5235e214bfa3bf8
Parents: 2ff33ab
Author: Pavel Yaskevich <xe...@apache.org>
Authored: Sat Jul 7 02:34:13 2012 +0300
Committer: Pavel Yaskevich <xe...@apache.org>
Committed: Sat Jul 7 02:36:32 2012 +0300
----------------------------------------------------------------------
.../cassandra/cql3/statements/SelectStatement.java | 26 ++++++---------
src/java/org/apache/cassandra/db/SystemTable.java | 2 +-
2 files changed, 11 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/df8f823e/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
index a0eb325..c74b08f 100644
--- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
@@ -770,13 +770,13 @@ public class SelectStatement implements CQLStatement
/**
* Orders results when multiple keys are selected (using IN)
*/
- private void orderResults(List<CqlRow> cqlRows)
+ private void orderResults(ResultSet cqlRows)
{
// There is nothing to do if
// a. there are no results,
// b. no ordering information where given,
// c. key restriction wasn't given or it's not an IN expression
- if (cqlRows.isEmpty() || parameters.orderings.isEmpty() || keyRestriction == null || keyRestriction.eqValues.size() < 2)
+ if (cqlRows.size() == 0 || parameters.orderings.isEmpty() || keyRestriction == null || keyRestriction.eqValues.size() < 2)
return;
// optimization when only *one* order condition was given
@@ -784,7 +784,7 @@ public class SelectStatement implements CQLStatement
if (parameters.orderings.size() == 1)
{
CFDefinition.Name ordering = cfDef.get(parameters.orderings.keySet().iterator().next());
- Collections.sort(cqlRows, new SingleColumnComparator(ordering.position + 1, ordering.type));
+ Collections.sort(cqlRows.rows, new SingleColumnComparator(ordering.position + 1, ordering.type));
return;
}
@@ -805,7 +805,7 @@ public class SelectStatement implements CQLStatement
types.add(orderingColumn.type);
}
- Collections.sort(cqlRows, new CompositeComparator(startPosition, types));
+ Collections.sort(cqlRows.rows, new CompositeComparator(startPosition, types));
}
@@ -1260,7 +1260,7 @@ public class SelectStatement implements CQLStatement
/**
* Used in orderResults(...) method when single 'ORDER BY' condition where given
*/
- private static class SingleColumnComparator implements Comparator<CqlRow>
+ private static class SingleColumnComparator implements Comparator<List<ByteBuffer>>
{
private final int index;
private final AbstractType<?> comparator;
@@ -1271,19 +1271,16 @@ public class SelectStatement implements CQLStatement
comparator = orderer;
}
- public int compare(CqlRow a, CqlRow b)
+ public int compare(List<ByteBuffer> a, List<ByteBuffer> b)
{
- Column columnA = a.getColumns().get(index);
- Column columnB = b.getColumns().get(index);
-
- return comparator.compare(columnA.bufferForValue(), columnB.bufferForValue());
+ return comparator.compare(a.get(index), b.get(index));
}
}
/**
* Used in orderResults(...) method when multiple 'ORDER BY' conditions where given
*/
- private static class CompositeComparator implements Comparator<CqlRow>
+ private static class CompositeComparator implements Comparator<List<ByteBuffer>>
{
private final int startColumnIndex;
private final List<AbstractType<?>> orderings;
@@ -1294,16 +1291,13 @@ public class SelectStatement implements CQLStatement
orderings = orderComparators;
}
- public int compare(CqlRow a, CqlRow b)
+ public int compare(List<ByteBuffer> a, List<ByteBuffer> b)
{
int currentIndex = startColumnIndex;
for (AbstractType<?> comparator : orderings)
{
- ByteBuffer aValue = a.getColumns().get(currentIndex).bufferForValue();
- ByteBuffer bValue = b.getColumns().get(currentIndex).bufferForValue();
-
- int comparison = comparator.compare(aValue, bValue);
+ int comparison = comparator.compare(a.get(currentIndex), b.get(currentIndex));
if (comparison != 0)
return comparison;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/df8f823e/src/java/org/apache/cassandra/db/SystemTable.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/SystemTable.java b/src/java/org/apache/cassandra/db/SystemTable.java
index 44b3bb2..77e064f 100644
--- a/src/java/org/apache/cassandra/db/SystemTable.java
+++ b/src/java/org/apache/cassandra/db/SystemTable.java
@@ -124,7 +124,7 @@ public class SystemTable
String clusterName = ByteBufferUtil.string(oldColumns.next().value());
String tokenBytes = ByteBufferUtil.bytesToHex(oldColumns.next().value());
// (assume that any node getting upgraded was bootstrapped, since that was stored in a separate row for no particular reason)
- String req = "INSERT INTO system.%s (key, cluster_name, token_bytes, bootstrapped) VALUES ('%s', '%s', '%s', true)";
+ String req = "INSERT INTO system.%s (key, cluster_name, token_bytes, bootstrapped) VALUES ('%s', '%s', '%s', 'true')";
processInternal(String.format(req, LOCAL_CF, LOCAL_KEY, clusterName, tokenBytes));
oldStatusCfs.truncate();