[
https://issues.apache.org/jira/browse/HIVE-14169?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15365258#comment-15365258
]
Thejas M Nair commented on HIVE-14169:
--------------------------------------
bq. my guess is that BufferedRows was built not only so the optimal width could
be calculated, but also because there is some overhead in going to stdout for
each row
The output is extracted from Rows by the OutputFormat, so any buffering in Row
won't have an impact on how the output is written. ie, there is no benefit of
buffering other than optimal width calculation. That is why I think we should
skip buffering and width calculations if the OutputFormat is not
TableOutputFormat.
> Beeline Row printing should only calculate the width if TableOutputFormat is
> used
> ---------------------------------------------------------------------------------
>
> Key: HIVE-14169
> URL: https://issues.apache.org/jira/browse/HIVE-14169
> Project: Hive
> Issue Type: Sub-task
> Components: Beeline
> Reporter: Sahil Takiar
> Assignee: Sahil Takiar
>
> * When Beeline prints out a {{ResultSet}} to stdout it uses the
> {{BeeLine.print}} method
> * This method takes the {{ResultSet}} from the completed query and uses a
> specified {{OutputFormat}} to print the rows (by default it uses
> {{TableOutputFormat}})
> * The {{print}} method also wraps the {{ResultSet}} into a {{Rows}} class
> (either a {{IncrementalRows}} or a {{BufferedRows}} class)
> * The {{Rows}} class will calculate the optimal width that each row in the
> {{ResultSet}} should be displayed with
> * However, this width is only relevant / used by {{TableOutputFormat}}
> We should modify the logic so that the width is only calculated if
> {{TableOutputFormat}} is used. This will save CPU cycles when printing
> records out to the user.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)