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 <mgerg...@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(); }