ADQL: MOD sign

Theresa Dower dower at stsci.edu
Thu Aug 11 19:24:17 CEST 2016


For reference, MSSQL does not have a "MOD" function but uses % as a standard operator. Our extension of Gregory Mantele's ADQL parser converts it.

select 7. % -3. 	returns 1
select 7. % -3.5 	returns 0.0

It should be trivial to make our already-needing-conversion translator match whatever is decided.

--Theresa

> -----Original Message-----
> From: dal-bounces at ivoa.net [mailto:dal-bounces at ivoa.net] On Behalf Of Tom
> McGlynn (NASA/GSFC Code 660.1)
> Sent: Thursday, August 11, 2016 11:55 AM
> To: Mark Taylor; Marco Molinaro
> Cc: <dal at ivoa.net>
> Subject: Re: ADQL: MOD sign
> 
> 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