You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by mg...@apache.org on 2020/01/03 17:37:46 UTC
[hive] branch master updated: HIVE-22608 Reduce the number of
public methods in Driver (Miklos Gergely,
reviewed by Jesus Camacho Rodriguez)
This is an automated email from the ASF dual-hosted git repository.
mgergely pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push:
new d981e8d HIVE-22608 Reduce the number of public methods in Driver (Miklos Gergely, reviewed by Jesus Camacho Rodriguez)
d981e8d is described below
commit d981e8d3d7c6cbbed5d5793042cc4d91ffef3580
Author: miklosgergely <mg...@cloudera.com>
AuthorDate: Mon Dec 9 17:00:28 2019 +0100
HIVE-22608 Reduce the number of public methods in Driver (Miklos Gergely, reviewed by Jesus Camacho Rodriguez)
---
ql/src/java/org/apache/hadoop/hive/ql/Driver.java | 30 +++++-----------------
.../org/apache/hadoop/hive/ql/DriverUtils.java | 3 +--
.../java/org/apache/hadoop/hive/ql/QueryState.java | 15 +++++++++++
.../hadoop/hive/ql/parse/DDLSemanticAnalyzer.java | 2 +-
.../apache/hadoop/hive/ql/reexec/ReExecDriver.java | 5 ++--
5 files changed, 27 insertions(+), 28 deletions(-)
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
index 7549144..342d463 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
@@ -139,10 +139,6 @@ public class Driver implements IDriver {
return driverContext.getSchema();
}
- public Schema getExplainSchema() {
- return new Schema(ExplainTask.getResultSchema(), null);
- }
-
@Override
public Context getContext() {
return context;
@@ -168,7 +164,7 @@ public class Driver implements IDriver {
// Pass lineageState when a driver instantiates another Driver to run
// or compile another query
public Driver(HiveConf conf, Context ctx, LineageState lineageState) {
- this(getNewQueryState(conf, lineageState), null);
+ this(QueryState.getNewQueryState(conf, lineageState), null);
context = ctx;
}
@@ -185,18 +181,11 @@ public class Driver implements IDriver {
txnManager);
}
- /**
- * Generating the new QueryState object. Making sure, that the new queryId is generated.
- * @param conf The HiveConf which should be used
- * @param lineageState a LineageState to be set in the new QueryState object
- * @return The new QueryState object
- */
- public static QueryState getNewQueryState(HiveConf conf, LineageState lineageState) {
- return new QueryState.Builder()
- .withGenerateNewQueryId(true)
- .withHiveConf(conf)
- .withLineageState(lineageState)
- .build();
+ public Driver(QueryState queryState, QueryInfo queryInfo, HiveTxnManager txnManager,
+ ValidWriteIdList compactionWriteIds, long compactorTxnId) {
+ this(queryState, queryInfo, txnManager);
+ driverContext.setCompactionWriteIds(compactionWriteIds);
+ driverContext.setCompactorTxnId(compactorTxnId);
}
/**
@@ -1816,7 +1805,7 @@ public class Driver implements IDriver {
// Close and release resources within a running query process. Since it runs under
// driver state COMPILING, EXECUTING or INTERRUPT, it would not have race condition
// with the releases probably running in the other closing thread.
- public int closeInProcess(boolean destroyed) {
+ private int closeInProcess(boolean destroyed) {
releaseTaskQueue();
releasePlan();
releaseCachedResult();
@@ -1930,9 +1919,4 @@ public class Driver implements IDriver {
return driverContext.getPlan().getFetchTask() != null && driverContext.getPlan().getResultSchema() != null &&
driverContext.getPlan().getResultSchema().isSetFieldSchemas();
}
-
- void setCompactionWriteIds(ValidWriteIdList compactionWriteIds, long compactorTxnId) {
- driverContext.setCompactionWriteIds(compactionWriteIds);
- driverContext.setCompactorTxnId(compactorTxnId);
- }
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/DriverUtils.java b/ql/src/java/org/apache/hadoop/hive/ql/DriverUtils.java
index 1eacf69..21e5f72 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/DriverUtils.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/DriverUtils.java
@@ -64,8 +64,7 @@ public final class DriverUtils {
boolean isOk = false;
try {
QueryState qs = new QueryState.Builder().withHiveConf(conf).withGenerateNewQueryId(true).nonIsolated().build();
- Driver driver = new Driver(qs, null, null);
- driver.setCompactionWriteIds(writeIds, compactorTxnId);
+ Driver driver = new Driver(qs, null, null, writeIds, compactorTxnId);
try {
try {
driver.run(query);
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/QueryState.java b/ql/src/java/org/apache/hadoop/hive/ql/QueryState.java
index 267f7d0..280b7a4 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/QueryState.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/QueryState.java
@@ -58,6 +58,7 @@ public class QueryState {
private long numModifiedRows = 0;
static public final String USERID_TAG = "userid";
+
/**
* Private constructor, use QueryState.Builder instead.
* @param conf The query specific configuration object
@@ -141,6 +142,20 @@ public class QueryState {
}
/**
+ * Generating the new QueryState object. Making sure, that the new queryId is generated.
+ * @param conf The HiveConf which should be used
+ * @param lineageState a LineageState to be set in the new QueryState object
+ * @return The new QueryState object
+ */
+ public static QueryState getNewQueryState(HiveConf conf, LineageState lineageState) {
+ return new QueryState.Builder()
+ .withGenerateNewQueryId(true)
+ .withHiveConf(conf)
+ .withLineageState(lineageState)
+ .build();
+ }
+
+ /**
* Builder to instantiate the QueryState object.
*/
public static class Builder {
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
index 20b0ccd..1914089 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
@@ -2293,7 +2293,7 @@ public class DDLSemanticAnalyzer extends BaseSemanticAnalyzer {
cmd.append(")");
}
// FIXME: is it ok to have a completely new querystate?
- QueryState newQueryState = Driver.getNewQueryState(conf, queryState.getLineageState());
+ QueryState newQueryState = QueryState.getNewQueryState(conf, queryState.getLineageState());
// FIXME: this driver instance is never closed
Driver driver = new Driver(newQueryState);
int rc = driver.compile(cmd.toString(), false);
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/reexec/ReExecDriver.java b/ql/src/java/org/apache/hadoop/hive/ql/reexec/ReExecDriver.java
index a32af75..eab7f45 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/reexec/ReExecDriver.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/reexec/ReExecDriver.java
@@ -33,6 +33,7 @@ import org.apache.hadoop.hive.ql.QueryDisplay;
import org.apache.hadoop.hive.ql.QueryInfo;
import org.apache.hadoop.hive.ql.QueryPlan;
import org.apache.hadoop.hive.ql.QueryState;
+import org.apache.hadoop.hive.ql.exec.ExplainTask;
import org.apache.hadoop.hive.ql.exec.FetchTask;
import org.apache.hadoop.hive.ql.exec.Task;
import org.apache.hadoop.hive.ql.parse.ASTNode;
@@ -252,8 +253,8 @@ public class ReExecDriver implements IDriver {
@Override
public Schema getSchema() {
- if(explainReOptimization) {
- return coreDriver.getExplainSchema();
+ if (explainReOptimization) {
+ return new Schema(ExplainTask.getResultSchema(), null);
}
return coreDriver.getSchema();
}