[39/51] [abbrv] lens git commit: LENS-912 : Make keyword optional in queries

2016-02-03 Thread deepakbarr
LENS-912 : Make  keyword optional in queries


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

Branch: refs/heads/current-release-line
Commit: b3f993d8af508f900b22b7c67813b734b50255d8
Parents: 8a36572
Author: Rajat Khandelwal 
Authored: Wed Jan 27 16:58:18 2016 +0530
Committer: Amareshwari Sriramadasu 
Committed: Wed Jan 27 16:58:18 2016 +0530

--
 .../org/apache/lens/api/query/QueryStatus.java  |   5 +
 .../lens/cube/metadata/CubeMetastoreClient.java |  20 +-
 .../org/apache/lens/cube/parse/HQLParser.java   |   7 +
 .../server/query/QueryExecutionServiceImpl.java |   2 +-
 .../lens/server/query/QueryServiceResource.java |   3 +-
 .../lens/server/rewrite/CubeKeywordRemover.java |  41 
 .../apache/lens/server/rewrite/RewriteUtil.java | 150 +-
 .../rewrite/UserQueryToCubeQueryRewriter.java   |   2 +-
 .../lens/server/query/TestQueryService.java |  36 ++--
 .../server/rewrite/CubeKeywordRemoverTest.java  |  46 +
 .../lens/server/rewrite/TestRewriting.java  | 198 +++
 src/site/apt/user/olap-cube.apt |   2 +-
 12 files changed, 403 insertions(+), 109 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/b3f993d8/lens-api/src/main/java/org/apache/lens/api/query/QueryStatus.java
--
diff --git a/lens-api/src/main/java/org/apache/lens/api/query/QueryStatus.java 
b/lens-api/src/main/java/org/apache/lens/api/query/QueryStatus.java
index 91cbe39..44fd97e 100644
--- a/lens-api/src/main/java/org/apache/lens/api/query/QueryStatus.java
+++ b/lens-api/src/main/java/org/apache/lens/api/query/QueryStatus.java
@@ -220,6 +220,11 @@ public class QueryStatus implements Serializable {
 return status.equals(Status.QUEUED);
   }
 
+  public boolean failed() {
+return status.equals(Status.FAILED);
+  }
+
+
   /**
* Checks if is valid transition.
*

http://git-wip-us.apache.org/repos/asf/lens/blob/b3f993d8/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeMetastoreClient.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeMetastoreClient.java
 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeMetastoreClient.java
index dcb932e..8969d1f 100644
--- 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeMetastoreClient.java
+++ 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeMetastoreClient.java
@@ -40,14 +40,16 @@ import org.apache.hadoop.hive.metastore.TableType;
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
 import org.apache.hadoop.hive.metastore.api.InvalidOperationException;
 import org.apache.hadoop.hive.ql.io.HiveFileFormatUtils;
-import org.apache.hadoop.hive.ql.metadata.*;
+import org.apache.hadoop.hive.ql.metadata.Hive;
+import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.ql.metadata.Partition;
+import org.apache.hadoop.hive.ql.metadata.Table;
 import org.apache.hadoop.hive.ql.session.SessionState;
 import org.apache.thrift.TException;
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
-
 import lombok.extern.slf4j.Slf4j;
 
 /**
@@ -234,6 +236,20 @@ public class CubeMetastoreClient {
 return latestParts;
   }
 
+  public boolean isLensQueryableTable(String tableName) {
+try {
+  Table table = getTable(tableName);
+  String typeProperty = 
table.getProperty(MetastoreConstants.TABLE_TYPE_KEY);
+  if (StringUtils.isBlank(typeProperty)) {
+return false;
+  }
+  CubeTableType type = CubeTableType.valueOf(typeProperty);
+  return type == CubeTableType.CUBE || type == CubeTableType.DIMENSION;
+} catch (HiveException e) {
+  return false;
+}
+  }
+
 
   /**
* In-memory storage of {@link PartitionTimeline} objects for each valid

http://git-wip-us.apache.org/repos/asf/lens/blob/b3f993d8/lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java
--
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java
index b1deb07..c9aff5d 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java
@@ -833,4 +833,11 @@ public final class HQLParser {
 
 return true;
   }
+
+  public static ASTNode leftMostChild(ASTNode node) {
+while 

[12/51] [abbrv] lens git commit: LENS-905 : Group by is not promoted when keys projected along with having clause

2016-02-03 Thread deepakbarr
LENS-905 : Group by is not promoted when keys projected along with having clause


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

Branch: refs/heads/current-release-line
Commit: c17908134e004c646724d7e464252ec76a43113d
Parents: d6aeecc
Author: Sushil Mohanty 
Authored: Fri Dec 18 11:50:33 2015 +0530
Committer: Sushil Mohanty 
Committed: Fri Dec 18 11:50:33 2015 +0530

--
 .../org/apache/lens/cube/parse/AggregateResolver.java|  4 +++-
 .../apache/lens/cube/parse/TestAggregateResolver.java| 11 +--
 2 files changed, 12 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/c1790813/lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java
index b544a67..39bd1cc 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java
@@ -97,7 +97,9 @@ class AggregateResolver implements ContextRewriter {
 Configuration distConf = cubeql.getConf();
 boolean isDimOnlyDistinctEnabled = 
distConf.getBoolean(CubeQueryConfUtil.ENABLE_ATTRFIELDS_ADD_DISTINCT,
   CubeQueryConfUtil.DEFAULT_ATTR_FIELDS_ADD_DISTINCT);
-if (isDimOnlyDistinctEnabled) {
+//Having clause will always work with measures, if only keys projected
+//query should skip distinct and promote group by.
+if (cubeql.getHavingAST() == null && isDimOnlyDistinctEnabled) {
   // Check if any measure/aggregate columns and distinct clause used in
   // select tree. If not, update selectAST token "SELECT" to "SELECT 
DISTINCT"
   if (!hasMeasures(cubeql, cubeql.getSelectAST()) && 
!isDistinctClauseUsed(cubeql.getSelectAST())

http://git-wip-us.apache.org/repos/asf/lens/blob/c1790813/lens-cube/src/test/java/org/apache/lens/cube/parse/TestAggregateResolver.java
--
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestAggregateResolver.java 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestAggregateResolver.java
index a48d753..35234a1 100644
--- 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestAggregateResolver.java
+++ 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestAggregateResolver.java
@@ -93,6 +93,9 @@ public class TestAggregateResolver extends TestQueryRewrite {
 
 String q10 = "SELECT cityid, round(testCube.msr2) from testCube where " + 
TWO_DAYS_RANGE;
 
+//dimension selected with having
+String q11 = "SELECT cityid from testCube where " + TWO_DAYS_RANGE + " 
having (testCube.msr2 > 100)";
+
 String expectedq1 =
   getExpectedQuery(cubeName, "SELECT testcube.cityid," + " 
sum(testCube.msr2) from ", null,
 "group by testcube.cityid", getWhereForDailyAndHourly2days(cubeName, 
"C2_testfact"));
@@ -128,13 +131,17 @@ public class TestAggregateResolver extends 
TestQueryRewrite {
 String expectedq10 =
   getExpectedQuery(cubeName, "SELECT testcube.cityid," + " 
round(sum(testCube.msr2)) from ", null,
 "group by testcube.cityid", getWhereForDailyAndHourly2days(cubeName, 
"C2_testfact"));
-
+String expectedq11 =
+  getExpectedQuery(cubeName, "SELECT testcube.cityid from ", null,
+"group by testcube.cityid" + "having sum(testCube.msr2) > 100",
+  getWhereForDailyAndHourly2days(cubeName, "C2_testfact"));
 String[] tests = {
-  q1, q2, q3, q4, q5, q6, q7, q8, q9, q10,
+  q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11,
 };
 String[] expected = {
   expectedq1, expectedq2, expectedq3, expectedq4, expectedq5,
   expectedq6, expectedq7, expectedq8, expectedq9, expectedq10,
+  expectedq11,
 };
 
 for (int i = 0; i < tests.length; i++) {



[21/51] [abbrv] lens git commit: LENS-913: Seeing DateUtil exception in all cube tests

2016-02-03 Thread deepakbarr
LENS-913: Seeing DateUtil exception in all cube tests


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

Branch: refs/heads/current-release-line
Commit: c73d5844b6e74eb3184b70aea283bf26b1bd267c
Parents: 71cf9ff
Author: Rajat Khandelwal 
Authored: Fri Jan 8 17:23:19 2016 +0530
Committer: Rajat Khandelwal 
Committed: Fri Jan 8 17:23:19 2016 +0530

--
 .../lens/cube/metadata/CubeFactTable.java   | 45 +++-
 .../org/apache/lens/cube/metadata/DateUtil.java |  3 +-
 .../lens/cube/metadata/CubeFactTableTest.java   |  4 ++
 3 files changed, 30 insertions(+), 22 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/c73d5844/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java
index dd0adb7..b1fec8c 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java
@@ -21,6 +21,7 @@ package org.apache.lens.cube.metadata;
 import java.util.*;
 
 import org.apache.lens.cube.metadata.UpdatePeriod.UpdatePeriodComparator;
+import org.apache.lens.server.api.error.LensException;
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
@@ -28,7 +29,9 @@ import org.apache.hadoop.hive.ql.metadata.HiveException;
 import org.apache.hadoop.hive.ql.metadata.Table;
 
 import com.google.common.collect.Lists;
+import lombok.extern.slf4j.Slf4j;
 
+@Slf4j
 public class CubeFactTable extends AbstractCubeTable {
   private String cubeName;
   private final Map storageUpdatePeriods;
@@ -80,7 +83,7 @@ public class CubeFactTable extends AbstractCubeTable {
   }
 
   private static Map getUpdatePeriods(String name, 
Map props) {
-Map storageUpdatePeriods = new HashMap();
+Map storageUpdatePeriods = new HashMap<>();
 String storagesStr = props.get(MetastoreUtil.getFactStorageListKey(name));
 if (!StringUtils.isBlank(storagesStr)) {
   String[] storages = storagesStr.split(",");
@@ -88,7 +91,7 @@ public class CubeFactTable extends AbstractCubeTable {
 String updatePeriodStr = 
props.get(MetastoreUtil.getFactUpdatePeriodKey(name, storage));
 if (StringUtils.isNotBlank(updatePeriodStr)) {
   String[] periods = updatePeriodStr.split(",");
-  Set updatePeriods = new TreeSet();
+  Set updatePeriods = new TreeSet<>();
   for (String period : periods) {
 updatePeriods.add(UpdatePeriod.valueOf(period));
   }
@@ -321,20 +324,28 @@ public class CubeFactTable extends AbstractCubeTable {
 getProperties().put(MetastoreConstants.FACT_AGGREGATED_PROPERTY, 
Boolean.toString(isAggregated));
   }
 
-  public Date getAbsoluteStartTime() {
+  public Date getDateFromProperty(String propKey, boolean relative, boolean 
start) {
+String prop = getProperties().get(propKey);
 try {
-  return 
DateUtil.resolveAbsoluteDate(getProperties().get(MetastoreConstants.FACT_ABSOLUTE_START_TIME));
-} catch (Exception e) {
-  return new Date(Long.MIN_VALUE);
+  if (StringUtils.isNotBlank(prop)) {
+if (relative) {
+  return DateUtil.resolveRelativeDate(prop, now());
+} else {
+  return DateUtil.resolveAbsoluteDate(prop);
+}
+  }
+} catch (LensException e) {
+  log.error("unable to parse {} {} date: {}", relative ? "relative" : 
"absolute", start ? "start" : "end", prop);
 }
+return start ? DateUtil.MIN_DATE : DateUtil.MAX_DATE;
+  }
+
+  public Date getAbsoluteStartTime() {
+return getDateFromProperty(MetastoreConstants.FACT_ABSOLUTE_START_TIME, 
false, true);
   }
 
   public Date getRelativeStartTime() {
-try {
-  return 
DateUtil.resolveRelativeDate(getProperties().get(MetastoreConstants.FACT_RELATIVE_START_TIME),
 now());
-} catch (Exception e) {
-  return new Date(Long.MIN_VALUE);
-}
+return getDateFromProperty(MetastoreConstants.FACT_RELATIVE_START_TIME, 
true, true);
   }
 
   public Date getStartTime() {
@@ -342,19 +353,11 @@ public class CubeFactTable extends AbstractCubeTable {
   }
 
   public Date getAbsoluteEndTime() {
-try {
-  return 
DateUtil.resolveAbsoluteDate(getProperties().get(MetastoreConstants.FACT_ABSOLUTE_END_TIME));
-} catch (Exception e) {
-  return new 

[43/51] [abbrv] lens git commit: LENS-928 : DELETE request on /resultset API gives 500 in case of InMemory Result

2016-02-03 Thread deepakbarr
LENS-928 : DELETE request on /resultset API gives 500 in case of InMemory Result


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

Branch: refs/heads/current-release-line
Commit: a5091fe0c2b351bd5d8643de9edaac23f2bd3793
Parents: 2f0e5fd
Author: Deepak Barr 
Authored: Tue Feb 2 16:36:07 2016 +0530
Committer: Deepak Kumar Barr 
Committed: Tue Feb 2 16:36:07 2016 +0530

--
 .../src/main/java/org/apache/lens/driver/es/ESDriver.java   | 4 +---
 .../main/java/org/apache/lens/server/api/driver/LensDriver.java | 2 +-
 .../org/apache/lens/server/query/QueryExecutionServiceImpl.java | 5 -
 .../java/org/apache/lens/server/query/TestQueryService.java | 4 
 4 files changed, 10 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/a5091fe0/lens-driver-es/src/main/java/org/apache/lens/driver/es/ESDriver.java
--
diff --git 
a/lens-driver-es/src/main/java/org/apache/lens/driver/es/ESDriver.java 
b/lens-driver-es/src/main/java/org/apache/lens/driver/es/ESDriver.java
index d166e43..8a4f410 100644
--- a/lens-driver-es/src/main/java/org/apache/lens/driver/es/ESDriver.java
+++ b/lens-driver-es/src/main/java/org/apache/lens/driver/es/ESDriver.java
@@ -195,10 +195,8 @@ public class ESDriver extends AbstractLensDriver {
 
   @Override
   public void closeResultSet(QueryHandle handle) throws LensException {
-try {
+if (resultSetMap.containsKey(handle)) {
   resultSetMap.remove(handle);
-} catch (NullPointerException e) {
-  throw new LensException("The query does not exist or was already 
purged", e);
 }
   }
 

http://git-wip-us.apache.org/repos/asf/lens/blob/a5091fe0/lens-server-api/src/main/java/org/apache/lens/server/api/driver/LensDriver.java
--
diff --git 
a/lens-server-api/src/main/java/org/apache/lens/server/api/driver/LensDriver.java
 
b/lens-server-api/src/main/java/org/apache/lens/server/api/driver/LensDriver.java
index 3d38ddd..ed97673 100644
--- 
a/lens-server-api/src/main/java/org/apache/lens/server/api/driver/LensDriver.java
+++ 
b/lens-server-api/src/main/java/org/apache/lens/server/api/driver/LensDriver.java
@@ -151,7 +151,7 @@ public interface LensDriver extends Externalizable {
   LensResultSet fetchResultSet(QueryContext context) throws LensException;
 
   /**
-   * Close the resultset for the query.
+   * Close the resultset for the query. Closing an already closed resultset 
should not result in failures.
*
* @param handle The query handle
* @throws LensException the lens exception

http://git-wip-us.apache.org/repos/asf/lens/blob/a5091fe0/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
--
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
 
b/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
index 19077d2..e61398b 100644
--- 
a/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
+++ 
b/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
@@ -2100,7 +2100,10 @@ public class QueryExecutionServiceImpl extends 
BaseLensService implements QueryE
   acquire(sessionHandle);
   resultSets.remove(queryHandle);
   // Ask driver to close result set
-  
getQueryContext(queryHandle).getSelectedDriver().closeResultSet(queryHandle);
+  QueryContext ctx=getQueryContext(queryHandle);
+  if (null != ctx) {
+ctx.getSelectedDriver().closeResultSet(queryHandle);
+  }
 } finally {
   release(sessionHandle);
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/a5091fe0/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
--
diff --git 
a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java 
b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
index 5d949d2..ef8c1aa 100644
--- 
a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
+++ 
b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
@@ -984,6 +984,10 @@ public class TestQueryService extends LensJerseyTest {
 validateInmemoryResult(resultset);
 
 validNotFoundForHttpResult(target(), lensSessionId, handle);
+waitForPurge(0, queryService.finishedQueries);
+APIResult 

[01/51] [abbrv] lens git commit: LENS-885: Cleanup of Cube test cases

2016-02-03 Thread deepakbarr
Repository: lens
Updated Branches:
  refs/heads/current-release-line 79261f958 -> 15396047b


http://git-wip-us.apache.org/repos/asf/lens/blob/7c7c86da/lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java
--
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java
 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java
index d16ea4c..36c1dba 100644
--- 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java
+++ 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java
@@ -19,6 +19,7 @@
 
 package org.apache.lens.cube.parse;
 
+import static org.apache.lens.cube.metadata.DateFactory.*;
 import static org.apache.lens.cube.parse.CubeTestSetup.*;
 
 import java.util.*;
@@ -55,18 +56,16 @@ public class TestDenormalizationResolver extends 
TestQueryRewrite {
   @Test
   public void testDenormsAsDirectFields() throws ParseException, 
LensException, HiveException {
 // denorm fields directly available
-String twoDaysITRange =
-  "time_range_in(it, '" + CubeTestSetup.getDateUptoHours(TWODAYS_BACK) + 
"','"
-+ CubeTestSetup.getDateUptoHours(NOW) + "')";
-String hqlQuery = rewrite("select dim2big1, max(msr3)," + " msr2 from 
testCube" + " where " + twoDaysITRange, conf);
+String hqlQuery = rewrite("select dim2big1, max(msr3)," + " msr2 from 
testCube" + " where " + TWO_DAYS_RANGE_IT,
+  conf);
 String expecteddim2big1 =
   getExpectedQuery(cubeName, "select testcube.dim2big1," + " 
max(testcube.msr3), sum(testcube.msr2) FROM ", null,
 " group by testcube.dim2big1", 
getWhereForDailyAndHourly2daysWithTimeDim(cubeName, "it", "C2_summary4"),
 null);
 TestCubeRewriter.compareQueries(hqlQuery, expecteddim2big1);
 // with another table
-hqlQuery = rewrite("select dim2big1, citydim.name, max(msr3)," + " msr2 
from testCube" + " where " + twoDaysITRange,
-  conf);
+hqlQuery = rewrite("select dim2big1, citydim.name, max(msr3)," + " msr2 
from testCube" + " where "
+  + TWO_DAYS_RANGE_IT, conf);
 String expecteddim2big1WithAnotherTable = getExpectedQuery(cubeName,
   "select testcube.dim2big1, citydim.name, max(testcube.msr3), 
sum(testcube.msr2) FROM ", " JOIN "
 + getDbName() + "c1_citytable citydim " + "on testcube.cityid = 
citydim.id and citydim.dt = 'latest' ", null,
@@ -75,7 +74,7 @@ public class TestDenormalizationResolver extends 
TestQueryRewrite {
   null);
 TestCubeRewriter.compareQueries(hqlQuery, 
expecteddim2big1WithAnotherTable);
 
-hqlQuery = rewrite("select dim2big2, max(msr3)," + " msr2 from testCube" + 
" where " + twoDaysITRange, conf);
+hqlQuery = rewrite("select dim2big2, max(msr3)," + " msr2 from testCube" + 
" where " + TWO_DAYS_RANGE_IT, conf);
 String expecteddim2big2 =
   getExpectedQuery(cubeName, "select testcube.dim2big2, 
max(testcube.msr3), sum(testcube.msr2) FROM ", null,
 " group by testcube.dim2big2", 
getWhereForDailyAndHourly2daysWithTimeDim(cubeName, "it", "C2_summary4"),
@@ -84,8 +83,8 @@ public class TestDenormalizationResolver extends 
TestQueryRewrite {
 
 Configuration conf2 = new Configuration(conf);
 conf2.set(CubeQueryConfUtil.DRIVER_SUPPORTED_STORAGES, "C2");
-hqlQuery =
-  rewrite("select testdim3.name, dim2big1, max(msr3)," + " msr2 from 
testCube" + " where " + twoDaysITRange, conf2);
+hqlQuery = rewrite("select testdim3.name, dim2big1, max(msr3)," + " msr2 
from testCube" + " where "
+  + TWO_DAYS_RANGE_IT, conf2);
 String expected =
   getExpectedQuery(cubeName,
 "select testdim3.name, testcube.dim2big1, max(testcube.msr3), 
sum(testcube.msr2) FROM ", " JOIN "
@@ -96,9 +95,9 @@ public class TestDenormalizationResolver extends 
TestQueryRewrite {
 null);
 TestCubeRewriter.compareQueries(hqlQuery, expected);
 
-hqlQuery = rewrite("select dim2big1, max(msr3)," + " msr2 from testCube" + 
" where " + twoDaysITRange, conf2);
+hqlQuery = rewrite("select dim2big1, max(msr3)," + " msr2 from testCube" + 
" where " + TWO_DAYS_RANGE_IT, conf2);
 TestCubeRewriter.compareQueries(hqlQuery, expecteddim2big1);
-hqlQuery = rewrite("select dim2big2, max(msr3)," + " msr2 from testCube" + 
" where " + twoDaysITRange, conf2);
+hqlQuery = rewrite("select dim2big2, max(msr3)," + " msr2 from testCube" + 
" where " + TWO_DAYS_RANGE_IT, conf2);
 TestCubeRewriter.compareQueries(hqlQuery, expecteddim2big2);
   }
 
@@ -190,11 +189,8 @@ public class TestDenormalizationResolver extends 
TestQueryRewrite {
 
   @Test
   public void 
testCubeQueryWithExpressionHavingDenormColumnComingAsDirectColumn() throws 
Exception {
-String twoDaysITRange =
-  "time_range_in(it, '" + CubeTestSetup.getDateUptoHours(TWODAYS_BACK) + 
"','"
-+ CubeTestSetup.getDateUptoHours(NOW) + 

[22/51] [abbrv] lens git commit: LENS-735 : Remove accepting TableReferences for ReferenceDimAttribute

2016-02-03 Thread deepakbarr
http://git-wip-us.apache.org/repos/asf/lens/blob/908530f5/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreService.java
--
diff --git 
a/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreService.java
 
b/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreService.java
index e0c0923..b0044da 100644
--- 
a/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreService.java
+++ 
b/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreService.java
@@ -309,8 +309,7 @@ public class TestMetastoreService extends LensJerseyTest {
 XChainColumn xcc = new XChainColumn();
 xcc.setChainName("chain1");
 xcc.setRefCol("col2");
-xd3.setRefSpec(cubeObjectFactory.createXDimAttributeRefSpec());
-xd3.getRefSpec().getChainRefColumn().add(xcc);
+xd3.getChainRefColumn().add(xcc);
 xd3.setNumDistinctValues(1000L);
 
 // add attribute with complex type
@@ -602,7 +601,7 @@ public class TestMetastoreService extends LensJerseyTest {
   boolean chainValidated = false;
   for (XDimAttribute attr : actual.getDimAttributes().getDimAttribute()) {
 if (attr.getName().equalsIgnoreCase("testdim2col2")) {
-  
assertEquals(attr.getRefSpec().getChainRefColumn().get(0).getDestTable(), 
"testdim");
+  assertEquals(attr.getChainRefColumn().get(0).getDestTable(), 
"testdim");
   chainValidated = true;
   break;
 }
@@ -619,7 +618,7 @@ public class TestMetastoreService extends LensJerseyTest {
   
assertEquals(hcube.getDimAttributeByName("testdim2col2").getDescription(), "ref 
chained dimension");
   assertEquals(((BaseDimAttribute) 
hcube.getDimAttributeByName("dim4")).getType(),
 
"struct>");
-  ReferencedDimAtrribute testdim2col2 = (ReferencedDimAtrribute) 
hcube.getDimAttributeByName("testdim2col2");
+  ReferencedDimAttribute testdim2col2 = (ReferencedDimAttribute) 
hcube.getDimAttributeByName("testdim2col2");
   assertEquals(testdim2col2.getType(), "string");
   assertEquals(testdim2col2.getChainRefColumns().get(0).getChainName(), 
"chain1");
   assertEquals(testdim2col2.getChainRefColumns().get(0).getRefColumn(), 
"col2");
@@ -1095,8 +1094,7 @@ public class TestMetastoreService extends LensJerseyTest {
 XChainColumn xcc = new XChainColumn();
 xcc.setChainName("chain1");
 xcc.setRefCol("col2");
-hd3.setRefSpec(cubeObjectFactory.createXDimAttributeRefSpec());
-hd3.getRefSpec().getChainRefColumn().add(xcc);
+hd3.getChainRefColumn().add(xcc);
 hd3.setNumDistinctValues(1000L);
 hierarchy.getDimAttribute().add(hd3);
 xd4.setHierarchy(hierarchy);
@@ -1106,8 +1104,7 @@ public class TestMetastoreService extends LensJerseyTest {
 xd5.setType("INT");
 xd5.setDescription("ref column");
 xd5.setDisplayString("Column5");
-xd5.setRefSpec(cubeObjectFactory.createXDimAttributeRefSpec());
-xd5.getRefSpec().getChainRefColumn().add(xcc);
+xd5.getChainRefColumn().add(xcc);
 xd5.getValues().add("1");
 xd5.getValues().add("2");
 xd5.getValues().add("3");
@@ -1225,7 +1222,7 @@ public class TestMetastoreService extends LensJerseyTest {
   assertEquals(col4h2.getType(), "string");
   assertEquals(col4h2.getDescription(), "base column");
   assertEquals(col4h2.getDisplayString(), "Column4-h2");
-  ReferencedDimAtrribute col4h3 = (ReferencedDimAtrribute) 
col4.getHierarchy().get(2);
+  ReferencedDimAttribute col4h3 = (ReferencedDimAttribute) 
col4.getHierarchy().get(2);
   assertEquals(col4h3.getName(), "col4-h3");
   assertEquals(col4h3.getDescription(), "ref column");
   assertEquals(col4h3.getDisplayString(), "Column4-h3");
@@ -1234,7 +1231,7 @@ public class TestMetastoreService extends LensJerseyTest {
   assertEquals(col4h3.getChainRefColumns().get(0).getRefColumn(), "col2");
   assertEquals(col4h3.getNumOfDistinctValues().get(), (Long) 1000L);
   assertNotNull(dim.getAttributeByName("col5"));
-  ReferencedDimAtrribute col5 = (ReferencedDimAtrribute) 
dim.getAttributeByName("col5");
+  ReferencedDimAttribute col5 = (ReferencedDimAttribute) 
dim.getAttributeByName("col5");
   assertEquals(col5.getDescription(), "ref column");
   assertEquals(col5.getDisplayString(), "Column5");
   assertEquals(col5.getType(), "int");

http://git-wip-us.apache.org/repos/asf/lens/blob/908530f5/lens-storage-db/src/test/java/org/apache/lens/storage/db/TestDBStorage.java
--
diff --git 
a/lens-storage-db/src/test/java/org/apache/lens/storage/db/TestDBStorage.java 
b/lens-storage-db/src/test/java/org/apache/lens/storage/db/TestDBStorage.java
index 92a0027..55c32e8 100644
--- 
a/lens-storage-db/src/test/java/org/apache/lens/storage/db/TestDBStorage.java

[48/51] [abbrv] lens git commit: LENS-920 : Fix issues in producing and consuming json for all api

2016-02-03 Thread deepakbarr
http://git-wip-us.apache.org/repos/asf/lens/blob/d559ef2e/lens-server/src/test/java/org/apache/lens/server/LensServerTestUtil.java
--
diff --git 
a/lens-server/src/test/java/org/apache/lens/server/LensServerTestUtil.java 
b/lens-server/src/test/java/org/apache/lens/server/LensServerTestUtil.java
index 94dd394..ddca12f 100644
--- a/lens-server/src/test/java/org/apache/lens/server/LensServerTestUtil.java
+++ b/lens-server/src/test/java/org/apache/lens/server/LensServerTestUtil.java
@@ -75,7 +75,8 @@ public final class LensServerTestUtil {
* @param schemaStr the schema string, with surrounding parenthesis.
* @throws InterruptedException the interrupted exception
*/
-  public static void createTable(String tblName, WebTarget parent, 
LensSessionHandle lensSessionId, String schemaStr)
+  public static void createTable(String tblName, WebTarget parent, 
LensSessionHandle lensSessionId, String schemaStr,
+MediaType mt)
 throws InterruptedException {
 LensConf conf = new LensConf();
 conf.addProperty(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, 
"false");
@@ -85,21 +86,21 @@ public final class LensServerTestUtil {
 String createTable = "CREATE TABLE IF NOT EXISTS " + tblName + schemaStr;
 
 mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), 
lensSessionId,
-  MediaType.APPLICATION_XML_TYPE));
+  mt));
 mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("query").build(), 
