You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by am...@apache.org on 2014/11/13 12:49:51 UTC

[24/50] incubator-lens git commit: adding min and max for cube measures

adding min and max for cube measures


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

Branch: refs/heads/toapache
Commit: 8adf53b7b1fa79a80bfab65224f24be6201c23cc
Parents: fab4c56
Author: Rajat Khandelwal <ra...@inmobi.com>
Authored: Tue Nov 11 13:10:40 2014 +0530
Committer: Rajat Khandelwal <ra...@inmobi.com>
Committed: Tue Nov 11 13:20:42 2014 +0530

----------------------------------------------------------------------
 lens-api/src/main/resources/cube-0.1.xsd            |  2 ++
 .../apache/lens/cube/metadata/ColumnMeasure.java    | 13 +++++++++----
 .../org/apache/lens/cube/metadata/CubeMeasure.java  | 16 +++++++++++++++-
 .../lens/cube/metadata/MetastoreConstants.java      |  2 ++
 .../apache/lens/cube/metadata/MetastoreUtil.java    |  8 ++++++++
 .../org/apache/lens/server/metastore/JAXBUtils.java |  4 +++-
 6 files changed, 39 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/8adf53b7/lens-api/src/main/resources/cube-0.1.xsd
----------------------------------------------------------------------
diff --git a/lens-api/src/main/resources/cube-0.1.xsd b/lens-api/src/main/resources/cube-0.1.xsd
index b40564c..6d3fab2 100644
--- a/lens-api/src/main/resources/cube-0.1.xsd
+++ b/lens-api/src/main/resources/cube-0.1.xsd
@@ -113,6 +113,8 @@
         <xs:attribute type="xs:double" name="cost" />
         <xs:attribute type="xs:string" name="unit" />
         <xs:attribute type="xs:string" name="cube_table"/>
+        <xs:attribute type="xs:double" name="min" />
+        <xs:attribute type="xs:double" name="max" />
     </xs:complexType>
 
     <xs:complexType name="x_measures">

