Re: Type scale returned by PQfmod() 65531 for time/timestamp output parameter?
Sebastien FLAESCH <[email protected]> Fri, 16 Feb 2018 09:56:05 +0100
| Newsgroups | gmane.comp.db.postgresql.interfaces |
|---|---|
| Organization | Four Js Development Tools |
| Message-ID | <[email protected]> |
On 02/15/2018 05:25 PM, Tom Lane wrote: > Sebastien FLAESCH <[email protected]> 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