On 02/15/2018 05:25 PM, Tom Lane wrote:
> Sebastien FLAESCH <sf@4js.com> writes:
>> When using a stored function returning output parameters defined with as time[(n)]
>> or timestamp[(n)], PQfmod() always returns the same SCALE (65531/0xFFFB), no matter
>> what time/timestamp precision is used.
>
> Your misunderstanding is in assuming that typmod decoration on function
> parameters means anything. It doesn't; the function is effectively just
> declared as taking or returning plain time or timestamp.
>
> Perhaps someday that will change, but it'd be a big task with a lot of
> hard decisions to make. For instance, do we allow creation of both
> f(time(2)) and f(time(4)), and if so what's the rule for choosing which
> one to call?
>
> regards, tom lane
>
>
Thanks for this quick answer Tom,
I just wanted to make sure that this is expected.
We can deal with this, by interpreting 65531/0xFFFB as a precision of 5 to match our needs.
Would be nice however to have some clear documentation about PQfmod() interpretation...
What means exactly 65531/0xFFFB?
Unknown time/timestamp fraction of sec precision?
Maybe the way stored function output parameters are returned could be reviewed?
select * from proc240(101)
Is it possible to cast() output parameters?
I could not find information about using output parameters in:
https://www.postgresql.org/docs/10/static/sql-syntax-calling-funcs.html
Cheers,
Seb