http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/8adf53b7/lens-cube/src/main/java/org/apache/lens/cube/metadata/ColumnMeasure.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/metadata/ColumnMeasure.java b/lens-cube/src/main/java/org/apache/lens/cube/metadata/ColumnMeasure.java
index 2328ca4..18d4a1b 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/ColumnMeasure.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/ColumnMeasure.java
@@ -26,16 +26,21 @@ import org.apache.hadoop.hive.metastore.api.FieldSchema;
 public final class ColumnMeasure extends CubeMeasure {
 
   public ColumnMeasure(FieldSchema column, String displayString, String formatString, String aggregate, String unit) {
-    this(column, displayString, formatString, aggregate, unit, null, null, null);
+    this(column, displayString, formatString, aggregate, unit, null, null, null, null, null);
   }
 
   public ColumnMeasure(FieldSchema column) {
-    this(column, null, null, null, null, null, null, null);
+    this(column, null, null, null, null, null, null, null, null, null);
   }
 
   public ColumnMeasure(FieldSchema column, String displayString, String formatString, String aggregate, String unit,
-      Date startTime, Date endTime, Double cost) {
-    super(column, displayString, formatString, aggregate, unit, startTime, endTime, cost);
+    Date startTime, Date endTime, Double cost) {
+    super(column, displayString, formatString, aggregate, unit, startTime, endTime, cost, null, null);
+  }
+
+  public ColumnMeasure(FieldSchema column, String displayString, String formatString, String aggregate, String unit,
+      Date startTime, Date endTime, Double cost, Double min, Double max) {
+    super(column, displayString, formatString, aggregate, unit, startTime, endTime, cost, min, max);
   }
 
   public ColumnMeasure(String name, Map<String, String> props) {

http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/8adf53b7/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeMeasure.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeMeasure.java b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeMeasure.java
index a619dcc..5380b07 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeMeasure.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeMeasure.java
@@ -29,9 +29,11 @@ public abstract class CubeMeasure extends CubeColumn {
   private final String aggregate;
   private final String unit;
   private final FieldSchema column;
+  private final Double min;
+  private final Double max;
 
   protected CubeMeasure(FieldSchema column, String displayString, String formatString, String aggregate, String unit,
-      Date startTime, Date endTime, Double cost) {
+      Date startTime, Date endTime, Double cost, Double min, Double max) {
     super(column.getName(), column.getComment(), displayString, startTime, endTime, cost);
     this.column = column;
     assert (column != null);
@@ -40,6 +42,8 @@ public abstract class CubeMeasure extends CubeColumn {
     this.formatString = formatString;
     this.aggregate = aggregate;
     this.unit = unit;
+    this.min = min;
+    this.max = max;
   }
 
   protected CubeMeasure(String name, Map<String, String> props) {
@@ -48,6 +52,16 @@ public abstract class CubeMeasure extends CubeColumn {
     this.formatString = props.get(MetastoreUtil.getMeasureFormatPropertyKey(name));
     this.aggregate = props.get(MetastoreUtil.getMeasureAggrPropertyKey(name));
     this.unit = props.get(MetastoreUtil.getMeasureUnitPropertyKey(name));
+    String minStr = props.get(MetastoreUtil.getMeasureMinPropertyKey(name));
+    String maxStr = props.get(MetastoreUtil.getMeasureMaxPropertyKey(name));
+    if(minStr != null && maxStr != null && !minStr.isEmpty() && !maxStr.isEmpty()) {
+      this.min = Double.parseDouble(minStr);
+      this.max = Double.parseDouble(maxStr);
+    }
+    else{
+      this.min = null;
+      this.max = null;
+    }
   }
 
   public String getFormatString() {

http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/8adf53b7/lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreConstants.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreConstants.java b/lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreConstants.java
index 745ec8b..ddc87dc 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreConstants.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreConstants.java
@@ -65,6 +65,8 @@ public interface MetastoreConstants {
   public static final String MEASURE_KEY_PFX = "cube.measure.";
   public static final String UNIT_SFX = ".unit";
   public static final String AGGR_SFX = ".aggregate";
+  public static final String MIN_SFX = ".min";
+  public static final String MAX_SFX = ".max";
   public static final String EXPR_SFX = ".expr";
   public static final String FORMATSTRING_SFX = ".format";
 

http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/8adf53b7/lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java b/lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java
index c49b93f..bcdfddb 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java
@@ -206,6 +206,14 @@ public class MetastoreUtil implements MetastoreConstants {
     return getMeasurePrefix(measureName) + AGGR_SFX;
   }
 
+  public static final String getMeasureMinPropertyKey(String measureName) {
+    return getMeasurePrefix(measureName) + MIN_SFX;
+  }
+
+  public static final String getMeasureMaxPropertyKey(String measureName) {
+    return getMeasurePrefix(measureName) + MAX_SFX;
+  }
+
   public static final String getExpressionListKey(String name) {
     return getBasePrefix(name) + EXPRESSIONS_LIST_SFX;
   }

http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/8adf53b7/lens-server/src/main/java/org/apache/lens/server/metastore/JAXBUtils.java
----------------------------------------------------------------------
diff --git a/lens-server/src/main/java/org/apache/lens/server/metastore/JAXBUtils.java b/lens-server/src/main/java/org/apache/lens/server/metastore/JAXBUtils.java
index bc72967..738ff3d 100644
--- a/lens-server/src/main/java/org/apache/lens/server/metastore/JAXBUtils.java
+++ b/lens-server/src/main/java/org/apache/lens/server/metastore/JAXBUtils.java
@@ -292,7 +292,9 @@ public class JAXBUtils {
         "unit",
         startDate,
         endDate,
-        xm.getCost()
+        xm.getCost(),
+        xm.getMin(),
+        xm.getMax()
         );
     return cm;
   }