createTable));
 mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("operation").build(), 
"execute"));
 mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("conf").fileName("conf").build(),
 conf,
-  MediaType.APPLICATION_XML_TYPE));
+  mt));
 
-final QueryHandle handle = target.request()
+final QueryHandle handle = target.request(mt)
 .post(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE),
 new GenericType() {}).getData();
 // wait till the query finishes
-LensQuery ctx = target.path(handle.toString()).queryParam("sessionid", 
lensSessionId).request()
+LensQuery ctx = target.path(handle.toString()).queryParam("sessionid", 
lensSessionId).request(mt)
   .get(LensQuery.class);
 QueryStatus stat = ctx.getStatus();
 while (!stat.finished()) {
-  ctx = target.path(handle.toString()).queryParam("sessionid", 
lensSessionId).request().get(LensQuery.class);
+  ctx = target.path(handle.toString()).queryParam("sessionid", 
lensSessionId).request(mt).get(LensQuery.class);
   stat = ctx.getStatus();
   Thread.sleep(1000);
 }
@@ -112,13 +113,13 @@ public final class LensServerTestUtil {
 assertTrue(ctx.getFinishTime() > 0, debugHelpMsg);
   }
 
-  public static void createTable(String tblName, WebTarget parent, 
LensSessionHandle lensSessionId)
+  public static void createTable(String tblName, WebTarget parent, 
LensSessionHandle lensSessionId, MediaType mt)
 throws InterruptedException {
-createTable(tblName, parent, lensSessionId, "(ID INT, IDSTR STRING)");
+createTable(tblName, parent, lensSessionId, "(ID INT, IDSTR STRING)", mt);
   }
 
   public static void loadData(String tblName, final String testDataFile, 
WebTarget parent,
-  LensSessionHandle lensSessionId) throws InterruptedException {
+  LensSessionHandle lensSessionId, MediaType mt) throws 
InterruptedException {
 LensConf conf = new LensConf();
 conf.addProperty(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, 
"false");
 final WebTarget target = parent.path("queryapi/queries");
@@ -127,21 +128,21 @@ public final class LensServerTestUtil {
 String dataLoad = "LOAD DATA LOCAL INPATH '" + testDataFile + "' OVERWRITE 
INTO TABLE " + tblName;
 
 mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), 
lensSessionId,
-MediaType.APPLICATION_XML_TYPE));
+mt));
 mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("query").build(), dataLoad));
 mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("operation").build(), 
"execute"));
 mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("conf").fileName("conf").build(),
 conf,
-MediaType.APPLICATION_XML_TYPE));
+mt));
 
-final QueryHandle handle = target.request().post(Entity.entity(mp, 
MediaType.MULTIPART_FORM_DATA_TYPE),
+final QueryHandle handle = target.request(mt).post(Entity.entity(mp, 
MediaType.MULTIPART_FORM_DATA_TYPE),
 new GenericType() {}).getData();
 
 // wait till the query finishes
-LensQuery ctx = target.path(handle.toString()).queryParam("sessionid", 
lensSessionId).request()
+LensQuery ctx = target.path(handle.toString()).queryParam("sessionid", 
lensSessionId).request(mt)
 .get(LensQuery.class);
 QueryStatus stat 

lens git commit: Updated version to 2.6.0-beta-SNAPSHOT

2016-02-03 Thread deepakbarr
Repository: lens
Updated Branches:
  refs/heads/master 15396047b -> f88cf9bc3


Updated version to 2.6.0-beta-SNAPSHOT


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

Branch: refs/heads/master
Commit: f88cf9bc3ca21bca52125b6dc32f3b5b38cf3c05
Parents: 1539604
Author: Deepak Barr 
Authored: Wed Feb 3 17:49:31 2016 +0530
Committer: Deepak Kumar Barr 
Committed: Wed Feb 3 17:49:31 2016 +0530

--
 checkstyle/pom.xml | 2 +-
 lens-api/pom.xml   | 2 +-
 lens-cli/pom.xml   | 2 +-
 lens-client/pom.xml| 2 +-
 lens-cube/pom.xml  | 2 +-
 lens-dist/pom.xml  | 2 +-
 lens-docker/lens-test/Dockerfile   | 2 +-
 lens-docker/lens-test/lens-bootstrap.sh| 2 +-
 lens-driver-es/pom.xml | 2 +-
 lens-driver-hive/pom.xml   | 2 +-
 lens-driver-jdbc/pom.xml   | 2 +-
 lens-examples/pom.xml  | 2 +-
 lens-ml-dist/pom.xml   | 2 +-
 lens-ml-lib/pom.xml| 2 +-
 lens-query-lib/pom.xml | 2 +-
 lens-regression/pom.xml| 2 +-
 lens-server-api/pom.xml| 2 +-
 lens-server/pom.xml| 2 +-
 lens-ship-jars/pom.xml | 2 +-
 lens-storage-db/pom.xml| 2 +-
 lens-ui/pom.xml| 2 +-
 pom.xml| 6 +++---
 .../server/drivers/hive/hive1/hivedriver-site.xml  | 2 +-
 23 files changed, 25 insertions(+), 25 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/f88cf9bc/checkstyle/pom.xml
--
diff --git a/checkstyle/pom.xml b/checkstyle/pom.xml
index 2b3eda0..f680560 100644
--- a/checkstyle/pom.xml
+++ b/checkstyle/pom.xml
@@ -29,7 +29,7 @@
   org.apache.lens
   checkstyle
   Lens Checkstyle Rules
-  2.5.0-beta-SNAPSHOT
+  2.6.0-beta-SNAPSHOT
 
   
 

http://git-wip-us.apache.org/repos/asf/lens/blob/f88cf9bc/lens-api/pom.xml
--
diff --git a/lens-api/pom.xml b/lens-api/pom.xml
index 1704b62..e4a89ff 100644
--- a/lens-api/pom.xml
+++ b/lens-api/pom.xml
@@ -25,7 +25,7 @@
   
 apache-lens
 org.apache.lens
-2.5.0-beta-SNAPSHOT
+2.6.0-beta-SNAPSHOT
   
 
   lens-api

http://git-wip-us.apache.org/repos/asf/lens/blob/f88cf9bc/lens-cli/pom.xml
--
diff --git a/lens-cli/pom.xml b/lens-cli/pom.xml
index 9082417..bfa6f06 100644
--- a/lens-cli/pom.xml
+++ b/lens-cli/pom.xml
@@ -26,7 +26,7 @@
   
 apache-lens
 org.apache.lens
-2.5.0-beta-SNAPSHOT
+2.6.0-beta-SNAPSHOT
   
 
   

http://git-wip-us.apache.org/repos/asf/lens/blob/f88cf9bc/lens-client/pom.xml
--
diff --git a/lens-client/pom.xml b/lens-client/pom.xml
index 5f2f3a9..4fd01fb 100644
--- a/lens-client/pom.xml
+++ b/lens-client/pom.xml
@@ -24,7 +24,7 @@
   
 apache-lens
 org.apache.lens
-2.5.0-beta-SNAPSHOT
+2.6.0-beta-SNAPSHOT
   
 
   lens-client

http://git-wip-us.apache.org/repos/asf/lens/blob/f88cf9bc/lens-cube/pom.xml
--
diff --git a/lens-cube/pom.xml b/lens-cube/pom.xml
index 0212725..0533f44 100644
--- a/lens-cube/pom.xml
+++ b/lens-cube/pom.xml
@@ -26,7 +26,7 @@
   
 apache-lens
 org.apache.lens
-2.5.0-beta-SNAPSHOT
+2.6.0-beta-SNAPSHOT
   
 
   lens-cube

http://git-wip-us.apache.org/repos/asf/lens/blob/f88cf9bc/lens-dist/pom.xml
--
diff --git a/lens-dist/pom.xml b/lens-dist/pom.xml
index f987438..2e180ac 100644
--- a/lens-dist/pom.xml
+++ b/lens-dist/pom.xml
@@ -26,7 +26,7 @@
   
 apache-lens
 org.apache.lens
-2.5.0-beta-SNAPSHOT
+2.6.0-beta-SNAPSHOT
   
 
   lens-dist


[18/51] [abbrv] lens git commit: LENS-896 : Fix setting of baseurl on jdbc client

2016-02-03 Thread deepakbarr
LENS-896 : Fix setting of baseurl on jdbc client


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

Branch: refs/heads/current-release-line
Commit: d5e923e25b00c4f718d971706cac916dcafd5a72
Parents: fdf04be
Author: Piyush 
Authored: Thu Jan 7 11:53:52 2016 +0530
Committer: Amareshwari Sriramadasu 
Committed: Thu Jan 7 11:53:52 2016 +0530

--
 .../java/org/apache/lens/client/jdbc/JDBCUtils.java | 16 +++-
 .../org/apache/lens/jdbc/JDBCUrlParserTest.java |  7 +++
 2 files changed, 14 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/d5e923e2/lens-client/src/main/java/org/apache/lens/client/jdbc/JDBCUtils.java
--
diff --git 
a/lens-client/src/main/java/org/apache/lens/client/jdbc/JDBCUtils.java 
b/lens-client/src/main/java/org/apache/lens/client/jdbc/JDBCUtils.java
index 34448d3..4c32610 100644
--- a/lens-client/src/main/java/org/apache/lens/client/jdbc/JDBCUtils.java
+++ b/lens-client/src/main/java/org/apache/lens/client/jdbc/JDBCUtils.java
@@ -32,6 +32,9 @@ import java.util.jar.Manifest;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import javax.ws.rs.core.UriBuilder;
+
+import org.apache.lens.client.LensClientConfig;
 import org.apache.lens.client.LensConnectionParams;
 
 /**
@@ -97,11 +100,6 @@ public final class JDBCUtils {
 }
 
 URI jdbcUri = URI.create(uri.substring(URI_JDBC_PREFIX.length()));
-
-/*
- * if (jdbcUri.getHost() != null) { params.setHost(jdbcUri.getHost()); } 
if (jdbcUri.getPort() > 0) {
- * params.setPort(jdbcUri.getPort()); }
- */
 Pattern pattern = Pattern.compile(KEY_VALUE_REGEX);
 // dbname and session settings
 String sessVars = jdbcUri.getPath();
@@ -145,6 +143,14 @@ public final class JDBCUtils {
 params.getLensVars().put(varMatcher.group(1), varMatcher.group(2));
   }
 }
+UriBuilder baseUriBuilder = 
UriBuilder.fromUri(LensClientConfig.DEFAULT_SERVER_BASE_URL);
+if (jdbcUri.getHost() != null) {
+  baseUriBuilder.host(jdbcUri.getHost());
+}
+if (jdbcUri.getPort() != -1) {
+  baseUriBuilder.port(jdbcUri.getPort());
+}
+params.setBaseUrl(baseUriBuilder.build().toString());
 return params;
   }
 

