[ 
https://issues.apache.org/jira/browse/HIVE-25629?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stamatis Zampetakis resolved HIVE-25629.
----------------------------------------
    Fix Version/s: 4.0.0
       Resolution: Fixed

Fixed in 
[80289076599f1e73aa526d33172de2294754fe07|https://github.com/apache/hive/commit/80289076599f1e73aa526d33172de2294754fe07].
 Many thanks for the review [~kkasa]!

> 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
>              Labels: pull-request-available
>             Fix For: 4.0.0
>
>          Time Spent: 50m
>  Remaining Estimate: 0h
>
> 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)

Reply via email to