ADQL: How to handle Unnamed column expressions in SELECT clause

Stelios Voutsinas stv at roe.ac.uk
Fri May 6 12:54:02 CEST 2016


Dear DAL List,

A similar issue to the GROUP BY email sent out a few days ago, is how to deal with expressions in the SELECT clause of a query that are not aliased and in particular what should be the name of the returned columns.

For example what should a user, or an automated script, expect as the result columns of this query?

     SELECT (ra+dec), -ra FROM alpha_source

I've tested with a few different catalogues and TAP services, as well as different Database Systems and I'm noticing a few different approaches. I'm wondering whether there is a gap here that we should think about (ADQL?, TAP?, VOTable?), as results of such a query may be re-used (i.e. stored in an SQL Server database in our case) and the clients at the moment have no way of knowing what the columns will be named, and if the names will cause problems when re-used. 
Or a user may revisit a VOTable of a query run in the past and may be confused if such columns do not have consistent naming.

Some of the main options are :

* Allow a column with no name

     ra / 2 => ''

* Simple name generator

     ra / 2 => 'COL_1'

* Random name generator

     ra / 2 => 'ahblwwnbtm'

* Reject the query and require an AS

     ra / 2 => AS xyz

* Wrap the expression in quotes

     ra / 2 => "ra / 2"

* Implementation specific naming, i.e. Java object name

     ra / 2 => net.sf.jsqlparser.expression.InverseExpression at 8cae..

We have put together a wiki page with details of the different
approaches with their advantages and disadvantages here : https://github.com/ivoa/cosmopterix/wiki/Unnamed-columns

It would be interesting to hear people's thoughts on this and see whether this is something that needs to be standardized, and if so how and where. 

Cheers,

Stelios Voutsinas
Software Developer
WFAU, Institute for Astronomy
University of Edinburgh


More information about the dal mailing list