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

Edit | Attach | Watch | Print version | History: r5 < r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r2 - 2017-10-10 - MarkusDemleitner
 
This site is powered by the TWiki collaboration platform Powered by Perl This site is powered by the TWiki collaboration platformCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback