Merge branch 'cassandra-2.1' into trunk

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

Branch: refs/heads/trunk
Commit: 699a69de8dc7744500f76d5cc4a64f3742001cd7
Parents: c7a932c 1bb2dd9
Author: Tyler Hobbs <[email protected]>
Authored: Fri Nov 21 15:40:53 2014 -0600
Committer: Tyler Hobbs <[email protected]>
Committed: Fri Nov 21 15:40:53 2014 -0600

----------------------------------------------------------------------
 bin/cassandra.bat                               |   2 +-
 bin/cassandra.in.sh                             |   2 +-
 build.xml                                       |  10 +-
 conf/cassandra-env.ps1                          |   2 +-
 conf/cassandra-env.sh                           |   2 +-
 debian/cassandra.in.sh                          |   2 +-
 lib/jamm-0.2.8.jar                              | Bin 13684 -> 0 bytes
 lib/jamm-0.3.0.jar                              | Bin 0 -> 21149 bytes
 lib/licenses/jamm-0.2.8.txt                     | 202 -------------------
 lib/licenses/jamm-0.3.0.txt                     | 202 +++++++++++++++++++
 .../org/apache/cassandra/config/CFMetaData.java |   5 +
 .../cql3/MeasurableForPreparedCache.java        |  26 ---
 .../apache/cassandra/cql3/QueryProcessor.java   |  27 ++-
 .../cassandra/cql3/functions/Function.java      |   4 +
 .../cql3/statements/BatchStatement.java         |  16 +-
 .../cql3/statements/ModificationStatement.java  |  13 +-
 .../cql3/statements/SelectStatement.java        |  18 +-
 .../cassandra/db/marshal/AbstractType.java      |   2 +
 18 files changed, 247 insertions(+), 288 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/699a69de/bin/cassandra.bat
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/699a69de/bin/cassandra.in.sh
----------------------------------------------------------------------
diff --cc bin/cassandra.in.sh
index b4ed9b6,b6a53f3..6b0581d
--- a/bin/cassandra.in.sh
+++ b/bin/cassandra.in.sh
@@@ -48,8 -48,5 +48,8 @@@ don
  if [ "$JVM_VENDOR" != "OpenJDK" -o "$JVM_VERSION" \> "1.6.0" ] \
        || [ "$JVM_VERSION" = "1.6.0" -a "$JVM_PATCH_VERSION" -ge 23 ]
  then
-     JAVA_AGENT="$JAVA_AGENT -javaagent:$CASSANDRA_HOME/lib/jamm-0.2.8.jar"
+     JAVA_AGENT="$JAVA_AGENT -javaagent:$CASSANDRA_HOME/lib/jamm-0.3.0.jar"
  fi
 +
 +# Added sigar-bin to the java.library.path CASSANDRA-7838
 +JAVA_OPTS="$JAVA_OPTS:-Djava.library.path=$CASSANDRA_HOME/lib/sigar-bin"

http://git-wip-us.apache.org/repos/asf/cassandra/blob/699a69de/build.xml
----------------------------------------------------------------------
diff --cc build.xml
index c7aa83e,2e5d0ac..e5c5c83
--- a/build.xml
+++ b/build.xml
@@@ -334,11 -364,14 +334,11 @@@
            <dependency groupId="ch.qos.logback" artifactId="logback-classic" 
version="1.1.2"/>
            <dependency groupId="org.codehaus.jackson" 
artifactId="jackson-core-asl" version="1.9.2"/>
            <dependency groupId="org.codehaus.jackson" 
artifactId="jackson-mapper-asl" version="1.9.2"/>
 -          <dependency groupId="jline" artifactId="jline" version="1.0">
 -            <exclusion groupId="junit" artifactId="junit"/>
 -          </dependency>
            <dependency groupId="com.googlecode.json-simple" 
artifactId="json-simple" version="1.1"/>
            <dependency groupId="com.boundary" artifactId="high-scale-lib" 
version="1.0.6"/>
-           <dependency groupId="com.github.jbellis" artifactId="jamm" 
version="0.2.8"/>
+           <dependency groupId="com.github.jbellis" artifactId="jamm" 
version="0.3.0"/>
            <dependency groupId="com.thinkaurelius.thrift" 
