Add #size() to Result API: Accumulo, Avro, HBase
Set batch size using query.limit

Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/0ee48ab3
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/0ee48ab3
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/0ee48ab3

Branch: refs/heads/master
Commit: 0ee48ab3d96445a280852a1fd04206efb883baa9
Parents: 76cc89c
Author: Carlos Muñoz <carlosr...@gmail.com>
Authored: Thu Mar 22 00:59:02 2018 -0500
Committer: Carlos Muñoz <carlosr...@gmail.com>
Committed: Thu Mar 22 00:59:02 2018 -0500

----------------------------------------------------------------------
 .../org/apache/gora/accumulo/query/AccumuloResult.java | 13 +++++++++----
 .../java/org/apache/gora/avro/query/AvroResult.java    |  9 ++++++---
 .../org/apache/gora/avro/query/DataFileAvroResult.java |  2 +-
 .../org/apache/gora/hbase/query/HBaseGetResult.java    |  2 +-
 .../apache/gora/hbase/query/HBaseScannerResult.java    |  9 ++++++---
 .../java/org/apache/gora/hbase/store/HBaseStore.java   |  2 +-
 6 files changed, 24 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/gora/blob/0ee48ab3/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java
----------------------------------------------------------------------
diff --git 
a/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java
 
b/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java
index 072c004..23fdc1c 100644
--- 
a/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java
+++ 
b/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java
@@ -53,7 +53,9 @@ public class AccumuloResult<K,T extends PersistentBase> 
extends ResultBase<K,T>
   public AccumuloResult(DataStore<K,T> dataStore, Query<K,T> query, Scanner 
scanner) {
     super(dataStore, query);
     
-    // TODO set batch size based on limit, and construct iterator later
+    if (this.limit>-1){
+        scanner.setBatchSize((int)this.limit);
+    }
     iterator = new RowIterator(scanner.iterator());
   }
 
@@ -62,8 +64,11 @@ public class AccumuloResult<K,T extends PersistentBase> 
extends ResultBase<K,T>
    */
   @Override
   public float getProgress() throws IOException {
-    // TODO Auto-generated method stub
-    return 0;
+      if (this.limit!=-1){
+        return (float)this.offset/(float)this.limit;
+      }else{
+          return 0;
+      }
   }
   
   @Override
@@ -91,7 +96,7 @@ public class AccumuloResult<K,T extends PersistentBase> 
extends ResultBase<K,T>
 
     @Override
     public int size() {
-        throw new UnsupportedOperationException("Not supported yet."); //To 
change body of generated methods, choose Tools | Templates.
+        return (int)this.limit;
     }
   
 }

http://git-wip-us.apache.org/repos/asf/gora/blob/0ee48ab3/gora-core/src/main/java/org/apache/gora/avro/query/AvroResult.java
----------------------------------------------------------------------
diff --git a/gora-core/src/main/java/org/apache/gora/avro/query/AvroResult.java 
b/gora-core/src/main/java/org/apache/gora/avro/query/AvroResult.java
index 75d470f..ab421de 100644
--- a/gora-core/src/main/java/org/apache/gora/avro/query/AvroResult.java
+++ b/gora-core/src/main/java/org/apache/gora/avro/query/AvroResult.java
@@ -48,8 +48,11 @@ public class AvroResult<K, T extends PersistentBase> extends 
ResultBase<K, T> {
 
   @Override
   public float getProgress() throws IOException {
-    //TODO: FIXME
-    return 0;
+      if (this.limit!=-1){
+        return (float)this.offset/(float)this.limit;
+      }else{
+          return 0;
+      }
   }
 
   @Override
@@ -70,6 +73,6 @@ public class AvroResult<K, T extends PersistentBase> extends 
ResultBase<K, T> {
 
     @Override
     public int size() {
-        throw new UnsupportedOperationException("Not supported yet."); //To 
change body of generated methods, choose Tools | Templates.
+        return (int)limit;
     }
 }

http://git-wip-us.apache.org/repos/asf/gora/blob/0ee48ab3/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java
----------------------------------------------------------------------
diff --git 
a/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java 
b/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java
index 45029a2..23dd879 100644
--- a/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java
+++ b/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java
@@ -84,7 +84,7 @@ public class DataFileAvroResult<K, T extends PersistentBase> 
extends ResultBase<
 
     @Override
     public int size() {
-        throw new UnsupportedOperationException("Not supported yet."); //To 
change body of generated methods, choose Tools | Templates.
+        return (int) (end - start);
     }
   
 }

http://git-wip-us.apache.org/repos/asf/gora/blob/0ee48ab3/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseGetResult.java
----------------------------------------------------------------------
diff --git 
a/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseGetResult.java 
b/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseGetResult.java
index 48923e7..c6c75ca 100644
--- a/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseGetResult.java
+++ b/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseGetResult.java
@@ -64,6 +64,6 @@ public class HBaseGetResult<K, T extends PersistentBase> 
extends HBaseResult<K,T
 
     @Override
     public int size() {
-        throw new UnsupportedOperationException("Not supported yet."); //To 
change body of generated methods, choose Tools | Templates.
+        return result != null && !result.isEmpty() ? 1 : 0;
     }
 }

http://git-wip-us.apache.org/repos/asf/gora/blob/0ee48ab3/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java
----------------------------------------------------------------------
diff --git 
a/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java 
b/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java
index b299eaf..7f1dd90 100644
--- 
a/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java
+++ 
b/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java
@@ -63,13 +63,16 @@ public class HBaseScannerResult<K, T extends 
PersistentBase> extends HBaseResult
   
   @Override
   public float getProgress() throws IOException {
-    //TODO: if limit is set, we know how far we have gone 
-    return 0;
+     if (this.limit!=-1){
+        return (float)this.offset/(float)this.limit;
+      }else{
+          return 0;
+      }
   }
 
     @Override
     public int size() {
-        throw new UnsupportedOperationException("Not supported yet."); //To 
change body of generated methods, choose Tools | Templates.
+        return (int)this.limit;
     }
   
 }

http://git-wip-us.apache.org/repos/asf/gora/blob/0ee48ab3/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java
----------------------------------------------------------------------
diff --git 
a/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java 
b/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java
index 349c6d9..75e9180 100644
--- a/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java
+++ b/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java
@@ -498,7 +498,7 @@ implements Configurable {
 
   public ResultScanner createScanner(Query<K, T> query) throws IOException {
     final Scan scan = new Scan();
-    
+    scan.setBatch((int)query.getLimit());
     scan.setCaching(this.getScannerCaching()) ; 
     
     if (query.getStartKey() != null) {

Reply via email to