You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by am...@apache.org on 2015/01/30 13:16:16 UTC

incubator-lens git commit: LENS-241 : Fixes examples with results persisted in driver(amareshwari)

Repository: incubator-lens
Updated Branches:
  refs/heads/master 0ce168413 -> 0e6d6558f


LENS-241 : Fixes examples with results persisted in driver(amareshwari)


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

Branch: refs/heads/master
Commit: 0e6d6558f3ecd26ab7cdd7271b2e913084c9622a
Parents: 0ce1684
Author: Amareshwari Sriramdasu <am...@inmobi.com>
Authored: Fri Jan 30 17:46:07 2015 +0530
Committer: Amareshwari Sriramdasu <am...@inmobi.com>
Committed: Fri Jan 30 17:46:07 2015 +0530

----------------------------------------------------------------------
 .../org/apache/lens/driver/hive/HiveDriver.java  |  1 +
 .../apache/lens/driver/hive/TestHiveDriver.java  | 14 +++++++-------
 .../lens/server/api/query/QueryContext.java      | 19 ++++++++++++++++---
 3 files changed, 24 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/0e6d6558/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 300cda1..2a5f5b8 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
@@ -770,6 +770,7 @@ public class HiveDriver implements LensDriver {
       builder.append(' ').append(context.getSelectedDriverQuery()).append(' ');
       hiveQuery = builder.toString();
     } else {
+      context.unSetDriverPersistent();
       hiveQuery = context.getSelectedDriverQuery();
     }
     LOG.info("Hive driver query:" + hiveQuery);

http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/0e6d6558/lens-driver-hive/src/test/java/org/apache/lens/driver/hive/TestHiveDriver.java
----------------------------------------------------------------------
diff --git a/lens-driver-hive/src/test/java/org/apache/lens/driver/hive/TestHiveDriver.java b/lens-driver-hive/src/test/java/org/apache/lens/driver/hive/TestHiveDriver.java
index cc2fe0d..d4a2280 100644
--- a/lens-driver-hive/src/test/java/org/apache/lens/driver/hive/TestHiveDriver.java
+++ b/lens-driver-hive/src/test/java/org/apache/lens/driver/hive/TestHiveDriver.java
@@ -103,7 +103,6 @@ public class TestHiveDriver {
     sessionid = SessionState.get().getSessionId();
 
     conf.setBoolean(LensConfConstants.QUERY_ADD_INSERT_OVEWRITE, false);
-    conf.setBoolean(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, false);
     QueryContext context = createContext("USE " + DATA_BASE, conf);
     driver.execute(context);
     conf.setBoolean(LensConfConstants.QUERY_ADD_INSERT_OVEWRITE, true);
@@ -173,8 +172,7 @@ public class TestHiveDriver {
     System.out.println("Hadoop Location: " + System.getProperty("hadoop.bin.path"));
     String createTable = "CREATE TABLE IF NOT EXISTS " + tableName + "(ID STRING)" + " TBLPROPERTIES ('"
         + LensConfConstants.STORAGE_COST + "'='500')";
-    conf.setBoolean(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, false);
-    // Craete again
+    // Create test table
     QueryContext context = createContext(createTable, conf);
     LensResultSet resultSet = driver.execute(context);
     assertNull(resultSet);
@@ -672,8 +670,10 @@ public class TestHiveDriver {
     pctx.setSelectedDriver(driver);
 
     SessionState.setCurrentSessionState(ss);
+    HiveConf inConf = new HiveConf(conf);
+    inConf.setBoolean(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, false);
     plan = driver.explainAndPrepare(pctx);
-    QueryContext qctx = createContext(pctx, conf);
+    QueryContext qctx = createContext(pctx, inConf);
     LensResultSet result = driver.execute(qctx);
     Assert.assertEquals(0, driver.getHiveHandleSize());
     validateInMemoryResult(result);
@@ -682,14 +682,14 @@ public class TestHiveDriver {
     qctx = createContext(pctx, conf);
     driver.executeAsync(qctx);
     assertNotNull(qctx.getDriverOpHandle());
-    validateExecuteAsync(qctx, DriverQueryState.SUCCESSFUL, false, false);
+    validateExecuteAsync(qctx, DriverQueryState.SUCCESSFUL, true, false);
     Assert.assertEquals(1, driver.getHiveHandleSize());
 
     driver.closeQuery(qctx.getQueryHandle());
     Assert.assertEquals(0, driver.getHiveHandleSize());
 
     // for backward compatibility
-    qctx = createContext(pctx, conf);
+    qctx = createContext(pctx, inConf);
     qctx.setQueryHandle(new QueryHandle(pctx.getPrepareHandle().getPrepareHandleId()));
     result = driver.execute(qctx);
     assertNotNull(qctx.getDriverOpHandle());
@@ -700,7 +700,7 @@ public class TestHiveDriver {
     qctx.setQueryHandle(new QueryHandle(pctx.getPrepareHandle().getPrepareHandleId()));
     driver.executeAsync(qctx);
     Assert.assertEquals(1, driver.getHiveHandleSize());
-    validateExecuteAsync(qctx, DriverQueryState.SUCCESSFUL, false, false);
+    validateExecuteAsync(qctx, DriverQueryState.SUCCESSFUL, true, false);
 
     driver.closeQuery(qctx.getQueryHandle());
     driver.closePreparedQuery(pctx.getPrepareHandle());

http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/0e6d6558/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
----------------------------------------------------------------------
diff --git a/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java b/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
index 7a5cf40..ac34760 100644
--- a/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
+++ b/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
@@ -73,8 +73,7 @@ public class QueryContext extends AbstractQueryContext implements Comparable<Que
   /**
    * The is driver persistent.
    */
-  @Getter
-  private final boolean isDriverPersistent;
+  @Getter private boolean isDriverPersistent;
 
   /**
    * The status.
@@ -320,13 +319,27 @@ public class QueryContext extends AbstractQueryContext implements Comparable<Que
   }
 
   public boolean isResultAvailableInDriver() {
+    // result is available in driver if driverStatus.isResultSetAvailable() - will be true for fetching inmemory
+    // result set.
+    // if result is persisted in driver driverStatus.isResultSetAvailable() will be false
+    // so, for select queries, if result is persisted in driver, we return true sothat the result can be fetched thru
+    // persistent resultset
     return isDriverPersistent() || driverStatus.isResultSetAvailable();
   }
 
+  /**
+   * Set whether result is persisted on driver to false. Set by drivers when drivers are not persisting
+   *
+   * @return true/false
+   */
+  public void unSetDriverPersistent() {
+    isDriverPersistent = false;
+  }
+
   /*
    * Introduced for Recovering finished query.
    */
-  public void setStatusSkippingTransitionTest(QueryStatus newStatus) throws LensException {
+  void setStatusSkippingTransitionTest(QueryStatus newStatus) throws LensException {
     this.status = newStatus;
   }