ADQL-2.0 Erratum 1: Remove Nonterminal Separator
Author: DAL WG
Date last changed: 2017-05-26
Rationale
The BNF grammar for the
ADQL-2.0 language is listed in Appendix A of the recommendation. In this grammar a
separator
rule is present, with the following definition:
<separator> ::= { <comment> | <space> | <newline> }...
However this nonterminal token is only referenced in the rule for the
character_string_literal
, i.e.
<character_string_literal> ::=
<quote> [ <character_representation>... ] <quote>
[ { <separator>... <quote>
[ <character_representation>... ] <quote> }... ]
It is uncontroversial that the intent is to allow comments and white-space wherever SQL-92 allows them. The ADQL standard however says differently, and there should be a clarification. Between two alternatives, adding a clarifying subsection to the ADQL-2.0 standard or removing the
separator
, the second seems more attractive and has been considered suitable for a simple erratum to the current recommendation.
Erratum Content
The definition for the nonterminal
separator
in the
ADQL-2.0 specification is not clear. It suggests, with its only reference in the
character_string_literal
that any ADQL language token may be followed by a separator and that nondelimiter tokens shall be followed by a delimiter token or a separator. The intention, however, was probably to let white-space and comments occur wherever they are allowed in SQL-92.
This Erratum updates the ADQL-2.0 recommendation removing the
separator
token rule from the ADQL grammar in its Appendix A. This, consequently, modifies the rule for
character_string_literal
to
<character_string_literal> ::=
<quote> [ <character_representation>... ] <quote>
omitting the final
[ { <separator>... <quote>
[ <character_representation>... ] <quote> }... ]
These changes won't affect in any other way the
ADQL grammar.
Impact Assessment
The change introduced by this erratum has no other impact on the current
ADQL grammar and language apart from what already described in the previous sections of this note. Current implementations and parsers of
ADQL query strings shouldn't be affected at all by this change. Moreover, current BNF grammar in ADQL-2.0 needs changes to be machine readable and validated and one of the issues in BNF is exactly how to deal with optional or required white spaces.
Note
This Erratum was previously part of the ADQL2Err1 Note still available on
volute. The content makes some small changes with respect to that Note at svn revision 2802.
Discussion
Proposal for an alternative Erratum content
In section 2 of the
ADQL 2.0 Recommendation, add a section 2.1.4 with the following content:
1.1.4 Whitespace and Comments
The rules on where whitespace is allowed and required are as in SQL92;
essentially, any <token> may be followed by a <separator>.
--
MarkusDemleitner - 2017-10-10