RANGER-555: Fixed x_data_hist query for Oracle DB

Signed-off-by: sneethiraj <[email protected]>


Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/6411479b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/6411479b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/6411479b

Branch: refs/heads/tag-policy
Commit: 6411479b8836f11df4abea9702e67c8ad29049ce
Parents: 4d60d62
Author: Velmurugan Periasamy <[email protected]>
Authored: Mon Jun 15 18:43:14 2015 -0400
Committer: sneethiraj <[email protected]>
Committed: Mon Jun 15 22:57:52 2015 -0400

----------------------------------------------------------------------
 .../org/apache/ranger/db/XXDataHistDao.java     | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/6411479b/security-admin/src/main/java/org/apache/ranger/db/XXDataHistDao.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/db/XXDataHistDao.java 
b/security-admin/src/main/java/org/apache/ranger/db/XXDataHistDao.java
index b9f91d4..07db458 100644
--- a/security-admin/src/main/java/org/apache/ranger/db/XXDataHistDao.java
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXDataHistDao.java
@@ -23,6 +23,8 @@ import java.util.List;
 import javax.persistence.NoResultException;
 import javax.persistence.Query;
 
+import org.apache.ranger.biz.RangerBizUtil;
+import org.apache.ranger.common.AppConstants;
 import org.apache.ranger.common.db.BaseDao;
 import org.apache.ranger.entity.XXDataHist;
 
@@ -52,8 +54,22 @@ public class XXDataHistDao extends BaseDao<XXDataHist> {
                        return null;
                }
                try {
-                       String queryStr = "select obj.* from x_data_hist obj 
where obj.obj_class_type = "+classType
-                                       + " and obj.obj_id = "+objId + " and 
obj.create_time <= '" + eventTime + "' ORDER BY obj.id DESC";
+
+                       int dbFlavor = RangerBizUtil.getDBFlavor();
+
+                       String queryStr = "";
+
+                       if (dbFlavor == AppConstants.DB_FLAVOR_ORACLE) {
+                               queryStr = "select obj.* from x_data_hist obj 
where obj.obj_class_type = " + classType
+                                               + " and obj.obj_id = " + objId
+                                               + " and 
to_date(obj.create_time, 'YYYY-MM-DD\"T\"HH24:MI:SS\"Z\"') <= to_date('" + 
eventTime
+                                               + "', 
'YYYY-MM-DD\"T\"HH24:MI:SS\"Z\"') ORDER BY obj.id DESC";
+                       } else {
+                               queryStr = "select obj.* from x_data_hist obj 
where obj.obj_class_type = " + classType
+                                               + " and obj.obj_id = " + objId 
+ " and obj.create_time <= '" + eventTime
+                                               + "' ORDER BY obj.id DESC";
+                       }
+
                        Query jpaQuery = 
getEntityManager().createNativeQuery(queryStr, tClass).setMaxResults(1);
                        
                        return (XXDataHist) jpaQuery.getSingleResult();

Reply via email to