artifactId="thrift-server" version="0.3.7">
 -              <exclusion groupId="org.slf4j" artifactId="slf4j-log4j12"/>
 +            <exclusion groupId="org.slf4j" artifactId="slf4j-log4j12"/>
            </dependency>
            <dependency groupId="org.yaml" artifactId="snakeyaml" 
version="1.11"/>
            <dependency groupId="org.apache.thrift" artifactId="libthrift" 
version="0.9.1"/>
@@@ -1113,7 -1107,7 +1113,7 @@@
          <formatter type="brief" usefile="false"/>
          <jvmarg value="-Dstorage-config=${test.conf}"/>
          <jvmarg value="-Djava.awt.headless=true"/>
-         <jvmarg line="-javaagent:${basedir}/lib/jamm-0.2.8.jar 
${additionalagent}" />
 -        <jvmarg value="-javaagent:${basedir}/lib/jamm-0.3.0.jar" />
++        <jvmarg value="-javaagent:${basedir}/lib/jamm-0.3.0.jar 
${additionalagent}" />
          <jvmarg value="-ea"/>
          <jvmarg value="-Xss256k"/>
          <jvmarg 
value="-Dcassandra.memtable_row_overhead_computation_step=100"/>

http://git-wip-us.apache.org/repos/asf/cassandra/blob/699a69de/conf/cassandra-env.ps1
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/699a69de/conf/cassandra-env.sh
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/699a69de/lib/jamm-0.3.0.jar
----------------------------------------------------------------------
diff --cc lib/jamm-0.3.0.jar
index 0000000,0000000..782f00c
new file mode 100644
Binary files differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/699a69de/lib/licenses/jamm-0.3.0.txt
----------------------------------------------------------------------
diff --cc lib/licenses/jamm-0.3.0.txt
index 0000000,0000000..d645695
new file mode 100644
--- /dev/null
+++ b/lib/licenses/jamm-0.3.0.txt
@@@ -1,0 -1,0 +1,202 @@@
++
++                                 Apache License
++                           Version 2.0, January 2004
++                        http://www.apache.org/licenses/
++
++   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
++
++   1. Definitions.
++
++      "License" shall mean the terms and conditions for use, reproduction,
++      and distribution as defined by Sections 1 through 9 of this document.
++
++      "Licensor" shall mean the copyright owner or entity authorized by
++      the copyright owner that is granting the License.
++
++      "Legal Entity" shall mean the union of the acting entity and all
++      other entities that control, are controlled by, or are under common
++      control with that entity. For the purposes of this definition,
++      "control" means (i) the power, direct or indirect, to cause the
++      direction or management of such entity, whether by contract or
++      otherwise, or (ii) ownership of fifty percent (50%) or more of the
++      outstanding shares, or (iii) beneficial ownership of such entity.
++
++      "You" (or "Your") shall mean an individual or Legal Entity
++      exercising permissions granted by this License.
++
++      "Source" form shall mean the preferred form for making modifications,
++      including but not limited to software source code, documentation
++      source, and configuration files.
++
++      "Object" form shall mean any form resulting from mechanical
++      transformation or translation of a Source form, including but
++      not limited to compiled object code, generated documentation,
++      and conversions to other media types.
++
++      "Work" shall mean the work of authorship, whether in Source or
++      Object form, made available under the License, as indicated by a
++      copyright notice that is included in or attached to the work
++      (an example is provided in the Appendix below).
++
++      "Derivative Works" shall mean any work, whether in Source or Object
++      form, that is based on (or derived from) the Work and for which the
++      editorial revisions, annotations, elaborations, or other modifications
++      represent, as a whole, an original work of authorship. For the purposes
++      of this License, Derivative Works shall not include works that remain
++      separable from, or merely link (or bind by name) to the interfaces of,
++      the Work and Derivative Works thereof.
++
++      "Contribution" shall mean any work of authorship, including
++      the original version of the Work and any modifications or additions
++      to that Work or Derivative Works thereof, that is intentionally
++      submitted to Licensor for inclusion in the Work by the copyright owner
++      or by an individual or Legal Entity authorized to submit on behalf of
++      the copyright owner. For the purposes of this definition, "submitted"
++      means any form of electronic, verbal, or written communication sent
++      to the Licensor or its representatives, including but not limited to
++      communication on electronic mailing lists, source code control systems,
++      and issue tracking systems that are managed by, or on behalf of, the
++      Licensor for the purpose of discussing and improving the Work, but
++      excluding communication that is conspicuously marked or otherwise
++      designated in writing by the copyright owner as "Not a Contribution."
++
++      "Contributor" shall mean Licensor and any individual or Legal Entity
++      on behalf of whom a Contribution has been received by Licensor and
++      subsequently incorporated within the Work.
++
++   2. Grant of Copyright License. Subject to the terms and conditions of
++      this License, each Contributor hereby grants to You a perpetual,
++      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
++      copyright license to reproduce, prepare Derivative Works of,
++      publicly display, publicly perform, sublicense, and distribute the
++      Work and such Derivative Works in Source or Object form.
++
++   3. Grant of Patent License. Subject to the terms and conditions of
++      this License, each Contributor hereby grants to You a perpetual,
++      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
++      (except as stated in this section) patent license to make, have made,
++      use, offer to sell, sell, import, and otherwise transfer the Work,
++      where such license applies only to those patent claims licensable
++      by such Contributor that are necessarily infringed by their
++      Contribution(s) alone or by combination of their Contribution(s)
++      with the Work to which such Contribution(s) was submitted. If You
++      institute patent litigation against any entity (including a
++      cross-claim or counterclaim in a lawsuit) alleging that the Work
++      or a Contribution incorporated within the Work constitutes direct
++      or contributory patent infringement, then any patent licenses
++      granted to You under this License for that Work shall terminate
++      as of the date such litigation is filed.
++
++   4. Redistribution. You may reproduce and distribute copies of the
++      Work or Derivative Works thereof in any medium, with or without
++      modifications, and in Source or Object form, provided that You
++      meet the following conditions:
++
++      (a) You must give any other recipients of the Work or
++          Derivative Works a copy of this License; and
++
++      (b) You must cause any modified files to carry prominent notices
++          stating that You changed the files; and
++
++      (c) You must retain, in the Source form of any Derivative Works
++          that You distribute, all copyright, patent, trademark, and
++          attribution notices from the Source form of the Work,
++          excluding those notices that do not pertain to any part of
++          the Derivative Works; and
++
++      (d) If the Work includes a "NOTICE" text file as part of its
++          distribution, then any Derivative Works that You distribute must
++          include a readable copy of the attribution notices contained
++          within such NOTICE file, excluding those notices that do not
++          pertain to any part of the Derivative Works, in at least one
++          of the following places: within a NOTICE text file distributed
++          as part of the Derivative Works; within the Source form or
++          documentation, if provided along with the Derivative Works; or,
++          within a display generated by the Derivative Works, if and
++          wherever such third-party notices normally appear. The contents
++          of the NOTICE file are for informational purposes only and
++          do not modify the License. You may add Your own attribution
++          notices within Derivative Works that You distribute, alongside
++          or as an addendum to the NOTICE text from the Work, provided
++          that such additional attribution notices cannot be construed
++          as modifying the License.
++
++      You may add Your own copyright statement to Your modifications and
++      may provide additional or different license terms and conditions
++      for use, reproduction, or distribution of Your modifications, or
++      for any such Derivative Works as a whole, provided Your use,
++      reproduction, and distribution of the Work otherwise complies with
++      the conditions stated in this License.
++
++   5. Submission of Contributions. Unless You explicitly state otherwise,
++      any Contribution intentionally submitted for inclusion in the Work
++      by You to the Licensor shall be under the terms and conditions of
++      this License, without any additional terms or conditions.
++      Notwithstanding the above, nothing herein shall supersede or modify
++      the terms of any separate license agreement you may have executed
++      with Licensor regarding such Contributions.
++
++   6. Trademarks. This License does not grant permission to use the trade
++      names, trademarks, service marks, or product names of the Licensor,
++      except as required for reasonable and customary use in describing the
++      origin of the Work and reproducing the content of the NOTICE file.
++
++   7. Disclaimer of Warranty. Unless required by applicable law or
++      agreed to in writing, Licensor provides the Work (and each
++      Contributor provides its Contributions) on an "AS IS" BASIS,
++      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
++      implied, including, without limitation, any warranties or conditions
++      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
++      PARTICULAR PURPOSE. You are solely responsible for determining the
++      appropriateness of using or redistributing the Work and assume any
++      risks associated with Your exercise of permissions under this License.
++
++   8. Limitation of Liability. In no event and under no legal theory,
++      whether in tort (including negligence), contract, or otherwise,
++      unless required by applicable law (such as deliberate and grossly
++      negligent acts) or agreed to in writing, shall any Contributor be
++      liable to You for damages, including any direct, indirect, special,
++      incidental, or consequential damages of any character arising as a
++      result of this License or out of the use or inability to use the
++      Work (including but not limited to damages for loss of goodwill,
++      work stoppage, computer failure or malfunction, or any and all
++      other commercial damages or losses), even if such Contributor
++      has been advised of the possibility of such damages.
++
++   9. Accepting Warranty or Additional Liability. While redistributing
++      the Work or Derivative Works thereof, You may choose to offer,
++      and charge a fee for, acceptance of support, warranty, indemnity,
++      or other liability obligations and/or rights consistent with this
++      License. However, in accepting such obligations, You may act only
++      on Your own behalf and on Your sole responsibility, not on behalf
++      of any other Contributor, and only if You agree to indemnify,
++      defend, and hold each Contributor harmless for any liability
++      incurred by, or claims asserted against, such Contributor by reason
++      of your accepting any such warranty or additional liability.
++
++   END OF TERMS AND CONDITIONS
++
++   APPENDIX: How to apply the Apache License to your work.
++
++      To apply the Apache License to your work, attach the following
++      boilerplate notice, with the fields enclosed by brackets "[]"
++      replaced with your own identifying information. (Don't include
++      the brackets!)  The text should be enclosed in the appropriate
++      comment syntax for the file format. We also recommend that a
++      file or class name and description of purpose be included on the
++      same "printed page" as the copyright notice for easier
++      identification within third-party archives.
++
++   Copyright [yyyy] [name of copyright owner]
++
++   Licensed under the Apache License, Version 2.0 (the "License");
++   you may not use this file except in compliance with the License.
++   You may obtain a copy of the License at
++
++       http://www.apache.org/licenses/LICENSE-2.0
++
++   Unless required by applicable law or agreed to in writing, software
++   distributed under the License is distributed on an "AS IS" BASIS,
++   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++   See the License for the specific language governing permissions and
++   limitations under the License.

