You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Lars Francke (JIRA)" <ji...@apache.org> on 2014/07/30 01:32:40 UTC

[jira] [Updated] (HIVE-4933) Can't use alias directly before OVER clause

     [ https://issues.apache.org/jira/browse/HIVE-4933?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Lars Francke updated HIVE-4933:
-------------------------------

    Description: 
{code}
CREATE TABLE test (foo INT);
hive> SELECT SUM(foo) AS bar OVER (PARTITION BY foo) FROM test;
MismatchedTokenException(175!=110)
	at org.antlr.runtime.BaseRecognizer.recoverFromMismatchedToken(BaseRecognizer.java:617)
	at org.antlr.runtime.BaseRecognizer.match(BaseRecognizer.java:115)
	at org.apache.hadoop.hive.ql.parse.HiveParser_FromClauseParser.fromClause(HiveParser_FromClauseParser.java:1424)
	at org.apache.hadoop.hive.ql.parse.HiveParser.fromClause(HiveParser.java:35998)
	at org.apache.hadoop.hive.ql.parse.HiveParser.selectStatement(HiveParser.java:33974)
	at org.apache.hadoop.hive.ql.parse.HiveParser.regular_body(HiveParser.java:33882)
	at org.apache.hadoop.hive.ql.parse.HiveParser.queryStatement(HiveParser.java:33389)
	at org.apache.hadoop.hive.ql.parse.HiveParser.queryStatementExpression(HiveParser.java:33169)
	at org.apache.hadoop.hive.ql.parse.HiveParser.execStatement(HiveParser.java:1284)
	at org.apache.hadoop.hive.ql.parse.HiveParser.statement(HiveParser.java:983)
	at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:190)
	at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:434)
	at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:352)
	at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:995)
	at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1038)
	at org.apache.hadoop.hive.ql.Driver.run(Driver.java:931)
	at org.apache.hadoop.hive.ql.Driver.run(Driver.java:921)
	at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:268)
	at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:220)
	at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:422)
	at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:790)
	at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:684)
	at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:623)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
FAILED: ParseException line 1:20 mismatched input 'OVER' expecting FROM near 'bar' in from clause{code}

The same happens without the {{AS}} but it works when leaving out the alias entirely.

  was:
{code}
CREATE TABLE test (foo INT);
hive (default)> SELECT foo AS foobar OVER (PARTITION BY foo) FROM test;
MismatchedTokenException(171!=107)
	at org.antlr.runtime.BaseRecognizer.recoverFromMismatchedToken(BaseRecognizer.java:617)
	at org.antlr.runtime.BaseRecognizer.match(BaseRecognizer.java:115)
	at org.apache.hadoop.hive.ql.parse.HiveParser_FromClauseParser.fromClause(HiveParser_FromClauseParser.java:1191)
	at org.apache.hadoop.hive.ql.parse.HiveParser.fromClause(HiveParser.java:31353)
	at org.apache.hadoop.hive.ql.parse.HiveParser.selectStatement(HiveParser.java:29429)
	at org.apache.hadoop.hive.ql.parse.HiveParser.regular_body(HiveParser.java:29337)
	at org.apache.hadoop.hive.ql.parse.HiveParser.queryStatement(HiveParser.java:28877)
	at org.apache.hadoop.hive.ql.parse.HiveParser.queryStatementExpression(HiveParser.java:28671)
	at org.apache.hadoop.hive.ql.parse.HiveParser.execStatement(HiveParser.java:1235)
	at org.apache.hadoop.hive.ql.parse.HiveParser.statement(HiveParser.java:935)
	at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:190)
	at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:422)
	at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:341)
	at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:965)
	at org.apache.hadoop.hive.ql.Driver.run(Driver.java:880)
	at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:259)
	at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:216)
	at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:413)
	at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:782)
	at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675)
	at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:614)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:616)
	at org.apache.hadoop.util.RunJar.main(RunJar.java:160)
FAILED: ParseException line 1:21 mismatched input 'OVER' expecting FROM near 'foobar' in from clause
{code}

The same happens without the {{AS}}.


> Can't use alias directly before OVER clause
> -------------------------------------------
>
>                 Key: HIVE-4933
>                 URL: https://issues.apache.org/jira/browse/HIVE-4933
>             Project: Hive
>          Issue Type: Bug
>    Affects Versions: 0.11.0
>            Reporter: Lars Francke
>            Priority: Minor
>
> {code}
> CREATE TABLE test (foo INT);
> hive> SELECT SUM(foo) AS bar OVER (PARTITION BY foo) FROM test;
> MismatchedTokenException(175!=110)
> 	at org.antlr.runtime.BaseRecognizer.recoverFromMismatchedToken(BaseRecognizer.java:617)
> 	at org.antlr.runtime.BaseRecognizer.match(BaseRecognizer.java:115)
> 	at org.apache.hadoop.hive.ql.parse.HiveParser_FromClauseParser.fromClause(HiveParser_FromClauseParser.java:1424)
> 	at org.apache.hadoop.hive.ql.parse.HiveParser.fromClause(HiveParser.java:35998)
> 	at org.apache.hadoop.hive.ql.parse.HiveParser.selectStatement(HiveParser.java:33974)
> 	at org.apache.hadoop.hive.ql.parse.HiveParser.regular_body(HiveParser.java:33882)
> 	at org.apache.hadoop.hive.ql.parse.HiveParser.queryStatement(HiveParser.java:33389)
> 	at org.apache.hadoop.hive.ql.parse.HiveParser.queryStatementExpression(HiveParser.java:33169)
> 	at org.apache.hadoop.hive.ql.parse.HiveParser.execStatement(HiveParser.java:1284)
> 	at org.apache.hadoop.hive.ql.parse.HiveParser.statement(HiveParser.java:983)
> 	at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:190)
> 	at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:434)
> 	at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:352)
> 	at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:995)
> 	at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1038)
> 	at org.apache.hadoop.hive.ql.Driver.run(Driver.java:931)
> 	at org.apache.hadoop.hive.ql.Driver.run(Driver.java:921)
> 	at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:268)
> 	at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:220)
> 	at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:422)
> 	at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:790)
> 	at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:684)
> 	at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:623)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:606)
> 	at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
> FAILED: ParseException line 1:20 mismatched input 'OVER' expecting FROM near 'bar' in from clause{code}
> The same happens without the {{AS}} but it works when leaving out the alias entirely.



--
This message was sent by Atlassian JIRA
(v6.2#6252)