A proposal for vector math in ADQL
With tables containing massive amounts of vectors (e.g., the collections of low-resolution spectra within Gaia DR3 or the Digitised Byurakan Surveys), giving TAP users a toolset to do server-side work with arrays becomes highly desirable and will significantly enhance the power of
ADQL to do server-side analyses. This is an attempt to provide a baseline feature set for that.
TAP servers supporting this should declare that by defining a language feature. While no IVOA specification exists for array operations, use the VECTORMATH key from GAVO's
ADQL extensions standards record, like this:
<languageFeatures type="ivo://org.gavo.dc/std/exts#extra-adql-keywords">
<feature>
<form>VECTORMATH</form>
<description>You can compute with vectors here. See
https://wiki.ivoa.net/twiki/bin/view/IVOA/ADQLVectorMath
for an overview of the functions and operators available.
</description>
</feature>
</languageFeatures>
Basic Math
- vec1+vec2 is the component-wise sum of two vectors. Where vec1 and vec2 have unequal length, the result is padded with NULLs to the length of the longer vector.
- vec1-vec2 is the component-wise difference of two vectors. Where vec1 and vec2 have unequal length, the result is padded with NULLs to the length of the longer vector.