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

Gopinath updated HIVE-29538:
----------------------------
    Description: 
Some queries that access nested fields on ARRAY<STRUCT> (Calcite introduces the 
internal COMPONENT_ACCESS operator for this) can fail during compilation with 
an AssertionError from HiveFunctionHelper.checkForStatefulFunctions.

This happens when the expression is rewritten to a Calcite CASE expression, 
because checkForStatefulFunctions walks the resulting Rex tree and attempts to 
map each Calcite operator back to a Hive GenericUDF.

Key point here is , 
 * NVL(a,b) is implemented as COALESCE(a,b)
 * In HiveFunctionHelper, COALESCE is rewritten to CASE
 * Separately, IF(cond, x, y) is also rewritten to CASE
 * Therefore, both NVL/COALESCE and IF can trigger the same CASE path and the 
same failure when CASE contains internal Calcite operators like 
COMPONENT_ACCESS.

 

*+Steps to reproduce+*
{code:java}
CREATE TABLE cbo_component_access_if_tbl (
  `jobs` array<struct<code:string>>
) STORED AS ORC;

EXPLAIN CBO
SELECT if(concat_ws(',', `jobs`.code) = '', null, concat_ws(',', `jobs`.code)) 
AS codes
FROM cbo_component_access_if_tbl;
{code}
*Stack-Trace*
{code:java}
org.apache.hive.service.cli.HiveSQLException: Error running query; Query ID: 
ggangadharan_20260401024423_2cc9e0fb-cfec-43d5-ab55-1d532512a6f3
        at 
org.apache.hive.service.cli.operation.SQLOperation.prepare(SQLOperation.java:218)
        at 
org.apache.hive.service.cli.operation.SQLOperation.runInternal(SQLOperation.java:268)
        at 
org.apache.hive.service.cli.operation.Operation.run(Operation.java:286)
        at 
org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementInternal(HiveSessionImpl.java:558)
        at 
org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementAsync(HiveSessionImpl.java:543)
        at 
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at 
org.apache.hive.service.cli.session.HiveSessionProxy.invoke(HiveSessionProxy.java:78)
        at 
org.apache.hive.service.cli.session.HiveSessionProxy$1.run(HiveSessionProxy.java:63)
        at 
java.base/java.security.AccessController.doPrivileged(AccessController.java:714)
        at java.base/javax.security.auth.Subject.doAs(Subject.java:525)
        at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1953)
        at 
org.apache.hive.service.cli.CLIService.executeStatementAsync(CLIService.java:311)
        at 
org.apache.hive.service.cli.thrift.ThriftCLIService.ExecuteStatement(ThriftCLIService.java:650)
        at 
org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1670)
        at 
org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1650)
        at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:38)
        at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:38)
        at 
org.apache.hive.service.auth.TSetIpAddressProcessor.process(TSetIpAddressProcessor.java:56)
        at 
org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:250)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
        at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.lang.AssertionError: Cannot retrieve function COMPONENT_ACCESS 
within StatefulFunctionsChecker
        at 
org.apache.hadoop.hive.ql.parse.type.HiveFunctionHelper$1.visitCall(HiveFunctionHelper.java:349)
        at 
org.apache.hadoop.hive.ql.parse.type.HiveFunctionHelper$1.visitCall(HiveFunctionHelper.java:340)
        at org.apache.calcite.rex.RexCall.accept(RexCall.java:189)
        at 
org.apache.calcite.rex.RexVisitorImpl.visitFieldAccess(RexVisitorImpl.java:98)
        at org.apache.calcite.rex.RexFieldAccess.accept(RexFieldAccess.java:94)
        at 
org.apache.calcite.rex.RexVisitorImpl.visitCall(RexVisitorImpl.java:80)
        at 
org.apache.hadoop.hive.ql.parse.type.HiveFunctionHelper$1.visitCall(HiveFunctionHelper.java:356)
        at 
org.apache.hadoop.hive.ql.parse.type.HiveFunctionHelper$1.visitCall(HiveFunctionHelper.java:340)
        at org.apache.calcite.rex.RexCall.accept(RexCall.java:189)
        at 
org.apache.calcite.rex.RexVisitorImpl.visitCall(RexVisitorImpl.java:80)
        at 
