[
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)