http://git-wip-us.apache.org/repos/asf/cassandra/blob/699a69de/src/java/org/apache/cassandra/config/CFMetaData.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/config/CFMetaData.java
index 23c1b8b,74bd5f8..eb78ec7
--- a/src/java/org/apache/cassandra/config/CFMetaData.java
+++ b/src/java/org/apache/cassandra/config/CFMetaData.java
@@@ -53,7 -57,9 +53,8 @@@ import org.apache.cassandra.io.util.Fil
  import org.apache.cassandra.utils.ByteBufferUtil;
  import org.apache.cassandra.utils.FBUtilities;
  import org.apache.cassandra.utils.UUIDGen;
+ import org.github.jamm.Unmetered;
  
 -import static org.apache.cassandra.utils.FBUtilities.fromJsonList;
  import static org.apache.cassandra.utils.FBUtilities.fromJsonMap;
  import static org.apache.cassandra.utils.FBUtilities.json;
  

http://git-wip-us.apache.org/repos/asf/cassandra/blob/699a69de/src/java/org/apache/cassandra/cql3/QueryProcessor.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/cql3/QueryProcessor.java
index 1b45ca2,8e829e8..82b354e
--- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java
+++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java
@@@ -27,20 -34,24 +30,29 @@@ import com.googlecode.concurrentlinkedh
  import com.googlecode.concurrentlinkedhashmap.EntryWeigher;
  import com.googlecode.concurrentlinkedhashmap.EvictionListener;
  
 -import org.apache.cassandra.concurrent.ScheduledExecutors;
  import org.antlr.runtime.*;