org.apache.hadoop.hive.ql.parse.type.HiveFunctionHelper$1.visitCall(HiveFunctionHelper.java:356)
        at 
org.apache.hadoop.hive.ql.parse.type.HiveFunctionHelper$1.visitCall(HiveFunctionHelper.java:340)
        at org.apache.calcite.rex.RexCall.accept(RexCall.java:189)
        at 
org.apache.hadoop.hive.ql.parse.type.HiveFunctionHelper.checkForStatefulFunctions(HiveFunctionHelper.java:362)
        at 
org.apache.hadoop.hive.ql.parse.type.HiveFunctionHelper.getExpression(HiveFunctionHelper.java:262)
        at 
org.apache.hadoop.hive.ql.parse.type.RexNodeExprFactory.createFuncCallExpr(RexNodeExprFactory.java:660)
        at 
org.apache.hadoop.hive.ql.parse.type.RexNodeExprFactory.createFuncCallExpr(RexNodeExprFactory.java:104)
        at 
org.apache.hadoop.hive.ql.parse.type.TypeCheckProcFactory$DefaultExprProcessor.getXpathOrFuncExprNodeDesc(TypeCheckProcFactory.java:1085)
        at 
org.apache.hadoop.hive.ql.parse.type.TypeCheckProcFactory$DefaultExprProcessor.process(TypeCheckProcFactory.java:1481)
        at 
org.apache.hadoop.hive.ql.lib.CostLessRuleDispatcher.dispatch(CostLessRuleDispatcher.java:66)
        at 
org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatchAndReturn(DefaultGraphWalker.java:105)
        at 
org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:89)
        at 
org.apache.hadoop.hive.ql.lib.ExpressionWalker.walk(ExpressionWalker.java:101)
        at 
org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.startWalking(DefaultGraphWalker.java:120)
        at 
org.apache.hadoop.hive.ql.parse.type.TypeCheckProcFactory.genExprNode(TypeCheckProcFactory.java:231)
        at 
org.apache.hadoop.hive.ql.parse.type.RexNodeTypeCheck.genExprNode(RexNodeTypeCheck.java:40)
        at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner.genAllRexNode(CalcitePlanner.java:5219)
        at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner.genRexNode(CalcitePlanner.java:5176)
        at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.internalGenSelectLogicalPlan(CalcitePlanner.java:4547)
        at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.genSelectLogicalPlan(CalcitePlanner.java:4304)
        at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.genLogicalPlan(CalcitePlanner.java:4966)
        at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.apply(CalcitePlanner.java:1611)
        at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.apply(CalcitePlanner.java:1553)
        at 
org.apache.calcite.tools.Frameworks.lambda$withPlanner$0(Frameworks.java:140)
        at 
org.apache.calcite.prepare.CalcitePrepareImpl.perform(CalcitePrepareImpl.java:936)
        at org.apache.calcite.tools.Frameworks.withPrepare(Frameworks.java:191)
        at org.apache.calcite.tools.Frameworks.withPlanner(Frameworks.java:135)
        at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner.logicalPlan(CalcitePlanner.java:1331)
        at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner.genOPTree(CalcitePlanner.java:588)
        at 
org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:13223)
        at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:481)
        at 
org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:358)
        at org.apache.hadoop.hive.ql.Compiler.analyze(Compiler.java:224)
        at org.apache.hadoop.hive.ql.Compiler.compile(Compiler.java:109)
        at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:499)
        at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:451)
        at org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:415)
        at org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:409)
        at 
org.apache.hadoop.hive.ql.reexec.ReExecDriver.compileAndRespond(ReExecDriver.java:126)
        at 
org.apache.hive.service.cli.operation.SQLOperation.prepare(SQLOperation.java:205)
        ... 24 more
{code}

  was:
Queries that access nested fields (e.g. e.jobs.code where jobs is 
array<struct<...>>) and wrap that expression inside NVL/COALESCE can fail 
during compilation with an AssertionError originating from 
HiveFunctionHelper.checkForStatefulFunctions. 

*+Steps to reproduce+* 

{code:java}
set hive.cbo.enable=true;

DROP TABLE IF EXISTS cbo_component_access_if_tbl;

