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";