[
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)