Return-Path: Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: (qmail 85706 invoked from network); 10 Apr 2011 17:31:39 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 10 Apr 2011 17:31:39 -0000 Received: (qmail 6983 invoked by uid 500); 10 Apr 2011 17:31:39 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 6963 invoked by uid 500); 10 Apr 2011 17:31:39 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 6955 invoked by uid 99); 10 Apr 2011 17:31:39 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 10 Apr 2011 17:31:39 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 10 Apr 2011 17:31:36 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 40BDD2388A60; Sun, 10 Apr 2011 17:31:16 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1090842 [3/3] - in /cassandra/trunk: interface/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/java/org/apache/cassandra/cli/ src/java/org/apache/cassandra/db/ src/java/org/apache/cassandra/thrift/ test/system/ tools/stress/src... Date: Sun, 10 Apr 2011 17:31:15 -0000 To: commits@cassandra.apache.org From: slebresne@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110410173116.40BDD2388A60@eris.apache.org> Modified: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/CfDef.java URL: http://svn.apache.org/viewvc/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/CfDef.java?rev=1090842&r1=1090841&r2=1090842&view=diff ============================================================================== --- cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/CfDef.java (original) +++ cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/CfDef.java Sun Apr 10 17:31:15 2011 @@ -306,8 +306,6 @@ public class CfDef implements org.apache this.read_repair_chance = 1; - this.replicate_on_write = false; - this.row_cache_provider = "org.apache.cassandra.cache.ConcurrentLinkedHashCacheProvider"; } @@ -417,8 +415,8 @@ public class CfDef implements org.apache this.memtable_throughput_in_mb = 0; setMemtable_operations_in_millionsIsSet(false); this.memtable_operations_in_millions = 0.0; + setReplicate_on_writeIsSet(false); this.replicate_on_write = false; - setMerge_shards_chanceIsSet(false); this.merge_shards_chance = 0.0; this.key_validation_class = null; Modified: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/ColumnOrSuperColumn.java URL: http://svn.apache.org/viewvc/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/ColumnOrSuperColumn.java?rev=1090842&r1=1090841&r2=1090842&view=diff ============================================================================== --- cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/ColumnOrSuperColumn.java (original) +++ cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/ColumnOrSuperColumn.java Sun Apr 10 17:31:15 2011 @@ -49,22 +49,33 @@ import org.slf4j.LoggerFactory; * in Columns, those values will be in the attribute column. This change was made between 0.3 and 0.4 to standardize on * single query methods that may return either a SuperColumn or Column. * + * If the query was on a counter column family, you will either get a counter_column (instead of a column) or a + * counter_super_column (instead of a super_column) + * * @param column. The Column returned by get() or get_slice(). * @param super_column. The SuperColumn returned by get() or get_slice(). + * @param counter_column. The Counterolumn returned by get() or get_slice(). + * @param counter_super_column. The CounterSuperColumn returned by get() or get_slice(). */ public class ColumnOrSuperColumn implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ColumnOrSuperColumn"); private static final org.apache.thrift.protocol.TField COLUMN_FIELD_DESC = new org.apache.thrift.protocol.TField("column", org.apache.thrift.protocol.TType.STRUCT, (short)1); private static final org.apache.thrift.protocol.TField SUPER_COLUMN_FIELD_DESC = new org.apache.thrift.protocol.TField("super_column", org.apache.thrift.protocol.TType.STRUCT, (short)2); + private static final org.apache.thrift.protocol.TField COUNTER_COLUMN_FIELD_DESC = new org.apache.thrift.protocol.TField("counter_column", org.apache.thrift.protocol.TType.STRUCT, (short)3); + private static final org.apache.thrift.protocol.TField COUNTER_SUPER_COLUMN_FIELD_DESC = new org.apache.thrift.protocol.TField("counter_super_column", org.apache.thrift.protocol.TType.STRUCT, (short)4); public Column column; public SuperColumn super_column; + public CounterColumn counter_column; + public CounterSuperColumn counter_super_column; /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ public enum _Fields implements org.apache.thrift.TFieldIdEnum { COLUMN((short)1, "column"), - SUPER_COLUMN((short)2, "super_column"); + SUPER_COLUMN((short)2, "super_column"), + COUNTER_COLUMN((short)3, "counter_column"), + COUNTER_SUPER_COLUMN((short)4, "counter_super_column"); private static final Map byName = new HashMap(); @@ -83,6 +94,10 @@ public class ColumnOrSuperColumn impleme return COLUMN; case 2: // SUPER_COLUMN return SUPER_COLUMN; + case 3: // COUNTER_COLUMN + return COUNTER_COLUMN; + case 4: // COUNTER_SUPER_COLUMN + return COUNTER_SUPER_COLUMN; default: return null; } @@ -131,6 +146,10 @@ public class ColumnOrSuperColumn impleme new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Column.class))); tmpMap.put(_Fields.SUPER_COLUMN, new org.apache.thrift.meta_data.FieldMetaData("super_column", org.apache.thrift.TFieldRequirementType.OPTIONAL, new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SuperColumn.class))); + tmpMap.put(_Fields.COUNTER_COLUMN, new org.apache.thrift.meta_data.FieldMetaData("counter_column", org.apache.thrift.TFieldRequirementType.OPTIONAL, + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CounterColumn.class))); + tmpMap.put(_Fields.COUNTER_SUPER_COLUMN, new org.apache.thrift.meta_data.FieldMetaData("counter_super_column", org.apache.thrift.TFieldRequirementType.OPTIONAL, + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CounterSuperColumn.class))); metaDataMap = Collections.unmodifiableMap(tmpMap); org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ColumnOrSuperColumn.class, metaDataMap); } @@ -148,6 +167,12 @@ public class ColumnOrSuperColumn impleme if (other.isSetSuper_column()) { this.super_column = new SuperColumn(other.super_column); } + if (other.isSetCounter_column()) { + this.counter_column = new CounterColumn(other.counter_column); + } + if (other.isSetCounter_super_column()) { + this.counter_super_column = new CounterSuperColumn(other.counter_super_column); + } } public ColumnOrSuperColumn deepCopy() { @@ -158,6 +183,8 @@ public class ColumnOrSuperColumn impleme public void clear() { this.column = null; this.super_column = null; + this.counter_column = null; + this.counter_super_column = null; } public Column getColumn() { @@ -208,6 +235,54 @@ public class ColumnOrSuperColumn impleme } } + public CounterColumn getCounter_column() { + return this.counter_column; + } + + public ColumnOrSuperColumn setCounter_column(CounterColumn counter_column) { + this.counter_column = counter_column; + return this; + } + + public void unsetCounter_column() { + this.counter_column = null; + } + + /** Returns true if field counter_column is set (has been assigned a value) and false otherwise */ + public boolean isSetCounter_column() { + return this.counter_column != null; + } + + public void setCounter_columnIsSet(boolean value) { + if (!value) { + this.counter_column = null; + } + } + + public CounterSuperColumn getCounter_super_column() { + return this.counter_super_column; + } + + public ColumnOrSuperColumn setCounter_super_column(CounterSuperColumn counter_super_column) { + this.counter_super_column = counter_super_column; + return this; + } + + public void unsetCounter_super_column() { + this.counter_super_column = null; + } + + /** Returns true if field counter_super_column is set (has been assigned a value) and false otherwise */ + public boolean isSetCounter_super_column() { + return this.counter_super_column != null; + } + + public void setCounter_super_columnIsSet(boolean value) { + if (!value) { + this.counter_super_column = null; + } + } + public void setFieldValue(_Fields field, Object value) { switch (field) { case COLUMN: @@ -226,6 +301,22 @@ public class ColumnOrSuperColumn impleme } break; + case COUNTER_COLUMN: + if (value == null) { + unsetCounter_column(); + } else { + setCounter_column((CounterColumn)value); + } + break; + + case COUNTER_SUPER_COLUMN: + if (value == null) { + unsetCounter_super_column(); + } else { + setCounter_super_column((CounterSuperColumn)value); + } + break; + } } @@ -237,6 +328,12 @@ public class ColumnOrSuperColumn impleme case SUPER_COLUMN: return getSuper_column(); + case COUNTER_COLUMN: + return getCounter_column(); + + case COUNTER_SUPER_COLUMN: + return getCounter_super_column(); + } throw new IllegalStateException(); } @@ -252,6 +349,10 @@ public class ColumnOrSuperColumn impleme return isSetColumn(); case SUPER_COLUMN: return isSetSuper_column(); + case COUNTER_COLUMN: + return isSetCounter_column(); + case COUNTER_SUPER_COLUMN: + return isSetCounter_super_column(); } throw new IllegalStateException(); } @@ -287,6 +388,24 @@ public class ColumnOrSuperColumn impleme return false; } + boolean this_present_counter_column = true && this.isSetCounter_column(); + boolean that_present_counter_column = true && that.isSetCounter_column(); + if (this_present_counter_column || that_present_counter_column) { + if (!(this_present_counter_column && that_present_counter_column)) + return false; + if (!this.counter_column.equals(that.counter_column)) + return false; + } + + boolean this_present_counter_super_column = true && this.isSetCounter_super_column(); + boolean that_present_counter_super_column = true && that.isSetCounter_super_column(); + if (this_present_counter_super_column || that_present_counter_super_column) { + if (!(this_present_counter_super_column && that_present_counter_super_column)) + return false; + if (!this.counter_super_column.equals(that.counter_super_column)) + return false; + } + return true; } @@ -304,6 +423,16 @@ public class ColumnOrSuperColumn impleme if (present_super_column) builder.append(super_column); + boolean present_counter_column = true && (isSetCounter_column()); + builder.append(present_counter_column); + if (present_counter_column) + builder.append(counter_column); + + boolean present_counter_super_column = true && (isSetCounter_super_column()); + builder.append(present_counter_super_column); + if (present_counter_super_column) + builder.append(counter_super_column); + return builder.toHashCode(); } @@ -335,6 +464,26 @@ public class ColumnOrSuperColumn impleme return lastComparison; } } + lastComparison = Boolean.valueOf(isSetCounter_column()).compareTo(typedOther.isSetCounter_column()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetCounter_column()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.counter_column, typedOther.counter_column); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetCounter_super_column()).compareTo(typedOther.isSetCounter_super_column()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetCounter_super_column()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.counter_super_column, typedOther.counter_super_column); + if (lastComparison != 0) { + return lastComparison; + } + } return 0; } @@ -368,6 +517,22 @@ public class ColumnOrSuperColumn impleme org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); } break; + case 3: // COUNTER_COLUMN + if (field.type == org.apache.thrift.protocol.TType.STRUCT) { + this.counter_column = new CounterColumn(); + this.counter_column.read(iprot); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); + } + break; + case 4: // COUNTER_SUPER_COLUMN + if (field.type == org.apache.thrift.protocol.TType.STRUCT) { + this.counter_super_column = new CounterSuperColumn(); + this.counter_super_column.read(iprot); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); + } + break; default: org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); } @@ -397,6 +562,20 @@ public class ColumnOrSuperColumn impleme oprot.writeFieldEnd(); } } + if (this.counter_column != null) { + if (isSetCounter_column()) { + oprot.writeFieldBegin(COUNTER_COLUMN_FIELD_DESC); + this.counter_column.write(oprot); + oprot.writeFieldEnd(); + } + } + if (this.counter_super_column != null) { + if (isSetCounter_super_column()) { + oprot.writeFieldBegin(COUNTER_SUPER_COLUMN_FIELD_DESC); + this.counter_super_column.write(oprot); + oprot.writeFieldEnd(); + } + } oprot.writeFieldStop(); oprot.writeStructEnd(); } @@ -425,6 +604,26 @@ public class ColumnOrSuperColumn impleme } first = false; } + if (isSetCounter_column()) { + if (!first) sb.append(", "); + sb.append("counter_column:"); + if (this.counter_column == null) { + sb.append("null"); + } else { + sb.append(this.counter_column); + } + first = false; + } + if (isSetCounter_super_column()) { + if (!first) sb.append(", "); + sb.append("counter_super_column:"); + if (this.counter_super_column == null) { + sb.append("null"); + } else { + sb.append(this.counter_super_column); + } + first = false; + } sb.append(")"); return sb.toString(); } Modified: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Mutation.java URL: http://svn.apache.org/viewvc/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Mutation.java?rev=1090842&r1=1090841&r2=1090842&view=diff ============================================================================== --- cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Mutation.java (original) +++ cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Mutation.java Sun Apr 10 17:31:15 2011 @@ -43,9 +43,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * A Mutation is either an insert (represented by filling column_or_supercolumn), a deletion (represented by filling the deletion attribute), - * a counter addition (represented by filling counter), or a counter deletion (represented by filling counter_deletion). - * @param column_or_supercolumn. An insert to a column or supercolumn + * A Mutation is either an insert (represented by filling column_or_supercolumn) or a deletion (represented by filling the deletion attribute). + * @param column_or_supercolumn. An insert to a column or supercolumn (possibly counter column or supercolumn) * @param deletion. A deletion of a column or supercolumn */ public class Mutation implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { @@ -53,17 +52,14 @@ public class Mutation implements org.apa private static final org.apache.thrift.protocol.TField COLUMN_OR_SUPERCOLUMN_FIELD_DESC = new org.apache.thrift.protocol.TField("column_or_supercolumn", org.apache.thrift.protocol.TType.STRUCT, (short)1); private static final org.apache.thrift.protocol.TField DELETION_FIELD_DESC = new org.apache.thrift.protocol.TField("deletion", org.apache.thrift.protocol.TType.STRUCT, (short)2); - private static final org.apache.thrift.protocol.TField COUNTER_FIELD_DESC = new org.apache.thrift.protocol.TField("counter", org.apache.thrift.protocol.TType.STRUCT, (short)3); public ColumnOrSuperColumn column_or_supercolumn; public Deletion deletion; - public Counter counter; /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ public enum _Fields implements org.apache.thrift.TFieldIdEnum { COLUMN_OR_SUPERCOLUMN((short)1, "column_or_supercolumn"), - DELETION((short)2, "deletion"), - COUNTER((short)3, "counter"); + DELETION((short)2, "deletion"); private static final Map byName = new HashMap(); @@ -82,8 +78,6 @@ public class Mutation implements org.apa return COLUMN_OR_SUPERCOLUMN; case 2: // DELETION return DELETION; - case 3: // COUNTER - return COUNTER; default: return null; } @@ -132,8 +126,6 @@ public class Mutation implements org.apa new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ColumnOrSuperColumn.class))); tmpMap.put(_Fields.DELETION, new org.apache.thrift.meta_data.FieldMetaData("deletion", org.apache.thrift.TFieldRequirementType.OPTIONAL, new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Deletion.class))); - tmpMap.put(_Fields.COUNTER, new org.apache.thrift.meta_data.FieldMetaData("counter", org.apache.thrift.TFieldRequirementType.OPTIONAL, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Counter.class))); metaDataMap = Collections.unmodifiableMap(tmpMap); org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Mutation.class, metaDataMap); } @@ -151,9 +143,6 @@ public class Mutation implements org.apa if (other.isSetDeletion()) { this.deletion = new Deletion(other.deletion); } - if (other.isSetCounter()) { - this.counter = new Counter(other.counter); - } } public Mutation deepCopy() { @@ -164,7 +153,6 @@ public class Mutation implements org.apa public void clear() { this.column_or_supercolumn = null; this.deletion = null; - this.counter = null; } public ColumnOrSuperColumn getColumn_or_supercolumn() { @@ -215,30 +203,6 @@ public class Mutation implements org.apa } } - public Counter getCounter() { - return this.counter; - } - - public Mutation setCounter(Counter counter) { - this.counter = counter; - return this; - } - - public void unsetCounter() { - this.counter = null; - } - - /** Returns true if field counter is set (has been assigned a value) and false otherwise */ - public boolean isSetCounter() { - return this.counter != null; - } - - public void setCounterIsSet(boolean value) { - if (!value) { - this.counter = null; - } - } - public void setFieldValue(_Fields field, Object value) { switch (field) { case COLUMN_OR_SUPERCOLUMN: @@ -257,14 +221,6 @@ public class Mutation implements org.apa } break; - case COUNTER: - if (value == null) { - unsetCounter(); - } else { - setCounter((Counter)value); - } - break; - } } @@ -276,9 +232,6 @@ public class Mutation implements org.apa case DELETION: return getDeletion(); - case COUNTER: - return getCounter(); - } throw new IllegalStateException(); } @@ -294,8 +247,6 @@ public class Mutation implements org.apa return isSetColumn_or_supercolumn(); case DELETION: return isSetDeletion(); - case COUNTER: - return isSetCounter(); } throw new IllegalStateException(); } @@ -331,15 +282,6 @@ public class Mutation implements org.apa return false; } - boolean this_present_counter = true && this.isSetCounter(); - boolean that_present_counter = true && that.isSetCounter(); - if (this_present_counter || that_present_counter) { - if (!(this_present_counter && that_present_counter)) - return false; - if (!this.counter.equals(that.counter)) - return false; - } - return true; } @@ -357,11 +299,6 @@ public class Mutation implements org.apa if (present_deletion) builder.append(deletion); - boolean present_counter = true && (isSetCounter()); - builder.append(present_counter); - if (present_counter) - builder.append(counter); - return builder.toHashCode(); } @@ -393,16 +330,6 @@ public class Mutation implements org.apa return lastComparison; } } - lastComparison = Boolean.valueOf(isSetCounter()).compareTo(typedOther.isSetCounter()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetCounter()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.counter, typedOther.counter); - if (lastComparison != 0) { - return lastComparison; - } - } return 0; } @@ -436,14 +363,6 @@ public class Mutation implements org.apa org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); } break; - case 3: // COUNTER - if (field.type == org.apache.thrift.protocol.TType.STRUCT) { - this.counter = new Counter(); - this.counter.read(iprot); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); - } - break; default: org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type); } @@ -473,13 +392,6 @@ public class Mutation implements org.apa oprot.writeFieldEnd(); } } - if (this.counter != null) { - if (isSetCounter()) { - oprot.writeFieldBegin(COUNTER_FIELD_DESC); - this.counter.write(oprot); - oprot.writeFieldEnd(); - } - } oprot.writeFieldStop(); oprot.writeStructEnd(); } @@ -508,16 +420,6 @@ public class Mutation implements org.apa } first = false; } - if (isSetCounter()) { - if (!first) sb.append(", "); - sb.append("counter:"); - if (this.counter == null) { - sb.append("null"); - } else { - sb.append(this.counter); - } - first = false; - } sb.append(")"); return sb.toString(); } Modified: cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java?rev=1090842&r1=1090841&r2=1090842&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java Sun Apr 10 17:31:15 2011 @@ -339,12 +339,6 @@ public class CliClient extends CliUserHe CfDef cfDef = getCfDef(columnFamily); boolean isSuperCF = cfDef.column_type.equals("Super"); - if (isCounterCF(cfDef)) - { - doCounterSlice(keyspace, key, parent, predicate, isSuperCF); - return; - } - List columns = thriftClient.get_slice(key, parent, predicate, consistencyLevel); AbstractType validator; @@ -366,7 +360,7 @@ public class CliClient extends CliUserHe sessionState.out.println(")"); } - else + else if (cosc.isSetColumn()) { Column column = cosc.column; validator = getValidatorForValue(cfDef, column.getName()); @@ -381,23 +375,9 @@ public class CliClient extends CliUserHe column.timestamp, column.isSetTtl() ? String.format(", ttl=%d", column.getTtl()) : ""); } - } - - sessionState.out.println("Returned " + columns.size() + " results."); - } - - private void doCounterSlice(String keyspace, ByteBuffer key, ColumnParent parent, SlicePredicate predicate, boolean isSuperCF) - throws InvalidRequestException, UnavailableException, TimedOutException, TException, IllegalAccessException, NotFoundException, InstantiationException, NoSuchFieldException - { - String columnFamily = parent.column_family; - List columns = thriftClient.get_counter_slice(key, parent, predicate, consistencyLevel); - - // Print out super columns or columns. - for (Counter cosc : columns) - { - if (cosc.isSetSuper_column()) + else if (cosc.isSetCounter_super_column()) { - CounterSuperColumn superColumn = cosc.super_column; + CounterSuperColumn superColumn = cosc.counter_super_column; sessionState.out.printf("=> (super_column=%s,", formatColumnName(keyspace, columnFamily, superColumn.name)); for (CounterColumn col : superColumn.getColumns()) @@ -406,9 +386,9 @@ public class CliClient extends CliUserHe } sessionState.out.println(")"); } - else + else // cosc.isSetCounter_column() { - CounterColumn column = cosc.column; + CounterColumn column = cosc.counter_column; String formattedName = isSuperCF ? formatSubcolumnName(keyspace, columnFamily, column.name) : formatColumnName(keyspace, columnFamily, column.name); @@ -562,7 +542,7 @@ public class CliClient extends CliUserHe CounterColumn column; try { - column = thriftClient.get_counter(key, path, consistencyLevel).column; + column = thriftClient.get(key, path, consistencyLevel).counter_column; } catch (NotFoundException e) { Modified: cassandra/trunk/src/java/org/apache/cassandra/db/RowMutation.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/RowMutation.java?rev=1090842&r1=1090841&r2=1090842&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/db/RowMutation.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/db/RowMutation.java Sun Apr 10 17:31:15 2011 @@ -33,7 +33,6 @@ import org.apache.cassandra.io.ICompactS import org.apache.cassandra.net.Message; import org.apache.cassandra.service.StorageService; import org.apache.cassandra.thrift.ColumnOrSuperColumn; -import org.apache.cassandra.thrift.Counter; import org.apache.cassandra.thrift.Deletion; import org.apache.cassandra.thrift.Mutation; import org.apache.cassandra.thrift.SlicePredicate; @@ -243,10 +242,6 @@ public class RowMutation implements IMut { addColumnOrSuperColumnToRowMutation(rm, cfName, mutation.column_or_supercolumn); } - if (mutation.counter != null) - { - addCounterToRowMutation(rm, cfName, mutation.counter); - } } } return rm; @@ -295,31 +290,27 @@ public class RowMutation implements IMut private static void addColumnOrSuperColumnToRowMutation(RowMutation rm, String cfName, ColumnOrSuperColumn cosc) { - if (cosc.column == null) + if (cosc.super_column != null) { for (org.apache.cassandra.thrift.Column column : cosc.super_column.columns) { rm.add(new QueryPath(cfName, cosc.super_column.name, column.name), column.value, column.timestamp, column.ttl); } } - else + else if (cosc.column != null) { rm.add(new QueryPath(cfName, null, cosc.column.name), cosc.column.value, cosc.column.timestamp, cosc.column.ttl); } - } - - private static void addCounterToRowMutation(RowMutation rm, String cfName, Counter counter) - { - if (counter.column == null) + else if (cosc.counter_super_column != null) { - for (org.apache.cassandra.thrift.CounterColumn column : counter.super_column.columns) + for (org.apache.cassandra.thrift.CounterColumn column : cosc.counter_super_column.columns) { - rm.addCounter(new QueryPath(cfName, counter.super_column.name, column.name), column.value); + rm.addCounter(new QueryPath(cfName, cosc.counter_super_column.name, column.name), column.value); } } - else + else // cosc.counter_column != null { - rm.addCounter(new QueryPath(cfName, null, counter.column.name), counter.column.value); + rm.addCounter(new QueryPath(cfName, null, cosc.counter_column.name), cosc.counter_column.value); } } Modified: cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java?rev=1090842&r1=1090841&r2=1090842&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java Sun Apr 10 17:31:15 2011 @@ -65,6 +65,7 @@ public class CassandraServer implements private final static List EMPTY_COLUMNS = Collections.emptyList(); private final static List EMPTY_SUBCOLUMNS = Collections.emptyList(); + private final static List EMPTY_COUNTER_SUBCOLUMNS = Collections.emptyList(); // thread local state containing session information public final ThreadLocal clientState = new ThreadLocal() @@ -157,6 +158,28 @@ public class CassandraServer implements return thriftColumns; } + public List thriftifyCounterSubColumns(Collection columns) + { + if (columns == null || columns.isEmpty()) + { + return EMPTY_COUNTER_SUBCOLUMNS; + } + + ArrayList thriftColumns = new ArrayList(columns.size()); + for (IColumn column : columns) + { + if (column.isMarkedForDelete()) + { + continue; + } + assert column instanceof org.apache.cassandra.db.CounterColumn; + CounterColumn thrift_column = new CounterColumn(column.name(), CounterContext.instance().total(column.value())); + thriftColumns.add(thrift_column); + } + + return thriftColumns; + } + public List thriftifyColumns(Collection columns, boolean reverseOrder) { ArrayList thriftColumns = new ArrayList(columns.size()); @@ -166,12 +189,20 @@ public class CassandraServer implements { continue; } - Column thrift_column = new Column(column.name(), column.value(), column.timestamp()); - if (column instanceof ExpiringColumn) + if (column instanceof org.apache.cassandra.db.CounterColumn) { - thrift_column.setTtl(((ExpiringColumn) column).getTimeToLive()); + CounterColumn thrift_column = new CounterColumn(column.name(), CounterContext.instance().total(column.value())); + thriftColumns.add(new ColumnOrSuperColumn().setCounter_column(thrift_column)); + } + else + { + Column thrift_column = new Column(column.name(), column.value(), column.timestamp()); + if (column instanceof ExpiringColumn) + { + thrift_column.setTtl(((ExpiringColumn) column).getTimeToLive()); + } + thriftColumns.add(new ColumnOrSuperColumn().setColumn(thrift_column)); } - thriftColumns.add(new ColumnOrSuperColumn().setColumn(thrift_column)); } // we have to do the reversing here, since internally we pass results around in ColumnFamily @@ -182,6 +213,14 @@ public class CassandraServer implements return thriftColumns; } + private List thriftifySuperColumns(Collection columns, boolean reverseOrder, boolean isCounterCF) + { + if (isCounterCF) + return thriftifyCounterSuperColumns(columns, reverseOrder); + else + return thriftifySuperColumns(columns, reverseOrder); + } + private List thriftifySuperColumns(Collection columns, boolean reverseOrder) { ArrayList thriftSuperColumns = new ArrayList(columns.size()); @@ -202,6 +241,26 @@ public class CassandraServer implements return thriftSuperColumns; } + private List thriftifyCounterSuperColumns(Collection columns, boolean reverseOrder) + { + ArrayList thriftSuperColumns = new ArrayList(columns.size()); + for (IColumn column : columns) + { + List subcolumns = thriftifyCounterSubColumns(column.getSubColumns()); + if (subcolumns.isEmpty()) + { + continue; + } + CounterSuperColumn superColumn = new CounterSuperColumn(column.name(), subcolumns); + thriftSuperColumns.add(new ColumnOrSuperColumn().setCounter_super_column(superColumn)); + } + + if (reverseOrder) + Collections.reverse(thriftSuperColumns); + + return thriftSuperColumns; + } + private Map> getSlice(List commands, ConsistencyLevel consistency_level) throws InvalidRequestException, UnavailableException, TimedOutException { @@ -232,9 +291,14 @@ public class CassandraServer implements return thriftifyColumns(subcolumns, reverseOrder); } if (cf.isSuper()) - return thriftifySuperColumns(cf.getSortedColumns(), reverseOrder); + { + boolean isCounterCF = cf.metadata().getDefaultValidator().isCommutative(); + return thriftifySuperColumns(cf.getSortedColumns(), reverseOrder, isCounterCF); + } else + { return thriftifyColumns(cf.getSortedColumns(), reverseOrder); + } } public List get_slice(ByteBuffer key, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level) @@ -243,7 +307,7 @@ public class CassandraServer implements logger.debug("get_slice"); state().hasColumnFamilyAccess(column_parent.column_family, Permission.READ); - return multigetSliceInternal(state().getKeyspace(), Collections.singletonList(key), column_parent, predicate, consistency_level, false).get(key); + return multigetSliceInternal(state().getKeyspace(), Collections.singletonList(key), column_parent, predicate, consistency_level).get(key); } public Map> multiget_slice(List keys, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level) @@ -252,13 +316,13 @@ public class CassandraServer implements logger.debug("multiget_slice"); state().hasColumnFamilyAccess(column_parent.column_family, Permission.READ); - return multigetSliceInternal(state().getKeyspace(), keys, column_parent, predicate, consistency_level, false); + return multigetSliceInternal(state().getKeyspace(), keys, column_parent, predicate, consistency_level); } - private Map> multigetSliceInternal(String keyspace, List keys, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level, boolean isCommutativeOp) + private Map> multigetSliceInternal(String keyspace, List keys, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level) throws InvalidRequestException, UnavailableException, TimedOutException { - CFMetaData metadata = ThriftValidation.validateColumnFamily(keyspace, column_parent.column_family, isCommutativeOp); + CFMetaData metadata = ThriftValidation.validateColumnFamily(keyspace, column_parent.column_family); ThriftValidation.validateColumnParent(metadata, column_parent); ThriftValidation.validatePredicate(metadata, column_parent, predicate); @@ -284,13 +348,13 @@ public class CassandraServer implements return getSlice(commands, consistency_level); } - private ColumnOrSuperColumn internal_get(ByteBuffer key, ColumnPath column_path, ConsistencyLevel consistency_level, boolean isCommutativeOp) + private ColumnOrSuperColumn internal_get(ByteBuffer key, ColumnPath column_path, ConsistencyLevel consistency_level) throws InvalidRequestException, NotFoundException, UnavailableException, TimedOutException { state().hasColumnFamilyAccess(column_path.column_family, Permission.READ); String keyspace = state().getKeyspace(); - CFMetaData metadata = ThriftValidation.validateColumnFamily(keyspace, column_path.column_family, isCommutativeOp); + CFMetaData metadata = ThriftValidation.validateColumnFamily(keyspace, column_path.column_family); ThriftValidation.validateColumnPath(metadata, column_path); QueryPath path = new QueryPath(column_path.column_family, column_path.column == null ? null : column_path.super_column); @@ -316,7 +380,7 @@ public class CassandraServer implements { logger.debug("get"); - return internal_get(key, column_path, consistency_level, false); + return internal_get(key, column_path, consistency_level); } public int get_count(ByteBuffer key, ColumnParent column_parent, SlicePredicate predicate, ConsistencyLevel consistency_level) @@ -338,7 +402,7 @@ public class CassandraServer implements String keyspace = state().getKeyspace(); Map counts = new HashMap(); - Map> columnFamiliesMap = multigetSliceInternal(keyspace, keys, column_parent, predicate, consistency_level, false); + Map> columnFamiliesMap = multigetSliceInternal(keyspace, keys, column_parent, predicate, consistency_level); for (Map.Entry> cf : columnFamiliesMap.entrySet()) { counts.put(cf.getKey(), cf.getValue().size()); @@ -398,8 +462,6 @@ public class CassandraServer implements cfamsSeen.add(cfName); } - boolean isCommutativeOp = false; - boolean isOnlyDeletion = true; CFMetaData metadata = ThriftValidation.validateColumnFamily(keyspace, cfName); ThriftValidation.validateKey(metadata, key); @@ -1028,73 +1090,6 @@ public class CassandraServer implements doInsert(consistency_level, Arrays.asList(rm)); } - private Counter getCounter(ColumnOrSuperColumn cosc) - { - if (cosc.isSetColumn()) { - return new Counter().setColumn(new CounterColumn(cosc.column.name, CounterContext.instance().total(cosc.column.value))); - } else if(cosc.isSetSuper_column()) { - List cc = new ArrayList(cosc.super_column.columns.size()); - for (Column col : cosc.super_column.columns) - { - cc.add(new CounterColumn(col.name, CounterContext.instance().total(col.value))); - } - return new Counter().setSuper_column(new CounterSuperColumn(cosc.super_column.name, cc)); - } - return null; - } - - public Counter get_counter(ByteBuffer key, ColumnPath path, ConsistencyLevel consistency_level) - throws InvalidRequestException, NotFoundException, UnavailableException, TimedOutException, TException - { - logger.debug("get_counter"); - - String keyspace = state().getKeyspace(); - - return getCounter(internal_get(key, path, consistency_level, true)); - } - - private List getCounters(List cosc) - { - List rv = new ArrayList(cosc.size()); - for (ColumnOrSuperColumn columnOrSuperColumn : cosc) - { - Counter c = getCounter(columnOrSuperColumn); - if (c != null) { - rv.add(c); - } - } - return rv; - } - - public List get_counter_slice(ByteBuffer key, ColumnParent column_parent, SlicePredicate predicate, - ConsistencyLevel consistency_level) throws InvalidRequestException, UnavailableException, TimedOutException, - TException - { - if (logger.isDebugEnabled()) - logger.debug("get_counter_slice"); - - state().hasColumnFamilyAccess(column_parent.column_family, Permission.READ); - List cosc = multigetSliceInternal(state().getKeyspace(), Collections.singletonList(key), column_parent, predicate, consistency_level, true).get(key); - return getCounters(cosc); - } - - public Map> multiget_counter_slice(List keys, ColumnParent column_parent, - SlicePredicate predicate, ConsistencyLevel consistency_level) throws InvalidRequestException, - UnavailableException, TimedOutException, TException - { - if (logger.isDebugEnabled()) - logger.debug("multiget_counter_slice"); - - state().hasColumnFamilyAccess(column_parent.column_family, Permission.READ); - Map> slices = multigetSliceInternal(state().getKeyspace(), keys, column_parent, predicate, consistency_level, true); - Map> rv = new HashMap>(slices.size()); - for (Entry> entry : slices.entrySet()) - { - rv.put(entry.getKey(), getCounters(entry.getValue())); - } - return rv; - } - public void remove_counter(ByteBuffer key, ColumnPath path, ConsistencyLevel consistency_level) throws InvalidRequestException, UnavailableException, TimedOutException, TException { Modified: cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java?rev=1090842&r1=1090841&r2=1090842&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java Sun Apr 10 17:31:15 2011 @@ -96,7 +96,7 @@ public class ThriftValidation return metadata; } - // This should only be used when the operation should be authorized whether this is a counter CF or not + // To be used when the operation should be authorized whether this is a counter CF or not public static CFMetaData validateColumnFamily(String tablename, String cfName) throws InvalidRequestException { validateTable(tablename); @@ -249,8 +249,22 @@ public class ThriftValidation public static void validateColumnOrSuperColumn(CFMetaData metadata, ColumnOrSuperColumn cosc) throws InvalidRequestException { + boolean isCommutative = metadata.getDefaultValidator().isCommutative(); + + int nulls = 0; + if (cosc.column == null) nulls++; + if (cosc.super_column == null) nulls++; + if (cosc.counter_column == null) nulls++; + if (cosc.counter_super_column == null) nulls++; + + if (nulls != 3) + throw new InvalidRequestException("ColumnOrSuperColumn must have one (and only one) of column, super_column, counter and counter_super_column"); + if (cosc.column != null) { + if (isCommutative) + throw new InvalidRequestException("invalid operation for commutative columnfamily " + metadata.cfName); + validateTtl(cosc.column); validateColumnPath(metadata, new ColumnPath(metadata.cfName).setSuper_column((ByteBuffer)null).setColumn(cosc.column.name)); validateColumnData(metadata, cosc.column); @@ -258,6 +272,9 @@ public class ThriftValidation if (cosc.super_column != null) { + if (isCommutative) + throw new InvalidRequestException("invalid operation for commutative columnfamily " + metadata.cfName); + for (Column c : cosc.super_column.columns) { validateColumnPath(metadata, new ColumnPath(metadata.cfName).setSuper_column(cosc.super_column.name).setColumn(c.name)); @@ -265,24 +282,22 @@ public class ThriftValidation } } - if (cosc.column == null && cosc.super_column == null) - throw new InvalidRequestException("ColumnOrSuperColumn must have one or both of Column or SuperColumn"); - } + if (cosc.counter_column != null) + { + if (!isCommutative) + throw new InvalidRequestException("invalid operation for non commutative columnfamily " + metadata.cfName); - public static void validateCounter(CFMetaData metadata, Counter counter) - throws InvalidRequestException - { - if (counter.column != null) - validateColumnPath(metadata, new ColumnPath(metadata.cfName).setSuper_column((ByteBuffer)null).setColumn(counter.column.name)); + validateColumnPath(metadata, new ColumnPath(metadata.cfName).setSuper_column((ByteBuffer)null).setColumn(cosc.counter_column.name)); + } - if (counter.super_column != null) + if (cosc.counter_super_column != null) { - for (CounterColumn c : counter.super_column.columns) - validateColumnPath(metadata, new ColumnPath(metadata.cfName).setSuper_column(counter.super_column.name).setColumn(c.name)); - } + if (!isCommutative) + throw new InvalidRequestException("invalid operation for non commutative columnfamily " + metadata.cfName); - if (counter.column == null && counter.super_column == null) - throw new InvalidRequestException("Counter must have one or both of column or super_column"); + for (CounterColumn c : cosc.counter_super_column.columns) + validateColumnPath(metadata, new ColumnPath(metadata.cfName).setSuper_column(cosc.counter_super_column.name).setColumn(c.name)); + } } private static void validateTtl(Column column) throws InvalidRequestException @@ -300,34 +315,21 @@ public class ThriftValidation { ColumnOrSuperColumn cosc = mut.column_or_supercolumn; Deletion del = mut.deletion; - Counter counter = mut.counter; - boolean isCommutative = metadata.getDefaultValidator().isCommutative(); int nulls = 0; if (cosc == null) nulls++; if (del == null) nulls++; - if (counter == null) nulls++; - if (nulls != 2) + if (nulls != 1) { - throw new InvalidRequestException("mutation must have one and only one of column_or_supercolumn, deletion, counter or counter_deletion"); + throw new InvalidRequestException("mutation must have one and only one of column_or_supercolumn or deletion"); } if (cosc != null) { - if (isCommutative) - throw new InvalidRequestException("invalid operation for commutative columnfamily " + metadata.cfName); - validateColumnOrSuperColumn(metadata, cosc); } - if (counter != null) - { - if (!isCommutative) - throw new InvalidRequestException("invalid operation for non commutative columnfamily " + metadata.cfName); - - validateCounter(metadata, counter); - } - if (del != null) + else { validateDeletion(metadata, del); } Modified: cassandra/trunk/test/system/test_thrift_server.py URL: http://svn.apache.org/viewvc/cassandra/trunk/test/system/test_thrift_server.py?rev=1090842&r1=1090841&r2=1090842&view=diff ============================================================================== --- cassandra/trunk/test/system/test_thrift_server.py (original) +++ cassandra/trunk/test/system/test_thrift_server.py Sun Apr 10 17:31:15 2011 @@ -55,13 +55,6 @@ def _assert_no_columnpath(key, column_pa except NotFoundException: assert True, 'column did not exist' -def _assert_no_columnpath_counter(key, column_path): - try: - client.get_counter(key, column_path, ConsistencyLevel.ONE) - assert False, ('columnpath %s existed in %s when it should not' % (column_path, key)) - except NotFoundException: - assert True, 'column did not exist' - def _insert_simple(block=True): return _insert_multi(['key1']) @@ -1504,18 +1497,18 @@ class TestMutations(ThriftTester): # insert positive and negative values and check the counts client.add('key1', ColumnParent(column_family='Counter1'), CounterColumn('c1', d1), ConsistencyLevel.ONE) time.sleep(0.1) - rv1 = client.get_counter('key1', ColumnPath(column_family='Counter1', column='c1'), ConsistencyLevel.ONE) - assert rv1.column.value == d1 + rv1 = client.get('key1', ColumnPath(column_family='Counter1', column='c1'), ConsistencyLevel.ONE) + assert rv1.counter_column.value == d1 client.add('key1', ColumnParent(column_family='Counter1'), CounterColumn('c1', d2), ConsistencyLevel.ONE) time.sleep(0.1) - rv2 = client.get_counter('key1', ColumnPath(column_family='Counter1', column='c1'), ConsistencyLevel.ONE) - assert rv2.column.value == (d1+d2) + rv2 = client.get('key1', ColumnPath(column_family='Counter1', column='c1'), ConsistencyLevel.ONE) + assert rv2.counter_column.value == (d1+d2) client.add('key1', ColumnParent(column_family='Counter1'), CounterColumn('c1', d3), ConsistencyLevel.ONE) time.sleep(0.1) - rv3 = client.get_counter('key1', ColumnPath(column_family='Counter1', column='c1'), ConsistencyLevel.ONE) - assert rv3.column.value == (d1+d2+d3) + rv3 = client.get('key1', ColumnPath(column_family='Counter1', column='c1'), ConsistencyLevel.ONE) + assert rv3.counter_column.value == (d1+d2+d3) def test_incr_decr_super_add(self): _set_keyspace('Keyspace1') @@ -1527,19 +1520,19 @@ class TestMutations(ThriftTester): client.add('key1', ColumnParent(column_family='SuperCounter1', super_column='sc1'), CounterColumn('c1', d1), ConsistencyLevel.ONE) client.add('key1', ColumnParent(column_family='SuperCounter1', super_column='sc1'), CounterColumn('c2', d2), ConsistencyLevel.ONE) time.sleep(0.1) - rv1 = client.get_counter('key1', ColumnPath(column_family='SuperCounter1', super_column='sc1'), ConsistencyLevel.ONE) - assert rv1.super_column.columns[0].value == d1 - assert rv1.super_column.columns[1].value == d2 + rv1 = client.get('key1', ColumnPath(column_family='SuperCounter1', super_column='sc1'), ConsistencyLevel.ONE) + assert rv1.counter_super_column.columns[0].value == d1 + assert rv1.counter_super_column.columns[1].value == d2 client.add('key1', ColumnParent(column_family='SuperCounter1', super_column='sc1'), CounterColumn('c1', d2), ConsistencyLevel.ONE) time.sleep(0.1) - rv2 = client.get_counter('key1', ColumnPath('SuperCounter1', 'sc1', 'c1'), ConsistencyLevel.ONE) - assert rv2.column.value == (d1+d2) + rv2 = client.get('key1', ColumnPath('SuperCounter1', 'sc1', 'c1'), ConsistencyLevel.ONE) + assert rv2.counter_column.value == (d1+d2) client.add('key1', ColumnParent(column_family='SuperCounter1', super_column='sc1'), CounterColumn('c1', d3), ConsistencyLevel.ONE) time.sleep(0.1) - rv3 = client.get_counter('key1', ColumnPath(column_family='SuperCounter1', super_column='sc1', column='c1'), ConsistencyLevel.ONE) - assert rv3.column.value == (d1+d2+d3) + rv3 = client.get('key1', ColumnPath(column_family='SuperCounter1', super_column='sc1', column='c1'), ConsistencyLevel.ONE) + assert rv3.counter_column.value == (d1+d2+d3) def test_incr_standard_remove(self): _set_keyspace('Keyspace1') @@ -1549,22 +1542,22 @@ class TestMutations(ThriftTester): # insert value and check it exists client.add('key1', ColumnParent(column_family='Counter1'), CounterColumn('c1', d1), ConsistencyLevel.ONE) time.sleep(5) - rv1 = client.get_counter('key1', ColumnPath(column_family='Counter1', column='c1'), ConsistencyLevel.ONE) - assert rv1.column.value == d1 + rv1 = client.get('key1', ColumnPath(column_family='Counter1', column='c1'), ConsistencyLevel.ONE) + assert rv1.counter_column.value == d1 # remove the previous column and check that it is gone client.remove_counter('key1', ColumnPath(column_family='Counter1', column='c1'), ConsistencyLevel.ONE) time.sleep(5) - _assert_no_columnpath_counter('key1', ColumnPath(column_family='Counter1', column='c1')) + _assert_no_columnpath('key1', ColumnPath(column_family='Counter1', column='c1')) # insert again and this time delete the whole row, check that it is gone client.add('key1', ColumnParent(column_family='Counter1'), CounterColumn('c1', d1), ConsistencyLevel.ONE) time.sleep(5) - rv2 = client.get_counter('key1', ColumnPath(column_family='Counter1', column='c1'), ConsistencyLevel.ONE) - assert rv2.column.value == d1 + rv2 = client.get('key1', ColumnPath(column_family='Counter1', column='c1'), ConsistencyLevel.ONE) + assert rv2.counter_column.value == d1 client.remove_counter('key1', ColumnPath(column_family='Counter1'), ConsistencyLevel.ONE) time.sleep(5) - _assert_no_columnpath_counter('key1', ColumnPath(column_family='Counter1', column='c1')) + _assert_no_columnpath('key1', ColumnPath(column_family='Counter1', column='c1')) def test_incr_super_remove(self): _set_keyspace('Keyspace1') @@ -1574,22 +1567,22 @@ class TestMutations(ThriftTester): # insert value and check it exists client.add('key1', ColumnParent(column_family='SuperCounter1', super_column='sc1'), CounterColumn('c1', d1), ConsistencyLevel.ONE) time.sleep(5) - rv1 = client.get_counter('key1', ColumnPath(column_family='SuperCounter1', super_column='sc1', column='c1'), ConsistencyLevel.ONE) - assert rv1.column.value == d1 + rv1 = client.get('key1', ColumnPath(column_family='SuperCounter1', super_column='sc1', column='c1'), ConsistencyLevel.ONE) + assert rv1.counter_column.value == d1 # remove the previous column and check that it is gone client.remove_counter('key1', ColumnPath(column_family='SuperCounter1', super_column='sc1', column='c1'), ConsistencyLevel.ONE) time.sleep(5) - _assert_no_columnpath_counter('key1', ColumnPath(column_family='SuperCounter1', super_column='sc1', column='c1')) + _assert_no_columnpath('key1', ColumnPath(column_family='SuperCounter1', super_column='sc1', column='c1')) # insert again and this time delete the whole row, check that it is gone client.add('key1', ColumnParent(column_family='SuperCounter1', super_column='sc1'), CounterColumn('c1', d1), ConsistencyLevel.ONE) time.sleep(5) - rv2 = client.get_counter('key1', ColumnPath(column_family='SuperCounter1', super_column='sc1', column='c1'), ConsistencyLevel.ONE) - assert rv2.column.value == d1 + rv2 = client.get('key1', ColumnPath(column_family='SuperCounter1', super_column='sc1', column='c1'), ConsistencyLevel.ONE) + assert rv2.counter_column.value == d1 client.remove_counter('key1', ColumnPath(column_family='SuperCounter1', super_column='sc1'), ConsistencyLevel.ONE) time.sleep(5) - _assert_no_columnpath_counter('key1', ColumnPath(column_family='SuperCounter1', super_column='sc1', column='c1')) + _assert_no_columnpath('key1', ColumnPath(column_family='SuperCounter1', super_column='sc1', column='c1')) def test_incr_decr_standard_remove(self): _set_keyspace('Keyspace1') @@ -1599,22 +1592,22 @@ class TestMutations(ThriftTester): # insert value and check it exists client.add('key1', ColumnParent(column_family='Counter1'), CounterColumn('c1', d1), ConsistencyLevel.ONE) time.sleep(5) - rv1 = client.get_counter('key1', ColumnPath(column_family='Counter1', column='c1'), ConsistencyLevel.ONE) - assert rv1.column.value == d1 + rv1 = client.get('key1', ColumnPath(column_family='Counter1', column='c1'), ConsistencyLevel.ONE) + assert rv1.counter_column.value == d1 # remove the previous column and check that it is gone client.remove_counter('key1', ColumnPath(column_family='Counter1', column='c1'), ConsistencyLevel.ONE) time.sleep(5) - _assert_no_columnpath_counter('key1', ColumnPath(column_family='Counter1', column='c1')) + _assert_no_columnpath('key1', ColumnPath(column_family='Counter1', column='c1')) # insert again and this time delete the whole row, check that it is gone client.add('key1', ColumnParent(column_family='Counter1'), CounterColumn('c1', d1), ConsistencyLevel.ONE) time.sleep(5) - rv2 = client.get_counter('key1', ColumnPath(column_family='Counter1', column='c1'), ConsistencyLevel.ONE) - assert rv2.column.value == d1 + rv2 = client.get('key1', ColumnPath(column_family='Counter1', column='c1'), ConsistencyLevel.ONE) + assert rv2.counter_column.value == d1 client.remove_counter('key1', ColumnPath(column_family='Counter1'), ConsistencyLevel.ONE) time.sleep(5) - _assert_no_columnpath_counter('key1', ColumnPath(column_family='Counter1', column='c1')) + _assert_no_columnpath('key1', ColumnPath(column_family='Counter1', column='c1')) def test_incr_decr_super_remove(self): _set_keyspace('Keyspace1') @@ -1624,22 +1617,22 @@ class TestMutations(ThriftTester): # insert value and check it exists client.add('key1', ColumnParent(column_family='SuperCounter1', super_column='sc1'), CounterColumn('c1', d1), ConsistencyLevel.ONE) time.sleep(5) - rv1 = client.get_counter('key1', ColumnPath(column_family='SuperCounter1', super_column='sc1', column='c1'), ConsistencyLevel.ONE) - assert rv1.column.value == d1 + rv1 = client.get('key1', ColumnPath(column_family='SuperCounter1', super_column='sc1', column='c1'), ConsistencyLevel.ONE) + assert rv1.counter_column.value == d1 # remove the previous column and check that it is gone client.remove_counter('key1', ColumnPath(column_family='SuperCounter1', super_column='sc1', column='c1'), ConsistencyLevel.ONE) time.sleep(5) - _assert_no_columnpath_counter('key1', ColumnPath(column_family='SuperCounter1', super_column='sc1', column='c1')) + _assert_no_columnpath('key1', ColumnPath(column_family='SuperCounter1', super_column='sc1', column='c1')) # insert again and this time delete the whole row, check that it is gone client.add('key1', ColumnParent(column_family='SuperCounter1', super_column='sc1'), CounterColumn('c1', d1), ConsistencyLevel.ONE) time.sleep(5) - rv2 = client.get_counter('key1', ColumnPath(column_family='SuperCounter1', super_column='sc1', column='c1'), ConsistencyLevel.ONE) - assert rv2.column.value == d1 + rv2 = client.get('key1', ColumnPath(column_family='SuperCounter1', super_column='sc1', column='c1'), ConsistencyLevel.ONE) + assert rv2.counter_column.value == d1 client.remove_counter('key1', ColumnPath(column_family='SuperCounter1', super_column='sc1'), ConsistencyLevel.ONE) time.sleep(5) - _assert_no_columnpath_counter('key1', ColumnPath(column_family='SuperCounter1', super_column='sc1', column='c1')) + _assert_no_columnpath('key1', ColumnPath(column_family='SuperCounter1', super_column='sc1', column='c1')) def test_incr_decr_standard_batch_add(self): _set_keyspace('Keyspace1') @@ -1647,15 +1640,15 @@ class TestMutations(ThriftTester): d1 = 12 d2 = -21 update_map = {'key1': {'Counter1': [ - Mutation(counter=Counter(column=CounterColumn('c1', d1))), - Mutation(counter=Counter(column=CounterColumn('c1', d2))), + Mutation(column_or_supercolumn=ColumnOrSuperColumn(counter_column=CounterColumn('c1', d1))), + Mutation(column_or_supercolumn=ColumnOrSuperColumn(counter_column=CounterColumn('c1', d2))), ]}} # insert positive and negative values and check the counts client.batch_mutate(update_map, ConsistencyLevel.ONE) time.sleep(0.1) - rv1 = client.get_counter('key1', ColumnPath(column_family='Counter1', column='c1'), ConsistencyLevel.ONE) - assert rv1.column.value == d1+d2 + rv1 = client.get('key1', ColumnPath(column_family='Counter1', column='c1'), ConsistencyLevel.ONE) + assert rv1.counter_column.value == d1+d2 def test_incr_decr_standard_batch_remove(self): _set_keyspace('Keyspace1') @@ -1665,13 +1658,13 @@ class TestMutations(ThriftTester): # insert positive and negative values and check the counts update_map = {'key1': {'Counter1': [ - Mutation(counter=Counter(column=CounterColumn('c1', d1))), - Mutation(counter=Counter(column=CounterColumn('c1', d2))), + Mutation(column_or_supercolumn=ColumnOrSuperColumn(counter_column=CounterColumn('c1', d1))), + Mutation(column_or_supercolumn=ColumnOrSuperColumn(counter_column=CounterColumn('c1', d2))), ]}} client.batch_mutate(update_map, ConsistencyLevel.ONE) time.sleep(5) - rv1 = client.get_counter('key1', ColumnPath(column_family='Counter1', column='c1'), ConsistencyLevel.ONE) - assert rv1.column.value == d1+d2 + rv1 = client.get('key1', ColumnPath(column_family='Counter1', column='c1'), ConsistencyLevel.ONE) + assert rv1.counter_column.value == d1+d2 # remove the previous column and check that it is gone update_map = {'key1': {'Counter1': [ @@ -1679,24 +1672,24 @@ class TestMutations(ThriftTester): ]}} client.batch_mutate(update_map, ConsistencyLevel.ONE) time.sleep(5) - _assert_no_columnpath_counter('key1', ColumnPath(column_family='Counter1', column='c1')) + _assert_no_columnpath('key1', ColumnPath(column_family='Counter1', column='c1')) # insert again and this time delete the whole row, check that it is gone update_map = {'key1': {'Counter1': [ - Mutation(counter=Counter(column=CounterColumn('c1', d1))), - Mutation(counter=Counter(column=CounterColumn('c1', d2))), + Mutation(column_or_supercolumn=ColumnOrSuperColumn(counter_column=CounterColumn('c1', d1))), + Mutation(column_or_supercolumn=ColumnOrSuperColumn(counter_column=CounterColumn('c1', d2))), ]}} client.batch_mutate(update_map, ConsistencyLevel.ONE) time.sleep(5) - rv2 = client.get_counter('key1', ColumnPath(column_family='Counter1', column='c1'), ConsistencyLevel.ONE) - assert rv2.column.value == d1+d2 + rv2 = client.get('key1', ColumnPath(column_family='Counter1', column='c1'), ConsistencyLevel.ONE) + assert rv2.counter_column.value == d1+d2 update_map = {'key1': {'Counter1': [ Mutation(deletion=Deletion()), ]}} client.batch_mutate(update_map, ConsistencyLevel.ONE) time.sleep(5) - _assert_no_columnpath_counter('key1', ColumnPath(column_family='Counter1', column='c1')) + _assert_no_columnpath('key1', ColumnPath(column_family='Counter1', column='c1')) def test_incr_decr_standard_slice(self): _set_keyspace('Keyspace1') @@ -1712,10 +1705,10 @@ class TestMutations(ThriftTester): time.sleep(0.1) # insert positive and negative values and check the counts - counters = client.get_counter_slice('key1', ColumnParent('Counter1'), SlicePredicate(['c3', 'c4']), ConsistencyLevel.ONE) + counters = client.get_slice('key1', ColumnParent('Counter1'), SlicePredicate(['c3', 'c4']), ConsistencyLevel.ONE) - assert counters[0].column.value == d1+d2 - assert counters[1].column.value == d1 + assert counters[0].counter_column.value == d1+d2 + assert counters[1].counter_column.value == d1 def test_incr_decr_standard_muliget_slice(self): _set_keyspace('Keyspace1') @@ -1737,12 +1730,12 @@ class TestMutations(ThriftTester): time.sleep(0.1) # insert positive and negative values and check the counts - counters = client.multiget_counter_slice(['key1', 'key2'], ColumnParent('Counter1'), SlicePredicate(['c3', 'c4']), ConsistencyLevel.ONE) + counters = client.multiget_slice(['key1', 'key2'], ColumnParent('Counter1'), SlicePredicate(['c3', 'c4']), ConsistencyLevel.ONE) - assert counters['key1'][0].column.value == d1+d2 - assert counters['key1'][1].column.value == d1 - assert counters['key2'][0].column.value == d1+d2 - assert counters['key2'][1].column.value == d1 + assert counters['key1'][0].counter_column.value == d1+d2 + assert counters['key1'][1].counter_column.value == d1 + assert counters['key2'][0].counter_column.value == d1+d2 + assert counters['key2'][1].counter_column.value == d1 def test_index_scan(self): _set_keyspace('Keyspace1') Modified: cassandra/trunk/tools/stress/src/org/apache/cassandra/stress/operations/CounterAdder.java URL: http://svn.apache.org/viewvc/cassandra/trunk/tools/stress/src/org/apache/cassandra/stress/operations/CounterAdder.java?rev=1090842&r1=1090841&r2=1090842&view=diff ============================================================================== --- cassandra/trunk/tools/stress/src/org/apache/cassandra/stress/operations/CounterAdder.java (original) +++ cassandra/trunk/tools/stress/src/org/apache/cassandra/stress/operations/CounterAdder.java Sun Apr 10 17:31:15 2011 @@ -111,8 +111,8 @@ public class CounterAdder extends Operat for (CounterSuperColumn s : superColumns) { - Counter counter = new Counter().setSuper_column(s); - mutations.add(new Mutation().setCounter(counter)); + ColumnOrSuperColumn cosc = new ColumnOrSuperColumn().setCounter_super_column(s); + mutations.add(new Mutation().setColumn_or_supercolumn(cosc)); } mutationMap.put("SuperCounter1", mutations); @@ -127,8 +127,8 @@ public class CounterAdder extends Operat for (CounterColumn c : columns) { - Counter counter = new Counter().setColumn(c); - mutations.add(new Mutation().setCounter(counter)); + ColumnOrSuperColumn cosc = new ColumnOrSuperColumn().setCounter_column(c); + mutations.add(new Mutation().setColumn_or_supercolumn(cosc)); } mutationMap.put("Counter1", mutations); Modified: cassandra/trunk/tools/stress/src/org/apache/cassandra/stress/operations/CounterGetter.java URL: http://svn.apache.org/viewvc/cassandra/trunk/tools/stress/src/org/apache/cassandra/stress/operations/CounterGetter.java?rev=1090842&r1=1090841&r2=1090842&view=diff ============================================================================== --- cassandra/trunk/tools/stress/src/org/apache/cassandra/stress/operations/CounterGetter.java (original) +++ cassandra/trunk/tools/stress/src/org/apache/cassandra/stress/operations/CounterGetter.java Sun Apr 10 17:31:15 2011 @@ -77,8 +77,8 @@ public class CounterGetter extends Opera try { - List counters; - counters = client.get_counter_slice(key, parent, predicate, session.getConsistencyLevel()); + List counters; + counters = client.get_slice(key, parent, predicate, session.getConsistencyLevel()); success = (counters.size() != 0); } catch (Exception e) @@ -122,8 +122,8 @@ public class CounterGetter extends Opera try { - List counters; - counters = client.get_counter_slice(keyBuffer, parent, predicate, session.getConsistencyLevel()); + List counters; + counters = client.get_slice(keyBuffer, parent, predicate, session.getConsistencyLevel()); success = (counters.size() != 0); } catch (Exception e)