You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "benj (JIRA)" <ji...@apache.org> on 2019/03/05 14:03:00 UTC

[jira] [Commented] (DRILL-6988) Utility of the too long error message when syntax error

    [ https://issues.apache.org/jira/browse/DRILL-6988?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16784465#comment-16784465 ] 

benj commented on DRILL-6988:
-----------------------------

in org/apache/drill/exec/planner/sql/parser/impl/ParseException.java

Why not replace
{code:java}
    if (expectedTokenSequences.length == 1) {
      retval += "Was expecting:" + eol + "    ";
    } else {
      retval += "Was expecting one of:" + eol + "    ";
    }
{code}
by
{code:java}
    if (expectedTokenSequences.length == 1) {
      retval += "Was expecting:" + eol + "    ";
    } 
    else if (expectedTokenSequences.length >= 4) {
      ; // "Parse Error" is sufficient - and too long message is useless - discuss about the limit
    } 
    else if () {
      retval += "Was expecting one of:" + eol + "    ";
    }
{code}
Or maybe truncate the message and adding "..."

Note that the current message (in 1.15) suggest keywords that are SQL OK but are not DRILL OK (like except or intersect for example)

> Utility of the too long error message when syntax error
> -------------------------------------------------------
>
>                 Key: DRILL-6988
>                 URL: https://issues.apache.org/jira/browse/DRILL-6988
>             Project: Apache Drill
>          Issue Type: Improvement
>          Components: SQL Parser
>    Affects Versions: 1.15.0
>            Reporter: benj
>            Priority: Minor
>
> When executing query with syntax error, the too long and useless error message pollute log/screen and doesn't give any useful information.
> Maybe a more concise error message (1-3 line max) should be enough.
> {code:java}
> SELECT FROM (VALUES(1));
> Error: PARSE ERROR: Encountered "FROM" at line 1, column 8.
> Was expecting one of:
>     "UNION" ...
>     "INTERSECT" ...
>     "EXCEPT" ...
>     "MINUS" ...
>     "ORDER" ...
>     "LIMIT" ...
>     "OFFSET" ...
>     "FETCH" ...
>     "STREAM" ...
>     "DISTINCT" ...
>     "ALL" ...
>     "*" ...
>     "+" ...
>     "-" ...
>     "NOT" ...
>     "EXISTS" ...
>     <UNSIGNED_INTEGER_LITERAL> ...
>     <DECIMAL_NUMERIC_LITERAL> ...
>     <APPROX_NUMERIC_LITERAL> ...
>     <BINARY_STRING_LITERAL> ...
>     <PREFIXED_STRING_LITERAL> ...
>     <QUOTED_STRING> ...
>     <UNICODE_STRING_LITERAL> ...
>     "TRUE" ...
>     "FALSE" ...
>     "UNKNOWN" ...
>     "NULL" ...
>     <LBRACE_D> ...
>     <LBRACE_T> ...
>     <LBRACE_TS> ...
>     "DATE" ...
>     "TIME" ...
>     "TIMESTAMP" ...
>     "INTERVAL" ...
>     "?" ...
>     "CAST" ...
>     "EXTRACT" ...
>     "POSITION" ...
>     "CONVERT" ...
>     "TRANSLATE" ...
>     "OVERLAY" ...
>     "FLOOR" ...
>     "CEIL" ...
>     "CEILING" ...
>     "SUBSTRING" ...
>     "TRIM" ...
>     "CLASSIFIER" ...
>     "MATCH_NUMBER" ...
>     "RUNNING" ...
>     "PREV" ...
>     "NEXT" ...
>     <LBRACE_FN> ...
>     "MULTISET" ...
>     "ARRAY" ...
>     "PERIOD" ...
>     "SPECIFIC" ...
>     <IDENTIFIER> ...
>     <QUOTED_IDENTIFIER> ...
>     <BACK_QUOTED_IDENTIFIER> ...
>     <BRACKET_QUOTED_IDENTIFIER> ...
>     <UNICODE_QUOTED_IDENTIFIER> ...
>     "ABS" ...
>     "AVG" ...
>     "CARDINALITY" ...
>     "CHAR_LENGTH" ...
>     "CHARACTER_LENGTH" ...
>     "COALESCE" ...
>     "COLLECT" ...
>     "COVAR_POP" ...
>     "COVAR_SAMP" ...
>     "CUME_DIST" ...
>     "COUNT" ...
>     "CURRENT_DATE" ...
>     "CURRENT_TIME" ...
>     "CURRENT_TIMESTAMP" ...
>     "DENSE_RANK" ...
>     "ELEMENT" ...
>     "EXP" ...
>     "FIRST_VALUE" ...
>     "FUSION" ...
>     "GROUPING" ...
>     "HOUR" ...
>     "LAG" ...
>     "LEAD" ...
>     "LAST_VALUE" ...
>     "LN" ...
>     "LOCALTIME" ...
>     "LOCALTIMESTAMP" ...
>     "LOWER" ...
>     "MAX" ...
>     "MIN" ...
>     "MINUTE" ...
>     "MOD" ...
>     "MONTH" ...
>     "NTH_VALUE" ...
>     "NTILE" ...
>     "NULLIF" ...
>     "OCTET_LENGTH" ...
>     "PERCENT_RANK" ...
>     "POWER" ...
>     "RANK" ...
>     "REGR_SXX" ...
>     "REGR_SYY" ...
>     "ROW_NUMBER" ...
>     "SECOND" ...
>     "SQRT" ...
>     "STDDEV_POP" ...
>     "STDDEV_SAMP" ...
>     "SUM" ...
>     "UPPER" ...
>     "TRUNCATE" ...
>     "USER" ...
>     "VAR_POP" ...
>     "VAR_SAMP" ...
>     "YEAR" ...
>     "CURRENT_CATALOG" ...
>     "CURRENT_DEFAULT_TRANSFORM_GROUP" ...
>     "CURRENT_PATH" ...
>     "CURRENT_ROLE" ...
>     "CURRENT_SCHEMA" ...
>     "CURRENT_USER" ...
>     "SESSION_USER" ...
>     "SYSTEM_USER" ...
>     "NEW" ...
>     "CASE" ...
>     "CURRENT" ...
>     "CURSOR" ...
>     "ROW" ...
>     "(" ...
>     
> SQL Query SELECT FROM VALUES(1)
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)