fixed code review comments
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 8dd299a..62f615b 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
@@ -593,19 +593,25 @@
         + explainKeyword + " ");
     }
     log.info("{} Explain Query : {}", getFullyQualifiedName(), explainQuery);
-    QueryContext explainQueryCtx = QueryContext.createContextWithSingleDriver(explainQuery, null,
-      new LensConf(), explainConf, this, explainCtx.getLensSessionIdentifier(), false);
-    QueryResult result = null;
-    try {
-      result = executeInternal(explainQueryCtx, explainQuery);
-      if (result.error != null) {
-        throw new LensException("Query explain failed!", result.error);
-      }
-    } finally {
-      if (result != null) {
-        result.close();
+
+    boolean validateThroughPrepare = explainCtx.getDriverConf(this).getBoolean(JDBC_VALIDATE_THROUGH_PREPARE_OR_EXPLAIN,
+        DEFAULT_JDBC_VALIDATE_THROUGH_PREPARE_OR_EXPLAIN);
+    if (validateThroughPrepare) {
+      QueryContext explainQueryCtx = QueryContext.createContextWithSingleDriver(explainQuery, null, new LensConf(),
+          explainConf, this, explainCtx.getLensSessionIdentifier(), false);
+      QueryResult result = null;
+      try {
+        result = executeInternal(explainQueryCtx, explainQuery);
+        if (result.error != null) {
+          throw new LensException("Query explain failed!", result.error);
+        }
+      } finally {
+        if (result != null) {
+          result.close();
+        }
       }
     }
+
     JDBCQueryPlan jqp = new JDBCQueryPlan(calculateQueryCost(explainCtx));
     explainCtx.getDriverContext().setDriverQueryPlan(this, jqp);
     return jqp;
@@ -621,8 +627,8 @@
     if (pContext.getDriverQuery(this) == null) {
       throw new NullPointerException("Null driver query for " + pContext.getUserQuery());
     }
-    boolean validateThroughPrepare = pContext.getDriverConf(this).getBoolean(JDBC_VALIDATE_THROUGH_PREPARE,
-      DEFAULT_JDBC_VALIDATE_THROUGH_PREPARE);
+    boolean validateThroughPrepare = pContext.getDriverConf(this).getBoolean(JDBC_VALIDATE_THROUGH_PREPARE_OR_EXPLAIN,
+      DEFAULT_JDBC_VALIDATE_THROUGH_PREPARE_OR_EXPLAIN);
     if (validateThroughPrepare) {
       PreparedStatement stmt;
       // Estimate queries need to get connection from estimate pool to make sure
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 f2bfb69..95eb55b 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
@@ -94,11 +94,12 @@
   /** The Constant DEFAULT_JDBC_EXPLAIN_KEYWORD_BEFORE_SELECT. */
   public static final boolean DEFAULT_JDBC_EXPLAIN_KEYWORD_BEFORE_SELECT = true;
 
-  /** The Constant JDBC_VALIDATE_THROUGH_PREPARE. */
-  public static final String JDBC_VALIDATE_THROUGH_PREPARE = JDBC_DRIVER_PFX + "validate.through.prepare";
+  /** The Constant JDBC_VALIDATE_THROUGH_PREPARE_OR_EXPLAIN. */
+  public static final String JDBC_VALIDATE_THROUGH_PREPARE_OR_EXPLAIN =
+    JDBC_DRIVER_PFX + "validate.through.prepare.or.explain";
 
   /** The Constant DEFAULT_JDBC_VALIDATE_THROUGH_PREPARE. */
-  public static final boolean DEFAULT_JDBC_VALIDATE_THROUGH_PREPARE = true;
+  public static final boolean DEFAULT_JDBC_VALIDATE_THROUGH_PREPARE_OR_EXPLAIN = true;
 
   /** The Constant JDBC_VALIDATE_SKIP_WARNINGS */
   public static final String JDBC_VALIDATE_SKIP_WARNINGS = JDBC_DRIVER_PFX + "validate.skip.warnings";