Hi all
I created a function that returns a set of
records. This function returns an integer and a float as the record fields.
I have a problem in this function, it truncates the output. e.g. 1342 is
displayed as 134, 456.46 is displayed as 456. In other words, it displays the
first 3 digits only of a number, whether it is integer of float. I traced the
function and the results are computed correctly. I use PostgreSQL 8.2.4.
Following is a piece of my code.
int counter; float result; //some code
char **output;
output = ( char**)palloc(2*sizeof(char*)); //allocate space for two string pointeroutput[0] = ( char*)palloc(sizeof(int)); //allocate space for a string that accepts an integeroutput[1] = ( char*)palloc(sizeof(double)); //allocate space for a string that accepts an integersnprintf(output[0], sizeof(int), "%d", counter);snprintf(output[1], sizeof(float), "%.5f", result);HeapTuple data; Datum finalResult; data = "" output); finalResult = HeapTupleGetDatum(data); SRF_RETURN_NEXT(funcctx, finalResult); --------------- Any idea what could be the cause of this error? Regards Islam Hegazy |