CREATE TABLE cbo_component_access_if_tbl (
  `data` array<struct<jobs:array<struct<code:string,label:string>>>>
) STORED AS ORC;

INSERT INTO TABLE cbo_component_access_if_tbl
SELECT array(
  named_struct(
    'jobs', array(
      named_struct('code', 'j1', 'label', 'l1'),
      named_struct('code', 'j2', 'label', 'l2')
    )
  )
);

SELECT
  if(concat_ws(',', data.dat.jobs.code) = '', null, concat_ws(',', 
data.dat.jobs.code)) AS jobs_codes
FROM cbo_component_access_if_tbl t
LATERAL VIEW explode(t.`data`) `data` AS `dat`;
{code}

Stack-Trace 


{code:java}
org.apache.hive.service.cli.HiveSQLException: Error running query; Query ID: 
ggangadharan_20260401024423_2cc9e0fb-cfec-43d5-ab55-1d532512a6f3
        at 
org.apache.hive.service.cli.operation.SQLOperation.prepare(SQLOperation.java:218)
        at 
org.apache.hive.service.cli.operation.SQLOperation.runInternal(SQLOperation.java:268)
        at 
org.apache.hive.service.cli.operation.Operation.run(Operation.java:286)
        at 
org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementInternal(HiveSessionImpl.java:558)
        at 
org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementAsync(HiveSessionImpl.java:543)
        at 
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at 
org.apache.hive.service.cli.session.HiveSessionProxy.invoke(HiveSessionProxy.java:78)
        at 
org.apache.hive.service.cli.session.HiveSessionProxy$1.run(HiveSessionProxy.java:63)
        at 
java.base/java.security.AccessController.doPrivileged(AccessController.java:714)
        at java.base/javax.security.auth.Subject.doAs(Subject.java:525)
        at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1953)
        at 
org.apache.hive.service.cli.CLIService.executeStatementAsync(CLIService.java:311)
        at 
org.apache.hive.service.cli.thrift.ThriftCLIService.ExecuteStatement(ThriftCLIService.java:650)
        at 
org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1670)
        at 
org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1650)
        at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:38)
        at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:38)
        at 
org.apache.hive.service.auth.TSetIpAddressProcessor.process(TSetIpAddressProcessor.java:56)
        at 
org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:250)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
        at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.lang.AssertionError: Cannot retrieve function COMPONENT_ACCESS 
within StatefulFunctionsChecker
        at 
org.apache.hadoop.hive.ql.parse.type.HiveFunctionHelper$1.visitCall(HiveFunctionHelper.java:349)
        at 
org.apache.hadoop.hive.ql.parse.type.HiveFunctionHelper$1.visitCall(HiveFunctionHelper.java:340)
        at org.apache.calcite.rex.RexCall.accept(RexCall.java:189)
        at 
org.apache.calcite.rex.RexVisitorImpl.visitFieldAccess(RexVisitorImpl.java:98)
        at org.apache.calcite.rex.RexFieldAccess.accept(RexFieldAccess.java:94)
        at 
org.apache.calcite.rex.RexVisitorImpl.visitCall(RexVisitorImpl.java:80)
        at 
org.apache.hadoop.hive.ql.parse.type.HiveFunctionHelper$1.visitCall(HiveFunctionHelper.java:356)
        at 
org.apache.hadoop.hive.ql.parse.type.HiveFunctionHelper$1.visitCall(HiveFunctionHelper.java:340)
        at org.apache.calcite.rex.RexCall.accept(RexCall.java:189)
        at 
org.apache.calcite.rex.RexVisitorImpl.visitCall(RexVisitorImpl.java:80)
        at 
org.apache.hadoop.hive.ql.parse.type.HiveFunctionHelper$1.visitCall(HiveFunctionHelper.java:356)
        at 
org.apache.hadoop.hive.ql.parse.type.HiveFunctionHelper$1.visitCall(HiveFunctionHelper.java:340)
        at org.apache.calcite.rex.RexCall.accept(RexCall.java:189)
        at 
org.apache.hadoop.hive.ql.parse.type.HiveFunctionHelper.checkForStatefulFunctions(HiveFunctionHelper.java:362)
        at 
