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 ----------------------------------------------------------------------
