table_name syntax

Mark Taylor m.b.taylor at bristol.ac.uk
Tue Apr 28 18:08:24 CEST 2015


I don't really understand this suggestion.

A schema_name column already exists in the tap_schema.tables table.

Marco, are you really saying we need a schema_name column in the
columns table too?  Would that help?

On Tue, 28 Apr 2015, Marco Molinaro wrote:

> Hi Laurent, hi all,
> I like your proposed solution.
> My concern on it is that it requires a mandatory new column in columns
> table (at least to me it seems so).
> And being this column not present in TAP-1.0 it could break
> back-compatibility, am I wrong?
> 
> Also, if someone comes up really using catalogs, will we have to redo the
> exercise for "catalog"."schema" thing?
> 
> I agree in any case that a transition phase adding the schema_name in
> columns table can solve the problem in a neat way (or at least so appears
> to me).
> 
> Cheers,
>     Marco
> 
> 
> 2015-04-28 16:21 GMT+02:00 Laurent Michel <laurent.michel at astro.unistra.fr>:
> 
> > Hello,
> >
> > I'd to tackle with these unregular Vizier names for TapHandle. My
> > implementation is based on the assumption that the Vizier
> > "tap_schema.table_columns.table_name" contains the name of the table and
> > nothing else, assumption which can obviously not be generalised.
> >
> > My opinion is that this issue points out a weakness in the TAP
> > specification which is located around *OR* word in the 'table_name' column
> > definition:
> >    The value of the table_name should be the string that is
> >    recommended for use in querying the table; it may *OR* may not be
> >    qualified by....
> >
> > This uncertainty in the column definition requires the clients to do some
> > inference to identify the table name which is source of misinterpretations.
> >
> > So, instead of defining new columns such as raw_* which will possibly add
> > confusion a some stage. I believe that improving the support of unregular
> > table names should be to move towards a better specification of the
> > tap_schema definition. For instance, would it not be better to add a column
> > "schema-name" and to stipulate that the "table_name" columns only contains
> > the exact name of the table without any other path element? The transition
> > for existing services would be smooth since the presence of the schema_name
> > column would greatly help to infer the real table name.
> >
> > I do not think that this issue should be sorted out with some quoting
> > strategy.
> > The common sense tells that a tap_schema query returning "A.*_B" as table
> > name means that the name of the table is "A.*_B" and that the double quotes
> > are part of this name. Adding single or double quotes must remain the job
> > of the query builder as any other formatting/escaping business.
> > The point is that to work safely, the client needs to have an unambiguous
> > way to get the name of both schemas and tables, which can be achieved with
> > schema_name column proposed above.
> >
> > Laurent
> >
> >
> >
> >
> > Le 28/04/2015 14:18, Mark Taylor a écrit :
> >
> >> On Tue, 28 Apr 2015, Markus Demleitner wrote:
> >>
> >>  I'd fairly strongly suggest that all DB names should be in a form
> >>> ready for usage.  While the case:
> >>>
> >>>      +-------------------+-------------+
> >>>>     | table_name        | column_name |
> >>>>     +-------------------+-------------+
> >>>>     | B/avo.rad/catalog | Sp-Index    |
> >>>>     +-------------------+-------------+
> >>>>
> >>>>
> >>> might conceivably be caugt by clients who might themselves see that
> >>> Sp-Index simply cannot be a delimited identifier, this is impossible
> >>> for a column_name 'FooBar' -- this might work as a regular identifier,
> >>> but *if* it's a delimited identifer, only '"FooBar"' will work.
> >>>
> >>
> >> I *think* you meant to write instead:
> >>
> >>      "... Sp-Index simply cannot be a regular identifier ..."
> >>
> >> If not, I'm afraid I need more elucidation.
> >>
> >> Assuming I've got that right ... then I see your point
> >> (I don't need python to tell me that guessing is evil :-]).
> >> I suspect in that case there are a number of TAP services out there
> >> broken in this respect (taplint hasn't been looking for them up till
> >> now), though disappointingly I can only find a couple of examples
> >> at GAVO DC (vlastripe82.stripe82 column _ct, plus an empty schema
> >> mwsc-e14a which maybe doesn't count).
> >>
> >> A possible alternative: outlaw
> >> delimited-identifiers-that-don't-have-to-be-delimited,
> >> i.e. column_name values which are lexically legal regular identifiers
> >> like FooBar must represent regular identifiers, though values
> >> which are illegal regular identifiers (like Foo-Bar) obviously don't.
> >> Stated like that it sounds a bit complex, though it does fall in
> >> line with your project of marginalising use of delimited identifiers,
> >> and it also has the advantage that none of the logic in my code
> >> needs to change :-).
> >>
> >> Supplementary question: does "form ready for usage" include
> >> quoting to avoid collision with ADQL reserved words?
> >> If so, I've got a few more GAVO column names I can beat you with
> >> (distance, size, date, section).
> >>
> >> Mark
> >>
> >> --
> >> Mark Taylor   Astronomical Programmer   Physics, Bristol University, UK
> >> m.b.taylor at bris.ac.uk +44-117-9288776  http://www.star.bris.ac.uk/~mbt/
> >>
> >>
> > --
> > jesuischarlie
> >
> > Laurent Michel
> > SSC XMM-Newton
> > Tél : +33 (0)3 68 85 24 37
> > Fax : +33 (0)3 )3 68 85 24 32
> > laurent.michel at astro.unistra.fr <mailto:laurent.michel at astro.unistra.fr>
> > Université de Strasbourg <http://www.unistra.fr>
> > Observatoire Astronomique
> > 11 Rue de l'Université
> > F - 67200 Strasbourg
> > http://amwdb.u-strasbg.fr/HighEnergy/spip.php?rubrique34
> >
> 

--
Mark Taylor   Astronomical Programmer   Physics, Bristol University, UK
m.b.taylor at bris.ac.uk +44-117-9288776  http://www.star.bris.ac.uk/~mbt/


More information about the dal mailing list