org.apache.hadoop.hive.ql.parse.type.HiveFunctionHelper.getExpression(HiveFunctionHelper.java:262)
        at 
org.apache.hadoop.hive.ql.parse.type.RexNodeExprFactory.createFuncCallExpr(RexNodeExprFactory.java:660)
        at 
org.apache.hadoop.hive.ql.parse.type.RexNodeExprFactory.createFuncCallExpr(RexNodeExprFactory.java:104)
        at 
org.apache.hadoop.hive.ql.parse.type.TypeCheckProcFactory$DefaultExprProcessor.getXpathOrFuncExprNodeDesc(TypeCheckProcFactory.java:1085)
        at 
org.apache.hadoop.hive.ql.parse.type.TypeCheckProcFactory$DefaultExprProcessor.process(TypeCheckProcFactory.java:1481)
        at 
org.apache.hadoop.hive.ql.lib.CostLessRuleDispatcher.dispatch(CostLessRuleDispatcher.java:66)
        at 
org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatchAndReturn(DefaultGraphWalker.java:105)
        at 
org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:89)
        at 
org.apache.hadoop.hive.ql.lib.ExpressionWalker.walk(ExpressionWalker.java:101)
        at 
org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.startWalking(DefaultGraphWalker.java:120)
        at 
org.apache.hadoop.hive.ql.parse.type.TypeCheckProcFactory.genExprNode(TypeCheckProcFactory.java:231)
        at 
org.apache.hadoop.hive.ql.parse.type.RexNodeTypeCheck.genExprNode(RexNodeTypeCheck.java:40)
        at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner.genAllRexNode(CalcitePlanner.java:5219)
        at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner.genRexNode(CalcitePlanner.java:5176)
        at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.internalGenSelectLogicalPlan(CalcitePlanner.java:4547)
        at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.genSelectLogicalPlan(CalcitePlanner.java:4304)
        at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.genLogicalPlan(CalcitePlanner.java:4966)
        at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.apply(CalcitePlanner.java:1611)
        at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.apply(CalcitePlanner.java:1553)
        at 
org.apache.calcite.tools.Frameworks.lambda$withPlanner$0(Frameworks.java:140)
        at 
org.apache.calcite.prepare.CalcitePrepareImpl.perform(CalcitePrepareImpl.java:936)
        at org.apache.calcite.tools.Frameworks.withPrepare(Frameworks.java:191)
        at org.apache.calcite.tools.Frameworks.withPlanner(Frameworks.java:135)
        at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner.logicalPlan(CalcitePlanner.java:1331)
        at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner.genOPTree(CalcitePlanner.java:588)
        at 
org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:13223)
        at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:481)
        at 
org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:358)
        at org.apache.hadoop.hive.ql.Compiler.analyze(Compiler.java:224)
        at org.apache.hadoop.hive.ql.Compiler.compile(Compiler.java:109)
        at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:499)
        at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:451)
        at org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:415)
        at org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:409)
        at 
org.apache.hadoop.hive.ql.reexec.ReExecDriver.compileAndRespond(ReExecDriver.java:126)
        at 
org.apache.hive.service.cli.operation.SQLOperation.prepare(SQLOperation.java:205)
        ... 24 more
{code}