http://git-wip-us.apache.org/repos/asf/lens/blob/d5e923e2/lens-client/src/test/java/org/apache/lens/jdbc/JDBCUrlParserTest.java
--
diff --git 
a/lens-client/src/test/java/org/apache/lens/jdbc/JDBCUrlParserTest.java 
b/lens-client/src/test/java/org/apache/lens/jdbc/JDBCUrlParserTest.java
index 3c97878..c8b51b9 100644
--- a/lens-client/src/test/java/org/apache/lens/jdbc/JDBCUrlParserTest.java
+++ b/lens-client/src/test/java/org/apache/lens/jdbc/JDBCUrlParserTest.java
@@ -78,10 +78,9 @@ public class JDBCUrlParserTest {
   public void testJDBCWithCustomHostAndPortAndDB() {
 String uri = "jdbc:lens://myhost:9000/mydb";
 LensConnectionParams params = JDBCUtils.parseUrl(uri);
-// Assert.assertEquals( "myhost",
-// params.getHost(),"The host name should be myhost");
-// Assert.assertEquals( 9000, params.getPort(),"The port should be 9000");
-Assert.assertEquals("mydb", params.getDbName(), "The database should be 
mydb");
+Assert.assertEquals(params.getBaseConnectionUrl(), 
"http://myhost:9000/lensapi;,
+  "The base url  should be http://myhost:9000/lensapi;);
+Assert.assertEquals(params.getDbName(), "mydb", "The database should be 
mydb");
 Assert.assertTrue(params.getSessionVars().isEmpty(), "Session Variable 
list should be empty");
 Assert.assertTrue(params.getLensConfs().isEmpty(), "The conf list should 
be empty");
 Assert.assertTrue(params.getLensVars().isEmpty(), "The lens var list 
should be empty");



[07/51] [abbrv] lens git commit: LENS-270 : The exception thrown for no candidate fact should contain only brief error

2016-02-03 Thread deepakbarr
LENS-270 : The exception thrown for no candidate fact should contain only brief 
error


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

Branch: refs/heads/current-release-line
Commit: 36166a2e58a2a89bd97dc8595cb7920fbf4253d8
Parents: bf4c0be
Author: Sushil Mohanty 
Authored: Mon Dec 14 09:57:45 2015 +0530
Committer: Amareshwari Sriramadasu 
Committed: Mon Dec 14 09:57:45 2015 +0530

--
 .../NoCandidateFactAvailableException.java  | 48 
 .../lens/cube/parse/CubeQueryContext.java   |  4 +-
 .../org/apache/lens/cube/parse/PruneCauses.java | 12 +
 .../lens/cube/parse/TestBaseCubeQueries.java| 19 +++-
 .../lens/cube/parse/TestCubeRewriter.java   |  7 ++-
 .../cube/parse/TestDenormalizationResolver.java |  4 +-
 .../lens/cube/parse/TestTimeRangeResolver.java  |  4 +-
 7 files changed, 91 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/36166a2e/lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java
 
b/lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java
new file mode 100644
index 000..b2568ff
--- /dev/null
+++ 
b/lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java
@@ -0,0 +1,48 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.lens.cube.error;
+
+import org.apache.lens.cube.metadata.CubeFactTable;
+import org.apache.lens.cube.parse.PruneCauses;
+import org.apache.lens.server.api.error.LensException;
+
+
+public class NoCandidateFactAvailableException extends LensException {
+
+  private final PruneCauses briefAndDetailedError;
+
+  public NoCandidateFactAvailableException(PruneCauses 
briefAndDetailedError) {
+super(LensCubeErrorCode.NO_CANDIDATE_FACT_AVAILABLE.getLensErrorInfo(), 
briefAndDetailedError.getBriefCause());
+this.briefAndDetailedError = briefAndDetailedError;
+  }
+
+  public PruneCauses.BriefAndDetailedError getJsonMessage() {
+return briefAndDetailedError.toJsonObject();
+  }
+
+  @Override
+  public int compareTo(LensException e) {
+//Compare the max CandidateTablePruneCode coming from different instances.
+if (e instanceof NoCandidateFactAvailableException) {
+  return briefAndDetailedError.getMaxCause().compareTo(
+   ((NoCandidateFactAvailableException) 
e).briefAndDetailedError.getMaxCause());
+}
+return super.compareTo(e);
+  }
+}

http://git-wip-us.apache.org/repos/asf/lens/blob/36166a2e/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
index cf114c9..f75a6b9 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
@@ -32,6 +32,7 @@ import java.io.IOException;
 import java.util.*;
 
 import org.apache.lens.cube.error.LensCubeErrorCode;
+import org.apache.lens.cube.error.NoCandidateFactAvailableException;
 import org.apache.lens.cube.metadata.*;
 import 
org.apache.lens.cube.parse.CandidateTablePruneCause.CandidateTablePruneCode;
 import org.apache.lens.server.api.error.LensException;
@@ -845,7 +846,8 @@ public class CubeQueryContext implements 
TrackQueriedColumns {
 }
   }
 }
-throw new 
LensException(LensCubeErrorCode.NO_CANDIDATE_FACT_AVAILABLE.getLensErrorInfo(), 
reason);
+log.error("Query rewrite failed 

[33/51] [abbrv] lens git commit: LENS-926 : Fixes Chain ref column from bridge table to be resolved correctly

2016-02-03 Thread deepakbarr
LENS-926 : Fixes Chain ref column from bridge table to be resolved correctly


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

Branch: refs/heads/current-release-line
Commit: 91ccec775bfff7732da41b6a6d13e01752750f7f
Parents: 5d2dccb
Author: Amareshwari Sriramadasu 
Authored: Thu Jan 21 17:43:26 2016 +0530
Committer: Rajat Khandelwal 
Committed: Thu Jan 21 17:43:26 2016 +0530

--
 .../cube/parse/DenormalizationResolver.java |  46 +--
 .../lens/cube/parse/join/AutoJoinContext.java   |   2 +-
 .../apache/lens/cube/parse/CubeTestSetup.java   |  20 +-
 .../lens/cube/parse/TestBridgeTableQueries.java | 293 +++
 .../lens/cube/parse/TestCubeRewriter.java   |   3 +-
 .../lens/cube/parse/TestJoinResolver.java   | 225 ++
 6 files changed, 354 insertions(+), 235 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/91ccec77/lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java
 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java
index c83b9ac..f2dc2e5 100644
--- 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java
+++ 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java
@@ -37,6 +37,7 @@ import org.apache.hadoop.hive.ql.parse.HiveParser;
 
 import org.antlr.runtime.CommonToken;
 
+import lombok.Getter;
 import lombok.ToString;
 import lombok.extern.slf4j.Slf4j;
 
@@ -67,14 +68,13 @@ public class DenormalizationResolver implements 
ContextRewriter {
 
   @ToString
   public static class PickedReference {
-TableReference reference;
+@Getter
 ChainRefCol chainRef;
 String srcAlias;
 String pickedFor;
 
-PickedReference(TableReference reference, String srcAlias, String 
pickedFor) {
+PickedReference(String srcAlias, String pickedFor) {
   this.srcAlias = srcAlias;
-  this.reference = reference;
   this.pickedFor = pickedFor;
 }
 
@@ -83,38 +83,22 @@ public class DenormalizationResolver implements 
ContextRewriter {
   this.chainRef = chainRef;
   this.pickedFor = pickedFor;
 }
-
-String getDestTable() {
-  if (chainRef != null) {
-return chainRef.getChainName();
-  }
-  return reference.getDestTable();
-}
-
-String getRefColumn() {
-  if (chainRef != null) {
-return chainRef.getRefColumn();
-  }
-  return reference.getDestColumn();
-}
   }
 
   public static class DenormalizationContext {
 // map of column name to all references
-private Map referencedCols =
-  new HashMap();
+private Map referencedCols = new 
HashMap<>();
 
 // candidate table name to all the references columns it needs
-private Map tableToRefCols =
-  new HashMap();
+private Map tableToRefCols = new 
HashMap<>();
 
 private CubeQueryContext cubeql;
 
 // set of all picked references once all candidate tables are picked
-private Set pickedRefs = new HashSet();
+private Set pickedRefs = new HashSet<>();
 // index on column name for picked references with map from column name to
 // pickedrefs
-private Map pickedReferences = new 
HashMap();
+private Map pickedReferences = new 
HashMap<>();
 
 DenormalizationContext(CubeQueryContext cubeql) {
   this.cubeql = cubeql;
@@ -123,7 +107,7 @@ public class DenormalizationResolver implements 
ContextRewriter {
 void addReferencedCol(String col, ReferencedQueriedColumn refer) {
   Set refCols = referencedCols.get(col);
   if (refCols == null) {
-refCols = new HashSet();
+refCols = new HashSet<>();
 referencedCols.put(col, refCols);
   }
   refCols.add(refer);
@@ -144,7 +128,7 @@ public class DenormalizationResolver implements 
ContextRewriter {
 log.info("Adding denormalized column for column:{} for table:{}", 
col, table);
 Set refCols = 
tableToRefCols.get(table.getName());
 if (refCols == null) {
-  refCols = new HashSet();
+  refCols = new HashSet<>();
   tableToRefCols.put(table.getName(), refCols);
 }
 refCols.add(refer);
@@ -167,7 +151,7 @@ public class DenormalizationResolver implements 
ContextRewriter {
 private void addPickedReference(String col, 

[20/51] [abbrv] lens git commit: LENS-719 : Fix setting start time for a fact's storage/update period

2016-02-03 Thread deepakbarr
LENS-719 : Fix setting start time for a fact's storage/update period


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

Branch: refs/heads/current-release-line
Commit: 71cf9ffd0a63b289dda09d541d0932d6feb9
Parents: 1b475f2
Author: Rajat Khandelwal 
Authored: Fri Jan 8 14:55:58 2016 +0530
Committer: Amareshwari Sriramadasu 
Committed: Fri Jan 8 14:55:58 2016 +0530

--
 .../lens/cube/metadata/CubeMetastoreClient.java | 31 
 .../lens/cube/parse/StorageTableResolver.java   | 28 +-
 .../cube/metadata/TestCubeMetastoreClient.java  | 21 +
 3 files changed, 53 insertions(+), 27 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/71cf9ffd/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeMetastoreClient.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeMetastoreClient.java
 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeMetastoreClient.java
index e7550ca..ae0fb90 100644
--- 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeMetastoreClient.java
+++ 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeMetastoreClient.java
@@ -19,6 +19,7 @@
 
 package org.apache.lens.cube.metadata;
 
+import static org.apache.lens.cube.metadata.DateUtil.resolveDate;
 import static org.apache.lens.cube.metadata.MetastoreUtil.*;
 
 import java.text.ParseException;
@@ -2162,4 +2163,34 @@ public class CubeMetastoreClient {
   throw new HiveException(dimTableName + " is not a dimension table");
 }
   }
+  public boolean isStorageTableCandidateForRange(String storageTableName, Date 
fromDate, Date toDate) throws
+HiveException, LensException {
+Date now = new Date();
+String startProperty = 
getTable(storageTableName).getProperty(getStoragetableStartTimesKey());
+if (StringUtils.isNotBlank(startProperty)) {
+  for (String timeStr : startProperty.split("\\s*,\\s*")) {
+if (fromDate.before(resolveDate(timeStr, now))) {
+  log.info("from date {} is before validity start time: {}, hence 
discarding {}",
+fromDate, timeStr, storageTableName);
+  return false;
+}
+  }
+}
+String endProperty = 
getTable(storageTableName).getProperty(getStoragetableEndTimesKey());
+if (StringUtils.isNotBlank(endProperty)) {
+  for (String timeStr : endProperty.split("\\s*,\\s*")) {
+if (toDate.after(resolveDate(timeStr, now))) {
+  log.info("to date {} is after validity end time: {}, hence 
discarding {}",
+toDate, timeStr, storageTableName);
+  return false;
+}
+  }
+}
+return true;
+  }
+  public boolean isStorageTableCandidateForRange(String storageTableName, 
String fromDate, String toDate) throws
+HiveException, LensException {
+Date now = new Date();
+return isStorageTableCandidateForRange(storageTableName, 
resolveDate(fromDate, now), resolveDate(toDate, now));
+  }
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/71cf9ffd/lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java
index 14def15..de5f95e 100644
--- 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java
+++ 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java
@@ -565,7 +565,7 @@ class StorageTableResolver implements ContextRewriter {
 Iterator it = storageTbls.iterator();
 while (it.hasNext()) {
   String storageTableName = it.next();
-  if (!isStorageTableCandidateForRange(storageTableName, fromDate, 
toDate)) {
+  if (!client.isStorageTableCandidateForRange(storageTableName, fromDate, 
toDate)) {
 skipStorageCauses.put(storageTableName, new 
SkipStorageCause(RANGE_NOT_ANSWERABLE));
 it.remove();
   } else if (!client.partColExists(storageTableName, partCol)) {
@@ -685,32 +685,6 @@ class StorageTableResolver implements ContextRewriter {
 updatePeriods, addNonExistingParts, failOnPartialData, 
skipStorageCauses, missingPartitions);
   }
 
-  private boolean isStorageTableCandidateForRange(String storageTableName, 
Date fromDate, Date toDate) throws
-HiveException, LensException {
-Date now = new Date();
-String startProperty = 

[24/51] [abbrv] lens git commit: LENS-735 : Remove accepting TableReferences for ReferenceDimAttribute

2016-02-03 Thread deepakbarr
http://git-wip-us.apache.org/repos/asf/lens/blob/908530f5/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
--
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
index 61fb73c..4810559 100644
--- a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
+++ b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
@@ -135,7 +135,7 @@ public class TestCubeRewriter extends TestQueryRewrite {
   @Test
   public void testCubeQuery() throws Exception {
 CubeQueryContext rewrittenQuery =
-  rewriteCtx("cube select" + " SUM(msr2) from testCube where " + 
TWO_DAYS_RANGE, getConfWithStorages("C2"));
+  rewriteCtx("cube select SUM(msr2) from testCube where " + 
TWO_DAYS_RANGE, getConfWithStorages("C2"));
 String expected =
   getExpectedQuery(TEST_CUBE_NAME, "select sum(testcube.msr2) FROM ", 
null, null,
 getWhereForDailyAndHourly2days(TEST_CUBE_NAME, "C2_testfact"));
@@ -151,7 +151,7 @@ public class TestCubeRewriter extends TestQueryRewrite {
 conf.setBoolean(CubeQueryConfUtil.FAIL_QUERY_ON_PARTIAL_DATA, false);
 conf.set(DRIVER_SUPPORTED_STORAGES, "C1,C2,C4");
 CubeQueryContext cubeQueryContext =
-  rewriteCtx("cube select" + " SUM(msr2) from testCube where " + 
THIS_YEAR_RANGE, conf);
+  rewriteCtx("cube select SUM(msr2) from testCube where " + 
THIS_YEAR_RANGE, conf);
 PruneCauses pruneCause = 
cubeQueryContext.getFactPruningMsgs();
 int lessDataCauses = 0;
 for (Map.Entry entry : 
pruneCause.entrySet()) {
@@ -167,7 +167,7 @@ public class TestCubeRewriter extends TestQueryRewrite {
   @Test
   public void testLightestFactFirst() throws Exception {
 // testFact is lighter than testFact2.
-String hqlQuery = rewrite("cube select" + " SUM(msr2) from testCube where 
" + TWO_DAYS_RANGE, getConfWithStorages(
+String hqlQuery = rewrite("cube select SUM(msr2) from testCube where " + 
TWO_DAYS_RANGE, getConfWithStorages(
   "C2"));
 String expected =
   getExpectedQuery(TEST_CUBE_NAME, "select sum(testcube.msr2) FROM ", 
null, null,
@@ -202,7 +202,7 @@ public class TestCubeRewriter extends TestQueryRewrite {
   @Test
   public void testDerivedCube() throws ParseException, LensException, 
HiveException, ClassNotFoundException {
 CubeQueryContext rewrittenQuery =
-  rewriteCtx("cube select" + " SUM(msr2) from derivedCube where " + 
TWO_DAYS_RANGE, getConfWithStorages("C2"));
+  rewriteCtx("cube select SUM(msr2) from derivedCube where " + 
TWO_DAYS_RANGE, getConfWithStorages("C2"));
 String expected =
   getExpectedQuery(DERIVED_CUBE_NAME, "select sum(derivedCube.msr2) FROM 
", null, null,
 getWhereForDailyAndHourly2days(DERIVED_CUBE_NAME, "C2_testfact"));
@@ -211,7 +211,7 @@ public class TestCubeRewriter extends TestQueryRewrite {
 assertNotNull(rewrittenQuery.getNonExistingParts());
 
 LensException th = getLensExceptionInRewrite(
-  "select SUM(msr4) from derivedCube" + " where " + TWO_DAYS_RANGE, 
getConf());
+  "select SUM(msr4) from derivedCube where " + TWO_DAYS_RANGE, getConf());
 assertEquals(th.getErrorCode(), 
LensCubeErrorCode.COLUMN_NOT_FOUND.getLensErrorInfo().getErrorCode());
 
 // test join
@@ -219,27 +219,28 @@ public class TestCubeRewriter extends TestQueryRewrite {
 conf.setBoolean(DISABLE_AUTO_JOINS, false);
 String hqlQuery;
 
-hqlQuery = rewrite("cube select" + " testdim2.name, SUM(msr2) from 
derivedCube where " + TWO_DAYS_RANGE, conf);
+/*
+Accessing join chains from derived cubes are not supported yet.
+hqlQuery = rewrite("cube select dim2chain.name, SUM(msr2) from derivedCube 
where " + TWO_DAYS_RANGE, conf);
 expected =
-  getExpectedQuery(DERIVED_CUBE_NAME, "select testdim2.name, 
sum(derivedCube.msr2) FROM ", " JOIN "
-  + getDbName() + "c1_testdim2tbl testdim2 ON derivedCube.dim2 = "
-  + " testdim2.id and (testdim2.dt = 'latest') ", null, "group by 
(testdim2.name)", null,
+  getExpectedQuery(DERIVED_CUBE_NAME, "select dim2chain.name, 
sum(derivedCube.msr2) FROM ", " JOIN "
+  + getDbName() + "c1_testdim2tbl dim2chain ON derivedCube.dim2 = "
+  + " dim2chain.id and (dim2chain.dt = 'latest') ", null, "group by 
(dim2chain.name)", null,
 getWhereForDailyAndHourly2days(DERIVED_CUBE_NAME, "c1_summary2"));
 compareQueries(hqlQuery, expected);
 
 // Test that explicit join query passes with join resolver disabled
 conf.setBoolean(DISABLE_AUTO_JOINS, true);
-List joinWhereConds = new ArrayList();
-joinWhereConds.add(StorageUtil.getWherePartClause("dt", "testdim2", 
StorageConstants.getPartitionsForLatest()));
 hqlQuery =
-  rewrite("cube select" + " testdim2.name, SUM(msr2) from derivedCube "
-+ " inner 

[15/51] [abbrv] lens git commit: LENS-836: Query commands in CLI should take default value for query handle as the last executed query

2016-02-03 Thread deepakbarr
LENS-836: Query commands in CLI should take default value for query handle as 
the last executed query


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

Branch: refs/heads/current-release-line
Commit: 7a89db13e74984de81d840dc015c4ba59471d785
Parents: 04f5a82
Author: Rajat Khandelwal 
Authored: Thu Dec 24 13:19:12 2015 +0530
Committer: Rajat Khandelwal 
Committed: Thu Dec 24 13:19:12 2015 +0530

--
 .../lens/cli/commands/LensQueryCommands.java| 76 
 .../apache/lens/cli/TestLensQueryCommands.java  |  7 +-
 .../java/org/apache/lens/client/LensClient.java |  9 +--
 .../org/apache/lens/client/LensStatement.java   | 12 +---
 src/site/apt/user/cli.apt   | 10 +--
 5 files changed, 62 insertions(+), 52 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/7a89db13/lens-cli/src/main/java/org/apache/lens/cli/commands/LensQueryCommands.java
--
diff --git 
a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensQueryCommands.java 
b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensQueryCommands.java
index e3c08ff..a29600d 100644
--- a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensQueryCommands.java
+++ b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensQueryCommands.java
@@ -61,6 +61,8 @@ import com.google.common.base.Joiner;
 + "  <<>>,\n"
 + "  will be parsed as <<>>")
 public class LensQueryCommands extends BaseLensCommand {
+  private static final String DEFAULT_QUERY_HANDLE_DESCRIPTION =
+"If not provided, takes last query handle interacted with.";
 
   /**
* Execute query.
@@ -110,7 +112,6 @@ public class LensQueryCommands extends BaseLensCommand {
*/
   private String formatResultSet(LensClient.LensClientResultSetWithStats rs) {
 StringBuilder b = new StringBuilder();
-int numRows = 0;
 if (rs.getResultSet() != null) {
   QueryResultSetMetadata resultSetMetadata = 
rs.getResultSet().getResultSetMetadata();
   for (ResultColumn column : resultSetMetadata.getColumns()) {
@@ -125,7 +126,7 @@ public class LensQueryCommands extends BaseLensCommand {
 PersistentQueryResult temp = (PersistentQueryResult) r;
 b.append("Results of query stored at : 
").append(temp.getPersistedURI()).append("  ");
 if (null != temp.getNumRows()) {
-  b.append(temp.getNumRows() + " rows ");
+  b.append(temp.getNumRows()).append(" rows ");
 }
   }
 }
@@ -139,20 +140,33 @@ public class LensQueryCommands extends BaseLensCommand {
 return b.toString();
   }
 
+  public String getOrDefaultQueryHandleString(String queryHandleString) {
+if (queryHandleString != null) {
+  return queryHandleString;
+}
+if (getClient().getStatement().getQuery() != null) {
+  return getClient().getStatement().getQueryHandleString();
+}
+throw new IllegalArgumentException("Query handle not provided and no 
queries interacted with in the session.");
+  }
+
   /**
* Gets the status.
*
* @param qh the qh
* @return the status
*/
-  @CliCommand(value = "query status", help = "Fetch status of executed query 
having query handle ")
+  @CliCommand(value = "query status",
+help = "Fetch status of executed query having query handle . 
" + DEFAULT_QUERY_HANDLE_DESCRIPTION)
   public String getStatus(
-@CliOption(key = {"", "query_handle"}, mandatory = true, help = 
"") String qh) {
-QueryStatus status = getClient().getQueryStatus(new 
QueryHandle(UUID.fromString(qh)));
+@CliOption(key = {"", "query_handle"}, mandatory = false, help = 
"") String qh) {
+qh = getOrDefaultQueryHandleString(qh);
+QueryHandle handle = QueryHandle.fromString(qh);
+QueryStatus status = getClient().getQueryStatus(handle);
 if (status == null) {
-  return "Unable to find status for " + qh;
+  return "Unable to find status for " + handle;
 }
-return status.toString();
+return "Query Handle: " + qh + "\n" + status.toString();
   }
 
   /**
@@ -161,15 +175,15 @@ public class LensQueryCommands extends BaseLensCommand {
* @param qh the qh
* @return the query
*/
-  @CliCommand(value = "query details", help = "Get query details of query with 
handle ")
+  @CliCommand(value = "query details",
+help = "Get query details of query with handle ." + 
DEFAULT_QUERY_HANDLE_DESCRIPTION)
   public String getDetails(
-@CliOption(key = {"", "query_handle"}, mandatory = true, help
-  = "") String qh) {
+@CliOption(key = {"", "query_handle"}, mandatory = false, help = 
"") 

[28/51] [abbrv] lens git commit: LENS-735 : Remove accepting TableReferences for ReferenceDimAttribute

2016-02-03 Thread deepakbarr
LENS-735 : Remove accepting TableReferences for ReferenceDimAttribute


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

Branch: refs/heads/current-release-line
Commit: 908530f5883ae8844c6a16cb5564c926cc10bf19
Parents: c73d584
Author: Amareshwari Sriramadasu 
Authored: Mon Jan 11 13:24:32 2016 +0530
Committer: Rajat Khandelwal 
Committed: Mon Jan 11 13:24:33 2016 +0530

--
 lens-api/src/main/resources/cube-0.1.xsd|  36 +-
 lens-api/src/main/resources/lens-errors.conf|  11 +-
 .../lens/cli/TestLensDimensionCommands.java |  28 +-
 .../resources/cube_with_no_weight_facts.xml |   8 +-
 lens-cli/src/test/resources/sample-cube.xml |  14 +-
 lens-cli/src/test/resources/test-dimension.xml  |  22 +-
 .../lens/cube/error/LensCubeErrorCode.java  |   6 +-
 .../lens/cube/metadata/AbstractBaseTable.java   |  53 +-
 .../lens/cube/metadata/AbstractCubeTable.java   |  26 +-
 .../org/apache/lens/cube/metadata/Cube.java | 111 ++-
 .../apache/lens/cube/metadata/CubeColumn.java   |   1 -
 .../lens/cube/metadata/CubeDimensionTable.java  |  21 +-
 .../lens/cube/metadata/CubeFactTable.java   |  15 +-
 .../lens/cube/metadata/CubeMetastoreClient.java |  11 +-
 .../apache/lens/cube/metadata/DerivedCube.java  |  31 +-
 .../apache/lens/cube/metadata/Dimension.java|  20 +-
 .../apache/lens/cube/metadata/JoinChain.java|  16 +-
 .../cube/metadata/ReferencedDimAtrribute.java   | 195 -
 .../cube/metadata/ReferencedDimAttribute.java   | 115 +++
 .../apache/lens/cube/metadata/SchemaGraph.java  | 377 -
 .../lens/cube/metadata/join/JoinPath.java   | 101 +++
 .../cube/metadata/join/TableRelationship.java   |  46 +
 .../apache/lens/cube/parse/AutoJoinContext.java | 760 -
 .../apache/lens/cube/parse/CandidateDim.java|  16 +-
 .../lens/cube/parse/CubeQueryContext.java   |  94 +--
 .../cube/parse/DenormalizationResolver.java |  74 +-
 .../apache/lens/cube/parse/DimHQLContext.java   |   4 +-
 .../apache/lens/cube/parse/FieldValidator.java  |   9 +-
 .../org/apache/lens/cube/parse/HQLParser.java   |   2 +-
 .../org/apache/lens/cube/parse/JoinClause.java  | 144 
 .../apache/lens/cube/parse/JoinResolver.java| 262 +-
 .../org/apache/lens/cube/parse/JoinTree.java| 164 
 .../org/apache/lens/cube/parse/StorageUtil.java |   8 +-
 .../lens/cube/parse/TimerangeResolver.java  |  10 +-
 .../lens/cube/parse/join/AutoJoinContext.java   | 719 
 .../apache/lens/cube/parse/join/JoinClause.java | 139 +++
 .../apache/lens/cube/parse/join/JoinTree.java   | 164 
 .../apache/lens/cube/parse/join/JoinUtils.java  |  49 ++
 .../cube/metadata/TestCubeMetastoreClient.java  | 284 +--
 .../apache/lens/cube/parse/CubeTestSetup.java   | 843 ++-
 .../FieldsCannotBeQueriedTogetherTest.java  |  11 +-
 .../lens/cube/parse/TestBaseCubeQueries.java|  26 +-
 .../lens/cube/parse/TestCubeRewriter.java   | 279 +++---
 .../cube/parse/TestDenormalizationResolver.java | 140 +--
 .../lens/cube/parse/TestExpressionContext.java  |  20 +-
 .../lens/cube/parse/TestExpressionResolver.java | 102 +--
 .../lens/cube/parse/TestJoinResolver.java   | 534 +---
 .../lens/cube/parse/TestQueryRewrite.java   |  10 +
 .../lens/cube/parse/TestRewriterPlan.java   |  10 +-
 .../parse/TestTimeRangeWriterWithQuery.java |  53 +-
 .../src/main/resources/cube-queries.sql |  74 +-
 lens-examples/src/main/resources/customer.xml   |   4 +-
 .../src/main/resources/dimension-queries.sql|  14 +-
 lens-examples/src/main/resources/sales-cube.xml |  12 +-
 .../src/main/resources/sample-cube.xml  |  21 +-
 .../main/resources/sample-db-only-dimension.xml |  24 +-
 .../src/main/resources/sample-dimension.xml |  24 +-
 .../apache/lens/server/metastore/JAXBUtils.java |  54 +-
 .../server/metastore/TestMetastoreService.java  |  17 +-
 .../apache/lens/storage/db/TestDBStorage.java   |  11 +-
 60 files changed, 3156 insertions(+), 3293 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/908530f5/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 4092133..d195b08 100644
--- a/lens-api/src/main/resources/cube-0.1.xsd
+++ b/lens-api/src/main/resources/cube-0.1.xsd
@@ -393,25 +393,13 @@
 
   
 
-  
+  
 
   
-Reference specifiction needs to be specified if the attribute 
is a reference attribute. It
- 

[04/51] [abbrv] lens git commit: LENS-885: Cleanup of Cube test cases

2016-02-03 Thread deepakbarr
LENS-885: Cleanup of Cube test cases


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

Branch: refs/heads/current-release-line
Commit: 7c7c86daed2e9907bda92f5ed29e73ed99a9a726
Parents: 7e9e47e
Author: Rajat Khandelwal 
Authored: Fri Dec 11 18:40:59 2015 +0530
Committer: Rajat Khandelwal 
Committed: Fri Dec 11 18:41:00 2015 +0530

--
 .../apache/lens/cube/metadata/CubeColumn.java   |   1 -
 .../lens/cube/metadata/CubeFactTable.java   |   1 -
 .../org/apache/lens/cube/metadata/DateUtil.java | 396 
 .../lens/cube/metadata/TimePartitionRange.java  |   1 -
 .../apache/lens/cube/metadata/TimeRange.java| 219 +
 .../apache/lens/cube/metadata/UpdatePeriod.java |  84 +++-
 .../timeline/EndsAndHolesPartitionTimeline.java |   2 +-
 .../apache/lens/cube/parse/CandidateFact.java   |   5 +-
 .../cube/parse/CandidateTablePruneCause.java|   2 +
 .../org/apache/lens/cube/parse/DateUtil.java| 456 --
 .../lens/cube/parse/ExpressionResolver.java |  11 +-
 .../lens/cube/parse/SingleFactHQLContext.java   |   2 +-
 .../lens/cube/parse/StorageTableResolver.java   |   2 +-
 .../org/apache/lens/cube/parse/TimeRange.java   | 220 -
 .../lens/cube/parse/TimerangeResolver.java  |   5 +-
 .../lens/cube/metadata/CubeFactTableTest.java   |   1 -
 .../apache/lens/cube/metadata/DateFactory.java  | 196 
 .../cube/metadata/TestCubeMetastoreClient.java  | 115 ++---
 .../apache/lens/cube/metadata/TestDateUtil.java | 297 
 .../apache/lens/cube/parse/CubeTestSetup.java   | 191 ++--
 .../FieldsCannotBeQueriedTogetherTest.java  |   8 +-
 .../lens/cube/parse/TestAggregateResolver.java  |   1 +
 .../lens/cube/parse/TestBaseCubeQueries.java|   5 +-
 .../cube/parse/TestBetweenTimeRangeWriter.java  |  25 +-
 .../lens/cube/parse/TestCubeRewriter.java   | 459 +--
 .../apache/lens/cube/parse/TestDateUtil.java| 299 
 .../cube/parse/TestDenormalizationResolver.java |  28 +-
 .../lens/cube/parse/TestExpressionContext.java  |   4 +-
 .../lens/cube/parse/TestExpressionResolver.java |   1 +
 .../lens/cube/parse/TestJoinResolver.java   |   1 +
 .../lens/cube/parse/TestORTimeRangeWriter.java  |  40 +-
 .../lens/cube/parse/TestQueryMetrics.java   |   2 +-
 .../lens/cube/parse/TestRewriterPlan.java   |   2 +-
 .../apache/lens/cube/parse/TestStorageUtil.java |  98 ++--
 .../lens/cube/parse/TestTimeRangeExtractor.java |  33 +-
 .../lens/cube/parse/TestTimeRangeResolver.java  |   2 +-
 .../lens/cube/parse/TestTimeRangeWriter.java|  48 +-
 .../parse/TestTimeRangeWriterWithQuery.java | 134 +++---
 .../lens/server/query/QueryResultPurger.java|   2 +-
 39 files changed, 1693 insertions(+), 1706 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/7c7c86da/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeColumn.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeColumn.java 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeColumn.java
index a2a00d2..b04532f 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeColumn.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeColumn.java
@@ -24,7 +24,6 @@ import java.util.Date;
 import java.util.Map;
 import java.util.TimeZone;
 
-import org.apache.lens.cube.parse.TimeRange;
 
 import com.google.common.base.Optional;
 

http://git-wip-us.apache.org/repos/asf/lens/blob/7c7c86da/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java
index d6bfb79..dd0adb7 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java
@@ -21,7 +21,6 @@ package org.apache.lens.cube.metadata;
 import java.util.*;
 
 import org.apache.lens.cube.metadata.UpdatePeriod.UpdatePeriodComparator;
-import org.apache.lens.cube.parse.DateUtil;
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.hadoop.hive.metastore.api.FieldSchema;

http://git-wip-us.apache.org/repos/asf/lens/blob/7c7c86da/lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java
--
diff --git 

[19/51] [abbrv] lens git commit: LENS-851 : Fix aliasing for non-aggregate functions in multi fact union query

2016-02-03 Thread deepakbarr
LENS-851 : Fix aliasing for non-aggregate functions in multi fact union query


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

Branch: refs/heads/current-release-line
Commit: 1b475f2ea67a275b22248f677a08d5caec7f959a
Parents: d5e923e
Author: Rajat Khandelwal 
Authored: Fri Jan 8 14:53:17 2016 +0530
Committer: Amareshwari Sriramadasu 
Committed: Fri Jan 8 14:53:17 2016 +0530

--
 .../java/org/apache/lens/cube/parse/HQLParser.java   | 15 +++
 .../cube/parse/SingleFactMultiStorageHQLContext.java |  2 +-
 .../org/apache/lens/cube/parse/TestCubeRewriter.java | 15 +++
 3 files changed, 31 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/1b475f2e/lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java
--
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java
index 6c3d4c3..bfb65c7 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java
@@ -732,6 +732,21 @@ public final class HQLParser {
 return false;
   }
 
+  public static boolean isNonAggregateFunctionAST(ASTNode node) {
+int exprTokenType = node.getToken().getType();
+if (exprTokenType == HiveParser.TOK_FUNCTION || exprTokenType == 
HiveParser.TOK_FUNCTIONDI
+  || exprTokenType == HiveParser.TOK_FUNCTIONSTAR) {
+  assert (node.getChildCount() != 0);
+  if (node.getChild(0).getType() == HiveParser.Identifier) {
+String functionName = 
BaseSemanticAnalyzer.unescapeIdentifier(node.getChild(0).getText());
+if (FunctionRegistry.getGenericUDAFResolver(functionName) == null) {
+  return true;
+}
+  }
+}
+return false;
+  }
+
   /**
* @param node an ASTNode
* @return true when input node is a SELECT AST Node. Otherwise, false.

http://git-wip-us.apache.org/repos/asf/lens/blob/1b475f2e/lens-cube/src/main/java/org/apache/lens/cube/parse/SingleFactMultiStorageHQLContext.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/SingleFactMultiStorageHQLContext.java
 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/SingleFactMultiStorageHQLContext.java
index e531e6b..ac56328 100644
--- 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/SingleFactMultiStorageHQLContext.java
+++ 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/SingleFactMultiStorageHQLContext.java
@@ -185,7 +185,7 @@ public class SingleFactMultiStorageHQLContext extends 
UnionHQLContext {
   outerAST.addChild(dotAST);
   innerToOuterASTs.put(new HashableASTNode(innerSelectASTWithoutAlias), 
outerAST);
   return outerAST;
-} else if (isTableColumnAST(astNode)) {
+} else if (isTableColumnAST(astNode) || 
isNonAggregateFunctionAST(astNode)) {
   if (innerToOuterASTs.containsKey(new HashableASTNode(astNode))) {
 return innerToOuterASTs.get(new HashableASTNode(astNode));
   }

http://git-wip-us.apache.org/repos/asf/lens/blob/1b475f2e/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
--
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
index f02cdb0..61fb73c 100644
--- a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
+++ b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
@@ -417,6 +417,21 @@ public class TestCubeRewriter extends TestQueryRewrite {
   }
   conf.setBoolean(CubeQueryConfUtil.ENABLE_STORAGES_UNION, true);
 
+  hqlQuery = rewrite("select ascii(cityid) as `City ID`, msr8, msr7 as 
`Third measure` "
++ "from testCube where cityid = 'a' and zipcode = 'b' and " + 
TWO_MONTHS_RANGE_UPTO_HOURS, conf);
+
+  expected = getExpectedUnionQuery(TEST_CUBE_NAME, storages, provider,
+"SELECT testcube.alias0 as `City ID`, sum(testcube.alias1) + 
max(testcube.alias2), "
+  + "case when sum(testcube.alias1) = 0 then 0 else 
sum(testcube.alias3)/sum(testcube.alias1) end "
+  + "as `Third Measure`",
+null, "group by testcube.alias0",
+"select ascii(testcube.cityid) as `alias0`, sum(testcube.msr2) as 
`alias1`, "
+  + "max(testcube.msr3) as `alias2`, "
+  + "sum(case when testcube.cityid = 'x' 

[31/51] [abbrv] lens git commit: LENS-910 : Add session config to skip filtering cube related tables from all the tables in a database

2016-02-03 Thread deepakbarr
LENS-910 : Add session config to skip filtering cube related tables from all 
the tables in a database


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

Branch: refs/heads/current-release-line
Commit: edcdd968541b6de572b65abbe92b4f3601c2f7a3
Parents: c7451f8
Author: Deepak Barr 
Authored: Tue Jan 12 12:24:29 2016 +0530
Committer: Deepak Kumar Barr 
Committed: Tue Jan 12 12:24:29 2016 +0530

--
 .../lens/cli/TestLensNativeTableCommands.java   |  4 ++-
 .../lens/server/api/LensConfConstants.java  | 10 
 .../metastore/CubeMetastoreServiceImpl.java |  6 +
 .../src/main/resources/lenssession-default.xml  |  6 +
 .../apache/lens/server/LensServerTestUtil.java  |  5 +++-
 .../server/metastore/TestMetastoreService.java  | 26 +++-
 src/site/apt/admin/session-config.apt   |  2 ++
 7 files changed, 56 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/edcdd968/lens-cli/src/test/java/org/apache/lens/cli/TestLensNativeTableCommands.java
--
diff --git 
a/lens-cli/src/test/java/org/apache/lens/cli/TestLensNativeTableCommands.java 
b/lens-cli/src/test/java/org/apache/lens/cli/TestLensNativeTableCommands.java
index d453803..e5f11f2 100644
--- 
a/lens-cli/src/test/java/org/apache/lens/cli/TestLensNativeTableCommands.java
+++ 
b/lens-cli/src/test/java/org/apache/lens/cli/TestLensNativeTableCommands.java
@@ -18,6 +18,8 @@
  */
 package org.apache.lens.cli;
 
+import java.util.HashMap;
+
 import org.apache.lens.cli.commands.LensNativeTableCommands;
 import org.apache.lens.client.LensClient;
 import org.apache.lens.server.LensServerTestUtil;
@@ -50,7 +52,7 @@ public class TestLensNativeTableCommands extends 
LensCliApplicationTest {
   LOG.debug("Starting to test nativetable commands");
   String tblList = command.showNativeTables();
   Assert.assertFalse(tblList.contains("test_native_table_command"));
-  LensServerTestUtil.createHiveTable("test_native_table_command");
+  LensServerTestUtil.createHiveTable("test_native_table_command", new 
HashMap());
   tblList = command.showNativeTables();
   Assert.assertTrue(tblList.contains("test_native_table_command"));
 

http://git-wip-us.apache.org/repos/asf/lens/blob/edcdd968/lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
--
diff --git 
a/lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
 
b/lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
index 88e5a01..a3dbfc0 100644
--- 
a/lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
+++ 
b/lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
@@ -996,4 +996,14 @@ public final class LensConfConstants {
* The Constant DEFAULT_HDFS_OUTPUT_RETENTION.
*/
   public static final String DEFAULT_HDFS_OUTPUT_RETENTION = "1 day";
+
+  /**
+   * The Constant EXCLUDE_CUBE_TABLES.
+   */
+  public static final String EXCLUDE_CUBE_TABLES = SESSION_PFX + 
"metastore.exclude.cubetables.from.nativetables";
+
+  /**
+   * The Constant DEFAULT_EXCLUDE_CUBE_TABLES.
+   */
+  public static final boolean DEFAULT_EXCLUDE_CUBE_TABLES = true;
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/edcdd968/lens-server/src/main/java/org/apache/lens/server/metastore/CubeMetastoreServiceImpl.java
--
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/metastore/CubeMetastoreServiceImpl.java
 
b/lens-server/src/main/java/org/apache/lens/server/metastore/CubeMetastoreServiceImpl.java
index cf49a13..fc67df1 100644
--- 
a/lens-server/src/main/java/org/apache/lens/server/metastore/CubeMetastoreServiceImpl.java
+++ 
b/lens-server/src/main/java/org/apache/lens/server/metastore/CubeMetastoreServiceImpl.java
@@ -31,12 +31,14 @@ import org.apache.lens.cube.metadata.*;
 import org.apache.lens.cube.metadata.timeline.PartitionTimeline;
 import org.apache.lens.server.BaseLensService;
 import org.apache.lens.server.LensServerConf;
+import org.apache.lens.server.api.LensConfConstants;
 import org.apache.lens.server.api.error.LensException;
 import org.apache.lens.server.api.health.HealthStatus;
 import org.apache.lens.server.api.metastore.CubeMetastoreService;
 import org.apache.lens.server.session.LensSessionImpl;
 
 import org.apache.commons.lang.StringUtils;
+import org.apache.hadoop.conf.Configuration;
 import 

[35/51] [abbrv] lens git commit: LENS-927 : Fix intermittent test failure due to alias look up in JoinTree

2016-02-03 Thread deepakbarr
LENS-927 : Fix intermittent test failure due to alias look up in JoinTree


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

Branch: refs/heads/current-release-line
Commit: 7035de9d73f2df1e72111d43875b0e21d82feaf5
Parents: 27a0cad
Author: Amareshwari Sriramadasu 
Authored: Mon Jan 25 14:00:31 2016 +0530
Committer: Rajat Khandelwal 
Committed: Mon Jan 25 14:00:31 2016 +0530

--
 .../main/java/org/apache/lens/cube/parse/join/JoinClause.java | 7 ++-
 .../main/java/org/apache/lens/cube/parse/join/JoinTree.java   | 6 ++
 .../apache/lens/cube/parse/TestDenormalizationResolver.java   | 4 ++--
 3 files changed, 6 insertions(+), 11 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/7035de9d/lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java
index acc9d5c..4325252 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java
@@ -122,13 +122,10 @@ public class JoinClause implements Comparable 
{
   // Last element in this list is link from cube to first dimension
   for (int i = entry.getValue().size() - 1; i >= 0; i--) {
 // Adds a child if needed, or returns a child already existing 
corresponding to the given link.
-current = current.addChild(entry.getValue().get(i), cubeql, 
aliasUsage);
+current = current.addChild(entry.getValue().get(i), aliasUsage);
   }
   // This is a destination table. Decide alias separately. e.g. chainname
-  // nullcheck is necessary because dimensions can be destinations too. In 
that case getAlias() == null
-  if (entry.getKey().getAlias() != null) {
-current.setAlias(entry.getKey().getAlias());
-  }
+  current.setAlias(entry.getKey().getAlias());
 }
 if (root.getSubtrees().size() > 0) {
   root.setAlias(cubeql.getAliasForTableName(

http://git-wip-us.apache.org/repos/asf/lens/blob/7035de9d/lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinTree.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinTree.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinTree.java
index 197847c..bcbfed5 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinTree.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinTree.java
@@ -22,7 +22,6 @@ import java.util.*;
 
 import org.apache.lens.cube.metadata.AbstractCubeTable;
 import org.apache.lens.cube.metadata.join.TableRelationship;
-import org.apache.lens.cube.parse.CubeQueryContext;
 
 import org.apache.hadoop.hive.ql.parse.JoinType;
 
@@ -57,8 +56,7 @@ public class JoinTree {
 this.depthFromRoot = depthFromRoot;
   }
 
-  public JoinTree addChild(TableRelationship tableRelationship,
-   CubeQueryContext query, Map 
aliasUsage) {
+  public JoinTree addChild(TableRelationship tableRelationship, Map aliasUsage) {
 if (getSubtrees().get(tableRelationship) == null) {
   JoinTree current = new JoinTree(this, tableRelationship,
 this.depthFromRoot + 1);
@@ -68,7 +66,7 @@ public class JoinTree {
   // And for destination tables, an alias will be decided from here but 
might be
   // overridden outside this function.
   AbstractCubeTable destTable = tableRelationship.getToTable();
-  current.setAlias(query.getAliasForTableName(destTable.getName()));
+  current.setAlias(destTable.getName());
   if (aliasUsage.get(current.getAlias()) == null) {
 aliasUsage.put(current.getAlias(), 0);
   } else {

http://git-wip-us.apache.org/repos/asf/lens/blob/7035de9d/lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java
--
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java
 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java
index d7707a9..51ba636 100644
--- 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java
+++ 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java
@@ -89,8 +89,8 @@ public class TestDenormalizationResolver extends 

[30/51] [abbrv] lens git commit: LENS-917 : Fixs table pruning for multiple chains for same destination table

2016-02-03 Thread deepakbarr
LENS-917 : Fixs table pruning for multiple chains for same destination table


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

Branch: refs/heads/current-release-line
Commit: c7451f8e8e8f429fc55458b03dbb10a2b7428be9
Parents: 9c03c76
Author: Amareshwari Sriramadasu 
Authored: Tue Jan 12 11:09:24 2016 +0530
Committer: Amareshwari Sriramadasu 
Committed: Tue Jan 12 11:09:24 2016 +0530

--
 .../org/apache/lens/cube/parse/Aliased.java |   4 +
 .../lens/cube/parse/CandidateTableResolver.java | 150 +--
 .../lens/cube/parse/CubeQueryContext.java   |  43 +++---
 .../lens/cube/parse/ExpressionResolver.java |   3 +
 .../lens/cube/parse/StorageTableResolver.java   |   4 +-
 .../lens/cube/parse/join/AutoJoinContext.java   |  12 +-
 .../apache/lens/cube/parse/CubeTestSetup.java   |  28 
 .../cube/parse/TestDenormalizationResolver.java |  16 +-
 8 files changed, 152 insertions(+), 108 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/c7451f8e/lens-cube/src/main/java/org/apache/lens/cube/parse/Aliased.java
--
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/parse/Aliased.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/Aliased.java
index 56fe9fc..160a9c6 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/Aliased.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/Aliased.java
@@ -36,4 +36,8 @@ public class Aliased {
   public static  Aliased create(K obj, String alias) {
 return new Aliased(obj, alias);
   }
+
+  public String getName() {
+return object.getName();
+  }
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/c7451f8e/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java
 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java
index 38ff5a4..00ccf36 100644
--- 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java
+++ 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java
@@ -67,9 +67,9 @@ class CandidateTableResolver implements ContextRewriter {
   checkForQueriedColumns = false;
 } else {
   // populate optional tables
-  for (Dimension dim : cubeql.getOptionalDimensions()) {
+  for (Aliased dim : cubeql.getOptionalDimensions()) {
 log.info("Populating optional dim:{}", dim);
-populateDimTables(dim, cubeql, true);
+populateDimTables(dim.getObject(), cubeql, true);
   }
   if (cubeql.getAutoJoinCtx() != null) {
 // Before checking for candidate table columns, prune join paths 
containing non existing columns
@@ -117,7 +117,7 @@ class CandidateTableResolver implements ContextRewriter {
   return;
 }
 try {
-  Set candidates = new HashSet();
+  Set candidates = new HashSet<>();
   cubeql.getCandidateDimTables().put(dim, candidates);
   List dimtables = 
cubeql.getMetastoreClient().getAllDimensionTables(dim);
   if (dimtables.isEmpty()) {
@@ -126,7 +126,7 @@ class CandidateTableResolver implements ContextRewriter {
 "Dimension tables do not exist");
 } else {
   log.info("Not considering optional dimension {}  as, No dimension 
tables exist", dim);
-  removeOptionalDim(cubeql, dim);
+  removeOptionalDimWithoutAlias(cubeql, dim);
 }
   }
   for (CubeDimensionTable dimtable : dimtables) {
@@ -139,44 +139,30 @@ class CandidateTableResolver implements ContextRewriter {
 }
   }
 
-  private void pruneOptionalDims(CubeQueryContext cubeql) {
-Set tobeRemoved = new HashSet();
-Set allCandidates = new HashSet();
-allCandidates.addAll(cubeql.getCandidateFacts());
-for (Set cdims : cubeql.getCandidateDimTables().values()) {
-  allCandidates.addAll(cdims);
-}
-Set removedCandidates = new HashSet();
-for (Map.Entry optdimEntry : 
cubeql.getOptionalDimensionMap().entrySet()) {
-  Dimension dim = optdimEntry.getKey();
-  OptionalDimCtx optdim = optdimEntry.getValue();
-  Iterator iter = optdim.requiredForCandidates.iterator();
-  while (iter.hasNext()) {
-CandidateTable candidate = iter.next();
-if (!allCandidates.contains(candidate)) {
-  log.info("Removing candidate {} from requiredForCandidates of {}, as 
it is no more candidate", candidate,
-dim);
- 

[36/51] [abbrv] lens git commit: LENS-929: Fact skipping should be logged

2016-02-03 Thread deepakbarr
LENS-929: Fact skipping should be logged


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

Branch: refs/heads/current-release-line
Commit: b1f38d55eddf261426aa47bfaa37c54a1eefa3d0
Parents: 7035de9
Author: Rajat Khandelwal 
Authored: Mon Jan 25 14:03:55 2016 +0530
Committer: Rajat Khandelwal 
Committed: Mon Jan 25 14:03:55 2016 +0530

--
 .../apache/lens/cube/parse/CubeQueryContext.java|  1 +
 .../server/api/driver/MinQueryCostSelector.java | 16 
 2 files changed, 13 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/b1f38d55/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
index 3e930de..79dd88c 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
@@ -465,6 +465,7 @@ public class CubeQueryContext implements 
TrackQueriedColumns, QueryAST {
   }
 
   public void addFactPruningMsgs(CubeFactTable fact, CandidateTablePruneCause 
factPruningMsg) {
+log.info("Pruning fact {} with cause: {}", fact, factPruningMsg);
 factPruningMsgs.addPruningMsg(fact, factPruningMsg);
   }
 

http://git-wip-us.apache.org/repos/asf/lens/blob/b1f38d55/lens-server-api/src/main/java/org/apache/lens/server/api/driver/MinQueryCostSelector.java
--
diff --git 
a/lens-server-api/src/main/java/org/apache/lens/server/api/driver/MinQueryCostSelector.java
 
b/lens-server-api/src/main/java/org/apache/lens/server/api/driver/MinQueryCostSelector.java
index 8fdde1d..6f17327 100644
--- 
a/lens-server-api/src/main/java/org/apache/lens/server/api/driver/MinQueryCostSelector.java
+++ 
b/lens-server-api/src/main/java/org/apache/lens/server/api/driver/MinQueryCostSelector.java
@@ -18,13 +18,18 @@
  */
 package org.apache.lens.server.api.driver;
 
-import java.util.*;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
 
 import org.apache.lens.server.api.query.AbstractQueryContext;
 import org.apache.lens.server.api.query.cost.QueryCost;
 
 import org.apache.hadoop.conf.Configuration;
 
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
 public class MinQueryCostSelector implements DriverSelector {
 
   /**
@@ -38,12 +43,15 @@ public class MinQueryCostSelector implements DriverSelector 
{
   public LensDriver select(final AbstractQueryContext ctx, final Configuration 
conf) {
 
 final Collection drivers = 
ctx.getDriverContext().getDriversWithValidQueryCost();
-
+log.info("Candidate drivers: {}", drivers);
+for (LensDriver driver : drivers) {
+  log.debug("Cost on driver {}: {}", driver, 
ctx.getDriverQueryCost(driver));
+}
 return Collections.min(drivers, new Comparator() {
   @Override
   public int compare(LensDriver d1, LensDriver d2) {
-final QueryCost c1 = ctx.getDriverContext().getDriverQueryCost(d1);
-final QueryCost c2 = ctx.getDriverContext().getDriverQueryCost(d2);
+final QueryCost c1 = ctx.getDriverQueryCost(d1);
+final QueryCost c2 = ctx.getDriverQueryCost(d2);
 return c1.compareTo(c2);
   }
 });



[32/51] [abbrv] lens git commit: LENS-924 : Remove edits to LensSession's default config

2016-02-03 Thread deepakbarr
LENS-924 : Remove edits to LensSession's default config


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

Branch: refs/heads/current-release-line
Commit: 5d2dccb00606844a877b7ff379e80ae0a3b965a9
Parents: edcdd96
Author: Puneet Gupta 
Authored: Tue Jan 19 10:14:31 2016 +0530
Committer: Amareshwari Sriramadasu 
Committed: Tue Jan 19 10:14:31 2016 +0530

--
 .../apache/lens/server/session/LensSessionImpl.java |  5 +++--
 .../apache/lens/server/query/TestQueryService.java  | 16 
 2 files changed, 19 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/5d2dccb0/lens-server/src/main/java/org/apache/lens/server/session/LensSessionImpl.java
--
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/session/LensSessionImpl.java 
b/lens-server/src/main/java/org/apache/lens/server/session/LensSessionImpl.java
index cc62d92..895a819 100644
--- 
a/lens-server/src/main/java/org/apache/lens/server/session/LensSessionImpl.java
+++ 
b/lens-server/src/main/java/org/apache/lens/server/session/LensSessionImpl.java
@@ -66,7 +66,7 @@ public class LensSessionImpl extends HiveSessionImpl {
   private long sessionTimeout;
 
   /** The conf. */
-  private Configuration conf = new Configuration(createDefaultConf());
+  private Configuration conf = createDefaultConf();
 
   /**
* Keep track of DB static resources which failed to be added to this session
@@ -123,7 +123,8 @@ public class LensSessionImpl extends HiveSessionImpl {
 }
   }
 }
-return sessionDefaultConfig;
+//Not exposing sessionDefaultConfig directly to insulate it form 
modifications
+return new Configuration(sessionDefaultConfig);
   }
 
   /** The default hive session conf. */

http://git-wip-us.apache.org/repos/asf/lens/blob/5d2dccb0/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
--
diff --git 
a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java 
b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
index c5d75de..494bce5 100644
--- 
a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
+++ 
b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
@@ -1254,6 +1254,22 @@ public class TestQueryService extends LensJerseyTest {
   // server configuration should not set
   assertNull(dconf.get("lens.server.persist.location"));
 }
+
+checkDefaultConfigConsistency();
+  }
+
+  public void checkDefaultConfigConsistency() {
+Configuration conf = LensSessionImpl.createDefaultConf();
+assertNotNull(conf.get("lens.query.enable.persistent.resultset"));
+boolean isDriverPersistent = 
conf.getBoolean("lens.query.enable.persistent.resultset", false);
+conf.setBoolean("lens.query.enable.persistent.resultset", 
isDriverPersistent ? false : true);
+conf.set("new_random_property", "new_random_property");
+
+// Get the default conf again and verify its not modified by previous 
operations
+conf = LensSessionImpl.createDefaultConf();
+boolean isDriverPersistentNow = 
conf.getBoolean("lens.query.enable.persistent.resultset", false);
+assertEquals(isDriverPersistentNow, isDriverPersistent);
+assertNull(conf.get("new_random_property"));
   }
 
   /**



[05/51] [abbrv] lens git commit: LENS-760 : Session close should not result in running query failures.

2016-02-03 Thread deepakbarr
LENS-760 : Session close should not result in running query failures.


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

Branch: refs/heads/current-release-line
Commit: ff891e2cf2a77fd28a7476ad6a6af814bb013661
Parents: 7c7c86d
Author: Deepak Barr 
Authored: Sat Dec 12 00:17:47 2015 +0530
Committer: Deepak Kumar Barr 
Committed: Sat Dec 12 00:17:47 2015 +0530

--
 .../org/apache/lens/driver/hive/HiveDriver.java | 95 +++-
 .../lens/driver/hive/TestRemoteHiveDriver.java  |  4 +-
 .../lens/server/query/TestQueryService.java | 20 +
 3 files changed, 98 insertions(+), 21 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/ff891e2c/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
--
diff --git 
a/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java 
b/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
index a84c679..253cfc4 100644
--- a/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
+++ b/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
@@ -112,6 +112,12 @@ public class HiveDriver extends AbstractLensDriver {
   /** The hive handles. */
   private Map hiveHandles = new 
ConcurrentHashMap();
 
+  /** The orphaned hive sessions. */
+  private ConcurrentLinkedQueue orphanedHiveSessions;
+
+  /** The opHandle to hive session map. */
+  private Map opHandleToSession;
+
   /** The session lock. */
   private final Lock sessionLock;
 
@@ -314,6 +320,8 @@ public class HiveDriver extends AbstractLensDriver {
   public HiveDriver() throws LensException {
 this.sessionLock = new ReentrantLock();
 lensToHiveSession = new HashMap();
+opHandleToSession = new ConcurrentHashMap();
+orphanedHiveSessions = new ConcurrentLinkedQueue();
 resourcesAddedForSession = new HashMap();
 connectionExpiryThread.setDaemon(true);
 connectionExpiryThread.setName("HiveDriver-ConnectionExpiryThread");
@@ -491,15 +499,18 @@ public class HiveDriver extends AbstractLensDriver {
*/
   // assuming this is only called for executing 
explain/insert/set/delete/etc... queries which don't ask to fetch data.
   public LensResultSet execute(QueryContext ctx) throws LensException {
+OperationHandle op = null;
 try {
   addPersistentPath(ctx);
   Configuration qdconf = ctx.getDriverConf(this);
   qdconf.set("mapred.job.name", ctx.getQueryHandle().toString());
-  OperationHandle op = getClient().executeStatement(getSession(ctx), 
ctx.getSelectedDriverQuery(),
+  SessionHandle sessionHandle = getSession(ctx);
+  op = getClient().executeStatement(sessionHandle, 
ctx.getSelectedDriverQuery(),
 qdconf.getValByRegex(".*"));
   log.info("The hive operation handle: {}", op);
   ctx.setDriverOpHandle(op.toString());
   hiveHandles.put(ctx.getQueryHandle(), op);
+  opHandleToSession.put(op, sessionHandle);
   updateStatus(ctx);
   OperationStatus status = getClient().getOperationStatus(op);
 
@@ -519,6 +530,10 @@ public class HiveDriver extends AbstractLensDriver {
 } catch (HiveSQLException hiveErr) {
   handleHiveServerError(ctx, hiveErr);
   throw new LensException("Error executing query", hiveErr);
+} finally {
+  if (null != op) {
+opHandleToSession.remove(op);
+  }
 }
   }
 
@@ -550,11 +565,13 @@ public class HiveDriver extends AbstractLensDriver {
 }
   }
   queryHook.preLaunch(ctx);
-  OperationHandle op = getClient().executeStatementAsync(getSession(ctx), 
ctx.getSelectedDriverQuery(),
+  SessionHandle sessionHandle = getSession(ctx);
+  OperationHandle op = getClient().executeStatementAsync(sessionHandle, 
ctx.getSelectedDriverQuery(),
 qdconf.getValByRegex(".*"));
   ctx.setDriverOpHandle(op.toString());
   log.info("QueryHandle: {} HiveHandle:{}", ctx.getQueryHandle(), op);
   hiveHandles.put(ctx.getQueryHandle(), op);
+  opHandleToSession.put(op, sessionHandle);
 } catch (IOException e) {
   throw new LensException("Error adding persistent path", e);
 } catch (HiveSQLException e) {
@@ -726,6 +743,18 @@ public class HiveDriver extends AbstractLensDriver {
   } catch (HiveSQLException e) {
 checkInvalidOperation(handle, e);
 throw new LensException("Unable to close 

[06/51] [abbrv] lens git commit: LENS-851 : Replace columns with aliases in where clause of the inner query

2016-02-03 Thread deepakbarr
LENS-851 : Replace columns with aliases in where clause of the inner query


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

Branch: refs/heads/current-release-line
Commit: bf4c0bec023307417de75f4c13ed1c344fc1f06e
Parents: ff891e2
Author: Rajat Khandelwal 
Authored: Sat Dec 12 15:30:23 2015 +0530
Committer: Amareshwari Sriramadasu 
Committed: Sat Dec 12 15:30:23 2015 +0530

--
 lens-api/src/main/resources/lens-errors.conf| 25 +--
 .../lens/cube/error/LensCubeErrorCode.java  |  6 +-
 .../apache/lens/cube/metadata/ExprColumn.java   | 60 ++---
 .../lens/cube/metadata/MetastoreUtil.java   | 16 +
 .../apache/lens/cube/parse/CandidateFact.java   |  8 +--
 .../apache/lens/cube/parse/GroupbyResolver.java | 15 +
 .../org/apache/lens/cube/parse/HQLParser.java   | 11 +++-
 .../lens/cube/parse/SingleFactHQLContext.java   |  8 +--
 .../parse/SingleFactMultiStorageHQLContext.java | 68 +++-
 .../apache/lens/cube/parse/UnionHQLContext.java |  2 +-
 .../cube/metadata/TestCubeMetastoreClient.java  | 10 +--
 .../lens/cube/metadata/TestExprColumn.java  | 20 +++---
 .../apache/lens/cube/parse/CubeTestSetup.java   |  2 +-
 .../lens/cube/parse/TestCubeRewriter.java   |  4 +-
 .../apache/lens/server/metastore/JAXBUtils.java |  8 +--
 15 files changed, 161 insertions(+), 102 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/bf4c0bec/lens-api/src/main/resources/lens-errors.conf
--
diff --git a/lens-api/src/main/resources/lens-errors.conf 
b/lens-api/src/main/resources/lens-errors.conf
index ca8562f..c880543 100644
--- a/lens-api/src/main/resources/lens-errors.conf
+++ b/lens-api/src/main/resources/lens-errors.conf
@@ -284,9 +284,15 @@ lensCubeErrorsForQuery = [
   }
 
   {
-  errorCode = 3031
-  httpStatusCode = ${BAD_REQUEST}
-  errorMsg = "The query is answerable from two storages but union is 
disabled."
+errorCode = 3031
+httpStatusCode = ${BAD_REQUEST}
+errorMsg = "The query is answerable from two storages but union is 
disabled."
+  }
+
+  {
+errorCode = 3032
+httpStatusCode = ${INTERNAL_SERVER_ERROR}
+errorMsg = "Could not parse expression %s"
   }
 ]
 
@@ -298,10 +304,17 @@ lensCubeErrorsForMetastore = [
   }
 
   {
-  errorCode = 3102
-  httpStatusCode = ${BAD_REQUEST}
-  errorMsg = "No timeline found for fact=%s, storage=%s, update period=%s, 
partition column=%s."
+errorCode = 3102
+httpStatusCode = ${BAD_REQUEST}
+errorMsg = "No timeline found for fact=%s, storage=%s, update period=%s, 
partition column=%s."
   }
+
+  {
+errorCode = 3103
+httpStatusCode = ${BAD_REQUEST}
+errorMsg = "The Expression %s is Not Parsable."
+  }
+
 ]
 
 lensCubeErrors = ${lensCubeErrorsForQuery}${lensCubeErrorsForMetastore}

http://git-wip-us.apache.org/repos/asf/lens/blob/bf4c0bec/lens-cube/src/main/java/org/apache/lens/cube/error/LensCubeErrorCode.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/error/LensCubeErrorCode.java 
b/lens-cube/src/main/java/org/apache/lens/cube/error/LensCubeErrorCode.java
index 6c5dc2f..68cd80b 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/error/LensCubeErrorCode.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/error/LensCubeErrorCode.java
@@ -54,10 +54,12 @@ public enum LensCubeErrorCode {
   NO_CANDIDATE_FACT_AVAILABLE(3028, 1200),
   NO_CANDIDATE_DIM_STORAGE_TABLES(3029, 1300),
   NO_STORAGE_TABLE_AVAIABLE(3030, 1400),
-  STORAGE_UNION_DISABLED(3031, 100),
+  STORAGE_UNION_DISABLED(3031, 1500),
+  COULD_NOT_PARSE_EXPRESSION(3032, 1500),
   // Error codes greater than 3100 are errors while doing a metastore 
operation.
   ERROR_IN_ENTITY_DEFINITION(3101, 100),
-  TIMELINE_ABSENT(3102, 100);
+  TIMELINE_ABSENT(3102, 100),
+  EXPRESSION_NOT_PARSABLE(3103, 1500);
 
   public LensErrorInfo getLensErrorInfo() {
 return this.errorInfo;

http://git-wip-us.apache.org/repos/asf/lens/blob/bf4c0bec/lens-cube/src/main/java/org/apache/lens/cube/metadata/ExprColumn.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/ExprColumn.java 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/ExprColumn.java
index b418517..da87e31 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/ExprColumn.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/ExprColumn.java
@@ -23,17 +23,14 @@ import 

[37/51] [abbrv] lens git commit: LENS-923: CLI should allow query execution without the prefix 'query execute'

2016-02-03 Thread deepakbarr
LENS-923: CLI should allow query execution without the prefix 'query execute'


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

Branch: refs/heads/current-release-line
Commit: 919936bec58529ad555a2f858bb8eed56b34ac4e
Parents: b1f38d5
Author: Rajat Khandelwal 
Authored: Mon Jan 25 19:36:26 2016 +0800
Committer: Raju Bairishetti 
Committed: Mon Jan 25 19:36:26 2016 +0800

--
 .../lens/cli/commands/BaseLensCommand.java  |  9 
 .../cli/commands/LensLogResourceCommands.java   |  4 +-
 .../lens/cli/commands/LensQueryCommands.java| 56 
 src/site/apt/user/cli.apt   |  8 ++-
 4 files changed, 51 insertions(+), 26 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/919936be/lens-cli/src/main/java/org/apache/lens/cli/commands/BaseLensCommand.java
--
diff --git 
a/lens-cli/src/main/java/org/apache/lens/cli/commands/BaseLensCommand.java 
b/lens-cli/src/main/java/org/apache/lens/cli/commands/BaseLensCommand.java
index 6437725..66a6c4d 100644
--- a/lens-cli/src/main/java/org/apache/lens/cli/commands/BaseLensCommand.java
+++ b/lens-cli/src/main/java/org/apache/lens/cli/commands/BaseLensCommand.java
@@ -194,4 +194,13 @@ public class BaseLensCommand implements ExecutionProcessor 
{
 return pathValidator.removePrefixBeforeURI(path);
   }
 
+  public String getOrDefaultQueryHandleString(String queryHandleString) {
+if (queryHandleString != null) {
+  return queryHandleString;
+}
+if (getClient().getStatement().getQuery() != null) {
+  return getClient().getStatement().getQueryHandleString();
+}
+throw new IllegalArgumentException("Query handle not provided and no 
queries interacted with in the session.");
+  }
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/919936be/lens-cli/src/main/java/org/apache/lens/cli/commands/LensLogResourceCommands.java
--
diff --git 
a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensLogResourceCommands.java
 
b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensLogResourceCommands.java
index 59b7355..1a3394a 100644
--- 
a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensLogResourceCommands.java
+++ 
b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensLogResourceCommands.java
@@ -46,11 +46,13 @@ public class LensLogResourceCommands extends 
BaseLensCommand {
 
   @CliCommand(value = "show logs",
 help = "show logs for the given handle . Handle can either be 
a query handle or request id. "
+  + LensQueryCommands.DEFAULT_QUERY_HANDLE_DESCRIPTION + " "
   + "You can optionally provide a location to save the logs as 
")
   public String getLogs(
-@CliOption(key = {"", "log_handle"}, mandatory = true, help = 
"")
+@CliOption(key = {"", "log_handle"}, mandatory = false, help = 
"")
 String logFile, @CliOption(key = {"save_location"}, mandatory = false, 
help = "") String location) {
 try {
+  logFile = getOrDefaultQueryHandleString(logFile);
   Response response = getClient().getLogs(logFile);
   if (response.getStatus() == Response.Status.OK.getStatusCode()) {
 if (StringUtils.isBlank(location)) {

http://git-wip-us.apache.org/repos/asf/lens/blob/919936be/lens-cli/src/main/java/org/apache/lens/cli/commands/LensQueryCommands.java
--
diff --git 
a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensQueryCommands.java 
b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensQueryCommands.java
index a29600d..e2ac3af 100644
--- a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensQueryCommands.java
+++ b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensQueryCommands.java
@@ -61,22 +61,42 @@ import com.google.common.base.Joiner;
 + "  <<>>,\n"
 + "  will be parsed as <<>>")
 public class LensQueryCommands extends BaseLensCommand {
-  private static final String DEFAULT_QUERY_HANDLE_DESCRIPTION =
+  public static final String DEFAULT_QUERY_HANDLE_DESCRIPTION =
 "If not provided, takes last query handle interacted with.";
+  private static final String ASYNC_DOC =
+"If  is true, The query is launched in async manner and query 
handle is returned. It's by default false.";
+  private static final String QUERY_NAME_DOC = " can also be 
provided, though not required.";
 
-  /**
-   * Execute query.
-   *
-   * @param sql   the sql
-   * @param asyncthe asynch
-   * @param queryName the query name
-   * @return the string
-   

[34/51] [abbrv] lens git commit: LENS-916: docker image creation is failing.

2016-02-03 Thread deepakbarr
LENS-916: docker image creation is failing.


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

Branch: refs/heads/current-release-line
Commit: 27a0cad0d1ece88dc7d0937b05848ad6f92208dd
Parents: 91ccec7
Author: piyush 
Authored: Mon Jan 25 11:40:58 2016 +0530
Committer: Rajat Khandelwal 
Committed: Mon Jan 25 11:40:58 2016 +0530

--
 lens-docker/lens-test/Dockerfile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/27a0cad0/lens-docker/lens-test/Dockerfile
--
diff --git a/lens-docker/lens-test/Dockerfile b/lens-docker/lens-test/Dockerfile
index 734f964..885674d 100644
--- a/lens-docker/lens-test/Dockerfile
+++ b/lens-docker/lens-test/Dockerfile
@@ -17,7 +17,7 @@
 
 FROM inmobi/docker-hive
 
-RUN wget 
http://apache.mirrors.lucidnetworks.net/spark/spark-1.3.0/spark-1.3.0-bin-hadoop2.4.tgz
+RUN wget 
https://archive.apache.org/dist/spark/spark-1.3.0/spark-1.3.0-bin-hadoop2.4.tgz
 RUN gunzip spark-1.3.0-bin-hadoop2.4.tgz
 RUN tar -xvf spark-1.3.0-bin-hadoop2.4.tar
 RUN mv spark-1.3.0-bin-hadoop2.4 /usr/local



[27/51] [abbrv] lens git commit: LENS-735 : Remove accepting TableReferences for ReferenceDimAttribute

2016-02-03 Thread deepakbarr
http://git-wip-us.apache.org/repos/asf/lens/blob/908530f5/lens-cube/src/main/java/org/apache/lens/cube/metadata/join/JoinPath.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/join/JoinPath.java 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/join/JoinPath.java
new file mode 100644
index 000..48f04bb
--- /dev/null
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/join/JoinPath.java
@@ -0,0 +1,101 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.lens.cube.metadata.join;
+
+import java.util.*;
+
+import org.apache.lens.cube.metadata.AbstractCubeTable;
+
+/**
+ * A list of table relationships that can be combined to get a join clause
+ */
+public class JoinPath {
+  final List edges;
+  // Store the map of a table against all columns of that table which are in 
the path
+  private Map columnsForTable = new 
HashMap<>();
+
+  public JoinPath() {
+edges = new ArrayList<>();
+  }
+
+  public JoinPath(JoinPath other) {
+edges = new ArrayList<>(other.edges);
+  }
+
+  public void initColumnsForTable() {
+if (!columnsForTable.isEmpty()) {
+  // already initialized
+  return;
+}
+for (TableRelationship edge : edges) {
+  addColumnsForEdge(edge);
+}
+  }
+
+  public void addEdge(TableRelationship edge) {
+edges.add(edge);
+  }
+
+  public boolean isEmpty() {
+return edges.isEmpty();
+  }
+
+  public List getEdges() {
+return edges;
+  }
+
+  private void addColumnsForEdge(TableRelationship edge) {
+addColumn(edge.getFromTable(), edge.getFromColumn());
+addColumn(edge.getToTable(), edge.getToColumn());
+  }
+
+  private void addColumn(AbstractCubeTable table, String column) {
+if (table == null || column == null) {
+  return;
+}
+List columns = columnsForTable.get(table);
+if (columns == null) {
+  columns = new ArrayList<>();
+  columnsForTable.put(table, columns);
+}
+columns.add(column);
+  }
+
+  public List getColumnsForTable(AbstractCubeTable table) {
+return columnsForTable.get(table);
+  }
+
+  public Set getAllTables() {
+return columnsForTable.keySet();
+  }
+
+  public boolean containsColumnOfTable(String column, AbstractCubeTable table) 
{
+for (TableRelationship edge : edges) {
+  if ((table.equals(edge.getFromTable()) && 
column.equals(edge.getFromColumn()))
+|| table.equals(edge.getToTable()) && 
column.equals(edge.getToColumn())) {
+return true;
+  }
+}
+return false;
+  }
+
+  public String toString() {
+return edges.toString();
+  }
+}

http://git-wip-us.apache.org/repos/asf/lens/blob/908530f5/lens-cube/src/main/java/org/apache/lens/cube/metadata/join/TableRelationship.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/join/TableRelationship.java
 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/join/TableRelationship.java
new file mode 100644
index 000..dabb9ef
--- /dev/null
+++ 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/join/TableRelationship.java
@@ -0,0 +1,46 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.lens.cube.metadata.join;
+
+import org.apache.lens.cube.metadata.AbstractCubeTable;
+
+import lombok.AllArgsConstructor;

[09/51] [abbrv] lens git commit: LENS-890 : Adds per-queue and per-priority driver max launched queries constraints

2016-02-03 Thread deepakbarr
LENS-890 : Adds per-queue and per-priority driver max launched queries 
constraints


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

Branch: refs/heads/current-release-line
Commit: 4d3d2f82fb93ee4d5c52dc3b4910573953094c0a
Parents: 73f9243
Author: Rajat Khandelwal 
Authored: Tue Dec 15 18:45:08 2015 +0530
Committer: Amareshwari Sriramadasu 
Committed: Tue Dec 15 18:45:08 2015 +0530

--
 .../org/apache/lens/api/util/CommonUtils.java   |  27 ++-
 .../FactPartitionBasedQueryCostCalculator.java  |   8 +-
 .../org/apache/lens/driver/hive/HiveDriver.java |  68 +++---
 .../apache/lens/driver/hive/TestHiveDriver.java | 233 ---
 .../src/test/resources/priority_tests.data  |   1 +
 .../server/api/driver/AbstractLensDriver.java   |  13 +-
 .../lens/server/api/driver/LensDriver.java  |  13 +-
 .../server/api/query/AbstractQueryContext.java  |   9 +-
 .../lens/server/api/query/QueryContext.java |  12 +-
 .../MaxConcurrentDriverQueriesConstraint.java   |  54 -
 ...oncurrentDriverQueriesConstraintFactory.java |  49 +++-
 .../api/query/TestAbstractQueryContext.java |   4 +-
 ...axConcurrentDriverQueriesConstraintTest.java | 181 +-
 .../server/query/QueryExecutionServiceImpl.java |   1 +
 .../ThreadSafeEstimatedQueryCollectionTest.java |   3 +-
 15 files changed, 527 insertions(+), 149 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/4d3d2f82/lens-api/src/main/java/org/apache/lens/api/util/CommonUtils.java
--
diff --git a/lens-api/src/main/java/org/apache/lens/api/util/CommonUtils.java 
b/lens-api/src/main/java/org/apache/lens/api/util/CommonUtils.java
index 38d58c7..119c924 100644
--- a/lens-api/src/main/java/org/apache/lens/api/util/CommonUtils.java
+++ b/lens-api/src/main/java/org/apache/lens/api/util/CommonUtils.java
@@ -27,6 +27,25 @@ public class CommonUtils {
 
   }
 
+  public interface EntryParser {
+K parseKey(String str);
+
+V parseValue(String str);
+  }
+
+  private static EntryParser defaultEntryParser = new 
EntryParser() {
+@Override
+public String parseKey(String str) {
+  return str;
+}
+
+@Override
+public String parseValue(String str) {
+  return str;
+}
+  };
+
+
   /**
* Splits given String str around non-escaped commas. Then parses each of 
the split element
* as map entries in the format `key=value`. Constructs a map of such 
entries.
@@ -36,7 +55,11 @@ public class CommonUtils {
* @return parsed map
*/
   public static Map parseMapFromString(String str) {
-Map map = new HashMap<>();
+return parseMapFromString(str, defaultEntryParser);
+  }
+
+  public static  Map parseMapFromString(String str, EntryParser parser) {
+Map map = new HashMap<>();
 if (str != null) {
   for (String kv : str.split("(? 1) {
 value = kvArray[1].replaceAll(",", ",").trim();
   }
-  map.put(key, value);
+  map.put(parser.parseKey(key), parser.parseValue(value));
 }
   }
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/4d3d2f82/lens-cube/src/main/java/org/apache/lens/cube/query/cost/FactPartitionBasedQueryCostCalculator.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/query/cost/FactPartitionBasedQueryCostCalculator.java
 
b/lens-cube/src/main/java/org/apache/lens/cube/query/cost/FactPartitionBasedQueryCostCalculator.java
index d56e1c7..9fecdbc 100644
--- 
a/lens-cube/src/main/java/org/apache/lens/cube/query/cost/FactPartitionBasedQueryCostCalculator.java
+++ 
b/lens-cube/src/main/java/org/apache/lens/cube/query/cost/FactPartitionBasedQueryCostCalculator.java
@@ -47,8 +47,11 @@ public class FactPartitionBasedQueryCostCalculator 
implements QueryCostCalculato
*/
 
   @SuppressWarnings("unchecked") // required for (Set) casting
-  private double getTotalPartitionCost(final AbstractQueryContext 
queryContext, LensDriver driver)
+  private Double getTotalPartitionCost(final AbstractQueryContext 
queryContext, LensDriver driver)
 throws LensException {
+if (queryContext.getDriverRewriterPlan(driver) == null) {
+  return null;
+}
 double cost = 0;
 for (Map.Entry entry : getAllPartitions(queryContext, 
driver).entrySet()) {
   // Have to do instanceof check, since it can't be handled by 
polymorphism.
@@ -86,7 +89,8 @@ public class 

[08/51] [abbrv] lens git commit: LENS-887 : Add exception handling over event process threads and increase pool size for QueryEndNotifier and ResultFormatter

2016-02-03 Thread deepakbarr
LENS-887 : Add exception handling over event process threads and increase pool 
size for QueryEndNotifier and ResultFormatter


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

Branch: refs/heads/current-release-line
Commit: 73f92430c70664cf5b8c63ec9b174a4a1b27d2ad
Parents: 36166a2
Author: Puneet Gupta 
Authored: Tue Dec 15 18:22:40 2015 +0530
Committer: Amareshwari Sriramadasu 
Committed: Tue Dec 15 18:22:40 2015 +0530

--
 .../server/api/events/AsyncEventListener.java   | 50 +-
 .../apache/lens/server/EventServiceImpl.java|  9 ++-
 .../lens/server/query/QueryEndNotifier.java | 72 +++-
 .../lens/server/query/ResultFormatter.java  |  5 ++
 .../lens/server/query/TestEventService.java | 45 
 5 files changed, 131 insertions(+), 50 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/73f92430/lens-server-api/src/main/java/org/apache/lens/server/api/events/AsyncEventListener.java
--
diff --git 
a/lens-server-api/src/main/java/org/apache/lens/server/api/events/AsyncEventListener.java
 
b/lens-server-api/src/main/java/org/apache/lens/server/api/events/AsyncEventListener.java
index 547c008..84728e5 100644
--- 
a/lens-server-api/src/main/java/org/apache/lens/server/api/events/AsyncEventListener.java
+++ 
b/lens-server-api/src/main/java/org/apache/lens/server/api/events/AsyncEventListener.java
@@ -22,12 +22,18 @@ import java.util.concurrent.*;
 
 import org.apache.lens.server.api.error.LensException;
 
+import org.apache.commons.lang3.concurrent.BasicThreadFactory;
+
+import lombok.AccessLevel;
+import lombok.Getter;
+import lombok.extern.slf4j.Slf4j;
 /**
  * Event listeners should implement this class if they wish to process events 
asynchronously. This should be used when
  * event processing can block, or is computationally intensive.
  *
  * @param  the generic type
  */
+@Slf4j
 public abstract class AsyncEventListener implements 
LensEventListener {
 
   /**
@@ -41,49 +47,57 @@ public abstract class AsyncEventListener implements LensEve
   protected final BlockingQueue eventQueue;
 
   /**
+   * Name of this Asynchronous Event Listener. Will be used for logging and to 
name the threads in thread pool that
+   * allow asynchronous handling of events. If required, Sub Classes can 
override getName method to
+   * provide more appropriate name.
+   *
+   * Default value is the class Name (Example QueryEndNotifier, 
ResultFormatter, etc)
+   */
+  @Getter(AccessLevel.PROTECTED)
+  private final String name = this.getClass().getSimpleName();
+
+  /**
* Create a single threaded event listener with an unbounded queue, with 
daemon threads.
*/
   public AsyncEventListener() {
-this(1);
+this(1, 1);
   }
 
   /**
* Create a event listener with poolSize threads with an unbounded queue and 
daemon threads.
*
* @param poolSize the pool size
+   * @param maxPoolSize the max pool size
*/
-  public AsyncEventListener(int poolSize) {
-this(poolSize, -1, 10, true);
+  public AsyncEventListener(int poolSize, int maxPoolSize) {
+this(poolSize, maxPoolSize, -1, 10, true);
   }
 
   /**
* Create an asynchronous event listener which uses a thread poool to 
process events.
*
* @param poolSize   size of the event processing pool
+   * @param maxPoolSizethe max pool size
* @param maxQueueSize   max size of the event queue, if this is non 
positive, then the queue is unbounded
* @param timeOutSeconds time out in seconds when an idle thread is destroyed
* @param isDaemon   if the threads used to process should be daemon 
threads,
*   if false, then implementation should call stop()
*   to stop the thread pool
*/
-  public AsyncEventListener(int poolSize, int maxQueueSize, long 
timeOutSeconds, final boolean isDaemon) {
+  public AsyncEventListener(int poolSize, int maxPoolSize, int maxQueueSize, 
long timeOutSeconds,
+  final boolean isDaemon) {
 if (maxQueueSize <= 0) {
   eventQueue = new LinkedBlockingQueue();
 } else {
   eventQueue = new ArrayBlockingQueue(maxQueueSize);
 }
 
-processor = new ThreadPoolExecutor(poolSize, poolSize, timeOutSeconds, 
TimeUnit.SECONDS, eventQueue,
-  new ThreadFactory() {
-@Override
-public Thread newThread(Runnable runnable) {
-  Thread th = new Thread(runnable);
-  th.setName("event_processor_thread");
-  th.setDaemon(isDaemon);
-  return th;
-}
-  });
-

[40/51] [abbrv] lens git commit: LENS-937 : Add ReferencedDimAtrribute class for backward compatibility

2016-02-03 Thread deepakbarr
LENS-937 : Add ReferencedDimAtrribute class for backward compatibility


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

Branch: refs/heads/current-release-line
Commit: f1d6e3fa0404f113f6f8842afeba7c984adb2b44
Parents: b3f993d
Author: Amareshwari Sriramadasu 
Authored: Fri Jan 29 15:03:51 2016 +0530
Committer: Amareshwari Sriramadasu 
Committed: Fri Jan 29 15:03:51 2016 +0530

--
 .../cube/metadata/ReferencedDimAtrribute.java   | 35 
 1 file changed, 35 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/f1d6e3fa/lens-cube/src/main/java/org/apache/lens/cube/metadata/ReferencedDimAtrribute.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/ReferencedDimAtrribute.java
 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/ReferencedDimAtrribute.java
new file mode 100644
index 000..f0ff1ad
--- /dev/null
+++ 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/ReferencedDimAtrribute.java
@@ -0,0 +1,35 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.lens.cube.metadata;
+
+import java.util.*;
+
+import org.apache.lens.server.api.error.LensException;
+
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class ReferencedDimAtrribute extends ReferencedDimAttribute {
+
+  public ReferencedDimAtrribute(String name, Map props) throws 
LensException {
+super(name, props);
+  }
+}



[13/51] [abbrv] lens git commit: LENS-750 : Add Hive error codes for Semantic and Authorization exceptions

2016-02-03 Thread deepakbarr
LENS-750 : Add Hive error codes for Semantic and Authorization exceptions


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

Branch: refs/heads/current-release-line
Commit: bf1053b4a1081bd3f07d6b26337e68586404e530
Parents: c179081
Author: Deepak Barr 
Authored: Fri Dec 18 12:58:13 2015 +0530
Committer: Deepak Kumar Barr 
Committed: Fri Dec 18 12:58:13 2015 +0530

--
 lens-api/src/main/resources/lens-errors.conf| 16 +++-
 .../org/apache/lens/driver/hive/HiveDriver.java | 17 +++--
 .../lens/driver/hive/LensHiveErrorCode.java | 36 ++
 .../server/query/QueryAPIErrorResponseTest.java |  5 ++-
 .../lens/server/query/TestQueryService.java | 40 ++--
 5 files changed, 103 insertions(+), 11 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/bf1053b4/lens-api/src/main/resources/lens-errors.conf
--
diff --git a/lens-api/src/main/resources/lens-errors.conf 
b/lens-api/src/main/resources/lens-errors.conf
index c880543..06960a0 100644
--- a/lens-api/src/main/resources/lens-errors.conf
+++ b/lens-api/src/main/resources/lens-errors.conf
@@ -317,6 +317,20 @@ lensCubeErrorsForMetastore = [
 
 ]
 
+lensHiveErrors = [
+  {
+errorCode = 4001
+httpStatusCode = ${BAD_REQUEST}
+errorMsg = "Semantic Error : %s"
+  }
+
+  {
+errorCode = 4002
+httpStatusCode = ${INTERNAL_SERVER_ERROR}
+errorMsg = "Hive Error : %s"
+  }
+]
+
 lensCubeErrors = ${lensCubeErrorsForQuery}${lensCubeErrorsForMetastore}
 
 # Overriding errors in lens-errors.conf via lens-errors-override.conf:
@@ -350,4 +364,4 @@ lensCubeErrors = 
${lensCubeErrorsForQuery}${lensCubeErrorsForMetastore}
 # Lens server and Lens client are only aware of errors array. They are not 
aware of any other array defined in
 # error configuration files. Hence an errors array is prepared which is a 
concatenation of all other error arrays.
 
-errors = ${lensCommonErrors}${lensServerErrors}${lensCubeErrors}
+errors = 
${lensCommonErrors}${lensServerErrors}${lensCubeErrors}${lensHiveErrors}

http://git-wip-us.apache.org/repos/asf/lens/blob/bf1053b4/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
--
diff --git 
a/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java 
b/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
index 7391f47..c7ef8f1 100644
--- a/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
+++ b/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
@@ -18,6 +18,7 @@
  */
 package org.apache.lens.driver.hive;
 
+import static org.apache.lens.driver.hive.LensHiveErrorCode.*;
 import static org.apache.lens.server.api.util.LensUtil.getImplementations;
 
 import java.io.ByteArrayInputStream;
@@ -508,6 +509,7 @@ public class HiveDriver extends AbstractLensDriver {
   // assuming this is only called for executing 
explain/insert/set/delete/etc... queries which don't ask to fetch data.
   public LensResultSet execute(QueryContext ctx) throws LensException {
 OperationHandle op = null;
+LensResultSet result = null;
 try {
   addPersistentPath(ctx);
   Configuration qdconf = ctx.getDriverConf(this);
@@ -525,24 +527,24 @@ public class HiveDriver extends AbstractLensDriver {
   if (status.getState() == OperationState.ERROR) {
 throw new LensException("Unknown error while running query " + 
ctx.getUserQuery());
   }
-  LensResultSet result = createResultSet(ctx, true);
+  result = createResultSet(ctx, true);
   // close the query immediately if the result is not inmemory result set
   if (result == null || !(result instanceof HiveInMemoryResultSet)) {
 closeQuery(ctx.getQueryHandle());
   }
   // remove query handle from hiveHandles even in case of inmemory result 
set
   hiveHandles.remove(ctx.getQueryHandle());
-  return result;
 } catch (IOException e) {
   throw new LensException("Error adding persistent path", e);
 } catch (HiveSQLException hiveErr) {
   handleHiveServerError(ctx, hiveErr);
-  throw new LensException("Error executing query", hiveErr);
+  handleHiveSQLException(hiveErr);
 } finally {
   if (null != op) {
 opHandleToSession.remove(op);
   }
 }
+return result;
   }
 
   /*
@@ -569,10 +571,17 @@ public class HiveDriver extends AbstractLensDriver {
   throw new LensException("Error adding persistent path", e);
 } catch 

[47/51] [abbrv] lens git commit: LENS-920 : Fix issues in producing and consuming json for all api

2016-02-03 Thread deepakbarr
http://git-wip-us.apache.org/repos/asf/lens/blob/d559ef2e/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreService.java
--
diff --git 
a/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreService.java
 
b/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreService.java
index 925fc86..4bc3f0a 100644
--- 
a/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreService.java
+++ 
b/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreService.java
@@ -29,10 +29,7 @@ import javax.ws.rs.BadRequestException;
 import javax.ws.rs.NotFoundException;
 import javax.ws.rs.client.Entity;
 import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Application;
-import javax.ws.rs.core.GenericType;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
+import javax.ws.rs.core.*;
 import javax.xml.bind.JAXBElement;
 import javax.xml.datatype.DatatypeFactory;
 import javax.xml.datatype.XMLGregorianCalendar;
@@ -44,6 +41,7 @@ import org.apache.lens.api.LensSessionHandle;
 import org.apache.lens.api.StringList;
 import org.apache.lens.api.error.LensCommonErrorCode;
 import org.apache.lens.api.metastore.*;
+import org.apache.lens.api.metastore.ObjectFactory;
 import org.apache.lens.api.result.LensAPIResult;
 import org.apache.lens.cube.metadata.*;
 import org.apache.lens.cube.metadata.ExprColumn.ExprSpec;
@@ -62,15 +60,9 @@ import org.apache.hadoop.hive.metastore.api.FieldSchema;
 import org.apache.hadoop.hive.ql.session.SessionState;
 import org.apache.hadoop.mapred.SequenceFileInputFormat;
 
-import org.glassfish.jersey.client.ClientConfig;
-import org.glassfish.jersey.media.multipart.FormDataBodyPart;
-import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
-import org.glassfish.jersey.media.multipart.FormDataMultiPart;
-import org.glassfish.jersey.media.multipart.MultiPartFeature;
+import org.glassfish.jersey.test.TestProperties;
 import org.testng.Assert;
-import org.testng.annotations.AfterTest;
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.Test;
+import org.testng.annotations.*;
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
@@ -80,8 +72,6 @@ import lombok.extern.slf4j.Slf4j;
 @Test(groups = "unit-test")
 public class TestMetastoreService extends LensJerseyTest {
   private ObjectFactory cubeObjectFactory;
-  protected String mediaType = MediaType.APPLICATION_XML;
-  protected MediaType medType = MediaType.APPLICATION_XML_TYPE;
   protected String dbPFX = "TestMetastoreService_";
   CubeMetastoreServiceImpl metastoreService;
   LensSessionHandle lensSessionId;
@@ -90,7 +80,7 @@ public class TestMetastoreService extends LensJerseyTest {
 assertEquals(result.getStatus(), Status.SUCCEEDED, String.valueOf(result));
   }
 
-  @BeforeTest
+  @BeforeMethod
   public void setUp() throws Exception {
 super.setUp();
 cubeObjectFactory = new ObjectFactory();
@@ -99,7 +89,7 @@ public class TestMetastoreService extends LensJerseyTest {
 
   }
 
-  @AfterTest
+  @AfterMethod
   public void tearDown() throws Exception {
 metastoreService.closeSession(lensSessionId);
 super.tearDown();
@@ -107,62 +97,67 @@ public class TestMetastoreService extends LensJerseyTest {
 
   @Override
   protected Application configure() {
+enable(TestProperties.LOG_TRAFFIC);
+enable(TestProperties.DUMP_ENTITY);
 return new MetastoreApp();
   }
 
-  @Override
-  protected void configureClient(ClientConfig config) {
-config.register(MultiPartFeature.class);
-  }
-
-  @Test
-  public void testSetDatabase() throws Exception {
-WebTarget dbTarget = target().path("metastore").path("databases/current");
-String dbName = "test_set_db";
+  @Test(dataProvider = "mediaTypeData")
+  public void testSetDatabase(MediaType mediaType) throws Exception {
+String prevDb = getCurrentDatabase(mediaType);
+String dbName = "test_set_db" + mediaType.getSubtype();
 try {
-  dbTarget.queryParam("sessionid", 
lensSessionId).request(mediaType).put(Entity.xml(dbName), APIResult.class);
-  fail("Should get 404");
-} catch (NotFoundException e) {
-  // expected
-}
+  WebTarget dbTarget = 
target().path("metastore").path("databases/current");
+  try {
+dbTarget.queryParam("sessionid", 
lensSessionId).request(mediaType).put(getEntityForString(dbName, mediaType),
+  APIResult.class);
+fail("Should get 404");
+  } catch (NotFoundException e) {
+// expected
+  }
 
-// create
-APIResult result = target().path("metastore").path("databases")
-  .queryParam("sessionid", 
lensSessionId).request(mediaType).post(Entity.xml(dbName), APIResult.class);
-assertNotNull(result);
-assertSuccess(result);
+  // create
+  APIResult result = target().path("metastore").path("databases")
+

[51/51] [abbrv] lens git commit: Fixed merge conflicts

2016-02-03 Thread deepakbarr
Fixed merge conflicts


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

Branch: refs/heads/current-release-line
Commit: 15396047b2e85d57eb6ffa73dbc4296ead6c9f49
Parents: d559ef2 79261f9
Author: Deepak Barr 
Authored: Wed Feb 3 16:46:26 2016 +0530
Committer: Deepak Kumar Barr 
Committed: Wed Feb 3 16:46:26 2016 +0530

--

--




[38/51] [abbrv] lens git commit: LENS-933 : Allow presubmit hook to throw LensException

2016-02-03 Thread deepakbarr
LENS-933 : Allow presubmit hook to throw LensException


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

Branch: refs/heads/current-release-line
Commit: 8a36572918540e83eae8c16a45c8479879ae7949
Parents: 919936b
Author: Rajat Khandelwal 
Authored: Wed Jan 27 16:49:03 2016 +0530
Committer: Amareshwari Sriramadasu 
Committed: Wed Jan 27 16:49:03 2016 +0530

--
 .../java/org/apache/lens/server/api/driver/DriverQueryHook.java  | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/8a365729/lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryHook.java
--
diff --git 
a/lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryHook.java
 
b/lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryHook.java
index 70d999a..ecac6be 100644
--- 
a/lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryHook.java
+++ 
b/lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryHook.java
@@ -21,6 +21,7 @@
  */
 package org.apache.lens.server.api.driver;
 
+import org.apache.lens.server.api.error.LensException;
 import org.apache.lens.server.api.query.AbstractQueryContext;
 
 /**
@@ -45,6 +46,7 @@ public interface DriverQueryHook {
   /**
* Should be Called before launch on the driver
* @param ctx
+   * @throws LensException
*/
-  void preLaunch(AbstractQueryContext ctx);
+  void preLaunch(AbstractQueryContext ctx) throws LensException;
 }



[17/51] [abbrv] lens git commit: LENS-908 : Add error codes for jdbc query execution exception

2016-02-03 Thread deepakbarr
LENS-908 : Add error codes for jdbc query execution exception


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

Branch: refs/heads/current-release-line
Commit: fdf04be044e727e9d86708b7b0e24b0aec9ed6a3
Parents: 4d7c8e4
Author: Sushil Mohanty 
Authored: Wed Dec 30 18:30:46 2015 +0530
Committer: Sushil Mohanty 
Committed: Wed Dec 30 18:30:46 2015 +0530

--
 lens-api/src/main/resources/lens-errors.conf|  6 ++--
 .../org/apache/lens/driver/hive/HiveDriver.java |  4 +--
 .../lens/driver/hive/LensHiveErrorCode.java | 36 
 .../apache/lens/driver/hive/TestHiveDriver.java |  4 +--
 .../org/apache/lens/driver/jdbc/JDBCDriver.java | 25 +-
 .../apache/lens/driver/jdbc/TestJdbcDriver.java | 14 
 .../server/api/error/LensDriverErrorCode.java   | 36 
 .../server/query/QueryAPIErrorResponseTest.java | 24 ++---
 .../lens/server/query/TestQueryService.java |  4 +--
 9 files changed, 95 insertions(+), 58 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/fdf04be0/lens-api/src/main/resources/lens-errors.conf
--
diff --git a/lens-api/src/main/resources/lens-errors.conf 
b/lens-api/src/main/resources/lens-errors.conf
index 06960a0..c7ccea1 100644
--- a/lens-api/src/main/resources/lens-errors.conf
+++ b/lens-api/src/main/resources/lens-errors.conf
@@ -317,7 +317,7 @@ lensCubeErrorsForMetastore = [
 
 ]
 
-lensHiveErrors = [
+lensDriverErrors = [
   {
 errorCode = 4001
 httpStatusCode = ${BAD_REQUEST}
@@ -327,7 +327,7 @@ lensHiveErrors = [
   {
 errorCode = 4002
 httpStatusCode = ${INTERNAL_SERVER_ERROR}
-errorMsg = "Hive Error : %s"
+errorMsg = "Driver Execution Error : %s"
   }
 ]
 
@@ -364,4 +364,4 @@ lensCubeErrors = 
${lensCubeErrorsForQuery}${lensCubeErrorsForMetastore}
 # Lens server and Lens client are only aware of errors array. They are not 
aware of any other array defined in
 # error configuration files. Hence an errors array is prepared which is a 
concatenation of all other error arrays.
 
-errors = 
${lensCommonErrors}${lensServerErrors}${lensCubeErrors}${lensHiveErrors}
+errors = 
${lensCommonErrors}${lensServerErrors}${lensCubeErrors}${lensDriverErrors}

http://git-wip-us.apache.org/repos/asf/lens/blob/fdf04be0/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
--
diff --git 
a/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java 
b/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
index c7ef8f1..149c6ab 100644
--- a/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
+++ b/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
@@ -18,7 +18,7 @@
  */
 package org.apache.lens.driver.hive;
 
-import static org.apache.lens.driver.hive.LensHiveErrorCode.*;
+import static org.apache.lens.server.api.error.LensDriverErrorCode.*;
 import static org.apache.lens.server.api.util.LensUtil.getImplementations;
 
 import java.io.ByteArrayInputStream;
@@ -579,7 +579,7 @@ public class HiveDriver extends AbstractLensDriver {
 if (ex.getMessage().contains("SemanticException")) {
   throw new LensException(SEMANTIC_ERROR.getLensErrorInfo(), ex, 
ex.getMessage());
 }
-throw new LensException(HIVE_ERROR.getLensErrorInfo(), ex, 
ex.getMessage());
+throw new LensException(DRIVER_ERROR.getLensErrorInfo(), ex, 
ex.getMessage());
   }
 
   /*

http://git-wip-us.apache.org/repos/asf/lens/blob/fdf04be0/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/LensHiveErrorCode.java
--
diff --git 
a/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/LensHiveErrorCode.java
 
b/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/LensHiveErrorCode.java
deleted file mode 100644
index 3bac9e7..000
--- 
a/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/LensHiveErrorCode.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0

[23/51] [abbrv] lens git commit: LENS-735 : Remove accepting TableReferences for ReferenceDimAttribute

2016-02-03 Thread deepakbarr
http://git-wip-us.apache.org/repos/asf/lens/blob/908530f5/lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java
--
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java
index d9e442d..2cf92b9 100644
--- a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java
+++ b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java
@@ -21,6 +21,7 @@ package org.apache.lens.cube.parse;
 
 import static org.apache.lens.cube.metadata.DateFactory.*;
 import static org.apache.lens.cube.parse.CubeTestSetup.*;
+import static org.apache.lens.cube.parse.TestCubeRewriter.compareQueries;
 
 import static org.testng.Assert.*;
 
@@ -28,7 +29,6 @@ import java.util.*;
 
 import org.apache.lens.cube.error.LensCubeErrorCode;
 import org.apache.lens.cube.metadata.*;
-import org.apache.lens.cube.metadata.SchemaGraph.TableRelationship;
 import org.apache.lens.server.api.error.LensException;
 
 import org.apache.commons.lang.StringUtils;
@@ -45,7 +45,6 @@ import org.testng.annotations.Test;
 public class TestJoinResolver extends TestQueryRewrite {
 
   private static HiveConf hconf = new HiveConf(TestJoinResolver.class);
-  private CubeMetastoreClient metastore;
 
   @BeforeTest
   public void setupInstance() throws Exception {
@@ -53,124 +52,25 @@ public class TestJoinResolver extends TestQueryRewrite {
 hconf.setBoolean(CubeQueryConfUtil.DISABLE_AUTO_JOINS, false);
 hconf.setBoolean(CubeQueryConfUtil.ENABLE_GROUP_BY_TO_SELECT, true);
 hconf.setBoolean(CubeQueryConfUtil.ENABLE_SELECT_TO_GROUPBY, true);
+hconf.setBoolean(CubeQueryConfUtil.DISABLE_AGGREGATE_RESOLVER, false);
 hconf.setBoolean(CubeQueryConfUtil.ENABLE_FLATTENING_FOR_BRIDGETABLES, 
true);
-this.metastore = CubeMetastoreClient.getInstance(hconf);
   }
 
   @AfterTest
   public void closeInstance() throws Exception {
   }
 
-  // testBuildGraph - graph correctness
-  @Test
-  public void testBuildGraph() throws Exception {
-SchemaGraph schemaGraph = metastore.getSchemaGraph();
-CubeInterface cube = metastore.getCube(CubeTestSetup.TEST_CUBE_NAME);
-Map graph = 
schemaGraph.getCubeGraph(cube);
-printGraph(graph);
-Assert.assertNotNull(graph);
-
-// Let's do some lookups
-Set dim4Edges = 
graph.get(metastore.getDimension("testdim4"));
-Assert.assertNull(dim4Edges);
-dim4Edges = graph.get(metastore.getDimension("testdim3"));
-Assert.assertNotNull(dim4Edges);
-Assert.assertEquals(1, dim4Edges.size());
-
-List edges = new 
ArrayList(dim4Edges);
-TableRelationship dim4edge = edges.get(0);
-Assert.assertEquals("id", dim4edge.getToColumn());
-Assert.assertEquals(metastore.getDimension("testdim4"), 
dim4edge.getToTable());
-Assert.assertEquals("testdim4id", dim4edge.getFromColumn());
-Assert.assertEquals(metastore.getDimension("testdim3"), 
dim4edge.getFromTable());
-  }
-
-  private void searchPaths(AbstractCubeTable source, AbstractCubeTable target, 
SchemaGraph graph) {
-SchemaGraph.GraphSearch search = new SchemaGraph.GraphSearch(source, 
target, graph);
-List joinPaths = search.findAllPathsToTarget();
-
-System.out.println("@@ " + source + " ==> " + target + " paths =");
-int i = 0;
-for (SchemaGraph.JoinPath jp : joinPaths) {
-  Assert.assertEquals(jp.getEdges().get(0).getToTable(), source);
-  Assert.assertEquals(jp.getEdges().get(jp.getEdges().size() - 
1).getFromTable(), target);
-  Collections.reverse(jp.getEdges());
-  System.out.println(++i + " " + jp.getEdges());
-}
-  }
-
-  @Test
-  public void testFindChain() throws Exception {
-SchemaGraph schemaGraph = metastore.getSchemaGraph();
-schemaGraph.print();
-
-// Search For all cubes and all dims to make sure that search terminates
-for (CubeInterface cube : metastore.getAllCubes()) {
-  for (Dimension dim : metastore.getAllDimensions()) {
-searchPaths(dim, (AbstractCubeTable) cube, schemaGraph);
-  }
-}
-
-for (Dimension dim : metastore.getAllDimensions()) {
-  for (Dimension otherDim : metastore.getAllDimensions()) {
-if (otherDim != dim) {
-  searchPaths(dim, otherDim, schemaGraph);
-}
-  }
-}
-
-// Assert for testcube
-CubeInterface testCube = metastore.getCube("testcube");
-Dimension zipDim = metastore.getDimension("zipdim");
-Dimension cityDim = metastore.getDimension("citydim");
-Dimension testDim2 = metastore.getDimension("testDim2");
-
-SchemaGraph.GraphSearch search = new SchemaGraph.GraphSearch(zipDim, 
(AbstractCubeTable) testCube, schemaGraph);
-
-List paths = search.findAllPathsToTarget();
-Assert.assertEquals(6, paths.size());
-validatePath(paths.get(0), zipDim, (AbstractCubeTable) testCube);
-

[45/51] [abbrv] lens git commit: LENS-920 : Fix issues in producing and consuming json for all api

2016-02-03 Thread deepakbarr
http://git-wip-us.apache.org/repos/asf/lens/blob/d559ef2e/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
--
diff --git 
a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java 
b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
index ef8c1aa..d9b7679 100644
--- 
a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
+++ 
b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
@@ -33,10 +33,7 @@ import java.util.*;
 import javax.ws.rs.NotFoundException;
 import javax.ws.rs.client.Entity;
 import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Application;
-import javax.ws.rs.core.GenericType;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
+import javax.ws.rs.core.*;
 
 import org.apache.lens.api.APIResult;
 import org.apache.lens.api.LensConf;
@@ -77,16 +74,11 @@ import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.io.IOUtils;
 
-import org.glassfish.jersey.client.ClientConfig;
 import org.glassfish.jersey.media.multipart.FormDataBodyPart;
 import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
 import org.glassfish.jersey.media.multipart.FormDataMultiPart;
-import org.glassfish.jersey.media.multipart.MultiPartFeature;
 import org.glassfish.jersey.test.TestProperties;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.AfterTest;
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.Test;
+import org.testng.annotations.*;
 
 import com.codahale.metrics.MetricRegistry;
 import com.google.common.base.Optional;
@@ -130,7 +122,7 @@ public class TestQueryService extends LensJerseyTest {
 super.setUp();
 queryService = LensServices.get().getService(QueryExecutionService.NAME);
 metricsSvc = LensServices.get().getService(MetricsService.NAME);
-Map sessionconf = new HashMap();
+Map sessionconf = new HashMap<>();
 sessionconf.put("test.session.key", "svalue");
 lensSessionId = queryService.openSession("foo@localhost", "bar", 
sessionconf); // @localhost should be removed
 // automatically
@@ -167,17 +159,6 @@ public class TestQueryService extends LensJerseyTest {
 return new QueryServiceTestApp();
   }
 
-  /*
-   * (non-Javadoc)
-   *
-   * @see 
org.glassfish.jersey.test.JerseyTest#configureClient(org.glassfish.jersey.client.ClientConfig)
-   */
-  @Override
-  protected void configureClient(ClientConfig config) {
-config.register(MultiPartFeature.class);
-config.register(LensJAXBContextResolver.class);
-  }
-
   /** The test table. */
   public static final String TEST_TABLE = "TEST_TABLE";
 
@@ -188,7 +169,7 @@ public class TestQueryService extends LensJerseyTest {
* @throws InterruptedException the interrupted exception
*/
   private void createTable(String tblName) throws InterruptedException {
-LensServerTestUtil.createTable(tblName, target(), lensSessionId);
+LensServerTestUtil.createTable(tblName, target(), lensSessionId, 
defaultMT);
   }
 
   /**
@@ -199,7 +180,7 @@ public class TestQueryService extends LensJerseyTest {
* @throws InterruptedException the interrupted exception
*/
   private void loadData(String tblName, final String testDataFile) throws 
InterruptedException {
-LensServerTestUtil.loadDataFromClasspath(tblName, testDataFile, target(), 
lensSessionId);
+LensServerTestUtil.loadDataFromClasspath(tblName, testDataFile, target(), 
lensSessionId, defaultMT);
   }
 
   /**
@@ -209,19 +190,17 @@ public class TestQueryService extends LensJerseyTest {
* @throws InterruptedException the interrupted exception
*/
   private void dropTable(String tblName) throws InterruptedException {
-LensServerTestUtil.dropTable(tblName, target(), lensSessionId);
+LensServerTestUtil.dropTable(tblName, target(), lensSessionId, defaultMT);
   }
 
-  // test get a random query, should return 400
-
   /**
-   * Test get random query.
+   * Test get random query. should return 400
*/
-  @Test
-  public void testGetRandomQuery() {
+  @Test(dataProvider = "mediaTypeData")
+  public void testGetRandomQuery(MediaType mt) {
 final WebTarget target = target().path("queryapi/queries");
 
-Response rs = target.path("random").queryParam("sessionid", 
lensSessionId).request().get();
+Response rs = target.path("random").queryParam("sessionid", 
lensSessionId).request(mt).get();
 assertEquals(rs.getStatus(), 400);
   }
 
@@ -229,7 +208,7 @@ public class TestQueryService extends LensJerseyTest {
   public void testLoadingMultipleDrivers() {
 Collection drivers = queryService.getDrivers();
 assertEquals(drivers.size(), 4);
-Set driverNames = new HashSet(drivers.size());
+Set driverNames = new HashSet<>(drivers.size());
 for 

[41/51] [abbrv] lens git commit: LENS-921 : Clean unaccessed InMemoryResultSet intances form server

2016-02-03 Thread deepakbarr
LENS-921 : Clean unaccessed InMemoryResultSet intances form server


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

Branch: refs/heads/current-release-line
Commit: 2539f338ad06e2c4a93ba6f816a837757aa5a9f1
Parents: f1d6e3f
Author: Puneet Gupta 
Authored: Mon Feb 1 14:14:03 2016 +0530
Committer: Amareshwari Sriramadasu 
Committed: Mon Feb 1 14:14:03 2016 +0530

--
 .../lens/server/api/LensConfConstants.java  |  11 ++
 .../server/api/driver/InMemoryResultSet.java|   8 +-
 .../server/query/QueryExecutionServiceImpl.java |  21 ++-
 .../src/main/resources/lensserver-default.xml   |  10 ++
 .../lens/server/query/TestQueryService.java |  54 +++
 lens-server/src/test/resources/lens-site.xml|   2 +-
 src/site/apt/admin/config.apt   | 156 ++-
 src/site/apt/admin/session-config.apt   |   2 +-
 8 files changed, 182 insertions(+), 82 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/2539f338/lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
--
diff --git 
a/lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
 
b/lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
index a3dbfc0..8df389b 100644
--- 
a/lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
+++ 
b/lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
@@ -1006,4 +1006,15 @@ public final class LensConfConstants {
* The Constant DEFAULT_EXCLUDE_CUBE_TABLES.
*/
   public static final boolean DEFAULT_EXCLUDE_CUBE_TABLES = true;
+
+  /**
+   * This property defines the TTL secs for all result sets of
+   * type {@link org.apache.lens.server.api.driver.InMemoryResultSet} beyond 
which they are eligible for purging
+   */
+  public static final String INMEMORY_RESULT_SET_TTL_SECS = SERVER_PFX + 
"inmemory.resultset.ttl.secs";
+
+  /**
+   * Default value of  INMEMORY_RESULT_SET_TTL_SECS is 300 secs (5 minutes)
+   */
+  public static final int DEFAULT_INMEMORY_RESULT_SET_TTL_SECS = 300;
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/2539f338/lens-server-api/src/main/java/org/apache/lens/server/api/driver/InMemoryResultSet.java
--
diff --git 
a/lens-server-api/src/main/java/org/apache/lens/server/api/driver/InMemoryResultSet.java
 
b/lens-server-api/src/main/java/org/apache/lens/server/api/driver/InMemoryResultSet.java
index c64a3dd..f6434da 100644
--- 
a/lens-server-api/src/main/java/org/apache/lens/server/api/driver/InMemoryResultSet.java
+++ 
b/lens-server-api/src/main/java/org/apache/lens/server/api/driver/InMemoryResultSet.java
@@ -25,6 +25,7 @@ import org.apache.lens.api.query.InMemoryQueryResult;
 import org.apache.lens.api.query.ResultRow;
 import org.apache.lens.server.api.error.LensException;
 
+import lombok.Getter;
 import lombok.Setter;
 
 /**
@@ -32,11 +33,14 @@ import lombok.Setter;
  */
 public abstract class InMemoryResultSet extends LensResultSet {
 
-  public abstract boolean seekToStart() throws LensException;
-
   @Setter
   private boolean fullyAccessed = false;
 
+  @Getter
+  private long creationTime = System.currentTimeMillis();;
+
+  public abstract boolean seekToStart() throws LensException;
+
   @Override
   public boolean canBePurged() {
 return fullyAccessed;

http://git-wip-us.apache.org/repos/asf/lens/blob/2539f338/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
--
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
 
b/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
index 672f2be..19077d2 100644
--- 
a/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
+++ 
b/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
@@ -273,6 +273,14 @@ public class QueryExecutionServiceImpl extends 
BaseLensService implements QueryE
   private final ExecutorService waitingQueriesSelectionSvc = 
Executors.newSingleThreadExecutor();
 
   /**
+   * This is the TTL millis for all result sets of type {@link 
org.apache.lens.server.api.driver.InMemoryResultSet}
+   * Note : this field is non final and has a Getter and Setter for test cases
+   */
+  @Getter
+  @Setter
+  private long inMemoryResultsetTTLMillis;
+
+  /**
* The driver event listener.

[02/51] [abbrv] lens git commit: LENS-885: Cleanup of Cube test cases

2016-02-03 Thread deepakbarr
http://git-wip-us.apache.org/repos/asf/lens/blob/7c7c86da/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
--
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
index fea70b7..3be9406 100644
--- a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
+++ b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
@@ -19,12 +19,11 @@
 
 package org.apache.lens.cube.parse;
 
+import static org.apache.lens.cube.metadata.DateFactory.*;
 import static org.apache.lens.cube.metadata.UpdatePeriod.*;
 import static 
org.apache.lens.cube.parse.CandidateTablePruneCause.CandidateTablePruneCode.*;
-import static 
org.apache.lens.cube.parse.CubeQueryConfUtil.getValidStorageTablesKey;
-import static 
org.apache.lens.cube.parse.CubeQueryConfUtil.getValidUpdatePeriodsKey;
+import static org.apache.lens.cube.parse.CubeQueryConfUtil.*;
 import static org.apache.lens.cube.parse.CubeTestSetup.*;
-import static 
org.apache.lens.cube.parse.CubeTestSetup.getWhereForMonthlyDailyAndHourly2monthsUnionQuery;
 
 import static org.testng.Assert.*;
 
@@ -36,6 +35,7 @@ import org.apache.lens.cube.error.LensCubeErrorCode;
 import org.apache.lens.cube.metadata.*;
 import org.apache.lens.cube.parse.CandidateTablePruneCause.SkipStorageCause;
 import org.apache.lens.cube.parse.CandidateTablePruneCause.SkipStorageCode;
+import org.apache.lens.server.api.LensServerAPITestUtil;
 import org.apache.lens.server.api.error.LensException;
 
 import org.apache.commons.lang.time.DateUtils;
@@ -61,18 +61,16 @@ import lombok.extern.slf4j.Slf4j;
 @Slf4j
 public class TestCubeRewriter extends TestQueryRewrite {
 
-  private final String cubeName = CubeTestSetup.TEST_CUBE_NAME;
-
   private Configuration conf;
 
   @BeforeTest
   public void setupDriver() throws Exception {
-conf = new Configuration();
-conf.set(CubeQueryConfUtil.DRIVER_SUPPORTED_STORAGES, "C0,C1,C2");
-conf.setBoolean(CubeQueryConfUtil.DISABLE_AUTO_JOINS, true);
-conf.setBoolean(CubeQueryConfUtil.ENABLE_SELECT_TO_GROUPBY, true);
-conf.setBoolean(CubeQueryConfUtil.ENABLE_GROUP_BY_TO_SELECT, true);
-conf.setBoolean(CubeQueryConfUtil.DISABLE_AGGREGATE_RESOLVER, false);
+conf = LensServerAPITestUtil.getConfiguration(
+  DRIVER_SUPPORTED_STORAGES, "C0,C1,C2",
+  DISABLE_AUTO_JOINS, true,
+  ENABLE_SELECT_TO_GROUPBY, true,
+  ENABLE_GROUP_BY_TO_SELECT, true,
+  DISABLE_AGGREGATE_RESOLVER, false);
   }
 
   @Override
@@ -83,7 +81,7 @@ public class TestCubeRewriter extends TestQueryRewrite {
   @Test
   public void testQueryWithNow() throws Exception {
 LensException e = getLensExceptionInRewrite(
-  "select SUM(msr2) from testCube where" + " time_range_in(d_time, 'NOW - 
2DAYS', 'NOW')", getConf());
+  "select SUM(msr2) from testCube where " + getTimeRangeString("NOW - 
2DAYS", "NOW"), getConf());
 assertEquals(e.getErrorCode(), 
LensCubeErrorCode.NO_CANDIDATE_FACT_AVAILABLE.getLensErrorInfo().getErrorCode());
   }
 
@@ -93,19 +91,12 @@ public class TestCubeRewriter extends TestQueryRewrite {
 conf.setClass(CubeQueryConfUtil.TIME_RANGE_WRITER_CLASS, 
BetweenTimeRangeWriter.class, TimeRangeWriter.class);
 
 DateFormat qFmt = new SimpleDateFormat("-MM-dd-HH:mm:ss");
-Calendar qCal = Calendar.getInstance();
-Date toDate = qCal.getTime();
-String qTo = qFmt.format(toDate);
-qCal.setTime(TWODAYS_BACK);
-Date from2DaysBackDate = qCal.getTime();
-String qFrom = qFmt.format(from2DaysBackDate);
-
-CubeQueryContext rewrittenQuery = rewriteCtx("select SUM(msr15) from 
testCube where"
-  + " time_range_in(d_time, '" + qFrom + "', '" + qTo + "')", conf);
+String timeRangeString;
+timeRangeString = getTimeRangeString(DAILY, -2, 0, qFmt);
+CubeQueryContext rewrittenQuery = rewriteCtx("select SUM(msr15) from 
testCube where " + timeRangeString, conf);
 
-DateFormat fmt = UpdatePeriod.CONTINUOUS.format();
-String to = fmt.format(toDate);
-String from = fmt.format(from2DaysBackDate);
+String to = getDateStringWithOffset(DAILY, 0, CONTINUOUS);
+String from = getDateStringWithOffset(DAILY, -2, CONTINUOUS);
 
 String expected = "select SUM((testCube.msr15)) from 
TestQueryRewrite.c0_testFact_CONTINUOUS testcube"
   + " WHERE ((( testcube . dt ) between  '" + from + "'  and  '" + to + "' 
))";
@@ -114,20 +105,17 @@ public class TestCubeRewriter extends TestQueryRewrite {
 compareQueries(rewrittenQuery.toHQL(), expected);
 
 //test with msr2 on different fact
-rewrittenQuery = rewriteCtx("select SUM(msr2) from testCube where" + " 
time_range_in(d_time, '"
-  + qFrom + "', '" + qTo + "')", conf);
+rewrittenQuery = rewriteCtx("select SUM(msr2) from testCube where " + 
timeRangeString, conf);
 expected = "select 

[04/12] lens git commit: LENS-816 : Fix ThreadSafeEstimatedQueryCollection methods not to ignore driver arguments

2016-02-03 Thread deepakbarr
LENS-816 : Fix ThreadSafeEstimatedQueryCollection methods not to ignore driver 
arguments


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

Branch: refs/heads/master
Commit: 7fb9be4562b5437b90d9489ea8f028a3ac960239
Parents: 3c4056a
Author: Rajat Khandelwal 
Authored: Thu Oct 15 05:53:25 2015 +0530
Committer: Amareshwari Sriramadasu 
Committed: Thu Oct 15 05:55:44 2015 +0530

--
 .../ThreadSafeEstimatedQueryCollection.java |  4 +-
 .../ThreadSafeEstimatedQueryCollectionTest.java | 81 
 2 files changed, 83 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/7fb9be45/lens-server/src/main/java/org/apache/lens/server/query/collect/ThreadSafeEstimatedQueryCollection.java
--
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/query/collect/ThreadSafeEstimatedQueryCollection.java
 
b/lens-server/src/main/java/org/apache/lens/server/query/collect/ThreadSafeEstimatedQueryCollection.java
index 5d24379..ca24a8b 100644
--- 
a/lens-server/src/main/java/org/apache/lens/server/query/collect/ThreadSafeEstimatedQueryCollection.java
+++ 
b/lens-server/src/main/java/org/apache/lens/server/query/collect/ThreadSafeEstimatedQueryCollection.java
@@ -41,12 +41,12 @@ public class ThreadSafeEstimatedQueryCollection implements 
EstimatedQueryCollect
 
   @Override
   public synchronized Set getQueries(LensDriver driver) {
-return this.estimatedQueries.getQueries();
+return this.estimatedQueries.getQueries(driver);
   }
 
   @Override
   public synchronized int getQueriesCount(LensDriver driver) {
-return this.estimatedQueries.getQueriesCount();
+return this.estimatedQueries.getQueriesCount(driver);
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/lens/blob/7fb9be45/lens-server/src/test/java/org/apache/lens/server/query/constraint/ThreadSafeEstimatedQueryCollectionTest.java
--
diff --git 
a/lens-server/src/test/java/org/apache/lens/server/query/constraint/ThreadSafeEstimatedQueryCollectionTest.java
 
b/lens-server/src/test/java/org/apache/lens/server/query/constraint/ThreadSafeEstimatedQueryCollectionTest.java
new file mode 100644
index 000..9138f8e
--- /dev/null
+++ 
b/lens-server/src/test/java/org/apache/lens/server/query/constraint/ThreadSafeEstimatedQueryCollectionTest.java
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.lens.server.query.constraint;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import static org.testng.Assert.assertEquals;
+
+import org.apache.lens.server.api.driver.LensDriver;
+import org.apache.lens.server.api.query.QueryContext;
+import 
org.apache.lens.server.api.query.constraint.MaxConcurrentDriverQueriesConstraint;
+import org.apache.lens.server.api.query.constraint.QueryLaunchingConstraint;
+import org.apache.lens.server.api.query.cost.FactPartitionBasedQueryCost;
+import org.apache.lens.server.api.query.cost.QueryCost;
+import org.apache.lens.server.query.collect.DefaultEstimatedQueryCollection;
+import org.apache.lens.server.query.collect.DefaultQueryCollection;
+import org.apache.lens.server.query.collect.ThreadSafeEstimatedQueryCollection;
+
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+public class ThreadSafeEstimatedQueryCollectionTest {
+  public static final QueryCost COST = new FactPartitionBasedQueryCost(10);
+
+  @DataProvider
+  public Object[][] dpTestAllowsLaunchOfQuery() {
+return new Object[][]{{2, true}, {3, false}, {11, false}};
+  }
+
+  @Test(dataProvider = "dpTestAllowsLaunchOfQuery")
+  public void testAllowsLaunchOfQuery(final int currentDriverLaunchedQueries, 
final boolean expectedCanLaunch) 

[01/12] lens git commit: LENS-533: Update critical metrics on monitoring doc

2016-02-03 Thread deepakbarr
Repository: lens
Updated Branches:
  refs/heads/master d559ef2e5 -> 15396047b


LENS-533: Update critical metrics on monitoring doc


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

Branch: refs/heads/master
Commit: 6a89bb911a9babd7b3c4b2f2015820c4ee779e53
Parents: 8671421
Author: Amareshwari Sriramadasu 
Authored: Mon Oct 12 13:58:36 2015 +0530
Committer: raju 
Committed: Mon Oct 12 13:58:36 2015 +0530

--
 src/site/apt/admin/monitoring.apt | 32 +++-
 1 file changed, 31 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/6a89bb91/src/site/apt/admin/monitoring.apt
--
diff --git a/src/site/apt/admin/monitoring.apt 
b/src/site/apt/admin/monitoring.apt
index 9429394..9324bf2 100644
--- a/src/site/apt/admin/monitoring.apt
+++ b/src/site/apt/admin/monitoring.apt
@@ -19,6 +19,10 @@
 
 Lens server monitoring
 
+  This section documents all the metrics available from lens server, admin 
rest end points and more on query statistics.
+
+* Metrics
+
   Lens server emits following metrics for query service
 
   * Number of queued queries;
@@ -103,6 +107,26 @@ Lens server monitoring
  Reporting to the chosen reporting methods will happen periodically. That 
period can be configured by:
  
 
+** Critical Metrics
+
+  When resource method metering is enabled you would see different metrics 
upto 1000 being emitted and might
+  be confusing to admins - which one to look at.
+
+  Along with jvm, memory, thread count gauges, the following are some critical 
metrics that admin can monitor
+
+  * 
lens.gauges.org.apache.lens.server.api.query.QueryExecutionService.running-queries.value
+
+  * 
lens.gauges.org.apache.lens.server.api.query.QueryExecutionService.queued-queries.value
+
+  * 
lens.gauges.org.apache.lens.server.api.query.QueryExecutionService.finished-queries.value
+
+  For all timers, admin can look at mean or/and p99 values and exception.timer 
count. For example :
+
+  * 
lens.timers.org.apache.lens.server.metastore.MetastoreResource.getLatestDateOfCube.GET.exception.timer.count
+
+  * 
lens.timers.org.apache.lens.server.metastore.MetastoreResource.getLatestDateOfCube.GET.timer.mean
+
+  * 
lens.timers.org.apache.lens.server.metastore.MetastoreResource.getLatestDateOfCube.GET.timer.p99
 
 * REST end points
 
@@ -119,5 +143,11 @@ Lens server monitoring
 
 * Query Statistics:
 
-  Lens Server can be configured to emit query related statistics to a hive 
table .The statistics service can be configured by 
providing values to  set to a HDFS location 
where your query statistics log file will be persisted,  
the database which will contain all statistics related tables and 
 time interval which service will be monitoring for 
rollover in log file.The statistics can be disabled by setting, 
 to empty string. The statistics service 
works by monitoring for rollups of  file and adds an 
appropriate partition based on the rolled over file. The statistics can be 
queried using Hive queries.
+  Lens Server can be configured to emit query related statistics to a hive 
table .The
+  statistics service can be configured by providing values to 
 set to a HDFS location
+  where your query statistics log file will be persisted,  
the database which will contain all
+  statistics related tables and  time interval 
which service will be monitoring for rollover
+  in log file.The statistics can be disabled by setting, 
 to empty string. The
+  statistics service works by monitoring for rollups of  file 
and adds an appropriate partition based
+  on the rolled over file. The statistics can be queried using Hive queries.
 



[08/12] lens git commit: LENS-805: Update release documentation for 2.4

2016-02-03 Thread deepakbarr
LENS-805: Update release documentation for 2.4


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

Branch: refs/heads/master
Commit: 017a183445745358fcc3df2cf6121fb3b8f6739c
Parents: 4da0ca3
Author: raju 
Authored: Wed Nov 18 14:53:14 2015 +0800
Committer: raju 
Committed: Wed Nov 18 14:53:14 2015 +0800

--
 src/site/apt/releases/download.apt|  2 +-
 src/site/apt/releases/release-history.apt | 28 ++
 2 files changed, 29 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/017a1834/src/site/apt/releases/download.apt
--
diff --git a/src/site/apt/releases/download.apt 
b/src/site/apt/releases/download.apt
index eba5172..37ac480 100644
--- a/src/site/apt/releases/download.apt
+++ b/src/site/apt/releases/download.apt
@@ -20,7 +20,7 @@
 Download
 
   The latest release of Apache Lens can be
-  {{{http://www.apache.org/dyn/closer.cgi/lens/2.3-beta}downloaded from the 
ASF}}.
+  {{{http://www.apache.org/dyn/closer.lua/lens/2.4-beta}downloaded from the 
ASF}}.
 
   Older releases may be found {{{http://archive.apache.org/dist/lens}in the 
archives}}.
   Releases prior to graduation may be found 
{{{http://archive.apache.org/dist/incubator/lens}in the incubator archives}}.

http://git-wip-us.apache.org/repos/asf/lens/blob/017a1834/src/site/apt/releases/release-history.apt
--
diff --git a/src/site/apt/releases/release-history.apt 
b/src/site/apt/releases/release-history.apt
index b683360..1879acc 100644
--- a/src/site/apt/releases/release-history.apt
+++ b/src/site/apt/releases/release-history.apt
@@ -23,6 +23,8 @@ All Apache Lens releases
 *--+--+---+--+--+--+--+
 |Release version|Major features|Release documentation|Release 
Notes|Download|Incompatibilities|More Info |
 *--+--+---+--+--+--+--+
+|2.4.0-beta| JDK8 support, new web client, Saved Query and Parameterization, 
Support flattening of columns selected through bridge-tables(many-to-many 
relationships), column name mapping for columns in underlying storage tables, 
Enhancements cube.xsd and jdbc driver, Improvements in Error codes, Doc 
improvements, bug fixes| {{{../versions/2.4.0-beta/index.html} 2.4.x docs}} 
|{{{https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315923=12333087}
 2.4 release notes}} |{{{http://archive.apache.org/dist/lens/2.4-beta/} 
Download}} |{{{#a2.4.x_from_2.3.x} 2.4.x-incompatibilities}} | - |
+*--+--+---+--+--+--+--+
 |2.3.0-beta | Per Query Logs, Server side XML validation, File size in query 
result, File name suggestions in CLI, Phase 1 Query rewriter, Elastic Search 
driver, Query launching constraints, Update partition api, Lens Service Health 
check, Doc/javadoc improvements, Code cleanup, bug fixes| 
{{{../versions/2.3.0-beta/index.html} 2.3.x docs}} | 
{{{https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12332350=12315923}
 2.3 release notes}}| {{{http://archive.apache.org/dist/lens/2.3-beta/} 
Download}} | {{{#a2.3.x_from_2.2.x} 2.3.x-incompatibilities}} | - |
 *--+--+---+--+--+--+--+
 |2.2.0-beta-incubating| CLI Improvements, Support for multiple expressions and 
and union queries, More descriptive error codes, Zeppelin integration, Code 
cleanup| {{{../versions/2.2.0-beta-incubating/index.html} 2.2.x-incubating 
docs}} | 
{{{https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12329586=12315923}
 2.2 release notes}}| 
{{{http://archive.apache.org/dist/incubator/lens/2.2-beta-incubating/} 
Download}} | {{{#a2.2.x_from_2.1.x} 2.2.x-incompatibilities}} | - |
@@ -40,6 +42,32 @@ All Apache Lens releases
 
 * Incompatibilities
 
+** 2.4.x from 2.3.x
+
+  * LENS-187: Moved all errors from inmobi hive to lens. All errors will be 
having same error code but all exceptions
+are mapped to LensException instead of HiveException, SemanticException.
+
+  * LENS-446: Removed all server params from session and driver 
configurations. Earlier, all server params was passed to
+drivers and showing through session api. We can not see anymore server 
side properties from session params.
+
+  * LENS-224: Driver class name also will be stored for finished queries. This 
will be an additional column(driverclass)
+in finished_queries table.
+
+  * LENS-693: Purges the finished queries to DB periodically. Added a new 
config property
+lens.server.querypurger.sleep.interval for configuring purge interval. No 
more depends on number of finished queries
+to purge the finished queries to DB.
+
+  * LENS-734: All query output 

[10/12] lens git commit: [maven-release-plugin] prepare release apache-lens-2.4.0-beta

2016-02-03 Thread deepakbarr
[maven-release-plugin] prepare release apache-lens-2.4.0-beta


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

Branch: refs/heads/master
Commit: 03e1697535970b4deb75eed13a7a98b939c281d6
Parents: 88b93b2
Author: Raju Bairishetti 
Authored: Wed Nov 18 20:46:12 2015 +0800
Committer: Raju Bairishetti 
Committed: Wed Nov 18 20:46:12 2015 +0800

--
 checkstyle/pom.xml   |  6 +-
 lens-api/pom.xml |  2 +-
 lens-cli/pom.xml |  2 +-
 lens-client/pom.xml  |  2 +-
 lens-cube/pom.xml|  2 +-
 lens-dist/pom.xml|  2 +-
 lens-driver-es/pom.xml   |  2 +-
 lens-driver-hive/pom.xml |  2 +-
 lens-driver-jdbc/pom.xml |  2 +-
 lens-examples/pom.xml|  2 +-
 lens-ml-dist/pom.xml |  2 +-
 lens-ml-lib/pom.xml  |  2 +-
 lens-query-lib/pom.xml   |  2 +-
 lens-regression/pom.xml  | 15 +++
 lens-server-api/pom.xml  |  2 +-
 lens-server/pom.xml  |  2 +-
 lens-ship-jars/pom.xml   |  6 +++---
 lens-storage-db/pom.xml  |  2 +-
 lens-ui/pom.xml  |  2 +-
 pom.xml  |  8 
 20 files changed, 35 insertions(+), 32 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/03e16975/checkstyle/pom.xml
--
diff --git a/checkstyle/pom.xml b/checkstyle/pom.xml
index 3a96335..5a6e5a9 100644
--- a/checkstyle/pom.xml
+++ b/checkstyle/pom.xml
@@ -29,7 +29,7 @@
   org.apache.lens
   checkstyle
   Lens Checkstyle Rules
-  2.4.0-beta-SNAPSHOT
+  2.4.0-beta
 
   
 
@@ -49,4 +49,8 @@
   
 
   
+
+  
+apache-lens-2.4.0-beta
+  
 

http://git-wip-us.apache.org/repos/asf/lens/blob/03e16975/lens-api/pom.xml
--
diff --git a/lens-api/pom.xml b/lens-api/pom.xml
index abd7ad8..1dcd5f5 100644
--- a/lens-api/pom.xml
+++ b/lens-api/pom.xml
@@ -25,7 +25,7 @@
   
 apache-lens
 org.apache.lens
-2.4.0-beta-SNAPSHOT
+2.4.0-beta
   
 
   lens-api

http://git-wip-us.apache.org/repos/asf/lens/blob/03e16975/lens-cli/pom.xml
--
diff --git a/lens-cli/pom.xml b/lens-cli/pom.xml
index 1175cbb..f5df67c 100644
--- a/lens-cli/pom.xml
+++ b/lens-cli/pom.xml
@@ -26,7 +26,7 @@
   
 apache-lens
 org.apache.lens
-2.4.0-beta-SNAPSHOT
+2.4.0-beta
   
 
   

http://git-wip-us.apache.org/repos/asf/lens/blob/03e16975/lens-client/pom.xml
--
diff --git a/lens-client/pom.xml b/lens-client/pom.xml
index f007856..a20ee8b 100644
--- a/lens-client/pom.xml
+++ b/lens-client/pom.xml
@@ -24,7 +24,7 @@
   
 apache-lens
 org.apache.lens
-2.4.0-beta-SNAPSHOT
+2.4.0-beta
   
 
   lens-client

http://git-wip-us.apache.org/repos/asf/lens/blob/03e16975/lens-cube/pom.xml
--
diff --git a/lens-cube/pom.xml b/lens-cube/pom.xml
index 01784c1..41280e5 100644
--- a/lens-cube/pom.xml
+++ b/lens-cube/pom.xml
@@ -26,7 +26,7 @@
   
 apache-lens
 org.apache.lens
-2.4.0-beta-SNAPSHOT
+2.4.0-beta
   
 
   lens-cube

http://git-wip-us.apache.org/repos/asf/lens/blob/03e16975/lens-dist/pom.xml
--
diff --git a/lens-dist/pom.xml b/lens-dist/pom.xml
index 2d5a710..ac3b582 100644
--- a/lens-dist/pom.xml
+++ b/lens-dist/pom.xml
@@ -26,7 +26,7 @@
   
 apache-lens
 org.apache.lens
-2.4.0-beta-SNAPSHOT
+2.4.0-beta
   
 
   lens-dist

http://git-wip-us.apache.org/repos/asf/lens/blob/03e16975/lens-driver-es/pom.xml
--
diff --git a/lens-driver-es/pom.xml b/lens-driver-es/pom.xml
index ef8cbd5..3acf075 100644
--- a/lens-driver-es/pom.xml
+++ b/lens-driver-es/pom.xml
@@ -24,7 +24,7 @@
 
 org.apache.lens
 apache-lens
-2.4.0-beta-SNAPSHOT
+2.4.0-beta
 
 
 lens-driver-es

http://git-wip-us.apache.org/repos/asf/lens/blob/03e16975/lens-driver-hive/pom.xml
--
diff --git a/lens-driver-hive/pom.xml b/lens-driver-hive/pom.xml
index a00924b..8cffa12 100644
--- a/lens-driver-hive/pom.xml
+++ b/lens-driver-hive/pom.xml
@@ -26,7 +26,7 @@
   
 apache-lens
 org.apache.lens
-2.4.0-beta-SNAPSHOT
+2.4.0-beta
   
 
   

http://git-wip-us.apache.org/repos/asf/lens/blob/03e16975/lens-driver-jdbc/pom.xml
--
diff --git 

[12/12] lens git commit: Fixed merge conflicts

2016-02-03 Thread deepakbarr
Fixed merge conflicts


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

Branch: refs/heads/master
Commit: 15396047b2e85d57eb6ffa73dbc4296ead6c9f49
Parents: d559ef2 79261f9
Author: Deepak Barr 
Authored: Wed Feb 3 16:46:26 2016 +0530
Committer: Deepak Kumar Barr 
Committed: Wed Feb 3 16:46:26 2016 +0530

--

--




[05/12] lens git commit: LENS-341 : Update docs with java 8 compatibility

2016-02-03 Thread deepakbarr
LENS-341 : Update docs with java 8 compatibility


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

Branch: refs/heads/master
Commit: 9acc03b573ea2c31c08ba1932890d42f67937fa6
Parents: 7fb9be4
Author: raju 
Authored: Mon Oct 19 06:08:11 2015 +0530
Committer: raju 
Committed: Mon Oct 19 06:08:11 2015 +0530

--
 README.md | 3 ++-
 src/site/apt/developer/contribute.apt | 5 -
 2 files changed, 6 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/9acc03b5/README.md
--
diff --git a/README.md b/README.md
index d8657c1..169791d 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,8 @@ Apache Lens is a unified Analytics Platform. Lens aims to cut 
the Data Analytics
 across multiple tiered data stores and optimal execution environment for the 
analytical query.
 
 Prerequisites :
-Apache Lens requires JDK(1.7) and Apache Maven(3.x) to be installed for the 
build. Build does not pass with JDK(1.8) yet.
+Apache Lens requires JDK(>=1.7) and Apache Maven(3.x) to be installed for the 
build.
+
 JAVA_HOME is required for running tests.
 
 Confirm versions :

http://git-wip-us.apache.org/repos/asf/lens/blob/9acc03b5/src/site/apt/developer/contribute.apt
--
diff --git a/src/site/apt/developer/contribute.apt 
b/src/site/apt/developer/contribute.apt
index 5b6fbaf..38c6818 100644
--- a/src/site/apt/developer/contribute.apt
+++ b/src/site/apt/developer/contribute.apt
@@ -67,7 +67,10 @@ Developer Documentation : How to contribute to Apache Lens?
 
 ** Build tools
 
-  * A Java Development Kit. You can use java7. Build does not pass with 
JDK(1.8) yet.
+  * A Java Development Kit. You can use java7 and java8.
+
+  * Generating site and javadoc with java8 is not supported yet. See 
[Enunciate issue {{{https://issues.apache.org/jira/browse/LENS-398}Enunciate 
issue}}
+ and {{{https://issues.apache.org/jira/browse/LENS-824}Javadoc issue}} for 
more details.
 
   * Apache maven (3.x+)