You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Jason Dere (JIRA)" <ji...@apache.org> on 2015/09/19 01:51:04 UTC

[jira] [Commented] (HIVE-11892) UDTF run in local fetch task does not return rows forwarded during GenericUDTF.close()

    [ https://issues.apache.org/jira/browse/HIVE-11892?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14876712#comment-14876712 ] 

Jason Dere commented on HIVE-11892:
-----------------------------------

As far as I can tell, it looks like GenericUDTF.close() isn't called until after CliDriver.processLocalCmd() has already finished going through the query results, so any rows added to the result at this point are never iterated over and printed.

{noformat}
ListSinkOperator.process(Object, int) line: 94	
UDTFOperator(Operator<T>).forward(Object, ObjectInspector) line: 813	
UDTFOperator.forwardUDTFOutput(Object) line: 126	
UDTFCollector.collect(Object) line: 45	
GenericUDTFCount2(GenericUDTF).forward(Object) line: 107	
GenericUDTFCount2.close() line: 48	
UDTFOperator.closeOp(boolean) line: 145	
UDTFOperator(Operator<T>).close(boolean) line: 617	
SelectOperator(Operator<T>).close(boolean) line: 631	
TableScanOperator(Operator<T>).close(boolean) line: 631	
FetchOperator.clearFetchContext() line: 523	
FetchTask.clearFetch() line: 181	
Driver.close() line: 1842	
CliDriver.processLocalCmd(String, CommandProcessor, CliSessionState) line: 250	
CliDriver.processCmd(String) line: 165	
CliDriver.processLine(String, boolean) line: 376	
CliDriver.executeDriver(CliSessionState, HiveConf, OptionsProcessor) line: 736	
CliDriver.run(String[]) line: 681	
CliDriver.main(String[]) line: 621	
{noformat}

> UDTF run in local fetch task does not return rows forwarded during GenericUDTF.close()
> --------------------------------------------------------------------------------------
>
>                 Key: HIVE-11892
>                 URL: https://issues.apache.org/jira/browse/HIVE-11892
>             Project: Hive
>          Issue Type: Bug
>          Components: UDF
>            Reporter: Jason Dere
>
> Using the example UDTF GenericUDTFCount2, which is part of hive-contrib:
> {noformat}
> create temporary function udtfCount2 as 'org.apache.hadoop.hive.contrib.udtf.example.GenericUDTFCount2';
> set hive.fetch.task.conversion=minimal;
> -- Task created, correct output (2 rows)
> select udtfCount2() from src;
> set hive.fetch.task.conversion=more;
> -- Runs in local task, incorrect output (0 rows)
> select udtfCount2() from src;
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)