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 <da...@hortonworks.com>
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)

Reply via email to