[
https://issues.apache.org/jira/browse/HIVE-28312?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
László Bodor updated HIVE-28312:
--------------------------------
Description:
Instead of just throwing CommandProcessorException, Driver might save the the
error message for query-tracking purposes: a single message for later
reference, like:
{code}
FAILED: SemanticException [Error 10001]: Line 1:14 Table not found
'query_histor'
{code}
2 ways to achieve this
1. wrap every occurrence of throwing CommandProcessorException inside driver
e.g.
https://github.com/apache/hive/blob/98d9d22398370f817fe64449368671b978fff096/ql/src/java/org/apache/hadoop/hive/ql/Driver.java#L146
PRO: the logging stays inside of Driver (SQLCommand doesn't need to know about
it)
CONS: looks bad, not future-proof (later, anyone can miss this call while
throwing a cpe), needs Driver code changes at several places
2. catch in SQLOperation and propagate back to Driver
https://github.com/apache/hive/blob/98d9d22398370f817fe64449368671b978fff096/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java#L237
PRO: it looks better, every exception can be caught in a single place
CON: it looks weird, because SQLOperation has to call back to the driver to
store the error message (which was already passed through the driver)
was:
Instead of just throwing CommandProcessorException, Driver might save the the
error message for query-tracking purposes: a single message for later
reference, like:
{code}
FAILED: SemanticException [Error 10001]: Line 1:14 Table not found
'query_histor'
{code}
2 ways to achieve this
1. wrap every occurrence of throwing CommandProcessorException inside driver
e.g.
https://github.com/apache/hive/blob/98d9d22398370f817fe64449368671b978fff096/ql/src/java/org/apache/hadoop/hive/ql/Driver.java#L146
PRO: the logging stays inside of Driver (SQLCommand doesn't need to know about
it)
CONS: looks bad, not future-proof, needs Driver code changes at several places
2. catch in SQLOperation and propagate back to Driver
https://github.com/apache/hive/blob/98d9d22398370f817fe64449368671b978fff096/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java#L237
PRO: it looks better, every exception can be caught in a single place
CON: it looks weird, because SQLOperation has to call back to the driver to
store the error message (which was already passed through the driver)
> Save error message on Driver level
> ----------------------------------
>
> Key: HIVE-28312
> URL: https://issues.apache.org/jira/browse/HIVE-28312
> Project: Hive
> Issue Type: Improvement
> Reporter: László Bodor
> Assignee: László Bodor
> Priority: Major
>
> Instead of just throwing CommandProcessorException, Driver might save the the
> error message for query-tracking purposes: a single message for later
> reference, like:
> {code}
> FAILED: SemanticException [Error 10001]: Line 1:14 Table not found
> 'query_histor'
> {code}
> 2 ways to achieve this
> 1. wrap every occurrence of throwing CommandProcessorException inside driver
> e.g.
> https://github.com/apache/hive/blob/98d9d22398370f817fe64449368671b978fff096/ql/src/java/org/apache/hadoop/hive/ql/Driver.java#L146
> PRO: the logging stays inside of Driver (SQLCommand doesn't need to know
> about it)
> CONS: looks bad, not future-proof (later, anyone can miss this call while
> throwing a cpe), needs Driver code changes at several places
> 2. catch in SQLOperation and propagate back to Driver
> https://github.com/apache/hive/blob/98d9d22398370f817fe64449368671b978fff096/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java#L237
> PRO: it looks better, every exception can be caught in a single place
> CON: it looks weird, because SQLOperation has to call back to the driver to
> store the error message (which was already passed through the driver)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)