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

Zhihua Deng resolved HIVE-27539.
--------------------------------
    Fix Version/s: 4.0.0
       Resolution: Fixed

Fix has been merged. Thank you for the PR [~VenuReddy]!

> Drop renamed external table fails when hive.metastore.try.direct.sql.ddl is 
> disabled
> ------------------------------------------------------------------------------------
>
>                 Key: HIVE-27539
>                 URL: https://issues.apache.org/jira/browse/HIVE-27539
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Venugopal Reddy K
>            Assignee: Venugopal Reddy K
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 4.0.0
>
>
> *Description:*
> With hive.metastore.try.direct.sql.ddl property set to false, create an 
> external partitioned table, rename and drop the table. It fails with 
> exception - Caused by: java.sql.SQLIntegrityConstraintViolationException: 
> Cannot delete or update a parent row: a foreign key constraint fails 
> ("metastore"."part_col_stats", CONSTRAINT "PART_COL_STATS_FK" FOREIGN KEY 
> ("PART_ID") REFERENCES "partitions" ("PART_ID"))
> {noformat}
> 2023-07-29T11:04:58,884 ERROR [HiveServer2-Background-Pool: Thread-1212] 
> metastore.ObjectStore: 
> javax.jdo.JDOUserException: One or more instances could not be deleted
>     at 
> org.datanucleus.api.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:625)
>  ~[datanucleus-api-jdo-5.2.8.jar:?]
>     at 
> org.datanucleus.api.jdo.JDOQuery.deletePersistentInternal(JDOQuery.java:530) 
> ~[datanucleus-api-jdo-5.2.8.jar:?]
>     at 
> org.datanucleus.api.jdo.JDOQuery.deletePersistentAll(JDOQuery.java:499) 
> ~[datanucleus-api-jdo-5.2.8.jar:?]
>     at 
> org.apache.hadoop.hive.metastore.QueryWrapper.deletePersistentAll(QueryWrapper.java:108)
>  ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hadoop.hive.metastore.ObjectStore.dropPartitionsNoTxn(ObjectStore.java:4315)
>  ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hadoop.hive.metastore.ObjectStore.access$1000(ObjectStore.java:290)
>  ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hadoop.hive.metastore.ObjectStore$8.run(ObjectStore.java:3194) 
> ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hadoop.hive.metastore.Batchable.runBatched(Batchable.java:74) 
> ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hadoop.hive.metastore.ObjectStore.dropPartitionsViaJdo(ObjectStore.java:3182)
>  ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hadoop.hive.metastore.ObjectStore.access$400(ObjectStore.java:290) 
> ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hadoop.hive.metastore.ObjectStore$7.getJdoResult(ObjectStore.java:3166)
>  ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hadoop.hive.metastore.ObjectStore$7.getJdoResult(ObjectStore.java:3158)
>  ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hadoop.hive.metastore.ObjectStore$GetHelper.run(ObjectStore.java:4472)
>  ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hadoop.hive.metastore.ObjectStore.dropPartitionsInternal(ObjectStore.java:3169)
>  ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hadoop.hive.metastore.ObjectStore.dropPartitions(ObjectStore.java:3148)
>  ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
> ~[?:1.8.0_292]
>     at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
> ~[?:1.8.0_292]
>     at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  ~[?:1.8.0_292]
>     at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_292]
>     at 
> org.apache.hadoop.hive.metastore.RawStoreProxy.invoke(RawStoreProxy.java:97) 
> ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at com.sun.proxy.$Proxy27.dropPartitions(Unknown Source) ~[?:?]
>     at 
> org.apache.hadoop.hive.metastore.HMSHandler.dropPartitionsAndGetLocations(HMSHandler.java:3150)
>  ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hadoop.hive.metastore.HMSHandler.drop_table_core(HMSHandler.java:2923)
>  ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hadoop.hive.metastore.HMSHandler.drop_table_with_environment_context(HMSHandler.java:3175)
>  ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hadoop.hive.metastore.HMSHandler.drop_table_with_environment_context(HMSHandler.java:3163)
>  ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
> ~[?:1.8.0_292]
>     at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
> ~[?:1.8.0_292]
>     at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  ~[?:1.8.0_292]
>     at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_292]
>     at 
> org.apache.hadoop.hive.metastore.RetryingHMSHandler.invokeInternal(RetryingHMSHandler.java:98)
>  ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hadoop.hive.metastore.AbstractHMSHandlerProxy.invoke(AbstractHMSHandlerProxy.java:82)
>  ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at com.sun.proxy.$Proxy29.drop_table_with_environment_context(Unknown 
> Source) ~[?:?]
>     at 
> org.apache.hadoop.hive.metastore.HiveMetaStoreClient.drop_table_with_environment_context(HiveMetaStoreClient.java:4563)
>  ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient.drop_table_with_environment_context(SessionHiveMetaStoreClient.java:198)
>  ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hadoop.hive.metastore.HiveMetaStoreClient.dropTable(HiveMetaStoreClient.java:2030)
>  ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hadoop.hive.metastore.HiveMetaStoreClient.dropTable(HiveMetaStoreClient.java:1972)
>  ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
> ~[?:1.8.0_292]
>     at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
> ~[?:1.8.0_292]
>     at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  ~[?:1.8.0_292]
>     at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_292]
>     at 
> org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.invoke(RetryingMetaStoreClient.java:213)
>  ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at com.sun.proxy.$Proxy30.dropTable(Unknown Source) ~[?:?]
>     at org.apache.hadoop.hive.ql.metadata.Hive.dropTable(Hive.java:1491) 
> ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at org.apache.hadoop.hive.ql.metadata.Hive.dropTable(Hive.java:1415) 
> ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hadoop.hive.ql.ddl.table.drop.DropTableOperation.execute(DropTableOperation.java:112)
>  ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at org.apache.hadoop.hive.ql.ddl.DDLTask.execute(DDLTask.java:84) 
> ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:214) 
> ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:105) 
> ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at org.apache.hadoop.hive.ql.Executor.launchTask(Executor.java:354) 
> ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at org.apache.hadoop.hive.ql.Executor.launchTasks(Executor.java:327) 
> ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at org.apache.hadoop.hive.ql.Executor.runTasks(Executor.java:244) 
> ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at org.apache.hadoop.hive.ql.Executor.execute(Executor.java:105) 
> ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:367) 
> ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:205) 
> ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at org.apache.hadoop.hive.ql.Driver.run(Driver.java:154) 
> ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at org.apache.hadoop.hive.ql.Driver.run(Driver.java:149) 
> ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hadoop.hive.ql.reexec.ReExecDriver.run(ReExecDriver.java:185) 
> ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:236)
>  ~[hive-service-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hive.service.cli.operation.SQLOperation.access$500(SQLOperation.java:90)
>  ~[hive-service-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hive.service.cli.operation.SQLOperation$BackgroundWork$1.run(SQLOperation.java:336)
>  ~[hive-service-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at java.security.AccessController.doPrivileged(Native Method) 
> ~[?:1.8.0_292]
>     at javax.security.auth.Subject.doAs(Subject.java:422) ~[?:1.8.0_292]
>     at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1878)
>  ~[hadoop-common-3.3.1.jar:?]
>     at 
> org.apache.hive.service.cli.operation.SQLOperation$BackgroundWork.run(SQLOperation.java:356)
>  ~[hive-service-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> ~[?:1.8.0_292]
>     at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_292]
>     at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  ~[?:1.8.0_292]
>     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  ~[?:1.8.0_292]
>     at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_292]
> Caused by: org.datanucleus.exceptions.NucleusDataStoreException: Clear 
> request failed : DELETE FROM `PARTITION_PARAMS` WHERE `PART_ID`=?
>     at 
> org.datanucleus.store.rdbms.scostore.JoinMapStore.clearInternal(JoinMapStore.java:916)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at 
> org.datanucleus.store.rdbms.scostore.JoinMapStore.clear(JoinMapStore.java:447)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at org.datanucleus.store.types.wrappers.backed.Map.clear(Map.java:630) 
> ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.store.rdbms.mapping.java.MapMapping.preDelete(MapMapping.java:298)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at 
> org.datanucleus.store.rdbms.request.DeleteRequest.execute(DeleteRequest.java:208)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at 
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.deleteObjectFromTable(RDBMSPersistenceHandler.java:496)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at 
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.deleteObject(RDBMSPersistenceHandler.java:468)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at 
> org.datanucleus.state.StateManagerImpl.internalDeletePersistent(StateManagerImpl.java:1213)
>  ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.state.StateManagerImpl.deletePersistent(StateManagerImpl.java:5496)
>  ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.ExecutionContextImpl.deleteObjectInternal(ExecutionContextImpl.java:2336)
>  ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.ExecutionContextImpl.deleteObjectWork(ExecutionContextImpl.java:2258)
>  ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.ExecutionContextImpl.deleteObjects(ExecutionContextImpl.java:2150)
>  ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.ExecutionContextThreadedImpl.deleteObjects(ExecutionContextThreadedImpl.java:264)
>  ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.store.query.Query.performDeletePersistentAll(Query.java:2264) 
> ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.store.query.AbstractJavaQuery.performDeletePersistentAll(AbstractJavaQuery.java:114)
>  ~[datanucleus-core-5.2.10.jar:?]
>     at org.datanucleus.store.query.Query.deletePersistentAll(Query.java:2216) 
> ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.api.jdo.JDOQuery.deletePersistentInternal(JDOQuery.java:512) 
> ~[datanucleus-api-jdo-5.2.8.jar:?]
>     ... 67 more
> Caused by: java.sql.BatchUpdateException: Cannot delete or update a parent 
> row: a foreign key constraint fails ("metastore"."part_col_stats", CONSTRAINT 
> "PART_COL_STATS_FK" FOREIGN KEY ("PART_ID") REFERENCES "partitions" 
> ("PART_ID"))
>     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
> ~[?:1.8.0_292]
>     at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>  ~[?:1.8.0_292]
>     at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>  ~[?:1.8.0_292]
>     at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
> ~[?:1.8.0_292]
>     at com.mysql.cj.util.Util.handleNewInstance(Util.java:192) 
> ~[mysql-connector-j-8.0.31.jar:8.0.31]
>     at com.mysql.cj.util.Util.getInstance(Util.java:167) 
> ~[mysql-connector-j-8.0.31.jar:8.0.31]
>     at com.mysql.cj.util.Util.getInstance(Util.java:174) 
> ~[mysql-connector-j-8.0.31.jar:8.0.31]
>     at 
> com.mysql.cj.jdbc.exceptions.SQLError.createBatchUpdateException(SQLError.java:224)
>  ~[mysql-connector-j-8.0.31.jar:8.0.31]
>     at 
> com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchSerially(ClientPreparedStatement.java:816)
>  ~[mysql-connector-j-8.0.31.jar:8.0.31]
>     at 
> com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchInternal(ClientPreparedStatement.java:418)
>  ~[mysql-connector-j-8.0.31.jar:8.0.31]
>     at com.mysql.cj.jdbc.StatementImpl.executeBatch(StatementImpl.java:795) 
> ~[mysql-connector-j-8.0.31.jar:8.0.31]
>     at 
> org.apache.hive.com.zaxxer.hikari.pool.ProxyStatement.executeBatch(ProxyStatement.java:127)
>  ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hive.com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeBatch(HikariProxyPreparedStatement.java)
>  ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.datanucleus.store.rdbms.ParamLoggingPreparedStatement.executeBatch(ParamLoggingPreparedStatement.java:366)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at 
> org.datanucleus.store.rdbms.SQLController.processConnectionStatement(SQLController.java:675)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at 
> org.datanucleus.store.rdbms.SQLController.getStatementForUpdate(SQLController.java:208)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at 
> org.datanucleus.store.rdbms.SQLController.getStatementForUpdate(SQLController.java:179)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at 
> org.datanucleus.store.rdbms.scostore.JoinMapStore.clearInternal(JoinMapStore.java:897)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at 
> org.datanucleus.store.rdbms.scostore.JoinMapStore.clear(JoinMapStore.java:447)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at org.datanucleus.store.types.wrappers.backed.Map.clear(Map.java:630) 
> ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.store.rdbms.mapping.java.MapMapping.preDelete(MapMapping.java:298)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at 
> org.datanucleus.store.rdbms.request.DeleteRequest.execute(DeleteRequest.java:208)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at 
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.deleteObjectFromTable(RDBMSPersistenceHandler.java:496)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at 
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.deleteObject(RDBMSPersistenceHandler.java:468)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at 
> org.datanucleus.state.StateManagerImpl.internalDeletePersistent(StateManagerImpl.java:1213)
>  ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.state.StateManagerImpl.deletePersistent(StateManagerImpl.java:5496)
>  ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.ExecutionContextImpl.deleteObjectInternal(ExecutionContextImpl.java:2336)
>  ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.ExecutionContextImpl.deleteObjectWork(ExecutionContextImpl.java:2258)
>  ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.ExecutionContextImpl.deleteObjects(ExecutionContextImpl.java:2150)
>  ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.ExecutionContextThreadedImpl.deleteObjects(ExecutionContextThreadedImpl.java:264)
>  ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.store.query.Query.performDeletePersistentAll(Query.java:2264) 
> ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.store.query.AbstractJavaQuery.performDeletePersistentAll(AbstractJavaQuery.java:114)
>  ~[datanucleus-core-5.2.10.jar:?]
>     at org.datanucleus.store.query.Query.deletePersistentAll(Query.java:2216) 
> ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.api.jdo.JDOQuery.deletePersistentInternal(JDOQuery.java:512) 
> ~[datanucleus-api-jdo-5.2.8.jar:?]
>     ... 67 more
> Caused by: java.sql.SQLIntegrityConstraintViolationException: Cannot delete 
> or update a parent row: a foreign key constraint fails 
> ("metastore"."part_col_stats", CONSTRAINT "PART_COL_STATS_FK" FOREIGN KEY 
> ("PART_ID") REFERENCES "partitions" ("PART_ID"))
>     at 
> com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:117) 
> ~[mysql-connector-j-8.0.31.jar:8.0.31]
>     at 
> com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
>  ~[mysql-connector-j-8.0.31.jar:8.0.31]
>     at 
> com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)
>  ~[mysql-connector-j-8.0.31.jar:8.0.31]
>     at 
> com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1061)
>  ~[mysql-connector-j-8.0.31.jar:8.0.31]
>     at 
> com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchSerially(ClientPreparedStatement.java:795)
>  ~[mysql-connector-j-8.0.31.jar:8.0.31]
>     at 
> com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchInternal(ClientPreparedStatement.java:418)
>  ~[mysql-connector-j-8.0.31.jar:8.0.31]
>     at com.mysql.cj.jdbc.StatementImpl.executeBatch(StatementImpl.java:795) 
> ~[mysql-connector-j-8.0.31.jar:8.0.31]
>     at 
> org.apache.hive.com.zaxxer.hikari.pool.ProxyStatement.executeBatch(ProxyStatement.java:127)
>  ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.apache.hive.com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeBatch(HikariProxyPreparedStatement.java)
>  ~[hive-exec-4.0.0-beta-1-SNAPSHOT.jar:4.0.0-beta-1-SNAPSHOT]
>     at 
> org.datanucleus.store.rdbms.ParamLoggingPreparedStatement.executeBatch(ParamLoggingPreparedStatement.java:366)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at 
> org.datanucleus.store.rdbms.SQLController.processConnectionStatement(SQLController.java:675)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at 
> org.datanucleus.store.rdbms.SQLController.getStatementForUpdate(SQLController.java:208)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at 
> org.datanucleus.store.rdbms.SQLController.getStatementForUpdate(SQLController.java:179)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at 
> org.datanucleus.store.rdbms.scostore.JoinMapStore.clearInternal(JoinMapStore.java:897)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at 
> org.datanucleus.store.rdbms.scostore.JoinMapStore.clear(JoinMapStore.java:447)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at org.datanucleus.store.types.wrappers.backed.Map.clear(Map.java:630) 
> ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.store.rdbms.mapping.java.MapMapping.preDelete(MapMapping.java:298)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at 
> org.datanucleus.store.rdbms.request.DeleteRequest.execute(DeleteRequest.java:208)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at 
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.deleteObjectFromTable(RDBMSPersistenceHandler.java:496)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at 
> org.datanucleus.store.rdbms.RDBMSPersistenceHandler.deleteObject(RDBMSPersistenceHandler.java:468)
>  ~[datanucleus-rdbms-5.2.10.jar:?]
>     at 
> org.datanucleus.state.StateManagerImpl.internalDeletePersistent(StateManagerImpl.java:1213)
>  ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.state.StateManagerImpl.deletePersistent(StateManagerImpl.java:5496)
>  ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.ExecutionContextImpl.deleteObjectInternal(ExecutionContextImpl.java:2336)
>  ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.ExecutionContextImpl.deleteObjectWork(ExecutionContextImpl.java:2258)
>  ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.ExecutionContextImpl.deleteObjects(ExecutionContextImpl.java:2150)
>  ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.ExecutionContextThreadedImpl.deleteObjects(ExecutionContextThreadedImpl.java:264)
>  ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.store.query.Query.performDeletePersistentAll(Query.java:2264) 
> ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.store.query.AbstractJavaQuery.performDeletePersistentAll(AbstractJavaQuery.java:114)
>  ~[datanucleus-core-5.2.10.jar:?]
>     at org.datanucleus.store.query.Query.deletePersistentAll(Query.java:2216) 
> ~[datanucleus-core-5.2.10.jar:?]
>     at 
> org.datanucleus.api.jdo.JDOQuery.deletePersistentInternal(JDOQuery.java:512) 
> ~[datanucleus-api-jdo-5.2.8.jar:?]
>     ... 67 more{noformat}
> *Steps to reproduce:*
> {noformat}
> 0: jdbc:hive2://localhost:10000> create database mydb;
> 0: jdbc:hive2://localhost:10000> use mydb;
> 0: jdbc:hive2://localhost:10000> create table stage(num int, type string, 
> name string) row format delimited fields terminated by ',' stored as textfile;
> 0: jdbc:hive2://localhost:10000> # load some data into it
> 0: jdbc:hive2://localhost:10000> load data local inpath 'partdata' into table 
> stage; 
> 0: jdbc:hive2://localhost:10000> create external table ext1(num int, type 
> string) partitioned by(name string) row format delimited fields terminated by 
> ',' stored as textfile;
> 0: jdbc:hive2://localhost:10000> insert into ext1 select * from stage;
> 0: jdbc:hive2://localhost:10000> alter table ext1 rename to newext1;
> 0: jdbc:hive2://localhost:10000> # drop table operation throws exception
> 0: jdbc:hive2://localhost:10000> drop table newext1;
> {noformat}
>  
>  



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

Reply via email to