You are viewing a plain text version of this content. The canonical link for it is here.
Posted to codereview@trafodion.apache.org by andyyangcn <gi...@git.apache.org> on 2018/02/05 07:51:06 UTC

[GitHub] trafodion pull request #1264: [TRAFODION-2772] - retrieve a value from Json ...

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

    https://github.com/apache/trafodion/pull/1264#discussion_r165899553
  
    --- Diff: core/sql/exp/exp_function.cpp ---
    @@ -6503,8 +6503,19 @@ ex_expr::exp_return_type ex_function_json_object_field_text::eval(char *op_data[
             Int32 prec2 = ((SimpleType *)getOperand(2))->getPrecision();
             len2 = Attributes::trimFillerSpaces( op_data[2], prec2, len2, cs );
         }
    +
         char *rltStr = NULL;
    -    JsonReturnType ret = json_extract_path_text(&rltStr, op_data[1], 1, op_data[2]);
    +    char *jsonStr = new(heap) char[len1+1];
    +    char *jsonAttr = new(heap) char[len2+1];
    +    if (jsonStr == NULL || jsonAttr == NULL)
    +    {
    +        return ex_expr::EXPR_ERROR;
    --- End diff --
    
    I checked the whole file Exp_function.cpp, and found we haven't check if the pointer is NULL when we allocated memory from heap via new(heap). Does that mean it will always succeed to allocate memory from a memory pool. So, it seems I can remove the check.


---