Skip to content

need a mechanism to indicate dynamic content in a column #11

@pdowler

Description

@pdowler

Some columns one can query have content that could be generated while writing output. There is no standard way to tell users "this column can only be selected" and "not used in the where clause".

Known example: the access_url column in an ivoa.ObsCore service. It make sense in some implementations to dynamically generate the value users see while writing the table (eg prepend a configured base URL to an identifier value from the table).

The problem in TAP is that when a user sees a query result, they may think it is a good idea to write a query using a value they saw:

select * from ivoa.ObsCore
where access_url like 'https://example.net/%' 

after seeing a value like https://example.net/srv/links?ID=ivo://example.net/foo?bar. That is not going to work as expected.


The CADC service (ivo://cadc/nrc.ca/argus) does this and currently augments the column metadata with an xtype: datatype="char" arraysize="*" xtype="clob" following an old xtype from TAP-1.0 (was adql:CLOB back then). I'm not crazy about this solution, so not proposing that we use xtype for this... I have also toyed with some functions that have this same characteristic (the logic runs while streaming output so they are not normal UDFs -- can only use them in select list).


Any solution has to fit into both the VOSI-table metadata (VODataService) and into VOTable and fit into tap_schema ... maybe it would be OK to be expressed in tap_schema only? I'm not a big fan of that, but the problem here is specific to TAP.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions