"Juan Pablo L." <jpablolorenzetti@hotmail.com> writes:
> Hi, i m writing a C module (extension), the procedure has a parameter that is of type numeric,
> inside the function i can not read the parameter or so it seems, this what is do:
> float8 db_balance,in_chgval;
> in_chgval = PG_GETARG_FLOAT8(2);
> elog(INFO,"in_chgval = %0.2f",in_chgval);
If the C code is written that way, the function has to be declared to take
type float8 (a/k/a double precision), not numeric.
The parser will insert a conversion from numeric to float8 automatically,
so the function will still work with a numeric data column. You might
lose some precision in the conversion though.
regards, tom lane