You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2010/07/08 17:17:21 UTC

svn commit: r961795 [1/4] - in /cassandra/trunk: interface/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/java/org/apache/cassandra/cli/ src/java/org/apache/cassandra/config/ src/java/org/apache/cassandra/db/ src/java/org/apache/cassandra/...

Author: jbellis
Date: Thu Jul  8 15:17:20 2010
New Revision: 961795

URL: http://svn.apache.org/viewvc?rev=961795&view=rev
Log:
add single-node support for IndexType.KEYS.  patch by jbellis; reviewed by mdennis for CASSANDRA-1154

Added:
    cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/IndexClause.java
    cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/IndexExpression.java
    cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/IndexOperator.java
      - copied, changed from r961780, cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Constants.java
    cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/KeyCount.java
      - copied, changed from r961780, cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/KeySlice.java
    cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/RowPredicate.java
    cassandra/trunk/src/java/org/apache/cassandra/db/IndexScanCommand.java
    cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LocalByPartionerType.java
    cassandra/trunk/src/java/org/apache/cassandra/dht/LocalPartitioner.java
    cassandra/trunk/src/java/org/apache/cassandra/dht/LocalToken.java
    cassandra/trunk/src/java/org/apache/cassandra/service/IndexScanVerbHandler.java
      - copied, changed from r961780, cassandra/trunk/src/java/org/apache/cassandra/service/RangeSliceVerbHandler.java
Modified:
    cassandra/trunk/interface/cassandra.thrift
    cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/AuthenticationRequest.java
    cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
    cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/CfDef.java
    cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Constants.java
    cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/KeySlice.java
    cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/KsDef.java
    cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/TokenRange.java
    cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java
    cassandra/trunk/src/java/org/apache/cassandra/config/CFMetaData.java
    cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
    cassandra/trunk/src/java/org/apache/cassandra/config/KSMetaData.java
    cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamily.java
    cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
    cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java
    cassandra/trunk/src/java/org/apache/cassandra/db/Table.java
    cassandra/trunk/src/java/org/apache/cassandra/db/filter/QueryFilter.java
    cassandra/trunk/src/java/org/apache/cassandra/db/migration/AddColumnFamily.java
    cassandra/trunk/src/java/org/apache/cassandra/service/RangeSliceVerbHandler.java
    cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java
    cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
    cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java
    cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java
    cassandra/trunk/src/java/org/apache/cassandra/utils/FBUtilities.java
    cassandra/trunk/test/system/__init__.py
    cassandra/trunk/test/system/test_thrift_server.py
    cassandra/trunk/test/unit/org/apache/cassandra/db/ColumnFamilyStoreTest.java
    cassandra/trunk/test/unit/org/apache/cassandra/db/DefsTest.java

Modified: cassandra/trunk/interface/cassandra.thrift
URL: http://svn.apache.org/viewvc/cassandra/trunk/interface/cassandra.thrift?rev=961795&r1=961794&r2=961795&view=diff
==============================================================================
--- cassandra/trunk/interface/cassandra.thrift (original)
+++ cassandra/trunk/interface/cassandra.thrift Thu Jul  8 15:17:20 2010
@@ -46,7 +46,8 @@ namespace rb CassandraThrift
 #           for every edit that doesn't result in a change to major/minor.
 #
 # See the Semantic Versioning Specification (SemVer) http://semver.org.
-const string VERSION = "8.2.0"
+const string VERSION = "8.3.0"
+
 
 #
 # data structures
@@ -243,6 +244,22 @@ struct SlicePredicate {
     2: optional SliceRange   slice_range,
 }
 
