Updated Branches:
  refs/heads/0.2.0-newtypesystem 64c9bcd05 -> 015c6811a
  refs/heads/master c448ccaf9 -> 05bb056a2


BLUR-174 maintain strict family order


Project: http://git-wip-us.apache.org/repos/asf/incubator-blur/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-blur/commit/c448ccaf
Tree: http://git-wip-us.apache.org/repos/asf/incubator-blur/tree/c448ccaf
Diff: http://git-wip-us.apache.org/repos/asf/incubator-blur/diff/c448ccaf

Branch: refs/heads/0.2.0-newtypesystem
Commit: c448ccaf98c116a86a12c9c4ed6244985add3ffa
Parents: 08f8211
Author: Gagan <[email protected]>
Authored: Mon Aug 12 11:10:36 2013 +0530
Committer: Gagan <[email protected]>
Committed: Mon Aug 12 11:10:36 2013 +0530

----------------------------------------------------------------------
 .../blur/thrift/BlurControllerServer.java       |  4 +-
 .../java/org/apache/blur/utils/BlurUtil.java    | 81 ++++++++++++--------
 .../org/apache/blur/utils/BlurUtilsTest.java    | 36 ++++++++-
 .../org/apache/blur/shell/SelectorCommand.java  |  8 +-
 .../apache/blur/thrift/generated/Selector.java  | 42 +++++-----
 .../src/main/scripts/interface/Blur.thrift      |  2 +-
 .../main/scripts/interface/gen-html/Blur.html   |  2 +-
 .../apache/blur/thrift/generated/Selector.java  | 42 +++++-----
 .../main/scripts/interface/gen-js/Blur_types.js | 12 +--
 .../scripts/interface/gen-perl/Blur/Types.pm    | 18 ++---
 .../main/scripts/interface/gen-rb/blur_types.rb |  2 +-
 11 files changed, 149 insertions(+), 100 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/c448ccaf/blur-core/src/main/java/org/apache/blur/thrift/BlurControllerServer.java
