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

incubator-lens git commit: LENS-62 : Allow explain keywords to be set after select (Sushil Mohanty via amareshwari)

Repository: incubator-lens
Updated Branches:
  refs/heads/master b80290f0a -> c78cd464d


LENS-62 : Allow explain keywords to be set after select (Sushil Mohanty via 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/c78cd464
Tree: http://git-wip-us.apache.org/repos/asf/incubator-lens/tree/c78cd464
Diff: http://git-wip-us.apache.org/repos/asf/incubator-lens/diff/c78cd464

Branch: refs/heads/master
Commit: c78cd464ddae33845b28c1c3c45f855e9e06c4b5
Parents: b80290f
Author: Amareshwari Sriramdasu <am...@inmobi.com>
Authored: Wed Nov 26 16:48:12 2014 +0530
Committer: Amareshwari Sriramdasu <am...@inmobi.com>
Committed: Wed Nov 26 16:48:12 2014 +0530

----------------------------------------------------------------------
 .../org/apache/lens/driver/jdbc/JDBCDriver.java | 21 ++++++++++++++++----
 .../driver/jdbc/JDBCDriverConfConstants.java    |  8 ++++++++
 2 files changed, 25 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/c78cd464/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriver.java
----------------------------------------------------------------------
diff --git a/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriver.java b/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriver.java
index a314d29..f073203 100644
--- a/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriver.java
+++ b/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriver.java
@@ -545,15 +545,28 @@ public class JDBCDriver implements LensDriver {
    *           the lens exception
    */
   @Override
-  public DriverQueryPlan explain(String query, Configuration conf) throws LensException {
+  public DriverQueryPlan explain(String query, Configuration conf)
+      throws LensException {
     checkConfigured();
+    String explainQuery;
     conf = RewriteUtil.getFinalQueryConf(this, conf);
     String rewrittenQuery = rewriteQuery(query, conf);
     Configuration explainConf = new Configuration(conf);
-    explainConf.setBoolean(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, false);
-    String explainQuery = explainConf.get(JDBC_EXPLAIN_KEYWORD_PARAM, DEFAULT_JDBC_EXPLAIN_KEYWORD) + rewrittenQuery;
+    explainConf.setBoolean(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER,
+        false);
+    String explainKeyword = explainConf.get(JDBC_EXPLAIN_KEYWORD_PARAM,
+        DEFAULT_JDBC_EXPLAIN_KEYWORD);
+    boolean explainBeforeSelect = explainConf.getBoolean(JDBC_EXPLAIN_KEYWORD_BEFORE_SELECT,
+        DEFAULT_JDBC_EXPLAIN_KEYWORD_BEFORE_SELECT);
+    
+    if (explainBeforeSelect)
+      explainQuery = explainKeyword + " " + rewrittenQuery;
+    else
+      explainQuery = rewrittenQuery.replaceAll("select ", "select "
+          + explainKeyword + " ");
     LOG.info("Explain Query : " + explainQuery);
-    QueryContext explainQueryCtx = new QueryContext(explainQuery, null, explainConf);
+    QueryContext explainQueryCtx = new QueryContext(explainQuery, null,
+        explainConf);
 
     QueryResult result = null;
     try {

http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/c78cd464/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriverConfConstants.java
----------------------------------------------------------------------
diff --git a/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriverConfConstants.java b/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriverConfConstants.java
index a1cd10e..489af81 100644
--- a/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriverConfConstants.java
+++ b/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriverConfConstants.java
@@ -73,4 +73,12 @@ public interface JDBCDriverConfConstants {
 
   /** The Constant DEFAULT_JDBC_EXPLAIN_KEYWORD. */
   public static final String DEFAULT_JDBC_EXPLAIN_KEYWORD = "explain ";
+ 
+  /** The Constant JDBC_EXPLAIN_KEYWORD_BEFORE_SELECT. */
+  public static final String JDBC_EXPLAIN_KEYWORD_BEFORE_SELECT = JDBC_DRIVER_PFX + "explain.before.select";
+  
+  /** The Constant DEFAULT_JDBC_EXPLAIN_KEYWORD_BEFORE_SELECT. */
+  public static final boolean DEFAULT_JDBC_EXPLAIN_KEYWORD_BEFORE_SELECT = true;
+  
+  
 }