Search Postgresql Archives

Re: formatting the output of a function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Islam Hegazy wrote:
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.

output[0] = (char*)palloc(sizeof(int)); //allocate space for a string that accepts an integer
output[1] = (char*)palloc(sizeof(double)); //allocate space for a string that accepts an integer

I don't really do C any more, but I don't think these do what you want. I think here you're allocating space for an integer/double, not for the string representation of them (i.e. 4/8 bytes). I'm surprised you're not just getting a crash.

snprintf(output[0], sizeof(int), "%d", counter);
snprintf(output[1], sizeof(float), "%.5f", result);

--
  Richard Huxton
  Archonet Ltd


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux