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 <sylv...@datastax.com> Authored: Mon Jan 13 10:33:24 2014 +0100 Committer: Sylvain Lebresne <sylv...@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 ----------------------------------------------------------------------