[ https://issues.apache.org/jira/browse/TRAFODION-2772?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16352112#comment-16352112 ]
ASF GitHub Bot commented on TRAFODION-2772: ------------------------------------------- Github user andyyangcn commented on a diff in the pull request: https://github.com/apache/trafodion/pull/1264#discussion_r165899916 --- 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; + } + memset(jsonStr, 0, len1+1); + memset(jsonAttr, 0, len2+1); --- End diff -- strncpy(jsonStr, op_data[1], len1); jsonStr[len1] = '\0'; Do you mean the change should look like above? > retrieve a value from Json string got an error: Json value is invalid > --------------------------------------------------------------------- > > Key: TRAFODION-2772 > URL: https://issues.apache.org/jira/browse/TRAFODION-2772 > Project: Apache Trafodion > Issue Type: Bug > Reporter: Yang, Yongfeng > Assignee: Yang, Yongfeng > Priority: Major > > >>create table json(str varchar(200)); > >>select json_object_field_text('{"f2":1}', 'f2') from json; > *** ERROR[8971] JSON value is invalid. > --- 0 row(s) selected. > >> > the expected result should like below. > >>select json_object_field_text('{"f2":1}', 'f2') from (values(1)) T; > (EXPR) > -------- > 1 > --- 1 row(s) selected. > >> > >>select json_object_field_text('{"f2":1}', 'f2') from (values(1)) T; > (EXPR) > -------- > 1 > --- 1 row(s) selected. > >> -- This message was sent by Atlassian JIRA (v7.6.3#76005)