ADQL-2.0 Erratum 3: Coordinate system argument as a string literal

Author: Grégory Mantelet

Date last changed: 2020-05-13

Date accepted: 2020-06-11

Rationale

It appears that the grammar of ADQL-2.0 is more permissive than intended for the first argument of the POINT, BOX, CIRCLE and POLYGON functions. This alert has been raised while adapting the grammar of the functions above for an alternative function signature introduced in ADQL-2.1 (see the GitHub Issue #29). This argument represents the coordinate system of the geometry coordinates. The grammar of ADQL-2.0 admits any string expression ( <string_value_expression>) here, which includes string concatenation, column references, User Defined Functions (UDFs), any other function returning a string, but also numerics. Considering that a coordinate system cannot be represented by a numeric expression, this case should have already been excluded. In particular, allowing a non-constant expression as coordinate system makes its interpretation very difficult by an ADQL-SQL translation engine (indeed, parsing and transform functions are required on the database side). Also, users have no explicit way to know what kind of coordinate transformation is applied.

This Erratum restricts the coordinate system argument of POINT, BOX, CIRCLE and POLYGON to a string literal ( <character_string_literal>) to mitigate these problems.

Erratum Content

This Erratum changes the BNF grammar of ADQL-2.0, in the Appendix A, p.25, from:

<coord_sys> ::= <string_value_expression>

into:

<coord_sys> ::= <character_string_literal>

The description of the first argument of the functions is also changed for:

  • BOX, section 2.4.3 (p.13),
  • CIRCLE, section 2.4.5 (p.14),
  • POINT, section 2.4.12 (p.18), and
  • POLYGON, section 2.4.13 (p.18),
from:

the coordinate system is a string value expression as defined in Section 2.4.1.

into:

the coordinate system is a string literal as defined in Section 2.4.1.

Impact Assessment

Currently, very few ADQL services are able to interpret the coordinate system argument and to perform appropriate coordinate transformations. Currently, as far as we know, such services are able to do so only if the coordinate system is given as a string literal. This Erratum will not impact them.

For ADQL services that can interpret coordinate systems and apply coordinates transformations system from column references (e.g., via an uploaded table) – no such service is known at the present time –, it is perfectly allowed to offer more features in an implementation as long as the required ADQL language is supported.

From ADQL-2.1 on, the coordinate system argument is deprecated and becomes optional. Hence, no impact expected in future versions of ADQL where this argument will likely be removed.

Topic revision: r4 - 2020-06-12 - MarcoMolinaro
 
This site is powered by the TWiki collaboration platformCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback