ADQL Erratum 2

Grégory Mantelet gmantele at ari.uni-heidelberg.de
Tue Jun 6 13:37:37 CEST 2017


Both versions are ok for me, though I also prefer the version of Mark.

Grégory


On 06/06/2017 12:55 PM, Marco Molinaro wrote:
> I prefer Mark's version.
> But I'm ok with Markus's last suggestion too.
>
> Marco
>
> 2017-06-06 12:50 GMT+02:00 Mark Taylor <M.B.Taylor at bristol.ac.uk>:
>> On Tue, 30 May 2017, Markus Demleitner wrote:
>>
>>> However,
>>>
>>>> Now, I understand that different backends act differently, and that
>>>> the usage of the seed value itself is quite confused/confusing,
>>>> but if we go too far, we may slip out of the context for an erratum.
>>> goes against ADQL's purpose of having an interoperable syntax and
>>> semantics for an SQL dialect.  Worse, at least some backends (Gregory
>>> tried it with H2; my former implementation did about the same) have
>>> utterly useless and dangerous behaviour: they seed the RNG in each
>>> row, which means that all calls to random() yield the same value(s)
>>> in all rows.
>>>
>>> Given that, I think we have to warn people that using the argument
>>> will very likely not do what at least I would expect: for each
>>> occurrence of random(n) generate an independent, reproducable
>>> sequence
>>>
>>>    row-index -> pseudo random number
>>>
>>> I'm not even sure if there is any DB engine implementing this at all.
>>>
>>> Explaining this in this many words is, I'd say, a bit too much for
>>> this table.  So, here's my second attempt to provide a text for the
>>> table:
>>>
>>>    rand([x]) -- Returns a random value between 0.0 and 1.0.  The
>>>    optional argument, originally intended to provide a random seed,
>>>    should not be used.  Behaviour for the function with an argument is
>>>    undefined.  Query writers should not use it.
>>>
>>> Opinions?
>> I'd be OK with that, though it sounds slightly heavy handed.
>> Some ADQL implementation/DBMS might do something useful with x,
>> and if a query writer understands that is the case they might
>> legitimately want to use it.  Suggest instead:
>>
>>      rand([x]) -- Returns a random value between 0.0 and 1.0.  The
>>      optional argument, originally intended to provide a random seed,
>>      has undefined semantics.  Query writers are advised to use the
>>      form without the argument.
>>
>> But, if Markus's suggested text is used instead (e.g. because such
>> implementation-aware ADQL query construction is deemed evil) it's OK.
>>
>> Mark
>>
>> --
>> 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