> AssertionError in StatefulFunctionsChecker when compiling queries whose 
> expressions are rewritten to CASE (e.g. NVL/COALESCE/IF) over nested field 
> access on ARRAY<STRUCT>
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HIVE-29538
>                 URL: https://issues.apache.org/jira/browse/HIVE-29538
>             Project: Hive
>          Issue Type: Bug
>          Components: CBO, Hive
>            Reporter: Gopinath
>            Assignee: Gopinath
>            Priority: Critical
>              Labels: pull-request-available
>
> Some queries that access nested fields on ARRAY<STRUCT> (Calcite introduces 
> the internal COMPONENT_ACCESS operator for this) can fail during compilation 
> with an AssertionError from HiveFunctionHelper.checkForStatefulFunctions.
> This happens when the expression is rewritten to a Calcite CASE expression, 
> because checkForStatefulFunctions walks the resulting Rex tree and attempts 
> to map each Calcite operator back to a Hive GenericUDF.
> Key point here is , 
>  * NVL(a,b) is implemented as COALESCE(a,b)
>  * In HiveFunctionHelper, COALESCE is rewritten to CASE
>  * Separately, IF(cond, x, y) is also rewritten to CASE
>  * Therefore, both NVL/COALESCE and IF can trigger the same CASE path and the 
> same failure when CASE contains internal Calcite operators like 
> COMPONENT_ACCESS.
>  
> *+Steps to reproduce+*
> {code:java}
> CREATE TABLE cbo_component_access_if_tbl (
>   `jobs` array<struct<code:string>>
> ) STORED AS ORC;
> EXPLAIN CBO
> SELECT if(concat_ws(',', `jobs`.code) = '', null, concat_ws(',', 
> `jobs`.code)) AS codes
> FROM cbo_component_access_if_tbl;
> {code}
> *Stack-Trace*
> {code:java}
> org.apache.hive.service.cli.HiveSQLException: Error running query; Query ID: 
> ggangadharan_20260401024423_2cc9e0fb-cfec-43d5-ab55-1d532512a6f3
>         at 
> org.apache.hive.service.cli.operation.SQLOperation.prepare(SQLOperation.java:218)
>         at 
> org.apache.hive.service.cli.operation.SQLOperation.runInternal(SQLOperation.java:268)
>         at 
> org.apache.hive.service.cli.operation.Operation.run(Operation.java:286)
>         at 
> org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementInternal(HiveSessionImpl.java:558)
>         at 
> org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementAsync(HiveSessionImpl.java:543)
>         at 
> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
>         at java.base/java.lang.reflect.Method.invoke(Method.java:580)
>         at 
> org.apache.hive.service.cli.session.HiveSessionProxy.invoke(HiveSessionProxy.java:78)
>         at 
> org.apache.hive.service.cli.session.HiveSessionProxy$1.run(HiveSessionProxy.java:63)
>         at 
> java.base/java.security.AccessController.doPrivileged(AccessController.java:714)
>         at java.base/javax.security.auth.Subject.doAs(Subject.java:525)
>         at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1953)
>         at 
> org.apache.hive.service.cli.CLIService.executeStatementAsync(CLIService.java:311)
>         at 
> org.apache.hive.service.cli.thrift.ThriftCLIService.ExecuteStatement(ThriftCLIService.java:650)
>         at 
> org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1670)
>         at 
> org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1650)
>         at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:38)
>         at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:38)
>         at 
> org.apache.hive.service.auth.TSetIpAddressProcessor.process(TSetIpAddressProcessor.java:56)
>         at 
> org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:250)
>         at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
>         at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
>         at java.base/java.lang.Thread.run(Thread.java:1583)
> Caused by: java.lang.AssertionError: Cannot retrieve function 
> COMPONENT_ACCESS within StatefulFunctionsChecker
>         at 
> org.apache.hadoop.hive.ql.parse.type.HiveFunctionHelper$1.visitCall(HiveFunctionHelper.java:349)
>         at 
> org.apache.hadoop.hive.ql.parse.type.HiveFunctionHelper$1.visitCall(HiveFunctionHelper.java:340)
>         at org.apache.calcite.rex.RexCall.accept(RexCall.java:189)
>         at 
> org.apache.calcite.rex.RexVisitorImpl.visitFieldAccess(RexVisitorImpl.java:98)
>         at 
> org.apache.calcite.rex.RexFieldAccess.accept(RexFieldAccess.java:94)
>         at 
> org.apache.calcite.rex.RexVisitorImpl.visitCall(RexVisitorImpl.java:80)
>         at 
> org.apache.hadoop.hive.ql.parse.type.HiveFunctionHelper$1.visitCall(HiveFunctionHelper.java:356)
>         at 
> org.apache.hadoop.hive.ql.parse.type.HiveFunctionHelper$1.visitCall(HiveFunctionHelper.java:340)
>         at org.apache.calcite.rex.RexCall.accept(RexCall.java:189)
>         at 
> org.apache.calcite.rex.RexVisitorImpl.visitCall(RexVisitorImpl.java:80)
>         at 
> org.apache.hadoop.hive.ql.parse.type.HiveFunctionHelper$1.visitCall(HiveFunctionHelper.java:356)
>         at 
> org.apache.hadoop.hive.ql.parse.type.HiveFunctionHelper$1.visitCall(HiveFunctionHelper.java:340)
>         at org.apache.calcite.rex.RexCall.accept(RexCall.java:189)
>         at 
> org.apache.hadoop.hive.ql.parse.type.HiveFunctionHelper.checkForStatefulFunctions(HiveFunctionHelper.java:362)
>         at 
> org.apache.hadoop.hive.ql.parse.type.HiveFunctionHelper.getExpression(HiveFunctionHelper.java:262)
>         at 
> org.apache.hadoop.hive.ql.parse.type.RexNodeExprFactory.createFuncCallExpr(RexNodeExprFactory.java:660)
>         at 
> org.apache.hadoop.hive.ql.parse.type.RexNodeExprFactory.createFuncCallExpr(RexNodeExprFactory.java:104)
>         at 
> org.apache.hadoop.hive.ql.parse.type.TypeCheckProcFactory$DefaultExprProcessor.getXpathOrFuncExprNodeDesc(TypeCheckProcFactory.java:1085)
>         at 
> org.apache.hadoop.hive.ql.parse.type.TypeCheckProcFactory$DefaultExprProcessor.process(TypeCheckProcFactory.java:1481)
>         at 
> org.apache.hadoop.hive.ql.lib.CostLessRuleDispatcher.dispatch(CostLessRuleDispatcher.java:66)
>         at 
> org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatchAndReturn(DefaultGraphWalker.java:105)
>         at 
> org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:89)
>         at 
> org.apache.hadoop.hive.ql.lib.ExpressionWalker.walk(ExpressionWalker.java:101)
>         at 
> org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.startWalking(DefaultGraphWalker.java:120)
>         at 
> org.apache.hadoop.hive.ql.parse.type.TypeCheckProcFactory.genExprNode(TypeCheckProcFactory.java:231)
>         at 
> org.apache.hadoop.hive.ql.parse.type.RexNodeTypeCheck.genExprNode(RexNodeTypeCheck.java:40)
>         at 
> org.apache.hadoop.hive.ql.parse.CalcitePlanner.genAllRexNode(CalcitePlanner.java:5219)
>         at 
> org.apache.hadoop.hive.ql.parse.CalcitePlanner.genRexNode(CalcitePlanner.java:5176)
>         at 
> org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.internalGenSelectLogicalPlan(CalcitePlanner.java:4547)
>         at 
> org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.genSelectLogicalPlan(CalcitePlanner.java:4304)
>         at 
> org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.genLogicalPlan(CalcitePlanner.java:4966)
>         at 
> org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.apply(CalcitePlanner.java:1611)
>         at 
> org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.apply(CalcitePlanner.java:1553)
>         at 
> org.apache.calcite.tools.Frameworks.lambda$withPlanner$0(Frameworks.java:140)
>         at 
> org.apache.calcite.prepare.CalcitePrepareImpl.perform(CalcitePrepareImpl.java:936)
>         at 
> org.apache.calcite.tools.Frameworks.withPrepare(Frameworks.java:191)
>         at 
> org.apache.calcite.tools.Frameworks.withPlanner(Frameworks.java:135)
>         at 
> org.apache.hadoop.hive.ql.parse.CalcitePlanner.logicalPlan(CalcitePlanner.java:1331)
>         at 
> org.apache.hadoop.hive.ql.parse.CalcitePlanner.genOPTree(CalcitePlanner.java:588)
>         at 
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:13223)
>         at 
> org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:481)
>         at 
> org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:358)
>         at org.apache.hadoop.hive.ql.Compiler.analyze(Compiler.java:224)
>         at org.apache.hadoop.hive.ql.Compiler.compile(Compiler.java:109)
>         at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:499)
>         at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:451)
>         at org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:415)
>         at org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:409)
>         at 
> org.apache.hadoop.hive.ql.reexec.ReExecDriver.compileAndRespond(ReExecDriver.java:126)
>         at 
> org.apache.hive.service.cli.operation.SQLOperation.prepare(SQLOperation.java:205)
>         ... 24 more
> {code}



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

Reply via email to