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

Shohei Okumiya updated HIVE-29267:
----------------------------------
    Summary: Fix NPE on Grouping Sets Optimizer for UNION ALL Queries  (was: 
Facing NullPointerException Cannot invoke "java.util.Map.containsKey(Object)" 
on running union all query)

> Fix NPE on Grouping Sets Optimizer for UNION ALL Queries
> --------------------------------------------------------
>
>                 Key: HIVE-29267
>                 URL: https://issues.apache.org/jira/browse/HIVE-29267
>             Project: Hive
>          Issue Type: Bug
>    Affects Versions: 4.0.1
>            Reporter: chiranjeevi
>            Assignee: Indhumathi Muthumurugesh
>            Priority: Major
>              Labels: pull-request-available
>
> Steps to reproduce 
> create table grp_set_test (key string, value string, col0 int, col1 int, col2 
> int, col3 int);
> set hive.optimize.grouping.set.threshold=1;
> with ssr as (select col2 as sales from grp_set_test)
> select  channel , sum(sales) as sales
> from
>     (select 'store channel' as channel, sales from   ssr union all
>      select 'catalog channel' as channel, sales from  ssr
>     ) x
> group by channel with rollup;
> *Actual Error:*
> Caused by: java.lang.NullPointerException: Cannot invoke 
> "java.util.Map.containsKey(Object)" because the return value of 
> "org.apache.hadoop.hive.ql.exec.Operator.getColumnExprMap()" is null
>         at 
> org.apache.hadoop.hive.ql.optimizer.GroupingSetOptimizer$GroupingSetProcessor.selectPartitionColumn(GroupingSetOptimizer.java:230)
>  ~[hive-exec-4.0.1.3.4.1.0-4.jar:4.0.1.3.4.1.0-4]
>         at 
> org.apache.hadoop.hive.ql.optimizer.GroupingSetOptimizer$GroupingSetProcessor.process(GroupingSetOptimizer.java:100)
>  ~[hive-exec-4.0.1.3.4.1.0-4.jar:4.0.1.3.4.1.0-4]
>         at 
> org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher.dispatch(DefaultRuleDispatcher.java:90)
>  ~[hive-exec-4.0.1.3.4.1.0-4.jar:4.0.1.3.4.1.0-4]
>         at 
> org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatchAndReturn(DefaultGraphWalker.java:105)
>  ~[hive-exec-4.0.1.3.4.1.0-4.jar:4.0.1.3.4.1.0-4]
>         at 
> org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:89)
>  ~[hive-exec-4.0.1.3.4.1.0-4.jar:4.0.1.3.4.1.0-4]
>         at 
> org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.walk(DefaultGraphWalker.java:158)
>  ~[hive-exec-4.0.1.3.4.1.0-4.jar:4.0.1.3.4.1.0-4]
>         at 
> org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.startWalking(DefaultGraphWalker.java:120)
>  ~[hive-exec-4.0.1.3.4.1.0-4.jar:4.0.1.3.4.1.0-4]
>         at 
> org.apache.hadoop.hive.ql.optimizer.GroupingSetOptimizer.transform(GroupingSetOptimizer.java:374)
>  ~[hive-exec-4.0.1.3.4.1.0-4.jar:4.0.1.3.4.1.0-4]
>         at 
> org.apache.hadoop.hive.ql.parse.TezCompiler.runStatsDependentOptimizations(TezCompiler.java:497)
>  ~[hive-exec-4.0.1.3.4.1.0-4.jar:4.0.1.3.4.1.0-4]
>         at 
> org.apache.hadoop.hive.ql.parse.TezCompiler.optimizeOperatorPlan(TezCompiler.java:227)
>  ~[hive-exec-4.0.1.3.4.1.0-4.jar:4.0.1.3.4.1.0-4]
>         at 
> org.apache.hadoop.hive.ql.parse.TaskCompiler.compile(TaskCompiler.java:182) 
> ~[hive-exec-4.0.1.3.4.1.0-4.jar:4.0.1.3.4.1.0-4]
>         at 
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.compilePlan(SemanticAnalyzer.java:13150)
>  ~[hive-exec-4.0.1.3.4.1.0-4.jar:4.0.1.3.4.1.0-4]
>         at 
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:13378)
>  ~[hive-exec-4.0.1.3.4.1.0-4.jar:4.0.1.3.4.1.0-4]
>         at 
> org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:481)
>  ~[hive-exec-4.0.1.3.4.1.0-4.jar:4.0.1.3.4.1.0-4]
>         at 
> org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:332)
>  ~[hive-exec-4.0.1.3.4.1.0-4.jar:4.0.1.3.4.1.0-4]
>         at org.apache.hadoop.hive.ql.Compiler.analyze(Compiler.java:224) 
> ~[hive-exec-4.0.1.3.4.1.0-4.jar:4.0.1.3.4.1.0-4]
>         at org.apache.hadoop.hive.ql.Compiler.compile(Compiler.java:109) 
> ~[hive-exec-4.0.1.3.4.1.0-4.jar:4.0.1.3.4.1.0-4]
>         at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:508) 
> ~[hive-exec-4.0.1.3.4.1.0-4.jar:4.0.1.3.4.1.0-4]
>         at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:460) 
> ~[hive-exec-4.0.1.3.4.1.0-4.jar:4.0.1.3.4.1.0-4]
>         at 
> org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:424) 
> ~[hive-exec-4.0.1.3.4.1.0-4.jar:4.0.1.3.4.1.0-4]
>         at 
> org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:418) 
> ~[hive-exec-4.0.1.3.4.1.0-4.jar:4.0.1.3.4.1.0-4]
>         at 
> org.apache.hadoop.hive.ql.reexec.ReExecDriver.compileAndRespond(ReExecDriver.java:121)
>  ~[hive-exec-4.0.1.3.4.1.0-4.jar:4.0.1.3.4.1.0-4]
>         at 
> org.apache.hive.service.cli.operation.SQLOperation.prepare(SQLOperation.java:207)
>  ~[hive-service-4.0.1.3.4.1.0-4.jar:4.0.1.3.4.1.0-4]
>         ... 26 more



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to