diff --git a/src/backend/utils/adt/agtype.c b/src/backend/utils/adt/agtype.c index 06166ec74..815a731a7 100644 --- a/src/backend/utils/adt/agtype.c +++ b/src/backend/utils/adt/agtype.c @@ -6210,7 +6210,6 @@ Datum age_tostringlist(PG_FUNCTION_ARGS) agtype_value string_elem; int count; int i; - float float_num; char buffer[64]; /* check for null */ @@ -6263,8 +6262,7 @@ Datum age_tostringlist(PG_FUNCTION_ARGS) break; case AGTV_FLOAT: - - float_num = elem->val.float_value; + sprintf(buffer, "%.*g", DBL_DIG, elem->val.float_value); string_elem.val.string.val = pstrdup(buffer); string_elem.val.string.len = strlen(buffer); @@ -6275,7 +6273,7 @@ Datum age_tostringlist(PG_FUNCTION_ARGS) case AGTV_INTEGER: - sprintf(buffer, "%d", elem->val.int_value); + sprintf(buffer, "%ld", elem->val.int_value); string_elem.val.string.val = pstrdup(buffer); string_elem.val.string.len = strlen(buffer);