- import org.github.jamm.MemoryMeter;
 +import org.slf4j.Logger;
 +import org.slf4j.LoggerFactory;
 +
 +import org.apache.cassandra.concurrent.ScheduledExecutors;
 +import org.apache.cassandra.cql3.functions.*;
++
  import org.apache.cassandra.cql3.statements.*;
  import org.apache.cassandra.db.*;
- import org.apache.cassandra.db.composites.*;
+ import org.apache.cassandra.db.composites.CType;
+ import org.apache.cassandra.db.composites.CellName;
+ import org.apache.cassandra.db.composites.CellNameType;
+ import org.apache.cassandra.db.composites.Composite;
  import org.apache.cassandra.db.marshal.AbstractType;
- import org.apache.cassandra.exceptions.*;
+ import org.apache.cassandra.exceptions.InvalidRequestException;
+ import org.apache.cassandra.exceptions.RequestExecutionException;
+ import org.apache.cassandra.exceptions.RequestValidationException;
+ import org.apache.cassandra.exceptions.SyntaxException;
  import org.apache.cassandra.metrics.CQLMetrics;
- import org.apache.cassandra.service.*;
+ import org.apache.cassandra.service.ClientState;
+ import org.apache.cassandra.service.IMigrationListener;
+ import org.apache.cassandra.service.MigrationManager;
+ import org.apache.cassandra.service.QueryState;
  import org.apache.cassandra.service.pager.QueryPager;
  import org.apache.cassandra.service.pager.QueryPagers;
  import org.apache.cassandra.thrift.ThriftClientState;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/699a69de/src/java/org/apache/cassandra/cql3/functions/Function.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/cql3/functions/Function.java
