You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Stamatis Zampetakis (Jira)" <ji...@apache.org> on 2021/10/20 21:05:00 UTC
[jira] [Assigned] (HIVE-25629) Drop support of multiple qfiles in
QTestUtil, output and result processors
[ https://issues.apache.org/jira/browse/HIVE-25629?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stamatis Zampetakis reassigned HIVE-25629:
------------------------------------------
> Drop support of multiple qfiles in QTestUtil, output and result processors
> --------------------------------------------------------------------------
>
> Key: HIVE-25629
> URL: https://issues.apache.org/jira/browse/HIVE-25629
> Project: Hive
> Issue Type: Task
> Components: Testing Infrastructure
> Affects Versions: 4.0.0
> Reporter: Stamatis Zampetakis
> Assignee: Stamatis Zampetakis
> Priority: Major
>
> The current implementation of [QTestUtil|https://github.com/apache/hive/blob/afeb0f8413b1fd777611e890e53925119a5e39f1/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java], [QOutProcessor|https://github.com/apache/hive/blob/master/itests/util/src/main/java/org/apache/hadoop/hive/ql/QOutProcessor.java], and [QTestResultProcessor|https://github.com/apache/hive/blob/afeb0f8413b1fd777611e890e53925119a5e39f1/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestResultProcessor.java], has some methods and fields (maps) for managing multiple input files. However, *all* clients of this API, such as [CoreCliDriver|https://github.com/apache/hive/blob/afeb0f8413b1fd777611e890e53925119a5e39f1/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CoreCliDriver.java], use these classes by processing one file per run.
> +Example+
> {code:java}
> public void runTest(String testName, String fname, String fpath) {
> ...
> qt.addFile(fpath);
> qt.cliInit(new File(fpath));
> ...
> try {
> qt.executeClient(fname);
> } catch (CommandProcessorException e) {
> qt.failedQuery(e.getCause(), e.getResponseCode(), fname, QTestUtil.DEBUG_HINT);
> }
> ...
> }
> {code}
> Notice that {{qt.addFile}} will keep accumulating input files to memory (filename + content) while {{qt.executeClient}} (and other similar APIs) always operate on the last file added. Apart from wasting memory, the APIs for multiple files are harder to understand, and extend.
> The goal of this JIRA is to simplify the aforementioned APIs by removing unused/redundant parts associated to multiple files to improve code readability, and reduce memory consumption.
> +Historical note+
> Before HIVE-25625 the functionality of multiple input files was used by the {{TestCompareCliDriver}} but it was still useless for all the other clients. With the removal of {{TestCompareCliDriver}} in HIVE-25625 keeping multiple files is completely redundant.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)