Github user anoopsharma00 commented on a diff in the pull request:

    https://github.com/apache/incubator-trafodion/pull/441#discussion_r61689153
  
    --- Diff: core/sql/exp/exp_eval.cpp ---
    @@ -862,7 +862,17 @@ ex_expr::exp_return_type 
ex_expr::evalClauses(ex_clause *clause,
        atp1->setDiagsArea(diagsArea);
     
           if (retcode == ex_expr::EXPR_ERROR)
    -   return retcode;
    +      {
    +        if((getPCodeMode() & ex_expr::ERROR_CONTINUE) > 0)
    +        {
    +          ExpTupleDesc::setNullValue( op_data[0],
    +                                      
clause->getOperand(0)->getNullBitIndex(),
    +                                      
clause->getOperand(0)->getTupleFormat() );
    +          retcode = ex_expr::EXPR_OK;
    +        }
    +        else
    +     return retcode;
    +      }
     
    --- End diff --
    
    -- This change should be inside of ex_conv_clause::eval when an error 
happens and not in the mainline.
    -- a new flag bit should be set at code generation time in ex_conv_clause 
(something like NullOnError).
      This flag bit will be checked in ex_conv_clause::eval method. That way 
handling of this case of NullOnError 
      will be contained within that method. That method should return ok after 
moving null value to target in case
      of error.
    -- No need to have a new pcode mode. The ERROR_CONTINUE setting could be 
removed
    -- No change will be needed in mainline exp eval code
    



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to