firethorn

changeset 4292:822a5b9c622b 2.1.35-stv-issue-1182

Added some notes on testing the 1182 fix
author Stelios <stv@roe.ac.uk>
date Fri Mar 06 00:45:12 2020 +0200 (21 months ago)
parents 71251f7804f0
children a0341ca72077
files doc/notes/stv/20200305-Testing-1182.txt firethorn-webapp/src/main/webapp/WEB-INF/data/pgsql_tap_schema.sql
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/doc/notes/stv/20200305-Testing-1182.txt	Fri Mar 06 00:45:12 2020 +0200
     1.3 @@ -0,0 +1,299 @@
     1.4 +#
     1.5 +# <meta:header>
     1.6 +#   <meta:licence>
     1.7 +#     Copyright (c) 2018, ROE (http://www.roe.ac.uk/)
     1.8 +#
     1.9 +#     This information is free software: you can redistribute it and/or modify
    1.10 +#     it under the terms of the GNU General Public License as published by
    1.11 +#     the Free Software Foundation, either version 3 of the License, or
    1.12 +#     (at your option) any later version.
    1.13 +#
    1.14 +#     This information is distributed in the hope that it will be useful,
    1.15 +#     but WITHOUT ANY WARRANTY; without even the implied warranty of
    1.16 +#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    1.17 +#     GNU General Public License for more details.
    1.18 +#  
    1.19 +#     You should have received a copy of the GNU General Public License
    1.20 +#     along with this program.  If not, see <http://www.gnu.org/licenses/>.
    1.21 +#   </meta:licence>
    1.22 +# </meta:header>
    1.23 +#
    1.24 +#
    1.25 +
    1.26 +##########################################################
    1.27 +#####         Notes on Testing fix for 1182          #####
    1.28 +##########################################################
    1.29 +
    1.30 +
    1.31 +
    1.32 +import firethorn
    1.33 +
    1.34 +import firethorn_utils.configurator as configur
    1.35 +ft = firethorn.Firethorn(endpoint="http://gillian:8080/firethorn")
    1.36 +ft.login(firethorn.config.adminuser, firethorn.config.adminpass, firethorn.config.admingroup)
    1.37 +configurator =  configur.Configurator(ft)
    1.38 +
    1.39 +
    1.40 +
    1.41 +## -----------------------------
    1.42 +## Import Catalogs
    1.43 +
    1.44 +# Importing 2 catalogs that have columns that we want to check
    1.45 +  # ATLASDR1 / Filter / filterID  (Should see the equivalent of tiny int, instead of byte array)
    1.46 +  # BestDR9 / Frame / img  (Should see a byte array)
    1.47 +
    1.48 +
    1.49 +>>> configurator.load_resources("/home/firethorn.py/firethorn/data/osa-gui.json")
    1.50 +Importing JDBC Schema: ATLASDR1
    1.51 +Importing JDBC Schema: SDSSDR9
    1.52 +TAP Service available at: http://gillian:8080/firethorn/tap/110305/
    1.53 +
    1.54 +
    1.55 +
    1.56 +## -----------------------------
    1.57 +## Test with ftpy
    1.58 +
    1.59 +
    1.60 +resource=ft.firethorn_engine.select_adql_resource_by_ident("http://gillian:8080/firethorn/adql/resource/110305")
    1.61 +
    1.62 +
    1.63 +#
    1.64 +# Create and run a query on the resource.
    1.65 +query_str = "SELECT TOP 10 * FROM ATLASDR1.Filter"
    1.66 +
    1.67 +query_obj = resource.create_query(
    1.68 +    query_str,
    1.69 +    "COMPLETED",
    1.70 +    None,
    1.71 +    3000000
    1.72 +    )
    1.73 +
    1.74 +
    1.75 +print(
    1.76 +    query_obj.table()
    1.77 +     )
    1.78 +
    1.79 +{
    1.80 +  "columns": "http://gillian:8080/firethorn/adql/table/155703/columns/select",
    1.81 +  "self": "http://gillian:8080/firethorn/adql/table/155703",
    1.82 +  "root": "http://gillian:8080/firethorn/jdbc/table/155702",
    1.83 +  "url": "http://gillian:8080/firethorn/adql/table/155703",
    1.84 +  "created": "2020-03-05T22:16:03.103",
    1.85 +  "query": "http://gillian:8080/firethorn/blue/query/155602",
    1.86 +  "schema": "http://gillian:8080/firethorn/adql/schema/132238",
    1.87 +  "base": "http://gillian:8080/firethorn/jdbc/table/155702",
    1.88 +  "parent": "http://gillian:8080/firethorn/adql/schema/132238",
    1.89 +  "depth": "PARTIAL",
    1.90 +  "ident": "155703",
    1.91 +  "name": "XX_CDEILDVUQYJ4GAAAAFYKZRIZDQ",
    1.92 +  "fullname": "temp.XX_CDEILDVUQYJ4GAAAAFYKZRIZDQ",
    1.93 +  "owner": "http://gillian:8080/firethorn/community-member/162",
    1.94 +  "modified": "2020-03-05T22:16:03.103",
    1.95 +  "formats": {
    1.96 +    "datatable": "http://gillian:8080/firethorn/adql/table/155703/datatable",
    1.97 +    "votable": "http://gillian:8080/firethorn/adql/table/155703/votable"
    1.98 +  },
    1.99 +  "text": null,
   1.100 +  "type": "http://data.metagrid.co.uk/wfau/firethorn/types/entity/adql-table-1.0.json",
   1.101 +  "resource": "http://gillian:8080/firethorn/adql/resource/110307",
   1.102 +  "metadata": {
   1.103 +    "adql": {
   1.104 +      "status": "COMPLETED",
   1.105 +      "count": 10
   1.106 +    }
   1.107 +  }
   1.108 +}
   1.109 +
   1.110 +
   1.111 +py_table = query_obj.table().as_astropy()
   1.112 +
   1.113 +> Downloading http://gillian:8080/firethorn/adql/table/155703/votable
   1.114 +> |=======================================================================================================================================================================| 5.1k/5.1k (100.00%)         0s
   1.115 +
   1.116 +
   1.117 +
   1.118 +##-----------------------
   1.119 +## Test in Astropy
   1.120 +
   1.121 +py_table.pprint()
   1.122 +
   1.123 +filterID shortName      name                                                               description                                                           ...   vegaToAB    oneSecMLVg  isSectioned
   1.124 +-------- --------- -------------- ------------------------------------------------------------------------------------------------------------------------------ ... ------------ ------------ -----------
   1.125 +       0      NONE           NONE                                                                                                                           NONE ... -999999500.0 -999999500.0           0
   1.126 +       1         u         u_SDSS Sloan u filter: see  Tokunaga et al., 2002, PASP, 114, 180; http://www.astro-wise.org/~omegacam/documents/3110_user_manual.pdf ...         0.94 -999999500.0           0
   1.127 +       2         g         g_SDSS Sloan g filter: see  Tokunaga et al., 2002, PASP, 114, 180; http://www.astro-wise.org/~omegacam/documents/3110_user_manual.pdf ...        -0.08 -999999500.0           0
   1.128 +       3         r         r_SDSS Sloan r filter (see Tokunaga et al., 2002, PASP, 114, 180; http://www.astro-wise.org/~omegacam/documents/3110_user_manual.pdf) ...         0.17 -999999500.0           0
   1.129 +       4         i         i_SDSS Sloan i filter (see Tokunaga et al., 2002, PASP, 114, 180; http://www.astro-wise.org/~omegacam/documents/3110_user_manual.pdf) ...          0.4 -999999500.0           0
   1.130 +       5         z         z_SDSS Sloan z filter (see Tokunaga et al., 2002, PASP, 114, 180; http://www.astro-wise.org/~omegacam/documents/3110_user_manual.pdf) ...         0.57 -999999500.0           0
   1.131 +       6         B         B_JOHN                                                                                                               Johnson B filter ...       -0.044 -999999500.0           0
   1.132 +       7         V         V_JOHN                                                                                                               Johnson V filter ...       -0.163 -999999500.0           0
   1.133 +       8      BLNK OMEGACAM blank                                                                                         OMEGACAM blank filter (e.g. for darks) ... -999999500.0 -999999500.0           0
   1.134 +       9     vStrm         v_STRM                                                                                                                   Stroemgren v ... -999999500.0 -999999500.0           0
   1.135 +
   1.136 +
   1.137 +## VALID
   1.138 +## filterID values are printed correctly
   1.139 +
   1.140 +## Check VOTable file
   1.141 +
   1.142 +import requests
   1.143 +r = requests.get("http://gillian:8080/firethorn/adql/table/155703/votable")
   1.144 +r.text
   1.145 +
   1.146 +"<?xml version='1.0' encoding='UTF-8'?><VOTABLE xmlns='http://www.ivoa.net/xml/VOTable/v1.3' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.ivoa.net/xml/VOTable/v1.3 http://www.ivoa.net/xml/VOTable/v1.3' version='1.3'><RESOURCE type='results'><INFO name='QUERY_STATUS' value='OK'></INFO><INFO name='link' value='http://gillian:8080/firethorn/adql/table/155703'/><TABLE ID='table.155703' name='XX_CDEILDVUQYJ4GAAAAFYKZRIZDQ'><FIELD ID='column.155753' name='filterID' datatype='short' xtype='null'><LINK content-type='application/json' content-role='metadata' href='http://gillian:8080/firethorn/adql/column/155753'/></FIELD><FIELD ID='column.155755' name='shortName' datatype='char' arraysize='10' xtype='null'><LINK content-type='application/json' content-role='metadata' href='http://gillian:8080/firethorn/adql/column/155755'/></FIELD><FIELD ID='column.155757' name='name' datatype='char' arraysize='16' xtype='null'><LINK content-type='application/json' content-role='metadata' href='http://gillian:8080/firethorn/adql/column/155757'/></FIELD><FIELD ID='column.155759' name='description' datatype='char' arraysize='256' xtype='null'><LINK content-type='application/json' content-role='metadata' href='http://gillian:8080/firethorn/adql/column/155759'/></FIELD><FIELD ID='column.155761' name='cutOn' datatype='float' xtype='null'><LINK content-type='application/json' content-role='metadata' href='http://gillian:8080/firethorn/adql/column/155761'/></FIELD><FIELD ID='column.155763' name='cutOff' datatype='float' xtype='null'><LINK content-type='application/json' content-role='metadata' href='http://gillian:8080/firethorn/adql/column/155763'/></FIELD><FIELD ID='column.155765' name='aebv' datatype='float' xtype='null'><LINK content-type='application/json' content-role='metadata' href='http://gillian:8080/firethorn/adql/column/155765'/></FIELD><FIELD ID='column.155767' name='vegaToAB' datatype='float' xtype='null'><LINK content-type='application/json' content-role='metadata' href='http://gillian:8080/firethorn/adql/column/155767'/></FIELD><FIELD ID='column.155769' name='oneSecMLVg' datatype='float' xtype='null'><LINK content-type='application/json' content-role='metadata' href='http://gillian:8080/firethorn/adql/column/155769'/></FIELD><FIELD ID='column.155771' name='isSectioned' datatype='short' xtype='null'><LINK content-type='application/json' content-role='metadata' href='http://gillian:8080/firethorn/adql/column/155771'/></FIELD><DATA><TABLEDATA><TR><TD>0</TD><TD>NONE</TD><TD>NONE</TD><TD>NONE</TD><TD>-9.99999488E8</TD><TD>-9.99999488E8</TD><TD>-9.99999488E8</TD><TD>-9.99999488E8</TD><TD>-9.99999488E8</TD><TD>0</TD></TR><TR><TD>1</TD><TD>u</TD><TD>u_SDSS</TD><TD>Sloan u filter: see  Tokunaga et al., 2002, PASP, 114, 180; http://www.astro-wise.org/~omegacam/documents/3110_user_manual.pdf</TD><TD>0.32690000534057617</TD><TD>0.3828999996185303</TD><TD>5.15500020980835</TD><TD>0.9399999976158142</TD><TD>-9.99999488E8</TD><TD>0</TD></TR><TR><TD>2</TD><TD>g</TD><TD>g_SDSS</TD><TD>Sloan g filter: see  Tokunaga et al., 2002, PASP, 114, 180; http://www.astro-wise.org/~omegacam/documents/3110_user_manual.pdf</TD><TD>0.4092000126838684</TD><TD>0.5457000136375427</TD><TD>3.7929999828338623</TD><TD>-0.07999999821186066</TD><TD>-9.99999488E8</TD><TD>0</TD></TR><TR><TD>3</TD><TD>r</TD><TD>r_SDSS</TD><TD>Sloan r filter (see Tokunaga et al., 2002, PASP, 114, 180; http://www.astro-wise.org/~omegacam/documents/3110_user_manual.pdf)</TD><TD>0.5546000003814697</TD><TD>0.6916999816894531</TD><TD>2.750999927520752</TD><TD>0.17000000178813934</TD><TD>-9.99999488E8</TD><TD>0</TD></TR><TR><TD>4</TD><TD>i</TD><TD>i_SDSS</TD><TD>Sloan i filter (see Tokunaga et al., 2002, PASP, 114, 180; http://www.astro-wise.org/~omegacam/documents/3110_user_manual.pdf)</TD><TD>0.6949999928474426</TD><TD>0.8309999704360962</TD><TD>2.0859999656677246</TD><TD>0.4000000059604645</TD><TD>-9.99999488E8</TD><TD>0</TD></TR><TR><TD>5</TD><TD>z</TD><TD>z_SDSS</TD><TD>Sloan z filter (see Tokunaga et al., 2002, PASP, 114, 180; http://www.astro-wise.org/~omegacam/documents/3110_user_manual.pdf)</TD><TD>0.8654999732971191</TD><TD>0.9605000019073486</TD><TD>1.4789999723434448</TD><TD>0.5699999928474426</TD><TD>-9.99999488E8</TD><TD>0</TD></TR><TR><TD>6</TD><TD>B</TD><TD>B_JOHN</TD><TD>Johnson B filter</TD><TD>0.38999998569488525</TD><TD>0.49000000953674316</TD><TD>-9.99999488E8</TD><TD>-0.04399999976158142</TD><TD>-9.99999488E8</TD><TD>0</TD></TR><TR><TD>7</TD><TD>V</TD><TD>V_JOHN</TD><TD>Johnson V filter</TD><TD>0.5</TD><TD>0.6000000238418579</TD><TD>-9.99999488E8</TD><TD>-0.16300000250339508</TD><TD>-9.99999488E8</TD><TD>0</TD></TR><TR><TD>8</TD><TD>BLNK</TD><TD>OMEGACAM blank</TD><TD>OMEGACAM blank filter (e.g. for darks)</TD><TD>-9.99999488E8</TD><TD>-9.99999488E8</TD><TD>-9.99999488E8</TD><TD>-9.99999488E8</TD><TD>-9.99999488E8</TD><TD>0</TD></TR><TR><TD>9</TD><TD>vStrm</TD><TD>v_STRM</TD><TD>Stroemgren v</TD><TD>0.40049999952316284</TD><TD>0.42149999737739563</TD><TD>-9.99999488E8</TD><TD>-9.99999488E8</TD><TD>-9.99999488E8</TD><TD>0</TD></TR></TABLEDATA></DATA></TABLE></RESOURCE></VOTABLE>"
   1.147 +
   1.148 +## VALID
   1.149 +## filterID value is: datatype='short'
   1.150 +
   1.151 +
   1.152 +
   1.153 +
   1.154 +## -----------------------------
   1.155 +## Test with Taplint
   1.156 +
   1.157 +java -jar stilts.jar taplint tapurl=http://localhost:8080/firethorn/tap/155703  debug=true
   1.158 +This is STILTS taplint, 3.2/1c07f08 (2019-11-18)
   1.159 +Static report types: ERROR(139), WARNING(56), INFO(23), SUMMARY(9), FAILURE(22)
   1.160 +
   1.161 +Section TMV: Validate table metadata against XML schema
   1.162 +I-TMV-VURL-1 Validating http://localhost:8080/firethorn/tap/54/tables as tableset (http://www.ivoa.net/xml/VODataService/v1.1)
   1.163 +S-TMV-VALI-1 SAX report: warnings 0, errors 0, fatal 0
   1.164 +
   1.165 +Section TME: Check content of tables metadata from /tables
   1.166 +I-TME-CURL-1 Reading capability metadata from http://localhost:8080/firethorn/tap/54/capabilities
   1.167 +I-TME-TURL-1 Reading table metadata from http://localhost:8080/firethorn/tap/54/tables
   1.168 +S-TME-SUMM-1 Schemas: 3, Tables: 205, Columns: 10926, Foreign Keys: 0
   1.169 +S-TME-FLGS-1 Standard column flags: indexed: 0, primary: 0, nullable: 0
   1.170 +S-TME-FLGO-1 Other column flags: none
   1.171 +
   1.172 +Section TMS: Check content of tables metadata from TAP_SCHEMA
   1.173 +I-TMS-TAPV-1 Validating for TAP version V1.0
   1.174 +I-TMS-QSUB-1 Submitting query: SELECT COUNT(*) AS nr FROM TAP_SCHEMA.schemas
   1.175 +I-TMS-QGET-1 Query GET URL: http://localhost:8080/firethorn/tap/54/sync?REQUEST=doQuery&LANG=ADQL&QUERY=SELECT+COUNT%28*%29+AS+nr+FROM+TAP_SCHEMA.schemas
   1.176 +I-TMS-QSUB-2 Submitting query: SELECT COUNT(*) AS nr FROM TAP_SCHEMA.tables
   1.177 +I-TMS-QGET-2 Query GET URL: http://localhost:8080/firethorn/tap/54/sync?REQUEST=doQuery&LANG=ADQL&QUERY=SELECT+COUNT%28*%29+AS+nr+FROM+TAP_SCHEMA.tables
   1.178 +I-TMS-QSUB-3 Submitting query: SELECT COUNT(*) AS nr FROM TAP_SCHEMA.columns
   1.179 +I-TMS-QGET-3 Query GET URL: http://localhost:8080/firethorn/tap/54/sync?REQUEST=doQuery&LANG=ADQL&QUERY=SELECT+COUNT%28*%29+AS+nr+FROM+TAP_SCHEMA.columns
   1.180 +I-TMS-QSUB-4 Submitting query: SELECT COUNT(*) AS nr FROM TAP_SCHEMA.keys
   1.181 +I-TMS-QGET-4 Query GET URL: http://localhost:8080/firethorn/tap/54/sync?REQUEST=doQuery&LANG=ADQL&QUERY=SELECT+COUNT%28*%29+AS+nr+FROM+TAP_SCHEMA.keys
   1.182 +I-TMS-QSUB-5 Submitting query: SELECT COUNT(*) AS nr FROM TAP_SCHEMA.key_columns
   1.183 +I-TMS-QGET-5 Query GET URL: http://localhost:8080/firethorn/tap/54/sync?REQUEST=doQuery&LANG=ADQL&QUERY=SELECT+COUNT%28*%29+AS+nr+FROM+TAP_SCHEMA.key_columns
   1.184 +I-TMS-QSUB-6 Submitting query: SELECT principal, indexed, std, "size" FROM TAP_SCHEMA.columns
   1.185 +I-TMS-QGET-6 Query GET URL: http://localhost:8080/firethorn/tap/54/sync?REQUEST=doQuery&LANG=ADQL&QUERY=SELECT+principal%2C+indexed%2C+std%2C+%22size%22+FROM+TAP_SCHEMA.columns&MAXREC=10936
   1.186 +I-TMS-QSUB-7 Submitting query: SELECT TOP 1 * FROM TAP_SCHEMA.columns
   1.187 +I-TMS-QGET-7 Query GET URL: http://localhost:8080/firethorn/tap/54/sync?REQUEST=doQuery&LANG=ADQL&QUERY=SELECT+TOP+1+*+FROM+TAP_SCHEMA.columns&MAXREC=1
   1.188 +I-TMS-QSUB-8 Submitting query: SELECT ft_column_id, std, indexed, principal, arraysize, ts_column_id, datatype, utype, ucd, unit, description, column_name, table_name FROM TAP_SCHEMA.columns
   1.189 +I-TMS-QGET-8 Query GET URL: http://localhost:8080/firethorn/tap/54/sync?REQUEST=doQuery&LANG=ADQL&QUERY=SELECT+ft_column_id%2C+std%2C+indexed%2C+principal%2C+arraysize%2C+ts_column_id%2C+datatype%2C+utype%2C+ucd%2C+unit%2C+description%2C+column_name%2C+table_name+FROM+TAP_SCHEMA.columns&MAXREC=10936
   1.190 +I-TMS-QSUB-9 Submitting query: SELECT from_column, target_column, key_id FROM TAP_SCHEMA.key_columns
   1.191 +I-TMS-QGET-9 Query GET URL: http://localhost:8080/firethorn/tap/54/sync?REQUEST=doQuery&LANG=ADQL&QUERY=SELECT+from_column%2C+target_column%2C+key_id+FROM+TAP_SCHEMA.key_columns&MAXREC=10936
   1.192 +E-TMS-TSCT-1 Type mismatch for column TAP_SCHEMA.schemas.schema_name: datatype=char is not varchar-like (TAP 1.0)
   1.193 +E-TMS-TSCT-2 Type mismatch for column TAP_SCHEMA.schemas.utype: datatype=char is not varchar-like (TAP 1.0)
   1.194 +E-TMS-TSCT-3 Type mismatch for column TAP_SCHEMA.schemas.description: datatype=char is not varchar-like (TAP 1.0)
   1.195 +I-TMS-TSNS-1 2 non-standard columns in TAP_SCHEMA.schemas: [ts_schema_id, ft_schema_id]
   1.196 +E-TMS-TSCT-4 Type mismatch for column TAP_SCHEMA.tables.schema_name: datatype=char is not varchar-like (TAP 1.0)
   1.197 +E-TMS-TSCT-5 Type mismatch for column TAP_SCHEMA.tables.table_name: datatype=char is not varchar-like (TAP 1.0)
   1.198 +E-TMS-TSCT-6 Type mismatch for column TAP_SCHEMA.tables.table_type: datatype=char is not varchar-like (TAP 1.0)
   1.199 +E-TMS-TSCT-7 Type mismatch for column TAP_SCHEMA.tables.utype: datatype=char is not varchar-like (TAP 1.0)
   1.200 +E-TMS-TSCT-8 Type mismatch for column TAP_SCHEMA.tables.description: datatype=char is not varchar-like (TAP 1.0)
   1.201 +I-TMS-TSNS-2 2 non-standard columns in TAP_SCHEMA.tables: [ts_table_id, ft_table_id]
   1.202 +E-TMS-TSCT-9 Type mismatch for column TAP_SCHEMA.columns.table_name: datatype=char is not varchar-like (TAP 1.0)
   1.203 +I-TMS-TSNS-3 3 non-standard columns in TAP_SCHEMA.columns: [arraysize, ts_column_id, ft_column_id]
   1.204 +I-TMS-TSNS-4 1 non-standard columns in TAP_SCHEMA.keys: [ts_key_id]
   1.205 +I-TMS-TSNS-5 1 non-standard columns in TAP_SCHEMA.key_columns: [ts_key_column_id]
   1.206 +S-TMS-SUMM-1 Schemas: 3, Tables: 205, Columns: 10926, Foreign Keys: 0
   1.207 +S-TMS-FLGS-1 Standard column flags: indexed: 0, principal: 7, std: 33
   1.208 +S-TMS-QNUM-1 Successful/submitted TAP queries: 29/29
   1.209 +S-TMS-QTIM-1 Average successful query time: 1.4s
   1.210 +I-TMS-QSUB-x (20 more)
   1.211 +I-TMS-QGET-x (20 more)
   1.212 +E-TMS-TSCT-x (18 more)
   1.213 +
   1.214 +Section TMC: Compare table metadata from /tables and TAP_SCHEMA
   1.215 +
   1.216 +Section CPV: Validate capabilities against XML schema
   1.217 +I-CPV-VURL-1 Validating http://localhost:8080/firethorn/tap/54/capabilities as capabilities (http://www.ivoa.net/xml/VOSICapabilities/v1.0)
   1.218 +S-CPV-VALI-1 SAX report: warnings 0, errors 0, fatal 0
   1.219 +
   1.220 +Section CAP: Check TAP and TAPRegExt content of capabilities document
   1.221 +
   1.222 +Section AVV: Validate availability against XML schema
   1.223 +I-AVV-VURL-1 Validating http://localhost:8080/firethorn/tap/54/availability as availability (http://www.ivoa.net/xml/VOSIAvailability/v1.0)
   1.224 +S-AVV-VALI-1 SAX report: warnings 0, errors 0, fatal 0
   1.225 +
   1.226 +Section QGE: Make ADQL queries in sync GET mode
   1.227 +I-QGE-QSUB-1 Submitting query: SELECT TOP 10 bin FROM BestDR9.FieldProfile
   1.228 +I-QGE-QGET-1 Query GET URL: http://localhost:8080/firethorn/tap/54/sync?REQUEST=doQuery&LANG=ADQL&QUERY=SELECT+TOP+10+bin+FROM+BestDR9.FieldProfile
   1.229 +I-QGE-QSUB-2 Submitting query: SELECT bin FROM BestDR9.FieldProfile
   1.230 +I-QGE-QGET-2 Query GET URL: http://localhost:8080/firethorn/tap/54/sync?REQUEST=doQuery&LANG=ADQL&QUERY=SELECT+bin+FROM+BestDR9.FieldProfile&MAXREC=9
   1.231 +I-QGE-QSUB-3 Submitting query: SELECT TOP 10 bin FROM BestDR9.FieldProfile
   1.232 +I-QGE-QGET-3 Query GET URL: http://localhost:8080/firethorn/tap/54/sync?REQUEST=doQuery&LANG=ADQL&QUERY=SELECT+TOP+10+bin+FROM+BestDR9.FieldProfile&DUMMY=ignore-me
   1.233 +I-QGE-QSUB-4 Submitting query: SELECT TOP 1 bin FROM BestDR9.FieldProfile
   1.234 +I-QGE-QGET-4 Query GET URL: http://localhost:8080/firethorn/tap/54/sync?REQUEST=doQuery&LANG=ADQL-2.0&QUERY=SELECT+TOP+1+bin+FROM+BestDR9.FieldProfile
   1.235 +I-QGE-QSUB-5 Submitting query: SELECT TOP 1 bin FROM BestDR9.FieldProfile
   1.236 +I-QGE-QGET-5 Query GET URL: http://localhost:8080/firethorn/tap/54/sync?REQUEST=doQuery&LANG=ADQL&QUERY=SELECT+TOP+1+bin+FROM+BestDR9.FieldProfile
   1.237 +I-QGE-QSUB-6 Submitting query: SELECT TOP 8 c, z AS taplint_c_2, B.y, x AS taplint_c_4, convexid, B.regionid AS taplint_c_6 FROM BestDR9.HalfSpace AS B
   1.238 +I-QGE-QGET-6 Query GET URL: http://localhost:8080/firethorn/tap/54/sync?REQUEST=doQuery&LANG=ADQL&QUERY=SELECT+TOP+8+c%2C+z+AS+taplint_c_2%2C+B.y%2C+x+AS+taplint_c_4%2C+convexid%2C+B.regionid+AS+taplint_c_6++FROM+BestDR9.HalfSpace+AS+B
   1.239 +I-QGE-QSUB-7 Submitting query: SELECT stripe FROM BestDR9.StripeDefs
   1.240 +I-QGE-QGET-7 Query GET URL: http://localhost:8080/firethorn/tap/54/sync?REQUEST=doQuery&LANG=ADQL&QUERY=SELECT+stripe+FROM+BestDR9.StripeDefs&MAXREC=0
   1.241 +I-QGE-DUFF-1 Submitting query expected to fail (bad ADQL): DUFF QUERY
   1.242 +I-QGE-QGET-8 Query GET URL: http://localhost:8080/firethorn/tap/54/sync?REQUEST=doQuery&LANG=ADQL&QUERY=DUFF+QUERY
   1.243 +I-QGE-DUFF-2 Submitting query expected to fail (unknown query language): SELECT TOP 1 * FROM TAP_SCHEMA.tables
   1.244 +I-QGE-QGET-9 Query GET URL: http://localhost:8080/firethorn/tap/54/sync?REQUEST=doQuery&LANG=OOBLECK&QUERY=SELECT+TOP+1+*+FROM+TAP_SCHEMA.tables
   1.245 +S-QGE-QNUM-1 Successful/submitted TAP queries: 7/7
   1.246 +S-QGE-QTIM-1 Average successful query time: 2.0s
   1.247 +
   1.248 +Section QPO: Make ADQL queries in sync POST mode
   1.249 +I-QPO-QSUB-1 Submitting query: SELECT TOP 10 bin FROM BestDR9.FieldProfile
   1.250 +I-QPO-QSUB-2 Submitting query: SELECT bin FROM BestDR9.FieldProfile
   1.251 +I-QPO-QSUB-3 Submitting query: SELECT TOP 10 bin FROM BestDR9.FieldProfile
   1.252 +I-QPO-QSUB-4 Submitting query: SELECT TOP 8 c, z AS taplint_c_2, B.y, x AS taplint_c_4, convexid, B.regionid AS taplint_c_6 FROM BestDR9.HalfSpace AS B
   1.253 +I-QPO-QSUB-5 Submitting query: SELECT stripe FROM BestDR9.StripeDefs
   1.254 +I-QPO-DUFF-1 Submitting query expected to fail (bad ADQL): DUFF QUERY
   1.255 +I-QPO-DUFF-2 Submitting query expected to fail (unknown query language): SELECT TOP 1 * FROM TAP_SCHEMA.tables
   1.256 +S-QPO-QNUM-1 Successful/submitted TAP queries: 5/5
   1.257 +S-QPO-QTIM-1 Average successful query time: 1.1s
   1.258 +
   1.259 +Section QAS: Make ADQL queries in async mode
   1.260 +I-QAS-QSUB-1 Submitting query: SELECT TOP 10 bin FROM BestDR9.FieldProfile
   1.261 +I-QAS-QJOB-1 Submitted query at http://localhost:8080/firethorn/tap/54/async/23245
   1.262 +I-QAS-QSUB-2 Submitting query: SELECT bin FROM BestDR9.FieldProfile
   1.263 +I-QAS-QJOB-2 Submitted query at http://localhost:8080/firethorn/tap/54/async/23246
   1.264 +E-QAS-OVNO-1 Overflow not marked - no <INFO name='QUERY_STATUS' value='OVERFLOW'/> after TABLE
   1.265 +I-QAS-QSUB-3 Submitting query: SELECT TOP 10 bin FROM BestDR9.FieldProfile
   1.266 +I-QAS-QJOB-3 Submitted query at http://localhost:8080/firethorn/tap/54/async/23247
   1.267 +I-QAS-QSUB-4 Submitting query: SELECT TOP 8 c, z AS taplint_c_2, B.y, x AS taplint_c_4, convexid, B.regionid AS taplint_c_6 FROM BestDR9.HalfSpace AS B
   1.268 +I-QAS-QJOB-4 Submitted query at http://localhost:8080/firethorn/tap/54/async/23248
   1.269 +I-QAS-QSUB-5 Submitting query: SELECT stripe FROM BestDR9.StripeDefs
   1.270 +I-QAS-QJOB-5 Submitted query at http://localhost:8080/firethorn/tap/54/async/23249
   1.271 +I-QAS-DUFF-1 Submitting query expected to fail (bad ADQL): DUFF QUERY
   1.272 +I-QAS-QJOB-6 Submitted query at http://localhost:8080/firethorn/tap/54/async/23250
   1.273 +I-QAS-DUFF-2 Submitting query expected to fail (unknown query language): SELECT TOP 1 * FROM TAP_SCHEMA.tables
   1.274 +I-QAS-QJOB-7 Submitted query at http://localhost:8080/firethorn/tap/54/async/23251
   1.275 +E-QAS-DSUC-1 Apparent success from bad query (unknown query language)
   1.276 +S-QAS-QNUM-1 Successful/submitted TAP queries: 5/5
   1.277 +S-QAS-QTIM-1 Average successful query time: 1.5s
   1.278 +
   1.279 +Section UWS: Test asynchronous UWS/TAP behaviour
   1.280 +I-UWS-CJOB-1 Created new job http://localhost:8080/firethorn/tap/54/async/24602
   1.281 +I-UWS-POPA-1 POSTed runId=TAPLINT-002 to http://localhost:8080/firethorn/tap/54/async/24602/parameters
   1.282 +I-UWS-POPA-2 POSTed PHASE=ABORT to http://localhost:8080/firethorn/tap/54/async/24602/phase
   1.283 +I-UWS-POPA-3 POSTed ACTION=DELETE to http://localhost:8080/firethorn/tap/54/async/24602
   1.284 +I-UWS-CJOB-2 Created new job http://localhost:8080/firethorn/tap/54/async/24603
   1.285 +I-UWS-CJOB-3 Created new job http://localhost:8080/firethorn/tap/54/async/24604
   1.286 +I-UWS-VUWS-1 UWS job document implicitly V1.0
   1.287 +I-UWS-POPA-4 POSTed PHASE=RUN to http://localhost:8080/firethorn/tap/54/async/24604/phase
   1.288 +
   1.289 +Section MDQ: Check table query result columns against declared metadata
   1.290 +I-MDQ-QSUB-1 Submitting query: SELECT TOP 1 * FROM ATLASDR1.ArchiveCurationHistory
   1.291 +I-MDQ-QSUB-2 Submitting query: SELECT TOP 1 * FROM ATLASDR1.AstrCalVers
   1.292 +I-MDQ-QSUB-3 Submitting query: SELECT TOP 1 * FROM ATLASDR1.CurationTask
   1.293 +I-MDQ-QSUB-4 Submitting query: SELECT TOP 1 * FROM ATLASDR1.CurrentAstrometry
   1.294 +I-MDQ-QSUB-5 Submitting query: SELECT TOP 1 * FROM ATLASDR1.ExternalSurvey
   1.295 +I-MDQ-QSUB-6 Submitting query: SELECT TOP 1 * FROM ATLASDR1.ExternalSurveyTable
   1.296 +I-MDQ-QSUB-7 Submitting query: SELECT TOP 1 * FROM ATLASDR1.Filter
   1.297 +I-MDQ-QSUB-8 Submitting query: SELECT TOP 1 * FROM ATLASDR1.FilterSections
   1.298 +I-MDQ-QSUB-9 Submitting query: SELECT TOP 1 * FROM ATLASDR1.Multiframe
   1.299 +
   1.300 +
   1.301 +
   1.302 +
     2.1 --- a/firethorn-webapp/src/main/webapp/WEB-INF/data/pgsql_tap_schema.sql	Thu Mar 05 23:41:55 2020 +0200
     2.2 +++ b/firethorn-webapp/src/main/webapp/WEB-INF/data/pgsql_tap_schema.sql	Fri Mar 06 00:45:12 2020 +0200
     2.3 @@ -10,39 +10,39 @@
     2.4  INSERT INTO "TAP_SCHEMA"."tables" ("schema_name", "table_name", "table_type", "description", "utype", "ft_table_id") VALUES ('TAP_SCHEMA', 'TAP_SCHEMA.columns', 'table', 'List of columns of all tables listed in TAP_SCHEMA.TABLES and published in this TAP service.', NULL,0);
     2.5  INSERT INTO "TAP_SCHEMA"."tables" ("schema_name", "table_name", "table_type", "description", "utype", "ft_table_id") VALUES ('TAP_SCHEMA', 'TAP_SCHEMA.keys', 'table', 'List all foreign keys but provides just the tables linked by the foreign key. To know which columns of these tables are linked, see in TAP_SCHEMA.key_columns using the key_id.', NULL,0);
     2.6  INSERT INTO "TAP_SCHEMA"."tables" ("schema_name", "table_name", "table_type", "description", "utype", "ft_table_id") VALUES ('TAP_SCHEMA', 'TAP_SCHEMA.key_columns', 'table', 'List all foreign keys but provides just the columns linked by the foreign key. To know the table of these columns, see in TAP_SCHEMA.keys using the key_id.', NULL,0);
     2.7 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id") VALUES ('TAP_SCHEMA.schemas', 'schema_name', 'schema name, possibly qualified', '', '', '', 'char', -1, -1, 1, 0, 1, 0);
     2.8 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id") VALUES ('TAP_SCHEMA.schemas', 'description', 'brief description of schema', '', '', '', 'char', -1, -1, 0, 0, 1, 0);
     2.9 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.schemas', 'utype', 'UTYPE if schema corresponds to a data model', '', '', '', 'char', -1, -1, 0, 0, 1, 0);
    2.10 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.tables', 'schema_name', 'the schema name from TAP_SCHEMA.schemas', '', '', '', 'char', -1, -1, 1, 0, 1, 0);
    2.11 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.tables', 'table_name', 'table name as it should be used in queries', '', '', '', 'char', -1, -1, 1, 0, 1, 0);
    2.12 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.tables', 'table_type', 'one of: table, view', '', '', '', 'char', -1, -1, 0, 0, 1, 0);
    2.13 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.tables', 'description', 'brief description of table', '', '', '', 'char', -1, -1, 0, 0, 1, 0);
    2.14 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.tables', 'utype', 'UTYPE if table corresponds to a data model', '', '', '', 'char', -1, -1, 0, 0, 1, 0);
    2.15 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'table_name', 'table name from TAP_SCHEMA.tables', '', '', '', 'char', -1, -1, 1, 0, 1, 0);
    2.16 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'column_name', 'column name', '', '', '', 'char', -1, -1, 1, 0, 1, 0);
    2.17 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'description', 'brief description of column', '', '', '', 'char', -1, -1, 0, 0, 1, 0);
    2.18 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'unit', 'unit in VO standard format', '', '', '', 'char', -1, -1, 0, 0, 1, 0);
    2.19 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'ucd', 'UCD of column if any', '', '', '', 'char', -1, -1, 0, 0, 1, 0);
    2.20 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'utype', 'UTYPE of column if any', '', '', '', 'char', -1, -1, 0, 0, 1, 0);
    2.21 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'datatype', 'ADQL datatype as in section 2.5', '', '', '', 'char', -1, -1, 0, 0, 1, 0);
    2.22 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', '"size"', 'length of variable length datatypes', '', '', '', 'int', -1, -1, 0, 0, 1, 0);
    2.23 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'arraysize', 'length of variable length datatypes', '', '', '', 'int', -1, -1, 0, 0, 1, 0);
    2.24 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'principal', 'a principal column; 1 means true, 0 means false', '', '', '', 'int', -1, -1, 0, 0, 1, 0);
    2.25 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'indexed', 'an indexed column; 1 means true, 0 means false', '', '', '', 'int', -1, -1, 0, 0, 1, 0);
    2.26 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'std', 'a standard column; 1 means true, 0 means false', '', '', '', 'int', -1, -1, 0, 0, 1, 0);
    2.27 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.keys', 'key_id', 'unique key identifier', '', '', '', 'char', -1, -1, 1, 0, 1, 0);
    2.28 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.keys', 'from_table', 'fully qualified table name', '', '', '', 'char', -1, -1, 0, 0, 1, 0);
    2.29 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.keys', 'target_table', 'fully qualified table name', '', '', '', 'char', -1, -1, 0, 0, 1, 0);
    2.30 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.keys', 'description', 'description of this key', '', '', '', 'char', -1, -1, 0, 0, 1, 0);
    2.31 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.keys', 'utype', 'utype of this key', '', '', '', 'char', -1, -1, 0, 0, 1, 0);
    2.32 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.key_columns', 'key_id', 'unique key identifier', '', '', '', 'char', -1, -1, 1, 0, 1, 0);
    2.33 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.key_columns', 'from_column', 'key column name in the from_table', '', '', '', 'char', -1, -1, 0, 0, 1, 0);
    2.34 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.key_columns', 'target_column', 'key column name in the target_table', '', '', '', 'char', -1, -1, 0, 0, 1, 0);
    2.35 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.schemas', 'ts_schema_id', 'ts_schema_id', '', '', '', 'int', -1, -1, 0, 0, 1, 0);
    2.36 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'ts_column_id', 'ts_column_id', '', '', '', 'int', -1, -1, 0, 0, 1, 0);
    2.37 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.tables', 'ts_table_id', 'ts_table_id', '', '', '', 'int', -1, -1, 0, 0, 1, 0);
    2.38 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.keys', 'ts_key_id', 'ts_key_id', '', '', '', 'int', -1, -1, 0, 0, 1, 0);
    2.39 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.key_columns', 'ts_key_column_id', 'ts_key_column_id', '', '', '', 'int', -1, -1, 0, 0, 1, 0);
    2.40 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.schemas', 'ft_schema_id', 'ft_schema_id', '', '', '', 'int', -1, -1, 0, 0, 0, 0);
    2.41 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.tables', 'ft_table_id', 'ft_table_id', '', '', '', 'int', -1, -1, 0, 0, 0, 0);
    2.42 -INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'ft_column_id', 'ft_column_id', '', '', '', 'int', -1, -1, 0, 0, 0, 0);
    2.43 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id") VALUES ('TAP_SCHEMA.schemas', 'schema_name', 'schema name, possibly qualified', '', '', '', 'char', -1, 256, 1, 0, 1, 0);
    2.44 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id") VALUES ('TAP_SCHEMA.schemas', 'description', 'brief description of schema', '', '', '', 'char', -1, 256, 0, 0, 1, 0);
    2.45 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.schemas', 'utype', 'UTYPE if schema corresponds to a data model', '', '', '', 'char', -1, 256, 0, 0, 1, 0);
    2.46 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.tables', 'schema_name', 'the schema name from TAP_SCHEMA.schemas', '', '', '', 'char', -1, 256, 1, 0, 1, 0);
    2.47 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.tables', 'table_name', 'table name as it should be used in queries', '', '', '', 'char', -1, 256, 1, 0, 1, 0);
    2.48 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.tables', 'table_type', 'one of: table, view', '', '', '', 'char', -1, 256, 0, 0, 1, 0);
    2.49 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.tables', 'description', 'brief description of table', '', '', '', 'char', -1, 256, 0, 0, 1, 0);
    2.50 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.tables', 'utype', 'UTYPE if table corresponds to a data model', '', '', '', 'char', -1, 256, 0, 0, 1, 0);
    2.51 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'table_name', 'table name from TAP_SCHEMA.tables', '', '', '', 'char', -1, 256, 1, 0, 1, 0);
    2.52 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'column_name', 'column name', '', '', '', 'char', -1, 256, 1, 0, 1, 0);
    2.53 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'description', 'brief description of column', '', '', '', 'char', -1, 256, 0, 0, 1, 0);
    2.54 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'unit', 'unit in VO standard format', '', '', '', 'char', -1, 256, 0, 0, 1, 0);
    2.55 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'ucd', 'UCD of column if any', '', '', '', 'char', -1, 256, 0, 0, 1, 0);
    2.56 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'utype', 'UTYPE of column if any', '', '', '', 'char', -1, 256, 0, 0, 1, 0);
    2.57 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'datatype', 'ADQL datatype as in section 2.5', '', '', '', 'char', -1, 256, 0, 0, 1, 0);
    2.58 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', '"size"', 'length of variable length datatypes', '', '', '', 'int', -1, 256, 0, 0, 1, 0);
    2.59 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'arraysize', 'length of variable length datatypes', '', '', '', 'int', -1, 256, 0, 0, 1, 0);
    2.60 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'principal', 'a principal column; 1 means true, 0 means false', '', '', '', 'int', -1, 256, 0, 0, 1, 0);
    2.61 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'indexed', 'an indexed column; 1 means true, 0 means false', '', '', '', 'int', -1, 256, 0, 0, 1, 0);
    2.62 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'std', 'a standard column; 1 means true, 0 means false', '', '', '', 'int', -1, 256, 0, 0, 1, 0);
    2.63 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.keys', 'key_id', 'unique key identifier', '', '', '', 'char', -1, 256, 1, 0, 1, 0);
    2.64 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.keys', 'from_table', 'fully qualified table name', '', '', '', 'char', -1, 256, 0, 0, 1, 0);
    2.65 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.keys', 'target_table', 'fully qualified table name', '', '', '', 'char', -1, 256, 0, 0, 1, 0);
    2.66 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.keys', 'description', 'description of this key', '', '', '', 'char', -1, 256, 0, 0, 1, 0);
    2.67 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.keys', 'utype', 'utype of this key', '', '', '', 'char', -1, 256, 0, 0, 1, 0);
    2.68 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.key_columns', 'key_id', 'unique key identifier', '', '', '', 'char', -1, 256, 1, 0, 1, 0);
    2.69 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.key_columns', 'from_column', 'key column name in the from_table', '', '', '', 'char', -1, 256, 0, 0, 1, 0);
    2.70 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.key_columns', 'target_column', 'key column name in the target_table', '', '', '', 'char', -1, 256, 0, 0, 1, 0);
    2.71 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.schemas', 'ts_schema_id', 'ts_schema_id', '', '', '', 'int', -1, 256, 0, 0, 1, 0);
    2.72 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'ts_column_id', 'ts_column_id', '', '', '', 'int', -1, 256, 0, 0, 1, 0);
    2.73 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.tables', 'ts_table_id', 'ts_table_id', '', '', '', 'int', -1, 256, 0, 0, 1, 0);
    2.74 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.keys', 'ts_key_id', 'ts_key_id', '', '', '', 'int', -1, 256, 0, 0, 1, 0);
    2.75 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.key_columns', 'ts_key_column_id', 'ts_key_column_id', '', '', '', 'int', -1, 256, 0, 0, 1, 0);
    2.76 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.schemas', 'ft_schema_id', 'ft_schema_id', '', '', '', 'int', -1, 256, 0, 0, 0, 0);
    2.77 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.tables', 'ft_table_id', 'ft_table_id', '', '', '', 'int', -1, 256, 0, 0, 0, 0);
    2.78 +INSERT INTO "TAP_SCHEMA"."columns" ("table_name", "column_name", "description", "unit", "ucd", "utype", "datatype", "size", "arraysize", "principal", "indexed", "std", "ft_column_id")  VALUES ('TAP_SCHEMA.columns', 'ft_column_id', 'ft_column_id', '', '', '', 'int', -1, 256, 0, 0, 0, 0);