----------------------------------------------------------------------
diff --git 
a/blur-core/src/main/java/org/apache/blur/thrift/BlurControllerServer.java 
b/blur-core/src/main/java/org/apache/blur/thrift/BlurControllerServer.java
index c888535..473cb9b 100644
--- a/blur-core/src/main/java/org/apache/blur/thrift/BlurControllerServer.java
+++ b/blur-core/src/main/java/org/apache/blur/thrift/BlurControllerServer.java
@@ -104,7 +104,7 @@ public class BlurControllerServer extends TableAdmin 
implements Iface {
   private static final String CONTROLLER_THREAD_POOL = 
"controller-thread-pool";
   private static final Log LOG = LogFactory.getLog(BlurControllerServer.class);
   private static final Map<String, Set<String>> EMPTY_MAP = new 
HashMap<String, Set<String>>();
-  private static final Set<String> EMPTY_SET = new HashSet<String>();
+  private static final List<String> EMPTY_LIST = new ArrayList<String>();
 
   private ExecutorService _executor;
   private AtomicReference<Map<String, Map<String, String>>> _shardServerLayout 
= new AtomicReference<Map<String, Map<String, String>>>(
@@ -316,7 +316,7 @@ public class BlurControllerServer extends TableAdmin 
implements Iface {
         Selector selector = blurQuery.getSelector();
         if (selector == null) {
           selector = new Selector();
-          selector.setColumnFamiliesToFetch(EMPTY_SET);
+          selector.setColumnFamiliesToFetch(EMPTY_LIST);
           selector.setColumnsToFetch(EMPTY_MAP);
           if (!blurQuery.simpleQuery.superQueryOn) {
             selector.setRecordOnly(true);

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/c448ccaf/blur-core/src/main/java/org/apache/blur/utils/BlurUtil.java
----------------------------------------------------------------------
diff --git a/blur-core/src/main/java/org/apache/blur/utils/BlurUtil.java 
b/blur-core/src/main/java/org/apache/blur/utils/BlurUtil.java
index e805867..9c9c85d 100644
--- a/blur-core/src/main/java/org/apache/blur/utils/BlurUtil.java
+++ b/blur-core/src/main/java/org/apache/blur/utils/BlurUtil.java
@@ -35,6 +35,7 @@ import java.lang.reflect.Method;
 import java.lang.reflect.Proxy;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Date;
@@ -95,6 +96,7 @@ import org.apache.lucene.search.BooleanClause;
 import org.apache.lucene.search.BooleanQuery;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.Query;
+import org.apache.lucene.search.ScoreDoc;
 import org.apache.lucene.search.TermQuery;
 import org.apache.lucene.search.TopDocs;
 import org.apache.zookeeper.CreateMode;
@@ -732,47 +734,60 @@ public class BlurUtil {
       throws IOException {
     IndexSearcher indexSearcher = new IndexSearcher(reader);
     int docFreq = reader.docFreq(term);
-    BooleanQuery booleanQueryForFamily = null;
-    BooleanQuery booleanQuery = null;
-    if (selector.getColumnFamiliesToFetchSize() > 0) {
-      booleanQueryForFamily = new BooleanQuery();
-      for (String familyName : selector.getColumnFamiliesToFetch()) {
-        booleanQueryForFamily
-            .add(new TermQuery(new Term(BlurConstants.FAMILY, familyName)), 
BooleanClause.Occur.SHOULD);
-      }
-      booleanQuery = new BooleanQuery();
-      booleanQuery.add(new TermQuery(term), BooleanClause.Occur.MUST);
-      booleanQuery.add(booleanQueryForFamily, BooleanClause.Occur.MUST);
-    }
-    Query query = booleanQuery == null ? new TermQuery(term) : booleanQuery;
-    TopDocs topDocs = indexSearcher.search(query, docFreq);
-    int totalHits = topDocs.totalHits;
-    List<Document> docs = new ArrayList<Document>();
-
+    
     int start = selector.getStartRecord();
     int end = selector.getMaxRecordsToFetch() + start;
-
+    
+    List<Document> docs = new ArrayList<Document>();
+    List<ScoreDoc> scoreDocs = new ArrayList<ScoreDoc>();
+    int count = 0;
+    int totalHits = 0;
+    while (scoreDocs.size() < end ){
+       Query query = getQuery(term, selector, count++);
+       if(query == null){
+               break;
+       }
+       TopDocs topDocs = indexSearcher.search(query, docFreq);
+       totalHits += topDocs.totalHits;
+       scoreDocs.addAll(Arrays.asList(topDocs.scoreDocs));
+       topDocs = null;
+    }
+     
     int totalHeap = 0;
-
     for (int i = start; i < end; i++) {
-      if (i >= totalHits) {
-        break;
-      }
-      if (totalHeap >= maxHeap) {
-        LOG.warn("Max heap size exceeded for this request [{0}] max [{1}] for 
[{2}] and rowid [{3}]", totalHeap,
+       if (i >= totalHits) {
+                break;
+        }
+        if (totalHeap >= maxHeap) {
+                LOG.warn("Max heap size exceeded for this request [{0}] max 
[{1}] for [{2}] and rowid [{3}]", totalHeap,
             maxHeap, context, term.text());
-        break;
-      }
-      int doc = topDocs.scoreDocs[i].doc;
-      indexSearcher.doc(doc, fieldSelector);
-      docs.add(fieldSelector.getDocument());
-      int heapSize = fieldSelector.getSize();
-      totalHeap += heapSize;
-      fieldSelector.reset();
-    }
+                break;
+        }
+        int doc = scoreDocs.get(i).doc;
+        indexSearcher.doc(doc, fieldSelector);
+        docs.add(fieldSelector.getDocument());
+        int heapSize = fieldSelector.getSize();
+        totalHeap += heapSize;
+        fieldSelector.reset();
+     }
     return docs;
   }
 
+private static Query getQuery(Term term,
+               Selector selector, int index) {
+    BooleanQuery booleanQuery = null;
+    int familySize = selector.getColumnFamiliesToFetchSize();
+    if ( familySize > 0 && index < familySize) {
+      booleanQuery = new BooleanQuery();
+      booleanQuery.add(new TermQuery(term), BooleanClause.Occur.MUST);
+      booleanQuery.add(new TermQuery(new Term(BlurConstants.FAMILY, 
selector.getColumnFamiliesToFetch().get(index))), BooleanClause.Occur.MUST);
+    }
+    if (booleanQuery == null && index == 0){
+       return new TermQuery(term);
+    }
+       return booleanQuery;
+}
+
   public static AtomicReader getAtomicReader(IndexReader reader) throws 
IOException {
     return SlowCompositeReaderWrapper.wrap(reader);
   }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/c448ccaf/blur-core/src/test/java/org/apache/blur/utils/BlurUtilsTest.java
----------------------------------------------------------------------
diff --git a/blur-core/src/test/java/org/apache/blur/utils/BlurUtilsTest.java 
b/blur-core/src/test/java/org/apache/blur/utils/BlurUtilsTest.java
index a8b3ed5..3280080 100644
--- a/blur-core/src/test/java/org/apache/blur/utils/BlurUtilsTest.java
+++ b/blur-core/src/test/java/org/apache/blur/utils/BlurUtilsTest.java
@@ -23,7 +23,7 @@ import static org.junit.Assert.fail;
 
 import java.io.File;
 import java.io.IOException;
-import java.util.HashSet;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 
@@ -156,7 +156,7 @@ public class BlurUtilsTest {
   @Test
   public void testFetchDocuments() throws CorruptIndexException, 
LockObtainFailedException, IOException{
          Selector selector = new Selector();
-         HashSet<String> columnFamiliesToFetch = new HashSet<String>();
+         List<String> columnFamiliesToFetch = new ArrayList<String>();
          columnFamiliesToFetch.add("f1");
          columnFamiliesToFetch.add("f2");
          selector.setColumnFamiliesToFetch(columnFamiliesToFetch);
@@ -167,6 +167,21 @@ public class BlurUtilsTest {
   }
   
   @Test
+  public void testFetchDocumentsStrictFamilyOrder() throws 
CorruptIndexException, LockObtainFailedException, IOException{
+         Selector selector = new Selector();
+         List<String> columnFamiliesToFetch = new ArrayList<String>();
+         columnFamiliesToFetch.add("f1");
+         columnFamiliesToFetch.add("f2");
+         selector.setColumnFamiliesToFetch(columnFamiliesToFetch);
+         
+         ResetableDocumentStoredFieldVisitor 
resetableDocumentStoredFieldVisitor = new ResetableDocumentStoredFieldVisitor();
+         List<Document> docs = 
BlurUtil.fetchDocuments(getReaderWithDocsHavingFamily(), new Term("a","b"), 
resetableDocumentStoredFieldVisitor, selector, 10000000, "test-context");
+         assertEquals(docs.size(),2);
+         assertEquals(docs.get(0).getField("family").stringValue(),"f1");
+         assertEquals(docs.get(1).getField("family").stringValue(),"f2");
+  }
+  
+  @Test
   public void testFetchDocumentsWithoutFamily() throws CorruptIndexException, 
LockObtainFailedException, IOException{
          Selector selector = new Selector();
          ResetableDocumentStoredFieldVisitor 
resetableDocumentStoredFieldVisitor = new ResetableDocumentStoredFieldVisitor();
@@ -207,5 +222,22 @@ public class BlurUtilsTest {
     writer.close();
     return IndexReader.open(directory);
   }
+  
+  private IndexReader getReaderWithDocsHavingFamily() throws 
CorruptIndexException, LockObtainFailedException, IOException {
+           RAMDirectory directory = new RAMDirectory();
+           IndexWriterConfig conf = new IndexWriterConfig(LUCENE_VERSION, new 
KeywordAnalyzer());
+           IndexWriter writer = new IndexWriter(directory, conf);
+           Document doc = new Document();
+           doc.add(new Field("a", "b", Store.YES, 
Index.NOT_ANALYZED_NO_NORMS));
+           doc.add(new Field("family", "f2", Store.YES, 
Index.NOT_ANALYZED_NO_NORMS));
+           
+           Document doc1 = new Document();
+           doc1.add(new Field("a", "b", Store.YES, 
Index.NOT_ANALYZED_NO_NORMS));
+           doc1.add(new Field("family", "f1", Store.YES, 
Index.NOT_ANALYZED_NO_NORMS));
+           writer.addDocument(doc);
+           writer.addDocument(doc1);
+           writer.close();
+           return IndexReader.open(directory);
+         }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/c448ccaf/blur-shell/src/main/java/org/apache/blur/shell/SelectorCommand.java
----------------------------------------------------------------------
diff --git 
a/blur-shell/src/main/java/org/apache/blur/shell/SelectorCommand.java 
b/blur-shell/src/main/java/org/apache/blur/shell/SelectorCommand.java
index b5e0aab..adbb539 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/SelectorCommand.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/SelectorCommand.java
@@ -19,7 +19,9 @@
 package org.apache.blur.shell;
 
 import java.io.PrintWriter;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
@@ -41,13 +43,13 @@ public class SelectorCommand extends Command {
       command = args[1];
     }
     if (command == null) {
-      Set<String> columnFamiliesToFetch = 
Main.selector.getColumnFamiliesToFetch();
+      List<String> columnFamiliesToFetch = 
Main.selector.getColumnFamiliesToFetch();
       Map<String, Set<String>> columnsToFetch = 
Main.selector.getColumnsToFetch();
-      TreeSet<String> names = new TreeSet<String>();
+      List<String> names = new ArrayList<String>();
       if (columnFamiliesToFetch != null) {
         names.addAll(columnFamiliesToFetch);
       } else {
-        columnFamiliesToFetch = new TreeSet<String>();
+        columnFamiliesToFetch = new ArrayList<String>();
       }
       if (columnsToFetch != null) {
         names.addAll(columnsToFetch.keySet());

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/c448ccaf/blur-thrift/src/main/java/org/apache/blur/thrift/generated/Selector.java
----------------------------------------------------------------------
diff --git 
a/blur-thrift/src/main/java/org/apache/blur/thrift/generated/Selector.java 
b/blur-thrift/src/main/java/org/apache/blur/thrift/generated/Selector.java
index bb8515e..dbce74f 100644
--- a/blur-thrift/src/main/java/org/apache/blur/thrift/generated/Selector.java
+++ b/blur-thrift/src/main/java/org/apache/blur/thrift/generated/Selector.java
@@ -59,7 +59,7 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
   private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField 
LOCATION_ID_FIELD_DESC = new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("locationId", 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING, (short)2);
   private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField 
ROW_ID_FIELD_DESC = new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("rowId", 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING, (short)3);
   private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField 
RECORD_ID_FIELD_DESC = new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("recordId", 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING, (short)4);
-  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField 
COLUMN_FAMILIES_TO_FETCH_FIELD_DESC = new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("columnFamiliesToFetch",
 org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.SET, (short)5);
+  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField 
COLUMN_FAMILIES_TO_FETCH_FIELD_DESC = new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("columnFamiliesToFetch",
 org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.LIST, (short)5);
   private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField 
COLUMNS_TO_FETCH_FIELD_DESC = new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("columnsToFetch", 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.MAP, (short)6);
   private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField 
ALLOW_STALE_DATA_FIELD_DESC = new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("allowStaleData", 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.BOOL, (short)7);
   private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField 
START_RECORD_FIELD_DESC = new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("startRecord", 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.I32, (short)8);
@@ -92,7 +92,7 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
   /**
    * The column families to fetch.  If null, fetch all.  If empty, fetch none.
    */
-  public Set<String> columnFamiliesToFetch; // required
+  public List<String> columnFamiliesToFetch; // required
   /**
    * The columns in the families to fetch.  If null, fetch all.  If empty, 
fetch none.
    */
@@ -260,7 +260,7 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
     tmpMap.put(_Fields.RECORD_ID, new 
org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("recordId", 
org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT, 
         new 
org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldValueMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING)));
     tmpMap.put(_Fields.COLUMN_FAMILIES_TO_FETCH, new 
org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("columnFamiliesToFetch",
 org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT, 
-        new 
org.apache.blur.thirdparty.thrift_0_9_0.meta_data.SetMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.SET,
 
+        new 
org.apache.blur.thirdparty.thrift_0_9_0.meta_data.ListMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.LIST,
 
             new 
org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldValueMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING))));
     tmpMap.put(_Fields.COLUMNS_TO_FETCH, new 
org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("columnsToFetch",
 org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT, 
         new 
org.apache.blur.thirdparty.thrift_0_9_0.meta_data.MapMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.MAP,
 
@@ -291,7 +291,7 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
     String locationId,
     String rowId,
     String recordId,
-    Set<String> columnFamiliesToFetch,
+    List<String> columnFamiliesToFetch,
     Map<String,Set<String>> columnsToFetch,
     boolean allowStaleData,
     int startRecord,
@@ -331,7 +331,7 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
       this.recordId = other.recordId;
     }
     if (other.isSetColumnFamiliesToFetch()) {
-      Set<String> __this__columnFamiliesToFetch = new HashSet<String>();
+      List<String> __this__columnFamiliesToFetch = new ArrayList<String>();
       for (String other_element : other.columnFamiliesToFetch) {
         __this__columnFamiliesToFetch.add(other_element);
       }
@@ -516,7 +516,7 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
 
   public void addToColumnFamiliesToFetch(String elem) {
     if (this.columnFamiliesToFetch == null) {
-      this.columnFamiliesToFetch = new HashSet<String>();
+      this.columnFamiliesToFetch = new ArrayList<String>();
     }
     this.columnFamiliesToFetch.add(elem);
   }
@@ -524,14 +524,14 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
   /**
    * The column families to fetch.  If null, fetch all.  If empty, fetch none.
    */
-  public Set<String> getColumnFamiliesToFetch() {
+  public List<String> getColumnFamiliesToFetch() {
     return this.columnFamiliesToFetch;
   }
 
   /**
    * The column families to fetch.  If null, fetch all.  If empty, fetch none.
    */
-  public Selector setColumnFamiliesToFetch(Set<String> columnFamiliesToFetch) {
+  public Selector setColumnFamiliesToFetch(List<String> columnFamiliesToFetch) 
{
     this.columnFamiliesToFetch = columnFamiliesToFetch;
     return this;
   }
@@ -759,7 +759,7 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
       if (value == null) {
         unsetColumnFamiliesToFetch();
       } else {
-        setColumnFamiliesToFetch((Set<String>)value);
+        setColumnFamiliesToFetch((List<String>)value);
       }
       break;
 
@@ -1256,17 +1256,17 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
             }
             break;
           case 5: // COLUMN_FAMILIES_TO_FETCH
-            if (schemeField.type == 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.SET) {
+            if (schemeField.type == 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.LIST) {
               {
-                org.apache.blur.thirdparty.thrift_0_9_0.protocol.TSet _set16 = 
iprot.readSetBegin();
-                struct.columnFamiliesToFetch = new 
HashSet<String>(2*_set16.size);
-                for (int _i17 = 0; _i17 < _set16.size; ++_i17)
+                org.apache.blur.thirdparty.thrift_0_9_0.protocol.TList _list16 
= iprot.readListBegin();
+                struct.columnFamiliesToFetch = new 
ArrayList<String>(_list16.size);
+                for (int _i17 = 0; _i17 < _list16.size; ++_i17)
                 {
                   String _elem18; // required
                   _elem18 = iprot.readString();
                   struct.columnFamiliesToFetch.add(_elem18);
                 }
-                iprot.readSetEnd();
+                iprot.readListEnd();
               }
               struct.setColumnFamiliesToFetchIsSet(true);
             } else { 
@@ -1281,7 +1281,7 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
                 for (int _i20 = 0; _i20 < _map19.size; ++_i20)
                 {
                   String _key21; // required
-                  Set<String> _val22; // optional
+                  Set<String> _val22; // required
                   _key21 = iprot.readString();
                   {
                     org.apache.blur.thirdparty.thrift_0_9_0.protocol.TSet 
_set23 = iprot.readSetBegin();
@@ -1372,12 +1372,12 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
       if (struct.columnFamiliesToFetch != null) {
         oprot.writeFieldBegin(COLUMN_FAMILIES_TO_FETCH_FIELD_DESC);
         {
-          oprot.writeSetBegin(new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TSet(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING,
 struct.columnFamiliesToFetch.size()));
+          oprot.writeListBegin(new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TList(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING,
 struct.columnFamiliesToFetch.size()));
           for (String _iter26 : struct.columnFamiliesToFetch)
           {
             oprot.writeString(_iter26);
           }
-          oprot.writeSetEnd();
+          oprot.writeListEnd();
         }
         oprot.writeFieldEnd();
       }
@@ -1537,9 +1537,9 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
       }
       if (incoming.get(4)) {
         {
-          org.apache.blur.thirdparty.thrift_0_9_0.protocol.TSet _set32 = new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TSet(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING,
 iprot.readI32());
-          struct.columnFamiliesToFetch = new HashSet<String>(2*_set32.size);
-          for (int _i33 = 0; _i33 < _set32.size; ++_i33)
+          org.apache.blur.thirdparty.thrift_0_9_0.protocol.TList _list32 = new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TList(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING,
 iprot.readI32());
+          struct.columnFamiliesToFetch = new ArrayList<String>(_list32.size);
+          for (int _i33 = 0; _i33 < _list32.size; ++_i33)
           {
             String _elem34; // required
             _elem34 = iprot.readString();
@@ -1555,7 +1555,7 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
           for (int _i36 = 0; _i36 < _map35.size; ++_i36)
           {
             String _key37; // required
-            Set<String> _val38; // optional
+            Set<String> _val38; // required
             _key37 = iprot.readString();
             {
               org.apache.blur.thirdparty.thrift_0_9_0.protocol.TSet _set39 = 
new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TSet(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING,
 iprot.readI32());

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/c448ccaf/distribution/src/main/scripts/interface/Blur.thrift
----------------------------------------------------------------------
diff --git a/distribution/src/main/scripts/interface/Blur.thrift 
b/distribution/src/main/scripts/interface/Blur.thrift
index a005b34..248206c 100644
--- a/distribution/src/main/scripts/interface/Blur.thrift
+++ b/distribution/src/main/scripts/interface/Blur.thrift
@@ -249,7 +249,7 @@ struct Selector {
   /**
    * The column families to fetch.  If null, fetch all.  If empty, fetch none.
    */
-  5:set<string> columnFamiliesToFetch,
+  5:list<string> columnFamiliesToFetch,
   /**
    * The columns in the families to fetch.  If null, fetch all.  If empty, 
fetch none.
    */

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/c448ccaf/distribution/src/main/scripts/interface/gen-html/Blur.html
----------------------------------------------------------------------
diff --git a/distribution/src/main/scripts/interface/gen-html/Blur.html 
b/distribution/src/main/scripts/interface/gen-html/Blur.html
index e94a8cd..4b63b53 100644
--- a/distribution/src/main/scripts/interface/gen-html/Blur.html
+++ b/distribution/src/main/scripts/interface/gen-html/Blur.html
@@ -225,7 +225,7 @@ The location id of the Record or Row to be fetched.
 </td><td>default</td><td></td></tr>
 <tr><td>4</td><td>recordId</td><td><code>string</code></td><td>The record id 
of the Record to be fetched, not to be used with location id.  However the row 
id needs to be provided to locate the correct Row with the requested Record.
 </td><td>default</td><td></td></tr>
-<tr><td>5</td><td>columnFamiliesToFetch</td><td><code>set&lt;<code>string</code>&gt;</code></td><td>The
 column families to fetch.  If null, fetch all.  If empty, fetch none.
+<tr><td>5</td><td>columnFamiliesToFetch</td><td><code>list&lt;<code>string</code>&gt;</code></td><td>The
 column families to fetch.  If null, fetch all.  If empty, fetch none.
 </td><td>default</td><td></td></tr>
 <tr><td>6</td><td>columnsToFetch</td><td><code>map&lt;<code>string</code>, 
<code>set&lt;<code>string</code>&gt;</code>&gt;</code></td><td>The columns in 
the families to fetch.  If null, fetch all.  If empty, fetch none.
 </td><td>default</td><td></td></tr>

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/c448ccaf/distribution/src/main/scripts/interface/gen-java/org/apache/blur/thrift/generated/Selector.java
----------------------------------------------------------------------
diff --git 
a/distribution/src/main/scripts/interface/gen-java/org/apache/blur/thrift/generated/Selector.java
 
b/distribution/src/main/scripts/interface/gen-java/org/apache/blur/thrift/generated/Selector.java
index bb8515e..dbce74f 100644
--- 
a/distribution/src/main/scripts/interface/gen-java/org/apache/blur/thrift/generated/Selector.java
+++ 
b/distribution/src/main/scripts/interface/gen-java/org/apache/blur/thrift/generated/Selector.java
@@ -59,7 +59,7 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
   private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField 
LOCATION_ID_FIELD_DESC = new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("locationId", 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING, (short)2);
   private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField 
ROW_ID_FIELD_DESC = new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("rowId", 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING, (short)3);
   private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField 
RECORD_ID_FIELD_DESC = new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("recordId", 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING, (short)4);
-  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField 
COLUMN_FAMILIES_TO_FETCH_FIELD_DESC = new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("columnFamiliesToFetch",
 org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.SET, (short)5);
+  private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField 
COLUMN_FAMILIES_TO_FETCH_FIELD_DESC = new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("columnFamiliesToFetch",
 org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.LIST, (short)5);
   private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField 
COLUMNS_TO_FETCH_FIELD_DESC = new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("columnsToFetch", 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.MAP, (short)6);
   private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField 
ALLOW_STALE_DATA_FIELD_DESC = new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("allowStaleData", 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.BOOL, (short)7);
   private static final org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField 
START_RECORD_FIELD_DESC = new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TField("startRecord", 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.I32, (short)8);
@@ -92,7 +92,7 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
   /**
    * The column families to fetch.  If null, fetch all.  If empty, fetch none.
    */
-  public Set<String> columnFamiliesToFetch; // required
+  public List<String> columnFamiliesToFetch; // required
   /**
    * The columns in the families to fetch.  If null, fetch all.  If empty, 
fetch none.
    */
@@ -260,7 +260,7 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
     tmpMap.put(_Fields.RECORD_ID, new 
org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("recordId", 
org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT, 
         new 
org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldValueMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING)));
     tmpMap.put(_Fields.COLUMN_FAMILIES_TO_FETCH, new 
org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("columnFamiliesToFetch",
 org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT, 
-        new 
org.apache.blur.thirdparty.thrift_0_9_0.meta_data.SetMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.SET,
 
+        new 
org.apache.blur.thirdparty.thrift_0_9_0.meta_data.ListMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.LIST,
 
             new 
org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldValueMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING))));
     tmpMap.put(_Fields.COLUMNS_TO_FETCH, new 
org.apache.blur.thirdparty.thrift_0_9_0.meta_data.FieldMetaData("columnsToFetch",
 org.apache.blur.thirdparty.thrift_0_9_0.TFieldRequirementType.DEFAULT, 
         new 
org.apache.blur.thirdparty.thrift_0_9_0.meta_data.MapMetaData(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.MAP,
 
@@ -291,7 +291,7 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
     String locationId,
     String rowId,
     String recordId,
-    Set<String> columnFamiliesToFetch,
+    List<String> columnFamiliesToFetch,
     Map<String,Set<String>> columnsToFetch,
     boolean allowStaleData,
     int startRecord,
@@ -331,7 +331,7 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
       this.recordId = other.recordId;
     }
     if (other.isSetColumnFamiliesToFetch()) {
-      Set<String> __this__columnFamiliesToFetch = new HashSet<String>();
+      List<String> __this__columnFamiliesToFetch = new ArrayList<String>();
       for (String other_element : other.columnFamiliesToFetch) {
         __this__columnFamiliesToFetch.add(other_element);
       }
@@ -516,7 +516,7 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
 
   public void addToColumnFamiliesToFetch(String elem) {
     if (this.columnFamiliesToFetch == null) {
-      this.columnFamiliesToFetch = new HashSet<String>();
+      this.columnFamiliesToFetch = new ArrayList<String>();
     }
     this.columnFamiliesToFetch.add(elem);
   }
@@ -524,14 +524,14 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
   /**
    * The column families to fetch.  If null, fetch all.  If empty, fetch none.
    */
-  public Set<String> getColumnFamiliesToFetch() {
+  public List<String> getColumnFamiliesToFetch() {
     return this.columnFamiliesToFetch;
   }
 
   /**
    * The column families to fetch.  If null, fetch all.  If empty, fetch none.
    */
-  public Selector setColumnFamiliesToFetch(Set<String> columnFamiliesToFetch) {
+  public Selector setColumnFamiliesToFetch(List<String> columnFamiliesToFetch) 
{
     this.columnFamiliesToFetch = columnFamiliesToFetch;
     return this;
   }
@@ -759,7 +759,7 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
       if (value == null) {
         unsetColumnFamiliesToFetch();
       } else {
-        setColumnFamiliesToFetch((Set<String>)value);
+        setColumnFamiliesToFetch((List<String>)value);
       }
       break;
 
@@ -1256,17 +1256,17 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
             }
             break;
           case 5: // COLUMN_FAMILIES_TO_FETCH
-            if (schemeField.type == 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.SET) {
+            if (schemeField.type == 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.LIST) {
               {
-                org.apache.blur.thirdparty.thrift_0_9_0.protocol.TSet _set16 = 
iprot.readSetBegin();
-                struct.columnFamiliesToFetch = new 
HashSet<String>(2*_set16.size);
-                for (int _i17 = 0; _i17 < _set16.size; ++_i17)
+                org.apache.blur.thirdparty.thrift_0_9_0.protocol.TList _list16 
= iprot.readListBegin();
+                struct.columnFamiliesToFetch = new 
ArrayList<String>(_list16.size);
+                for (int _i17 = 0; _i17 < _list16.size; ++_i17)
                 {
                   String _elem18; // required
                   _elem18 = iprot.readString();
                   struct.columnFamiliesToFetch.add(_elem18);
                 }
-                iprot.readSetEnd();
+                iprot.readListEnd();
               }
               struct.setColumnFamiliesToFetchIsSet(true);
             } else { 
@@ -1281,7 +1281,7 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
                 for (int _i20 = 0; _i20 < _map19.size; ++_i20)
                 {
                   String _key21; // required
-                  Set<String> _val22; // optional
+                  Set<String> _val22; // required
                   _key21 = iprot.readString();
                   {
                     org.apache.blur.thirdparty.thrift_0_9_0.protocol.TSet 
_set23 = iprot.readSetBegin();
@@ -1372,12 +1372,12 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
       if (struct.columnFamiliesToFetch != null) {
         oprot.writeFieldBegin(COLUMN_FAMILIES_TO_FETCH_FIELD_DESC);
         {
-          oprot.writeSetBegin(new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TSet(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING,
 struct.columnFamiliesToFetch.size()));
+          oprot.writeListBegin(new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TList(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING,
 struct.columnFamiliesToFetch.size()));
           for (String _iter26 : struct.columnFamiliesToFetch)
           {
             oprot.writeString(_iter26);
           }
-          oprot.writeSetEnd();
+          oprot.writeListEnd();
         }
         oprot.writeFieldEnd();
       }
@@ -1537,9 +1537,9 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
       }
       if (incoming.get(4)) {
         {
-          org.apache.blur.thirdparty.thrift_0_9_0.protocol.TSet _set32 = new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TSet(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING,
 iprot.readI32());
-          struct.columnFamiliesToFetch = new HashSet<String>(2*_set32.size);
-          for (int _i33 = 0; _i33 < _set32.size; ++_i33)
+          org.apache.blur.thirdparty.thrift_0_9_0.protocol.TList _list32 = new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TList(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING,
 iprot.readI32());
+          struct.columnFamiliesToFetch = new ArrayList<String>(_list32.size);
+          for (int _i33 = 0; _i33 < _list32.size; ++_i33)
           {
             String _elem34; // required
             _elem34 = iprot.readString();
@@ -1555,7 +1555,7 @@ public class Selector implements 
org.apache.blur.thirdparty.thrift_0_9_0.TBase<S
           for (int _i36 = 0; _i36 < _map35.size; ++_i36)
           {
             String _key37; // required
-            Set<String> _val38; // optional
+            Set<String> _val38; // required
             _key37 = iprot.readString();
             {
               org.apache.blur.thirdparty.thrift_0_9_0.protocol.TSet _set39 = 
new 
org.apache.blur.thirdparty.thrift_0_9_0.protocol.TSet(org.apache.blur.thirdparty.thrift_0_9_0.protocol.TType.STRING,
 iprot.readI32());

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/c448ccaf/distribution/src/main/scripts/interface/gen-js/Blur_types.js
----------------------------------------------------------------------
diff --git a/distribution/src/main/scripts/interface/gen-js/Blur_types.js 
b/distribution/src/main/scripts/interface/gen-js/Blur_types.js
index 57e8302..2bbef3c 100644
--- a/distribution/src/main/scripts/interface/gen-js/Blur_types.js
+++ b/distribution/src/main/scripts/interface/gen-js/Blur_types.js
@@ -688,12 +688,12 @@ Selector.prototype.read = function(input) {
       }
       break;
       case 5:
-      if (ftype == Thrift.Type.SET) {
+      if (ftype == Thrift.Type.LIST) {
         var _size16 = 0;
         var _rtmp320;
         this.columnFamiliesToFetch = [];
         var _etype19 = 0;
-        _rtmp320 = input.readSetBegin();
+        _rtmp320 = input.readListBegin();
         _etype19 = _rtmp320.etype;
         _size16 = _rtmp320.size;
         for (var _i21 = 0; _i21 < _size16; ++_i21)
@@ -702,7 +702,7 @@ Selector.prototype.read = function(input) {
           elem22 = input.readString().value;
           this.columnFamiliesToFetch.push(elem22);
         }
-        input.readSetEnd();
+        input.readListEnd();
       } else {
         input.skip(ftype);
       }
@@ -810,8 +810,8 @@ Selector.prototype.write = function(output) {
     output.writeFieldEnd();
   }
   if (this.columnFamiliesToFetch !== null && this.columnFamiliesToFetch !== 
undefined) {
-    output.writeFieldBegin('columnFamiliesToFetch', Thrift.Type.SET, 5);
-    output.writeSetBegin(Thrift.Type.STRING, 
this.columnFamiliesToFetch.length);
+    output.writeFieldBegin('columnFamiliesToFetch', Thrift.Type.LIST, 5);
+    output.writeListBegin(Thrift.Type.STRING, 
this.columnFamiliesToFetch.length);
     for (var iter38 in this.columnFamiliesToFetch)
     {
       if (this.columnFamiliesToFetch.hasOwnProperty(iter38))
@@ -820,7 +820,7 @@ Selector.prototype.write = function(output) {
         output.writeString(iter38);
       }
     }
-    output.writeSetEnd();
+    output.writeListEnd();
     output.writeFieldEnd();
   }
   if (this.columnsToFetch !== null && this.columnsToFetch !== undefined) {

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/c448ccaf/distribution/src/main/scripts/interface/gen-perl/Blur/Types.pm
----------------------------------------------------------------------
diff --git a/distribution/src/main/scripts/interface/gen-perl/Blur/Types.pm 
b/distribution/src/main/scripts/interface/gen-perl/Blur/Types.pm
index 02ae25c..5232265 100644
--- a/distribution/src/main/scripts/interface/gen-perl/Blur/Types.pm
+++ b/distribution/src/main/scripts/interface/gen-perl/Blur/Types.pm
@@ -763,19 +763,19 @@ sub read {
         $xfer += $input->skip($ftype);
       }
       last; };
-      /^5$/ && do{      if ($ftype == TType::SET) {
+      /^5$/ && do{      if ($ftype == TType::LIST) {
         {
           my $_size14 = 0;
-          $self->{columnFamiliesToFetch} = {};
+          $self->{columnFamiliesToFetch} = [];
           my $_etype17 = 0;
-          $xfer += $input->readSetBegin(\$_etype17, \$_size14);
+          $xfer += $input->readListBegin(\$_etype17, \$_size14);
           for (my $_i18 = 0; $_i18 < $_size14; ++$_i18)
           {
             my $elem19 = undef;
             $xfer += $input->readString(\$elem19);
-            $self->{columnFamiliesToFetch}->{$elem19} = 1;
+            push(@{$self->{columnFamiliesToFetch}},$elem19);
           }
-          $xfer += $input->readSetEnd();
+          $xfer += $input->readListEnd();
         }
       } else {
         $xfer += $input->skip($ftype);
@@ -872,16 +872,16 @@ sub write {
     $xfer += $output->writeFieldEnd();
   }
   if (defined $self->{columnFamiliesToFetch}) {
-    $xfer += $output->writeFieldBegin('columnFamiliesToFetch', TType::SET, 5);
+    $xfer += $output->writeFieldBegin('columnFamiliesToFetch', TType::LIST, 5);
     {
-      $xfer += $output->writeSetBegin(TType::STRING, 
scalar(@{$self->{columnFamiliesToFetch}}));
+      $xfer += $output->writeListBegin(TType::STRING, 
scalar(@{$self->{columnFamiliesToFetch}}));
       {
-        foreach my $iter33 (@{$self->{columnFamiliesToFetch}})
+        foreach my $iter33 (@{$self->{columnFamiliesToFetch}}) 
         {
           $xfer += $output->writeString($iter33);
         }
       }
-      $xfer += $output->writeSetEnd();
+      $xfer += $output->writeListEnd();
     }
     $xfer += $output->writeFieldEnd();
   }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/c448ccaf/distribution/src/main/scripts/interface/gen-rb/blur_types.rb
----------------------------------------------------------------------
diff --git a/distribution/src/main/scripts/interface/gen-rb/blur_types.rb 
b/distribution/src/main/scripts/interface/gen-rb/blur_types.rb
index 5f4dcf3..680f342 100644
--- a/distribution/src/main/scripts/interface/gen-rb/blur_types.rb
+++ b/distribution/src/main/scripts/interface/gen-rb/blur_types.rb
@@ -253,7 +253,7 @@ module Blur
       # The record id of the Record to be fetched, not to be used with 
location id.  However the row id needs to be provided to locate the correct Row 
with the requested Record.
       RECORDID => {:type => ::Thrift::Types::STRING, :name => 'recordId'},
       # The column families to fetch.  If null, fetch all.  If empty, fetch 
none.
-      COLUMNFAMILIESTOFETCH => {:type => ::Thrift::Types::SET, :name => 
'columnFamiliesToFetch', :element => {:type => ::Thrift::Types::STRING}},
+      COLUMNFAMILIESTOFETCH => {:type => ::Thrift::Types::LIST, :name => 
'columnFamiliesToFetch', :element => {:type => ::Thrift::Types::STRING}},
       # The columns in the families to fetch.  If null, fetch all.  If empty, 
fetch none.
       COLUMNSTOFETCH => {:type => ::Thrift::Types::MAP, :name => 
'columnsToFetch', :key => {:type => ::Thrift::Types::STRING}, :value => {:type 
=> ::Thrift::Types::SET, :element => {:type => ::Thrift::Types::STRING}}},
       # @deprecated This value is no longer used.  This allows the fetch to 
see the most current data that has been added to the table.

Reply via email to