Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OVERFLOW reporting in other output formats is undefined #4

Closed
jwfraustro opened this issue Nov 13, 2023 · 2 comments
Closed

OVERFLOW reporting in other output formats is undefined #4

jwfraustro opened this issue Nov 13, 2023 · 2 comments

Comments

@jwfraustro
Copy link
Contributor

The reporting of overflow is ambiguous and undefined for a FORMAT/RESPONSEFORMAT other than VOTable. This line:

Reporting of overflow depends on the output format and is described in DALI.

would imply to the reader that the method to report an overflow in a format other than VOTable should be found in DALI. The TAP specification specifically states the following:

A TAP service must support VOTable as an output format, should support CSV and TSV output, and may support other
formats.

Which would imply that a method for CSV and TSV should also be defined, with the emphasis that the SHOULD implies a strong recommendation to support the formats (and their implementation details), and "other formats" left ambiguous, which is no matter. Indeed, the correct method to report an overflow in VOTable is defined in DALI:

https://github.com/ivoa-std/DALI/blob/c2cc2520f403f50f69a4f2b46ec523564089d807/DALI.tex#L1387-L1419

however, no other reporting methods for any other formats are described.

What is frustrating is that this implementation detail was previously explained in TAP 1.0, as shown here:

If the output format is VOTable, section 2.9.1 describes the method by which the overflow is reported. No method of reporting an overflow is defined for formats other than VOTable.

The removal of the second sentence here removed some rather useful information, and created the current effect-- how would a reader know that there is no other method for reporting OVERFLOW, period?

@jwfraustro jwfraustro changed the title OVERFLOW reporting in other output formats OVERFLOW reporting in other output formats is undefined Nov 13, 2023
@msdemlei
Copy link
Collaborator

msdemlei commented Nov 13, 2023 via email

@pdowler
Copy link
Collaborator

pdowler commented Nov 22, 2023

http headers are committed and cannot be used to convey overflow unless one knows it is going to happen before starting to write the output... so in the general case a solution with headers can't be used and one needs to resort to an in-band indicator that output was truncated.

This text was indeed removed from TAP and reference to DALI used so that only a common mechanism would be added, in the right place. However, DALI does not make it clear that there is no overflow mechanism for CSV and TSV. iirc, they both support a header line but do not allow a footer line that is unambiguously not just another row.

The obvious thing would be to clarify this in DALI (will do). Maybe in the case of CSV and TSV we can re-introduce the same text in TAP since it's clear there is no viable solution there (well, there is one involving multi-part but it's pretty hostile to users wanting something simple and those are exactly the ones using these formats).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants