TAP 1.1, MAXREC and TOP
Arnold Rots
arots at cfa.harvard.edu
Tue Sep 1 16:00:12 CEST 2015
Actually, the problem is that TOP is really a form of ORDER BY, combined
with implicitly setting MAXREC. It may have been better to cast it as a
Boolean.
- Arnold
On Sep 1, 2015 7:44 AM, "Markus Demleitner" <msdemlei at ari.uni-heidelberg.de>
wrote:
> On Mon, Aug 31, 2015 at 12:37:06PM -0700, Patrick Dowler wrote:
> > On 31/08/15 02:15 AM, Markus Demleitner wrote:
> > >Essentially, the question is: What's to happen when MAXREC=200 is
> > >specified in a query parameter, and there's a TOP 4000 clause in
> > >QUERY?
> [...]
> > From the point of view of the query capturing the query in the
> > abstract, some of those contain limits and in that case I favour
> > using TOP to keep the definition of the result set in one place.
> >
> > MAXREC - client-server agreement on size of output, with overflow
> indicator
> > when applicable
> > TOP - logical limit on membership in the row set
>
> Well -- even though I'd not say this conclusion is inevitable and I
> still believe we'd be doing our users a favour if TOP overrode
> MAXREC, I'm fine with it as long as all servers behave identially.
>
> So -- can we put this "MAXREC clobbers TOP" into the spec? This
> could be then, in 2.7.5
>
> TAP supports the MAXREC parameter as specified in [std:DALI],
> version 1.0, where what is limited is the number of database rows
> in the first result table; where TAP jobs produce multiple tables,
> the row counts of the other tables are not included.
>
> Where query languages transported by TAP have
> their own mechanisms for limiting the number of records to be
> returned (e.g., ADQL's <set_limit> production,"TOP n"), MAXREC
> still gives the maximum number of rows. In effect, the number of
> rows returned is the minimum of MAXREC and the language-specific
> set limit.
>
> If a result is truncated due to MAXREC (or an equivalent
> mechanism), the query response must include an overflow indicator
> are specifiec in sectin <ref>
>
>
>
> And, since Walter asked: yes, the designers of ADQL should probably
> have forseen that there'd be a parameter-level set limit and left out
> TOP to avoid having two things for the same purpose. They didn't,
> and I suspect the annoyance of keeping it (to users and server
> operators) is quite a bit lower than the annoyance of removing it at
> this point, when there's TOP xy queries all over the place.
> Hence, I'm afraid we can't do much better than at least clearly
> document the interaction between the two.
>
>
> And, given that, I'd wish clients would not pass in MAXREC by
> default. Mark... Do you think you could have the Max Row combo in
> TOPCAT default to empty?
>
> Cheers,
>
> Markus
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.ivoa.net/pipermail/dal/attachments/20150901/ee6c6b22/attachment.html>
More information about the dal
mailing list