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

Shohei Okumiya resolved HIVE-29264.
-----------------------------------
    Fix Version/s: 4.2.0
       Resolution: Fixed

Merged. [~Aggarwal_Raghav] Thanks for your contribution!

[https://github.com/apache/hive/pull/6129]

> Use metaconf prefix to honor metastore configurations for direct sql in 
> q-files
> -------------------------------------------------------------------------------
>
>                 Key: HIVE-29264
>                 URL: https://issues.apache.org/jira/browse/HIVE-29264
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Raghav Aggarwal
>            Assignee: Raghav Aggarwal
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 4.2.0
>
>         Attachments: alter_table_column_stats.q, 
> org.apache.hadoop.hive.cli.TestMiniLlapLocalCliDriver-output.txt
>
>
> In *alter_table_column_stats.q,* the _hive.metastore.try.direct.sql=false_ 
> for partitioned table and following command is running:
> {code:java}
> analyze table testpart0 compute statistics for columns; {code}
> but the JDO implementation for _get_aggr_stats_for_ is to throw MetaException 
> but the exception is not thrown. As soon I replace it with set 
> metaconf:metastore.try.direct.sql=false then exception is observed in 
> {code:java}
> itests/qtest/target/surefire-reports/org.apache.hadoop.hive.cli.TestMiniLlapLocalCliDriver-output.txt
>  {code}
> but q file is not failing.
> In short,
>  # replace hivename with varname for metaconfs
>  # investigate whether error be thrown if JDO fails.
> Attaching TestMiniLlapLocalCliDriver-output.txt showing 
> {code:java}
> metastore.RetryingHMSHandler: MetaException(message:Jdo path is not 
> implemented for stats aggr.) {code}
>  
> *Stacktrace:*
> {code:java}
> 2025-10-10T00:04:54,397 ERROR [dc1b1868-d07a-4dcc-9cbd-6a0b7eca7e46 main] 
> metastore.RetryingHMSHandler: MetaException(message:Jdo path is not 
> implemented for stats aggr.)    at 
> org.apache.hadoop.hive.metastore.ObjectStore$28.getJdoResult(ObjectStore.java:10076)
>  at 
> org.apache.hadoop.hive.metastore.ObjectStore$28.getJdoResult(ObjectStore.java:10063)
>  at 
> org.apache.hadoop.hive.metastore.ObjectStore$GetHelper.run(ObjectStore.java:4415)
>     at 
> org.apache.hadoop.hive.metastore.ObjectStore.get_aggr_stats_for(ObjectStore.java:10082)
>       at 
> org.apache.hadoop.hive.metastore.ObjectStore.get_aggr_stats_for(ObjectStore.java:10050)
>       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.hadoop.hive.metastore.RawStoreProxy.invoke(RawStoreProxy.java:97) 
> at jdk.proxy2/jdk.proxy2.$Proxy55.get_aggr_stats_for(Unknown Source)    at 
> org.apache.hadoop.hive.metastore.HMSHandler.get_aggr_stats_for(HMSHandler.java:9409)
>  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.hadoop.hive.metastore.RetryingHMSHandler.invokeInternal(RetryingHMSHandler.java:91)
>        at 
> org.apache.hadoop.hive.metastore.AbstractHMSHandlerProxy.invoke(AbstractHMSHandlerProxy.java:82)
>      at jdk.proxy2/jdk.proxy2.$Proxy56.get_aggr_stats_for(Unknown Source)    
> at 
> org.apache.hadoop.hive.metastore.client.ThriftHiveMetaStoreClient.getAggrColStatsFor(ThriftHiveMetaStoreClient.java:1167)
>     at 
> org.apache.hadoop.hive.ql.metadata.HiveMetaStoreClientWithLocalCache.getAggrColStatsFor(HiveMetaStoreClientWithLocalCache.java:400)
>   at 
> org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient.getAggrColStatsFor(SessionHiveMetaStoreClient.java:2383)
>        at 
> org.apache.hadoop.hive.metastore.client.MetaStoreClientWrapper.getAggrColStatsFor(MetaStoreClientWrapper.java:1032)
>   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.hadoop.hive.metastore.client.SynchronizedMetaStoreClient$SynchronizedHandler.invoke(SynchronizedMetaStoreClient.java:69)
>   at jdk.proxy2/jdk.proxy2.$Proxy57.getAggrColStatsFor(Unknown Source)    at 
> org.apache.hadoop.hive.metastore.client.MetaStoreClientWrapper.getAggrColStatsFor(MetaStoreClientWrapper.java:1032)
>   at 
> org.apache.hadoop.hive.metastore.client.BaseMetaStoreClient.getAggrColStatsFor(BaseMetaStoreClient.java:769)
>  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.hadoop.hive.metastore.RetryingMetaStoreClient.invoke(RetryingMetaStoreClient.java:232)
>     at jdk.proxy2/jdk.proxy2.$Proxy57.getAggrColStatsFor(Unknown Source)    
> at org.apache.hadoop.hive.ql.metadata.Hive.getAggrColStatsFor(Hive.java:6244) 
>   at 
> org.apache.hadoop.hive.ql.stats.StatsUtils.collectStatistics(StatsUtils.java:379)
>     at 
> org.apache.hadoop.hive.ql.stats.StatsUtils.collectStatistics(StatsUtils.java:194)
>     at 
> org.apache.hadoop.hive.ql.stats.StatsUtils.collectStatistics(StatsUtils.java:182)
>     at 
> org.apache.hadoop.hive.ql.optimizer.stats.annotation.StatsRulesProcFactory$TableScanStatsRule.process(StatsRulesProcFactory.java:177)
>         at 
> org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher.dispatch(DefaultRuleDispatcher.java:90)
>   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.LevelOrderWalker.walk(LevelOrderWalker.java:148)
>        at 
> org.apache.hadoop.hive.ql.lib.LevelOrderWalker.startWalking(LevelOrderWalker.java:125)
>        at 
> org.apache.hadoop.hive.ql.optimizer.stats.annotation.AnnotateWithStatistics.transform(AnnotateWithStatistics.java:84)
>         at 
> org.apache.hadoop.hive.ql.parse.TezCompiler.runStatsAnnotation(TezCompiler.java:472)
>  at 
> org.apache.hadoop.hive.ql.parse.TezCompiler.optimizeOperatorPlan(TezCompiler.java:202)
>        at 
> org.apache.hadoop.hive.ql.parse.TaskCompiler.compile(TaskCompiler.java:182)  
> at 
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.compilePlan(SemanticAnalyzer.java:13150)
>     at 
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:13378)
>         at 
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:12725)
>         at 
> org.apache.hadoop.hive.ql.parse.ColumnStatsSemanticAnalyzer.analyze(ColumnStatsSemanticAnalyzer.java:671)
>     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:498)    at 
> org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:450)    at 
> org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:414)  at 
> org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:408)  at 
> org.apache.hadoop.hive.ql.reexec.ReExecDriver.compileAndRespond(ReExecDriver.java:126)
>        at 
> org.apache.hadoop.hive.ql.reexec.ReExecDriver.run(ReExecDriver.java:234)     
> at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:259)   
>   at org.apache.hadoop.hive.cli.CliDriver.processCmd1(CliDriver.java:203) at 
> org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:129)  at 
> org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:430) at 
> org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:358) at 
> org.apache.hadoop.hive.ql.QTestUtil.executeClientInternal(QTestUtil.java:760) 
>        at 
> org.apache.hadoop.hive.ql.QTestUtil.executeClient(QTestUtil.java:730)        
> at 
> org.apache.hadoop.hive.cli.control.CoreCliDriver.runTest(CoreCliDriver.java:115)
>      at 
> org.apache.hadoop.hive.cli.control.CliAdapter.runTest(CliAdapter.java:139)   
> at 
> org.apache.hadoop.hive.cli.TestMiniLlapLocalCliDriver.testCliDriver(TestMiniLlapLocalCliDriver.java:62)
>       at 
> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
>         at java.base/java.lang.reflect.Method.invoke(Method.java:580)   at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
>  at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>   at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
>    at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>     at 
> org.apache.hadoop.hive.cli.control.CliAdapter$2$1.evaluate(CliAdapter.java:118)
>       at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)     
> at 
> org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
>  at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)        at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
>    at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
>     at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)  at 
> org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)      at 
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)    at 
> org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)      at 
> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)     at 
> org.junit.runners.ParentRunner.run(ParentRunner.java:413)    at 
> org.junit.runners.Suite.runChild(Suite.java:128)     at 
> org.junit.runners.Suite.runChild(Suite.java:27)      at 
> org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)  at 
> org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)      at 
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)    at 
> org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)      at 
> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)     at 
> org.apache.hadoop.hive.cli.control.CliAdapter$1$1.evaluate(CliAdapter.java:89)
>        at org.junit.rules.RunRules.evaluate(RunRules.java:20)  at 
> org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)     at 
> org.junit.runners.ParentRunner.run(ParentRunner.java:413)    at 
> org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:316)
>      at 
> org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:240)
>     at 
> org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:214)
>       at 
> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:155)
>       at 
> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
>       at 
> org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162) 
> at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)   
>   at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
>  {code}



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

Reply via email to