ADQL: MOD sign

Tom McGlynn (NASA/GSFC Code 660.1) tom.mcglynn at nasa.gov
Thu Aug 11 17:54:47 CEST 2016


I see that on my version of Postgres:

   select  mod (7.,-3.);

yields 1

and
    select mod(7.,-3.5);

yields 0.

So at least in PostgreSQL 9.2 floating point arguments are permitted.

      Tom



Mark Taylor wrote:
> Dave & Marco,
>
> the cosmopterix page you reference states "PostgreSQL requires both
> parameters to be integers."  I don't have a tame PostgreSQL
> instance locally to play with, but looking at the online docs
> and other circumstantial evidence suggests that it does work
> in PostgreSQL (semantics remainder of y/x) with floating point
> arguments too.  Is this integer restriction actually true for
> PostgreSQL and/or other backends?  Although one thinks of MOD
> as an integer thing, the floating point form may be useful in
> some cases, so it's probably not a good idea to make this
> restriction unless there's a good reason for it.
>
> Mark
>
> On Thu, 11 Aug 2016, Marco Molinaro wrote:
>
>> Hi Dave,
>> if nobody complains I suggest to use that text and explicit the
>> parameters to be integers to preserve back end homogeneity.
>>
>> Cheers,
>>       Marco
>>
>> 2016-07-19 14:49 GMT+02:00 Dave Morris <dave.morris at metagrid.co.uk>:
>>> Hi Marco,
>>>
>>> On 2016-07-12 14:16, Marco Molinaro wrote:
>>>>
>>>> I still like to know whether we should put something about the
>>>> sign preservation in the modulo in the ADQL-2.1 WD
>>>>
>>> Yes, I think we should define this in the 2.1 specification.
>>>
>>> Based on the results from Cosmopterix, we should limit the parameters to
>>> integer values.
>>> https://github.com/ivoa/cosmopterix/wiki/MOD-for-negative-numbers
>>>
>>> I like the text you put in the errata, so is this appropriate for the
>>> standard ?
>>>
>>> --------
>>>
>>>      The modulo operator returns the remainder, R, of the division of two
>>> integer values, M / N
>>>
>>>          M % N = R
>>>
>>>      where
>>>
>>>          R has the same sign as M
>>>          |R| is less than |N|
>>>          M = (K * N) + R for a given integer K
>>>
>>> --------
>>>
>>>
>>> Cheers,
>>> Dave
>>>
>>>
>>> --------
>>> Dave Morris
>>> Software Developer
>>> Wide Field Astronomy Unit
>>> Institute for Astronomy
>>> University of Edinburgh
>>> --------
>>>
> --
> Mark Taylor   Astronomical Programmer   Physics, Bristol University, UK
> m.b.taylor at bris.ac.uk +44-117-9288776  http://www.star.bris.ac.uk/~mbt/



More information about the dal mailing list