[ https://issues.apache.org/jira/browse/HIVE-22767?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Zoltan Haindrich updated HIVE-22767: ------------------------------------ Fix Version/s: 4.0.0 Resolution: Fixed Status: Resolved (was: Patch Available) pushed to master. Thank you [~zmatyus] > Beeline doesn't parse semicolons in comments properly > ----------------------------------------------------- > > Key: HIVE-22767 > URL: https://issues.apache.org/jira/browse/HIVE-22767 > Project: Hive > Issue Type: Bug > Components: Beeline > Reporter: Zoltan Matyus > Assignee: Zoltan Matyus > Priority: Major > Fix For: 4.0.0 > > Attachments: HIVE-22767.01.patch, HIVE-22767.02.patch, > HIVE-22767.03.patch > > > HIVE-12646 fixed the handling of semicolons in quoted strings, but leaves the > problem of semicolons in comments. E.g. with beeline connected to any > database... > this works: {code:sql}select 1; select /* */ 2; select /* */ 3;{code} > this doesn't work: {code:sql}select 1; select /* ; */ 2; select /* ; */ > 3;{code} > This has been fixed and reintroduced before (possibly multiple times). > Ideally, there should be a single utility method somewhere to separate > comments, strings and commands -- with the proper testing in place (q files). > However, I'm trying to make this fix back-portable, so a light touch is > needed. I'm focusing on beeline for now, and only writing (very thorough) > unit tests, as I cannot exclude any new q files from TestCliDriver (which > would break, since it's using a different parsing method). > ---- > P.S. excerpt of the error message: > {noformat} > 0: jdbc:hive2://...> select 1; select /* ; */ 2; select /* ; */ 3; > INFO : Compiling command(queryId=...): select 1 > INFO : Semantic Analysis Completed (retrial = false) > INFO : Returning Hive schema: Schema(fieldSchemas:[FieldSchema(name:_c0, > type:int, comment:null)], properties:null) > INFO : Completed compiling command(queryId=...); Time taken: 0.38 seconds > INFO : Executing command(queryId=...): select 1 > INFO : Completed executing command(queryId=...); Time taken: 0.004 seconds > INFO : OK > +------+ > | _c0 | > +------+ > | 1 | > +------+ > 1 row selected (2.007 seconds) > INFO : Compiling command(queryId=...): select /* > ERROR : FAILED: ParseException line 1:9 cannot recognize input near '<EOF>' > '<EOF>' '<EOF>' in select clause > org.apache.hadoop.hive.ql.parse.ParseException: line 1:9 cannot recognize > input near '<EOF>' '<EOF>' '<EOF>' in select clause > at > org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:233) > at org.apache.hadoop.hive.ql.parse.ParseUtils.parse(ParseUtils.java:79) > at org.apache.hadoop.hive.ql.parse.ParseUtils.parse(ParseUtils.java:72) > at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:598) > at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1505) > at org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:1452) > at org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:1447) > at > org.apache.hadoop.hive.ql.reexec.ReExecDriver.compileAndRespond(ReExecDriver.java:126) > at ... > {noformat} > ---- > Similarly, the following query also fails: > {code:sql}select /* ' */ 1; select /* ' */ 2;{code} > I suspect line comments are also not handled properly but I cannot reproduce > this in interactive beeline... -- This message was sent by Atlassian Jira (v8.3.4#803005)