+enum IndexOperator {
+    EQ,
+}
+
+struct IndexExpression {
+    1: required binary column_name,
+    2: required IndexOperator op,
+    3: required binary value,
+}
+
+struct IndexClause {
+    1: required list<IndexExpression> expressions
+    2: required i32 count=100,
+    3: optional binary start_key,
+}
+
 /**
 The semantics of start keys and tokens are slightly different.
 Keys are start-inclusive; tokens are start-exclusive.  Token
@@ -259,6 +276,12 @@ struct KeyRange {
     5: required i32 count=100
 }
 
+struct RowPredicate {
+    1: optional list<binary> keys,
+    2: optional KeyRange key_range,
+    3: optional IndexClause index_clause
+}
+
 /**
     A KeySlice is key followed by the data it maps to. A collection of KeySlice is returned by the get_range_slice operation.
 
@@ -271,6 +294,11 @@ struct KeySlice {
     2: required list<ColumnOrSuperColumn> columns,
 }
 
+struct KeyCount {
+    1: required binary key,
+    2: required i32 count
+}
+
 struct Deletion {
     1: required Clock clock,
     2: optional binary super_column,
@@ -381,6 +409,7 @@ service Cassandra {
 
   /**
     Performs a get_slice for column_parent and predicate for the given keys in parallel.
+    @Deprecated; use `scan`
   */
   map<binary,list<ColumnOrSuperColumn>> multiget_slice(1:required list<binary> keys, 
                                                        2:required ColumnParent column_parent, 
@@ -410,6 +439,7 @@ service Cassandra {
 
   /**
    returns a subset of columns for a range of keys.
+   @Deprecated; use `scan`
   */
   list<KeySlice> get_range_slices(1:required ColumnParent column_parent, 
                                   2:required SlicePredicate predicate,
@@ -417,6 +447,20 @@ service Cassandra {
                                   4:required ConsistencyLevel consistency_level=ONE)
                  throws (1:InvalidRequestException ire, 2:UnavailableException ue, 3:TimedOutException te),
 
+  /** Returns the subset of columns specified in SlicePredicate for the rows requested in RowsPredicate */
+  list<KeySlice> scan(1:required ColumnParent column_parent,
+                      2:required RowPredicate row_predicate,
+                      3:required SlicePredicate column_predicate,
+                      4:required ConsistencyLevel consistency_level=ONE)
+                 throws (1:InvalidRequestException ire, 2:UnavailableException ue, 3:TimedOutException te),
+
+  /** Counts the subset of columns specified in SlicePredicate for the rows requested in RowsPredicate */
+  list<KeyCount> scan_count(1:required ColumnParent column_parent,
+                           2:required RowPredicate row_predicate,
+                           3:required SlicePredicate column_predicate,
+                           4:required ConsistencyLevel consistency_level=ONE)
+      throws (1:InvalidRequestException ire, 2:UnavailableException ue, 3:TimedOutException te),
+
   # modification methods
 
   /**

Modified: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/AuthenticationRequest.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/AuthenticationRequest.java?rev=961795&r1=961794&r2=961795&view=diff
==============================================================================
--- cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/AuthenticationRequest.java (original)
+++ cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/AuthenticationRequest.java Thu Jul  8 15:17:20 2010
@@ -283,15 +283,15 @@ public class AuthenticationRequest imple
         case 1: // CREDENTIALS
           if (field.type == TType.MAP) {
             {
-              TMap _map20 = iprot.readMapBegin();
-              this.credentials = new HashMap<String,String>(2*_map20.size);
-              for (int _i21 = 0; _i21 < _map20.size; ++_i21)
+              TMap _map28 = iprot.readMapBegin();
+              this.credentials = new HashMap<String,String>(2*_map28.size);
+              for (int _i29 = 0; _i29 < _map28.size; ++_i29)
               {
-                String _key22;
-                String _val23;
-                _key22 = iprot.readString();
-                _val23 = iprot.readString();
-                this.credentials.put(_key22, _val23);
+                String _key30;
+                String _val31;
+                _key30 = iprot.readString();
+                _val31 = iprot.readString();
+                this.credentials.put(_key30, _val31);
               }
               iprot.readMapEnd();
             }
@@ -318,10 +318,10 @@ public class AuthenticationRequest imple
       oprot.writeFieldBegin(CREDENTIALS_FIELD_DESC);
       {
         oprot.writeMapBegin(new TMap(TType.STRING, TType.STRING, this.credentials.size()));
-        for (Map.Entry<String, String> _iter24 : this.credentials.entrySet())
+        for (Map.Entry<String, String> _iter32 : this.credentials.entrySet())
         {
-          oprot.writeString(_iter24.getKey());
-          oprot.writeString(_iter24.getValue());
+          oprot.writeString(_iter32.getKey());
+          oprot.writeString(_iter32.getValue());
         }
         oprot.writeMapEnd();
       }