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 2014/01/13 10:33:34 UTC

[3/3] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

Merge branch 'cassandra-1.2' into cassandra-2.0

Conflicts:
	src/java/org/apache/cassandra/cql3/statements/SelectStatement.java


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/71a5127a
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/71a5127a
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/71a5127a

Branch: refs/heads/cassandra-2.0
Commit: 71a5127ae530ae2dd436db1b93b3d8e88ba42a46
Parents: 5c86f36 3405878
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Mon Jan 13 10:33:24 2014 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Mon Jan 13 10:33:24 2014 +0100

----------------------------------------------------------------------
 CHANGES.txt                                           |  1 +
 .../cassandra/cql3/statements/SelectStatement.java    | 11 +++++++----
 .../cassandra/service/LeaveAndBootstrapTest.java      | 14 +++++++-------
 3 files changed, 15 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/71a5127a/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index e96a8e0,25c105c..1bf5615
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -7,29 -9,10 +7,30 @@@ Merged from 1.2
   * Validate CF existence on execution for prepared statement (CASSANDRA-6535)
   * Add ability to throttle batchlog replay (CASSANDRA-6550)
   * Fix executing LOCAL_QUORUM with SimpleStrategy (CASSANDRA-6545)
+  * Avoid StackOverflow when using large IN queries (CASSANDRA-6567)
  
  
 -1.2.13
 +2.0.4
 + * Allow removing snapshots of no-longer-existing CFs (CASSANDRA-6418)
 + * add StorageService.stopDaemon() (CASSANDRA-4268)
 + * add IRE for invalid CF supplied to get_count (CASSANDRA-5701)
 + * add client encryption support to sstableloader (CASSANDRA-6378)
 + * Fix accept() loop for SSL sockets post-shutdown (CASSANDRA-6468)
 + * Fix size-tiered compaction in LCS L0 (CASSANDRA-6496)
 + * Fix assertion failure in filterColdSSTables (CASSANDRA-6483)
 + * Fix row tombstones in larger-than-memory compactions (CASSANDRA-6008)
 + * Fix cleanup ClassCastException (CASSANDRA-6462)
 + * Reduce gossip memory use by interning VersionedValue strings (CASSANDRA-6410)
 + * Allow specifying datacenters to participate in a repair (CASSANDRA-6218)
 + * Fix divide-by-zero in PCI (CASSANDRA-6403)
 + * Fix setting last compacted key in the wrong level for LCS (CASSANDRA-6284)
 + * Add millisecond precision formats to the timestamp parser (CASSANDRA-6395)
 + * Expose a total memtable size metric for a CF (CASSANDRA-6391)
 + * cqlsh: handle symlinks properly (CASSANDRA-6425)
 + * Fix potential infinite loop when paging query with IN (CASSANDRA-6464)
 + * Fix assertion error in AbstractQueryPager.discardFirst (CASSANDRA-6447)
 + * Fix streaming older SSTable yields unnecessary tombstones (CASSANDRA-6527)
 +Merged from 1.2:
   * Improved error message on bad properties in DDL queries (CASSANDRA-6453)
   * Randomize batchlog candidates selection (CASSANDRA-6481)
   * Fix thundering herd on endpoint cache invalidation (CASSANDRA-6345, 6485)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/71a5127a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
index 133444a,001c77a..c3671be
--- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
@@@ -798,32 -710,33 +798,35 @@@ public class SelectStatement implement
  
          ColumnNameBuilder builder = cfDef.getColumnNameBuilder();
          for (int i = 0; i < columnRestrictions.length - 1; i++)
 -            builder.add(columnRestrictions[i].eqValues.get(0).bindAndGet(variables));
 +            builder.add(columnRestrictions[i].values(variables).get(0));
 +
  
 -        final List<ByteBuffer> requested = new ArrayList<ByteBuffer>(last.eqValues.size());
 -        Iterator<Term> iter = last.eqValues.iterator();
 +        List<ByteBuffer> values = last.values(variables);
 +        final List<ByteBuffer> requested = new ArrayList<ByteBuffer>(values.size());
 +        Iterator<ByteBuffer> iter = values.iterator();
          while (iter.hasNext())
          {
 -            Term t = iter.next();
 +            ByteBuffer t = iter.next();
              ColumnNameBuilder b = iter.hasNext() ? builder.copy() : builder;
 -            requested.add(b.add(t.bindAndGet(variables)).build());
 +            requested.add(b.add(t).build());
          }
  
 -        return new Iterable<IColumn>()
 +        return new Iterable<Column>()
          {
 -            public Iterator<IColumn> iterator()
 +            public Iterator<Column> iterator()
              {
 -                return new AbstractIterator<IColumn>()
 +                return new AbstractIterator<Column>()
                  {
                      Iterator<ByteBuffer> iter = requested.iterator();
 -                    public IColumn computeNext()
 +                    public Column computeNext()
                      {
-                         if (!iter.hasNext())
-                             return endOfData();
-                         Column column = cf.getColumn(iter.next());
-                         return column == null ? computeNext() : column;
+                         while (iter.hasNext())
+                         {
 -                            IColumn column = cf.getColumn(iter.next());
++                            Column column = cf.getColumn(iter.next());
+                             if (column != null)
+                                 return column;
+                         }
+                         return endOfData();
                      }
                  };
              }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/71a5127a/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java
----------------------------------------------------------------------