TAP-1.0 Erratum 4: The size Column in TAP_SCHEMA.columns
Author: DAL WG
Date last changed: 2014-12-22
Date accepted: 2017-05-14
Rationale
The table
TAP_SCHEMA.columns
as specified in §2.6.3 of the
TAP-1.0 standard has a column named
size
. This is unfortunate since SIZE is an
ADQL-2.0 reserved word (see
SQL reserved keywords on §2.1.2 of [[http://www.ivoa.net/documents/cover/ADQL-20081030.html][ADQL-2.0]), and thus must be quoted in queries. This is not stated in the TAP specification.
Erratum Content
SIZE is a SQL-92 reserved keyword adopted as a reserved keyword also in
ADQL-2.0. This means that, to be used in an
ADQL statement as an identifier (e.g. a column name), it must be put in double quotes to avoid collision with the reserved word meaning.
TAP-1.0 (see §2.6.3 there) specifies that the
TAP_SCHEMA.columns
table must have a column named
size
to specify the length of a variable length datatype. This means that that column must be double quoted when used in an
ADQL query. However the standard doesn't report this need.
This Erratum fills this omission appending the following paragraph to the end of TAP-1.0 §2.6.3:
- To use
size
in a query, it must be put in double quotes since it collides with an ADQL-2.0 reserved word. Since delimited identifiers are case-sensitive, for the size
column both clients and servers MUST always (in particular, in the DDL for TAP_SCHEMA
) use lower case exclusively.
Impact Assessment
The normative part of this Erratum does not impact any server or client side implementation of current TAP protocol because it simply states what should in any case happen in real TAP/ADQL usage. If the
size
column of
TAP_SCHEMA.columns
were not quoted, a SQL server would raise an error in response (probably a malformed statement exception).
To avoid the reserved keyword collision, in the next major version of TAP, this column will be called
arraysize
, in next minor revision(s) the name of the column will be kept for back-compatibility reasons.
Note
This Erratum was previously part of the TAP1Err1 Note still available on
volute. The content reflects §5 of that Note at svn revision 2800.