[
https://issues.apache.org/jira/browse/IMPALA-10564?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17298451#comment-17298451
]
Wenzhe Zhou commented on IMPALA-10564:
--------------------------------------
Log messages showed that Impala backend detected decimal overflow. But the
error status were not checked by TableWriter (HdfsTextTableWriter::AppendRows()
and HdfsParquetTableWriter::BaseColumnWriter::AppendRow()) for returned NULL
value. The AppendRows() function of TableWriter simply wrote a NULL value to
the row.
I0309 16:15:51.070256 12035 status.cc:129] 1648609c443a8ca2:32ab69c600000000]
UDF ERROR: *Decimal expression overflowed*
@ 0x1e382ff impala::Status::Status()
@ 0x27d5aa4 impala::RuntimeState::SetQueryStatus()
@ 0x27d4abb impala_udf::FunctionContext::SetError()
@ 0x2ce6f37 impala::DecimalOperators::ScaleDecimalValue()
@ 0x2ce9375 impala::DecimalOperators::RoundDecimal()
@ 0x2ce96e3 impala::DecimalOperators::RoundDecimal()
@ 0x2ce97db impala::DecimalOperators::CastToDecimalVal()
@ 0x2cb776a impala::ScalarFnCall::InterpretEval<>()
@ 0x2c96207 impala::ScalarFnCall::GetDecimalValInterpreted()
@ 0x2c5909a impala::ScalarExpr::GetDecimalVal()
@ 0x2c566e6 impala::ScalarExprEvaluator::GetValue()
@ 0x2c56254 impala::ScalarExprEvaluator::GetValue()
@ 0x2a63bfc impala::*HdfsTextTableWriter::AppendRows()*
@ 0x2a28a40 impala::HdfsTableSink::WriteRowsToPartition()
@ 0x2a2c448 impala::HdfsTableSink::Send()
@ 0x24a6b33 impala::FragmentInstanceState::ExecInternal()
@ 0x24a2b39 impala::FragmentInstanceState::Exec()
@ 0x23e674f impala::QueryState::ExecFInstance()
@ 0x23e4b51 _ZZN6impala10QueryState15StartFInstancesEvENKUlvE_clEv
@ 0x23e971e
_ZN5boost6detail8function26void_function_obj_invoker0IZN6impala10QueryState15StartFInstancesEvEUlvE_vE6invokeERNS1_15function_bufferE
@ 0x228e4df boost::function0<>::operator()()
@ 0x2920f75 impala::Thread::SuperviseThread()
@ 0x29298d6 boost::_bi::list5<>::operator()<>()
@ 0x29297fa boost::_bi::bind_t<>::operator()()
@ 0x29297bb boost::detail::thread_data<>::run()
@ 0x4191ca1 thread_proxy
@ 0x7f0806cb96da start_thread
@ 0x7f0803584a3e clone
I0309 16:14:25.365002 11640 status.cc:129] cb41c3b0dd6b2b40:b9c6505900000000]
UDF ERROR: *Decimal expression overflowed*
@ 0x1e382ff impala::Status::Status()
@ 0x27d5aa4 impala::RuntimeState::SetQueryStatus()
@ 0x27d4abb impala_udf::FunctionContext::SetError()
@ 0x2ce6f37 impala::DecimalOperators::ScaleDecimalValue()
@ 0x2ce9375 impala::DecimalOperators::RoundDecimal()
@ 0x2ce96e3 impala::DecimalOperators::RoundDecimal()
@ 0x2ce97db impala::DecimalOperators::CastToDecimalVal()
@ 0x2cb776a impala::ScalarFnCall::InterpretEval<>()
@ 0x2c96207 impala::ScalarFnCall::GetDecimalValInterpreted()
@ 0x2c5909a impala::ScalarExpr::GetDecimalVal()
@ 0x2c566e6 impala::ScalarExprEvaluator::GetValue()
@ 0x2c56254 impala::ScalarExprEvaluator::GetValue()
@ 0x3004b1e impala::*HdfsParquetTableWriter::BaseColumnWriter::AppendRow()*
@ 0x2ffc605 impala::HdfsParquetTableWriter::AppendRows()
@ 0x2a28a40 impala::HdfsTableSink::WriteRowsToPartition()
@ 0x2a2c448 impala::HdfsTableSink::Send()
@ 0x24a6b33 impala::FragmentInstanceState::ExecInternal()
@ 0x24a2b39 impala::FragmentInstanceState::Exec()
@ 0x23e674f impala::QueryState::ExecFInstance()
@ 0x23e4b51 _ZZN6impala10QueryState15StartFInstancesEvENKUlvE_clEv
@ 0x23e971e
_ZN5boost6detail8function26void_function_obj_invoker0IZN6impala10QueryState15StartFInstancesEvEUlvE_vE6invokeERNS1_15function_bufferE
@ 0x228e4df boost::function0<>::operator()()
@ 0x2920f75 impala::Thread::SuperviseThread()
@ 0x29298d6 boost::_bi::list5<>::operator()<>()
@ 0x29297fa boost::_bi::bind_t<>::operator()()
@ 0x29297bb boost::detail::thread_data<>::run()
@ 0x4191ca1 thread_proxy
@ 0x7f0806cb96da start_thread
@ 0x7f0803584a3e clone
> No error returned when inserting an overflowed value into a decimal column
> --------------------------------------------------------------------------
>
> Key: IMPALA-10564
> URL: https://issues.apache.org/jira/browse/IMPALA-10564
> Project: IMPALA
> Issue Type: Bug
> Components: Backend, Frontend
> Affects Versions: Impala 4.0
> Reporter: Wenzhe Zhou
> Assignee: Wenzhe Zhou
> Priority: Major
>
> When using CTAS statements or INSERT-SELECT statements to insert rows to
> table with decimal columns, Impala insert NULL for overflowed decimal values,
> instead of returning error. This issue happens when the data expression for
> the decimal column in SELECT sub-query consists at least one alias. This
> issue is similar as IMPALA-6340, but IMPALA-6340 only fixed the issue for the
> cases with the data expression for the decimal columns as constants so that
> the overflowed decimal values could be detected by frontend during expression
> analysis. If there is alias (variables) in the data expression for the
> decimal column, Frontend could not evaluate data expression in expression
> analysis phase. Only backend could evaluate the data expression when backend
> execute fragment instances for SELECT sub-queries. The log messages showed
> that the executor detected the decimal overflow error, but somehow it did not
> propagate the error to the coordinator, hence the error was not returned to
> the client.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]