Skip to content
  • gmantele's avatar
    [ADQL] Append an HINT message in the ParseException message when an ADQL · db0dfdad
    gmantele authored
    reserved word is encountered instead of a column/table/schema name/alias.
    
    No list of ADQL reserved words has been added into the ADQL grammar.
    
    However, the ADQL grammar has been slightly changed in order to provide a more
    precise location of the REAL wrong part of the query.
    
    Before this commit, if an ADQL reserved word (e.g. 'point') was encountered
    outside of its normal syntax (e.g. 'point' no followed by an opening
    parenthesis), the next token was highlighted instead of this one. Hence a
    confusing error message.
    
    For instance, the following ADQL query:
    
    ```sql
    SELECT point
    FROM aTable
    ```
    
    returned the following error message:
    
    > Encountered "FROM". Was expecting: "("
    
    Now, it will return the following one:
    
    > Encountered "point". Was expecting one of: "*" <QUANTIFIER> "TOP" [...]
    > (HINT: "point" is a reserved ADQL word. To use it as a column/table/schema name/alias, write it between double quotes.)
    
    This error message highlights exactly the source of the problem and even provide
    to the user a clear explanation of why the query did not parse and how it could
    be solved.
    db0dfdad