index cba9fcf,b278389..9e41fe4
--- a/src/java/org/apache/cassandra/cql3/functions/Function.java
+++ b/src/java/org/apache/cassandra/cql3/functions/Function.java
@@@ -20,31 -20,28 +20,35 @@@ package org.apache.cassandra.cql3.funct
  import java.util.List;
  
  import org.apache.cassandra.db.marshal.AbstractType;
 +
+ import org.apache.cassandra.exceptions.InvalidRequestException;
+ import org.github.jamm.Unmetered;
+ 
+ @Unmetered
  public interface Function
  {
 -    public String name();
 -    public List<AbstractType<?>> argsType();
 +    public FunctionName name();
 +    public List<AbstractType<?>> argTypes();
      public AbstractType<?> returnType();
  
 -    public ByteBuffer execute(List<ByteBuffer> parameters) throws 
InvalidRequestException;
 -
 -    // Whether the function is a pure function (as in doesn't depend on, nor 
produce side effects).
 +    /**
 +     * Checks whether the function is a pure function (as in doesn't depend 
on, nor produce side effects) or not.
 +     *
 +     * @return <code>true</code> if the function is a pure function, 
<code>false</code> otherwise.
 +     */
      public boolean isPure();
  
 -    public interface Factory
 -    {
 -        // We allow the function to be parametered by the keyspace it is part 
of because the
 -        // "token" function needs it (the argument depends on the 
keyValidator). However,
 -        // for most function, the factory will just always the same function 
object (see
 -        // AbstractFunction).
 -        public Function create(String ksName, String cfName);
 -    }
 +    /**
 +     * Checks whether the function is a native/hard coded one or not.
 +     *
 +     * @return <code>true</code> if the function is a native/hard coded one, 
<code>false</code> otherwise.
 +     */
 +    public boolean isNative();
 +
 +    /**
 +     * Checks whether the function is an aggregate function or not.
 +     *
 +     * @return <code>true</code> if the function is an aggregate function, 
<code>false</code> otherwise.
 +     */
 +    public boolean isAggregate();
  }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/699a69de/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/cql3/statements/BatchStatement.java
index 2db00df,c93bf64..a0aff3f
--- a/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java
@@@ -23,8 -23,6 +23,9 @@@ import java.util.*
  import com.google.common.base.Function;
  import com.google.common.collect.*;
  import org.apache.cassandra.config.DatabaseDescriptor;
++
 +import org.apache.cassandra.tracing.Tracing;
- import org.github.jamm.MemoryMeter;
++
  import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;
  
@@@ -77,27 -75,6 +78,16 @@@ public class BatchStatement implements 
          this.hasConditions = hasConditions;
      }
  
 +    public boolean usesFunction(String ksName, String functionName)
 +    {
 +        if (attrs.usesFunction(ksName, functionName))
 +            return true;
 +        for (ModificationStatement statement : statements)
 +            if (statement.usesFunction(ksName, functionName))
 +                return true;
 +        return false;
 +    }
 +
