[ https://issues.apache.org/jira/browse/HIVE-21843?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16857583#comment-16857583 ]
Oleksiy Sayankin commented on HIVE-21843: ----------------------------------------- *ROOT-CAUSE* Current issue is the regression of Apache [HIVE-15938|https://issues.apache.org/jira/browse/HIVE-15938] : {{position alias in order by fails for union queries}} Reverting of [HIVE-15938|https://issues.apache.org/jira/browse/HIVE-15938] from Hive fixes the issue. Place that introduces the bug is method {{processSetColsNode()}} from class {{ParseUtils}}: {code} /** * Replaces a spurious TOK_SETCOLREF added by parser with column names referring to the query * in e.g. a union. This is to maintain the expectations that some code, like order by position * alias, might have about not having ALLCOLREF. If it cannot find the columns with confidence * it will just replace SETCOLREF with ALLCOLREF. Most of the cases where that happens are * easy to work around in the query (e.g. by adding column aliases in the union). * @param setCols TOK_SETCOLREF ASTNode. * @param searcher AST searcher to reuse. */ private static void processSetColsNode(ASTNode setCols, ASTSearcher searcher) { searcher.reset(); {code} which as added in scope of [HIVE-15938|https://issues.apache.org/jira/browse/HIVE-15938]. > UNION query with regular expressions works in Hive-2.1 and does not work in > Hive-2.3 > ------------------------------------------------------------------------------------ > > Key: HIVE-21843 > URL: https://issues.apache.org/jira/browse/HIVE-21843 > Project: Hive > Issue Type: Bug > Reporter: Oleksiy Sayankin > Assignee: Oleksiy Sayankin > Priority: Major > > *STEPS TO REPRODUCE:* > 1. Create a table: > {code:java}CREATE TABLE t (a1 INT, a2 INT); > INSERT INTO TABLE t VALUES (1,1),(1,2),(2,1),(2,2);{code} > 2. SET hive.support.quoted.identifiers to "none": > {code:java}SET hive.support.quoted.identifiers=none;{code} > 3. Run the query: > {code:java}SELECT `(a1)?+.+` FROM t > UNION > SELECT `(a2)?+.+` FROM t;{code} > *ACTUAL RESULT:* > The query fails with an exception: > {code:java}2019-05-23T01:36:53,604 ERROR > [9aa457a9-1c74-466e-abef-ec2f007117f3 main] ql.Driver: FAILED: > SemanticException Line 0:-1 Invalid column reference '`(a1)?+.+`' > org.apache.hadoop.hive.ql.parse.SemanticException: Line 0:-1 Invalid column > reference '`(a1)?+.+`' > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genAllExprNodeDesc(SemanticAnalyzer.java:11734) > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genExprNodeDesc(SemanticAnalyzer.java:11674) > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genExprNodeDesc(SemanticAnalyzer.java:11642) > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genExprNodeDesc(SemanticAnalyzer.java:11620) > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genGroupByPlanMapGroupByOperator(SemanticAnalyzer.java:5225) > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genGroupByPlanMapAggrNoSkew(SemanticAnalyzer.java:6330) > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genBodyPlan(SemanticAnalyzer.java:9659) > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:10579) > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:10457) > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genOPTree(SemanticAnalyzer.java:11202) > at > org.apache.hadoop.hive.ql.parse.CalcitePlanner.genOPTree(CalcitePlanner.java:481) > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:11215) > at > org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:286) > at > org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:258) > at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:512) > at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1317) > at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1457) > at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1237) > at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1227) > at > org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:239) > at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:187) > at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:409) > at > org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:836) > at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:774) > at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:697) > at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:692) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at org.apache.hadoop.util.RunJar.run(RunJar.java:221) > at org.apache.hadoop.util.RunJar.main(RunJar.java:136){code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)