Mykhailo Kysliuk created HIVE-19289:
---------------------------------------
Summary: Grouping function with several argument does not work
Key: HIVE-19289
URL: https://issues.apache.org/jira/browse/HIVE-19289
Project: Hive
Issue Type: Bug
Affects Versions: 2.3.3
Reporter: Mykhailo Kysliuk
This steps are taken from [Apache wiki |
https://cwiki.apache.org/confluence/display/Hive/Enhanced+Aggregation%2C+Cube%2C+Grouping+and+Rollup]
*General Info*
Hive version : 2.3.3
{code:java}
commit 3f7dde31aed44b5440563d3f9d8a8887beccf0be
Author: Daniel Dai <[email protected]>
Date: Wed Mar 28 16:46:29 2018 -0700
Preparing for 2.3.3 release
{code}
Hadoop version: 2.7.2.
Engine
{code:java}
hive> set hive.execution.engine;
hive.execution.engine=mr{code}
*STEP 1. Create test data*
{code:java}
DROP TABLE IF EXISTS T1;
CREATE TABLE T1 (key int, value int);
INSERT INTO T! VALUES (1,NULL),(1,1),(2,2),(3,3),(3,NULL),(4,5);
SELECT * FROM T1;
{code}
{code:java}
1 NULL
1 1
2 2
3 3
3 NULL
4 5
{code}
*STEP 2. Execute group by query*
{code:java}
SELECT key, value, GROUPING__ID,
grouping(key, value), grouping(value, key), grouping(key), grouping(value),
count(*)
FROM T1
GROUP BY key, value WITH ROLLUP;
{code}
*ACTUAL RESULT*
{code:java}
FAILED: SemanticException [Error 10016]: Line 1:33 Argument type mismatch
'value': The second argument to grouping() must be a constant
{code}
Stacktrace:
{code:java}
2018-04-25T18:08:25,438 ERROR [6033d3ac-f243-4e54-8724-d9665fed531c main]
parse.CalcitePlanner: CBO failed, skipping CBO.
org.apache.hadoop.hive.ql.parse.SemanticException: Line 2:16 Argument type
mismatch 'value': The second argument to grouping() must be a constant
at
org.apache.hadoop.hive.ql.parse.TypeCheckProcFactory$DefaultExprProcessor.process(TypeCheckProcFactory.java:1361)
~[hive-exec-2.3.3.jar:2.3.3]
at
org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher.dispatch(DefaultRuleDispatcher.java:90)
~[hive-exec-2.3.3.jar:2.3.3]
at
org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatchAndReturn(DefaultGraphWalker.java:105)
~[hive-exec-2.3.3.jar:2.3.3]
at
org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:89)
~[hive-exec-2.3.3.jar:2.3.3]
at
org.apache.hadoop.hive.ql.lib.ExpressionWalker.walk(ExpressionWalker.java:76)
~[hive-exec-2.3.3.jar:2.3.3]
at
org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.startWalking(DefaultGraphWalker.java:120)
~[hive-exec-2.3.3.jar:2.3.3]
at
org.apache.hadoop.hive.ql.parse.TypeCheckProcFactory.genExprNode(TypeCheckProcFactory.java:229)
~[hive-exec-2.3.3.jar:2.3.3]
at
org.apache.hadoop.hive.ql.parse.TypeCheckProcFactory.genExprNode(TypeCheckProcFactory.java:176)
~[hive-exec-2.3.3.jar:2.3.3]
at
org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genAllExprNodeDesc(SemanticAnalyzer.java:11613)
~[hive-exec-2.3.3.jar:2.3.3]
at
org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genExprNodeDesc(SemanticAnalyzer.java:11568)
~[hive-exec-2.3.3.jar:2.3.3]
at
org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.genSelectLogicalPlan(CalcitePlanner.java:3706)
~[hive-exec-2.3.3.jar:2.3.3]
at
org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.genLogicalPlan(CalcitePlanner.java:3999)
~[hive-exec-2.3.3.jar:2.3.3]
at
org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.apply(CalcitePlanner.java:1315)
~[hive-exec-2.3.3.jar:2.3.3]
at
org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.apply(CalcitePlanner.java:1261)
~[hive-exec-2.3.3.jar:2.3.3]
at org.apache.calcite.tools.Frameworks$1.apply(Frameworks.java:113)
~[calcite-core-1.10.0.jar:1.10.0]
at
org.apache.calcite.prepare.CalcitePrepareImpl.perform(CalcitePrepareImpl.java:997)
~[calcite-core-1.10.0.jar:1.10.0]
at org.apache.calcite.tools.Frameworks.withPrepare(Frameworks.java:149)
~[calcite-core-1.10.0.jar:1.10.0]
at org.apache.calcite.tools.Frameworks.withPlanner(Frameworks.java:106)
~[calcite-core-1.10.0.jar:1.10.0]
at
org.apache.hadoop.hive.ql.parse.CalcitePlanner.logicalPlan(CalcitePlanner.java:1069)
~[hive-exec-2.3.3.jar:2.3.3]
at
org.apache.hadoop.hive.ql.parse.CalcitePlanner.getOptimizedAST(CalcitePlanner.java:1085)
~[hive-exec-2.3.3.jar:2.3.3]
at
org.apache.hadoop.hive.ql.parse.CalcitePlanner.genOPTree(CalcitePlanner.java:364)
~[hive-exec-2.3.3.jar:2.3.3]
at
org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:11138)
~[hive-exec-2.3.3.jar:2.3.3]
at
org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:286)
~[hive-exec-2.3.3.jar:2.3.3]
at
org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:258)
~[hive-exec-2.3.3.jar:2.3.3]
at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:512)
~[hive-exec-2.3.3.jar:2.3.3]
at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1317)
~[hive-exec-2.3.3.jar:2.3.3]
at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1457)
~[hive-exec-2.3.3.jar:2.3.3]
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1237)
~[hive-exec-2.3.3.jar:2.3.3]
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1227)
~[hive-exec-2.3.3.jar:2.3.3]
at
org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:233)
~[hive-cli-2.3.3.jar:2.3.3]
at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:184)
~[hive-cli-2.3.3.jar:2.3.3]
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:403)
~[hive-cli-2.3.3.jar:2.3.3]
at
org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:821)
~[hive-cli-2.3.3.jar:2.3.3]
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:759)
~[hive-cli-2.3.3.jar:2.3.3]
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:686)
~[hive-cli-2.3.3.jar:2.3.3]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
~[?:1.8.0_161]
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
~[?:1.8.0_161]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:1.8.0_161]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_161]
at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
~[hadoop-common-2.7.2.jar:?]
at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
~[hadoop-common-2.7.2.jar:?]
Caused by: org.apache.hadoop.hive.ql.exec.UDFArgumentTypeException: The second
argument to grouping() must be a constant
at
org.apache.hadoop.hive.ql.udf.generic.GenericUDFGrouping.initialize(GenericUDFGrouping.java:69)
~[hive-exec-2.3.3.jar:2.3.3]
at
org.apache.hadoop.hive.ql.udf.generic.GenericUDF.initializeAndFoldConstants(GenericUDF.java:141)
~[hive-exec-2.3.3.jar:2.3.3]
at
org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc.newInstance(ExprNodeGenericFuncDesc.java:236)
~[hive-exec-2.3.3.jar:2.3.3]
at
org.apache.hadoop.hive.ql.parse.TypeCheckProcFactory$DefaultExprProcessor.getXpathOrFuncExprNodeDesc(TypeCheckProcFactory.java:1104)
~[hive-exec-2.3.3.jar:2.3.3]
at
org.apache.hadoop.hive.ql.parse.TypeCheckProcFactory$DefaultExprProcessor.process(TypeCheckProcFactory.java:1359)
~[hive-exec-2.3.3.jar:2.3.3]
... 40 more
{code}
FYI: [~ekoifman], [~eugene.koifman]
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)