This is an automated email from the ASF dual-hosted git repository.
madhan pushed a commit to branch ranger-2.7
in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/ranger-2.7 by this push:
new 9b7adca7c RANGER-5003 Fix the bug that deleting a service fails with
gtid enabled mysql server#3
9b7adca7c is described below
commit 9b7adca7c192d4a443f0983ccd49c5cb6f2432e4
Author: gavin.wang <[email protected]>
AuthorDate: Sat Jul 5 21:18:27 2025 +0800
RANGER-5003 Fix the bug that deleting a service fails with gtid enabled
mysql server#3
(cherry picked from commit abef0e25873110371fee7d0351ddb63b8ddeca21)
---
.../org/apache/ranger/db/XXRMSServiceResourceDao.java | 15 ++++++++++-----
.../src/main/resources/META-INF/jpa_named_queries.xml | 5 ++---
2 files changed, 12 insertions(+), 8 deletions(-)
diff --git
a/security-admin/src/main/java/org/apache/ranger/db/XXRMSServiceResourceDao.java
b/security-admin/src/main/java/org/apache/ranger/db/XXRMSServiceResourceDao.java
index 8a7f08e8d..29cc7d4cc 100644
---
a/security-admin/src/main/java/org/apache/ranger/db/XXRMSServiceResourceDao.java
+++
b/security-admin/src/main/java/org/apache/ranger/db/XXRMSServiceResourceDao.java
@@ -234,18 +234,23 @@ public List<RangerServiceResource>
getLlResourceIdForHlResourceId(long hlResourc
}
public void purge(long serviceId) {
-
-
getEntityManager().createNamedQuery("XXRMSNotification.deleteByServiceId")
+ List<Long> serviceResourceIds = getEntityManager()
+
.createNamedQuery("XXRMSServiceResource.getByServiceId", Long.class)
.setParameter("serviceId", serviceId)
- .executeUpdate();
+ .getResultList();
-
getEntityManager().createNamedQuery("XXRMSResourceMapping.deleteByServiceId")
+ if (!serviceResourceIds.isEmpty()) {
+
getEntityManager().createNamedQuery("XXRMSResourceMapping.deleteByServiceResourceIds")
+ .setParameter("ids", serviceResourceIds)
+ .executeUpdate();
+ }
+
+
getEntityManager().createNamedQuery("XXRMSNotification.deleteByServiceId")
.setParameter("serviceId", serviceId)
.executeUpdate();
getEntityManager().createNamedQuery("XXRMSServiceResource.deleteByServiceId")
.setParameter("serviceId", serviceId)
.executeUpdate();
-
}
}
diff --git a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
index 6f8657422..6f7108eac 100755
--- a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
+++ b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
@@ -2082,10 +2082,9 @@
</query>
</named-query>
- <named-query name="XXRMSResourceMapping.deleteByServiceId">
+ <named-query name="XXRMSResourceMapping.deleteByServiceResourceIds">
<query>
- DELETE FROM XXRMSResourceMapping mapping WHERE
mapping.hlResourceId in (select obj.id from XXRMSServiceResource obj where
obj.serviceId = :serviceId) OR
- mapping.llResourceId in (select obj.id from
XXRMSServiceResource obj where obj.serviceId = :serviceId)
+ DELETE FROM XXRMSResourceMapping mapping WHERE
mapping.hlResourceId IN :ids OR mapping.llResourceId IN :ids
</query>
</named-query>