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

Reply via email to