-     public long measureForPreparedCache(MemoryMeter meter)
-     {
-         long size = meter.measure(this)
-                   + meter.measureDeep(type)
-                   + meter.measure(statements)
-                   + meter.measureDeep(attrs);
-         for (ModificationStatement stmt : statements)
-             size += stmt.measureForPreparedCache(meter);
-         return size;
-     }
- 
      public int getBoundTerms()
      {
          return boundTerms;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/699a69de/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java
----------------------------------------------------------------------
diff --cc 
src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java
index ade97a0,60558b4..2607e12
--- a/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java
@@@ -87,35 -85,6 +86,25 @@@ public abstract class ModificationState
          this.attrs = attrs;
      }
  
 +    public boolean usesFunction(String ksName, String functionName)
 +    {
 +        if (attrs.usesFunction(ksName, functionName))
 +            return true;
 +        for (Restriction restriction : processedKeys.values())
 +            if (restriction != null && restriction.usesFunction(ksName, 
functionName))
 +                return true;
 +        for (Operation operation : columnOperations)
 +            if (operation != null && operation.usesFunction(ksName, 
functionName))
 +                return true;
 +        for (ColumnCondition condition : columnConditions)
 +            if (condition != null && condition.usesFunction(ksName, 
functionName))
 +                return true;
 +        for (ColumnCondition condition : staticConditions)
 +            if (condition != null && condition.usesFunction(ksName, 
functionName))
 +                return true;
 +        return false;
 +    }
 +
-     public long measureForPreparedCache(MemoryMeter meter)
-     {
-         return meter.measure(this)
-              + meter.measureDeep(attrs)
-              + meter.measureDeep(processedKeys)
-              + meter.measureDeep(columnOperations)
-              + (columnConditions == null ? 0 : 
meter.measureDeep(columnConditions))
-              + (staticConditions == null ? 0 : 
meter.measureDeep(staticConditions));
-     }
- 
      public abstract boolean requireFullClusteringKey();
      public abstract void addUpdateForKey(ColumnFamily updates, ByteBuffer 
key, Composite prefix, UpdateParameters params) throws InvalidRequestException;
  

http://git-wip-us.apache.org/repos/asf/cassandra/blob/699a69de/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
index 9fb636e,6d7bdbb..2d28b71
--- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
@@@ -62,8 -59,10 +60,8 @@@ import org.apache.cassandra.utils.FBUti
   * column family, expression, result count, and ordering clause.
   *
   */
- public class SelectStatement implements CQLStatement, 
MeasurableForPreparedCache
+ public class SelectStatement implements CQLStatement
  {
 -    private static final Logger logger = 
LoggerFactory.getLogger(SelectStatement.class);
 -
      private static final int DEFAULT_COUNT_PAGE_SIZE = 10000;
  
      private final int boundTerms;
@@@ -174,23 -155,11 +172,9 @@@
  
      public ResultSet.Metadata getResultMetadata()
      {
 -        return parameters.isCount
 -             ? ResultSet.makeCountMetadata(keyspace(), columnFamily(), 
parameters.countAlias)
 -             : selection.getResultMetadata();
 +        return selection.getResultMetadata();
      }
  
-     public long measureForPreparedCache(MemoryMeter meter)
-     {
-         return meter.measure(this)
-              + meter.measureDeep(parameters)
-              + meter.measureDeep(selection)
-              + (limit == null ? 0 : meter.measureDeep(limit))
-              + meter.measureDeep(keyRestrictions)
-              + meter.measureDeep(columnRestrictions)
-              + meter.measureDeep(metadataRestrictions)
-              + meter.measureDeep(restrictedColumns)
-              + (sliceRestriction == null ? 0 : 
meter.measureDeep(sliceRestriction))
-              + (orderingIndexes == null ? 0 : 
meter.measureDeep(orderingIndexes));
-     }
- 
      public int getBoundTerms()
      {
          return boundTerms;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/699a69de/src/java/org/apache/cassandra/db/marshal/AbstractType.java
----------------------------------------------------------------------

Reply via email to