java/code/src/com/redhat/rhn/common/db/datasource/xml/Action_queries.xml | 10 +-
java/code/src/com/redhat/rhn/common/db/datasource/xml/CustomInfo_queries.xml | 12 +-
java/code/src/com/redhat/rhn/common/db/datasource/xml/Monitoring_queries.xml | 49 ++++++----
java/code/src/com/redhat/rhn/common/db/datasource/xml/SystemGroup_queries.xml | 11 +-
java/code/src/com/redhat/rhn/common/db/datasource/xml/System_queries.xml | 8 -
web/modules/rhn/RHN/DB/DataSource/xml/System_queries.xml | 22 ++--
6 files changed, 64 insertions(+), 48 deletions(-)
New commits:
commit 9103a4c0b5f7a715d37ddab1e7d7961d09edbb04
Author: Julian Einwag <je(a)rockenstein.de>
Date: Tue May 24 10:35:59 2011 +0200
made some queries PG compatible: - replaced (+) with ANSI left join - changed TO_DATE(NULL) to TO_DATE(NULL,NULL) - changed TO_NUMBER(NULL) to TO_NUMBER(NULL,NULL) - replaced DECODE with CASE
diff --git a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Action_queries.xml b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Action_queries.xml
index be03a6d..43ac7b6 100644
--- a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Action_queries.xml
+++ b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Action_queries.xml
@@ -13,8 +13,8 @@ SELECT EVENT_ID as ID,
DETAILS
FROM (SELECT SH.id EVENT_ID,
SH.summary SUMMARY,
- TO_DATE(NULL) AS created,
- TO_DATE(NULL) AS picked_up,
+ TO_DATE(NULL,NULL) AS created,
+ TO_DATE(NULL,NULL) AS picked_up,
SH.created as completed, -- view this as the "completed" date for sorting reasons
NULL AS history_status,
NULL AS history_type,
@@ -34,14 +34,14 @@ SELECT EVENT_ID as ID,
NULL AS details
FROM rhnActionType AType,
rhnActionStatus AStat,
- rhnUser U,
- rhnAction A,
+ rhnAction A
+ LEFT JOIN rhnUser U
+ ON A.scheduler = U.id,
rhnServerAction SA
WHERE SA.server_id = :sid
AND SA.action_id = A.id
AND ATYPE.id = A.action_type
AND AStat.id = SA.status
- AND U.id(+) = A.scheduler
AND AStat.id IN (1, 2, 3)
) X
ORDER BY COMPLETED DESC, PICKED_UP DESC, CREATED DESC, EVENT_ID DESC
diff --git a/java/code/src/com/redhat/rhn/common/db/datasource/xml/CustomInfo_queries.xml b/java/code/src/com/redhat/rhn/common/db/datasource/xml/CustomInfo_queries.xml
index 3fd7d79..ec7d34c 100644
--- a/java/code/src/com/redhat/rhn/common/db/datasource/xml/CustomInfo_queries.xml
+++ b/java/code/src/com/redhat/rhn/common/db/datasource/xml/CustomInfo_queries.xml
@@ -7,10 +7,10 @@ SELECT CDK.id,
CDK.description,
(
SELECT COUNT(SCDV.server_id)
- FROM rhnServerCustomDataValue SCDV,
- rhnUserServerPerms USP
+ FROM rhnUserServerPerms USP
+ LEFT JOIN rhnServerCustomDataValue SCDV
+ ON USP.server_id = SCDV.server_id
WHERE USP.user_id = :user_id
- AND USP.server_id = SCDV.server_id (+)
AND SCDV.key_id = CDK.id
) as system_count,
TO_CHAR(CDK.modified, 'YYYY-MM-DD HH24:MI:SS') AS LAST_MODIFIED
@@ -28,10 +28,10 @@ SELECT CDK.id,
CDK.description,
COUNT(SCDV.key_id) as system_count,
TO_CHAR(CDK.modified, 'YYYY-MM-DD HH24:MI:SS') AS LAST_MODIFIED
- FROM rhnServerCustomDataValue SCDV,
- rhnCustomDataKey CDK
+ FROM rhnCustomDataKey CDK
+ LEFT JOIN rhnServerCustomDataValue SCDV
+ ON CDK.id = SCDV.key_id
WHERE CDK.org_id = :org_id
- AND CDK.id = SCDV.key_id (+)
AND NOT EXISTS (
SELECT 1 FROM rhnServerCustomDataValue
WHERE server_id = :sid
diff --git a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Monitoring_queries.xml b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Monitoring_queries.xml
index 8ccae6a..92fa36f 100644
--- a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Monitoring_queries.xml
+++ b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Monitoring_queries.xml
@@ -124,21 +124,22 @@ WHERE customer_id = :org_id
<mode name="methods_in_org" class="com.redhat.rhn.frontend.dto.monitoring.MethodDto">
<query params="org_id">
<![CDATA[
-SELECT WC.id user_id,
- WC.login login,
- CM.recid recid,
- CM.method_name method_name,
- DECODE( MT.method_type_name,
- 'Email', CM.email_address,
- 'Pager', CM.pager_email,
- 'SNMP', CM.snmp_host) method_target,
+SELECT WC.id AS user_id,
+ WC.login AS login,
+ CM.recid AS recid,
+ CM.method_name AS method_name,
+ (CASE MT.method_type_name
+ WHEN 'Email' THEN CM.email_address
+ WHEN 'Pager' THEN CM.pager_email
+ WHEN 'SNMP' THEN CM.snmp_host
+ END) AS method_target,
MT.method_type_name method_type
- FROM rhn_contact_methods CM,
- web_contact WC,
- rhn_method_types MT
+ FROM rhn_contact_methods CM
+ LEFT JOIN rhn_method_types MT
+ ON CM.method_type_id = MT.recid,
+ web_contact WC
WHERE WC.org_id = :org_id
AND CM.contact_id = WC.id
- AND CM.method_type_id = MT.recid (+)
ORDER BY WC.login, CM.method_name
]]>
</query>
@@ -147,13 +148,23 @@ ORDER BY WC.login, CM.method_name
<mode name="servers_in_suite" class="com.redhat.rhn.frontend.dto.monitoring.MonitoredServerDto">
<query params="suite_id"><![CDATA[
SELECT distinct s.id, s.name,
-( SELECT DECODE(
- MAX(DECODE(statps.state, 'OK', 1, 'PENDING', 2, 'UNKNOWN', 3, 'WARNING', 4, 'CRITICAL', 5)),
- 1, 'OK', 2, 'PENDING', 3, 'UNKNOWN', 4, 'WARNING', 5, 'CRITICAL') ST
- FROM rhn_check_probe statcp, rhn_probe_state statps
- WHERE statcp.probe_id = statps.probe_id
- AND s.id = statcp.host_id(+)
- GROUP BY s.id ) status
+( SELECT (CASE
+ MAX(CASE statps.state
+ WHEN 'OK' THEN 1
+ WHEN 'PENDING' THEN 2
+ WHEN 'UNKNOWN' THEN 3
+ WHEN 'WARNING' THEN 4
+ WHEN 'CRITICAL' THEN 5 END)
+ WHEN 1 THEN 'OK'
+ WHEN 2 THEN 'PENDING'
+ WHEN 3 THEN 'UNKNOWN'
+ WHEN 4 THEN 'WARNING'
+ WHEN 5 THEN 'CRITICAL' END ) ST
+ FROM rhn_check_probe statcp
+ LEFT JOIN rhn_probe_state statps
+ ON s.id = statcp.host_id
+ WHERE statcp.probe_id = statps.probe_id
+ GROUP BY s.id ) status
FROM rhn_check_suites cs,
rhn_check_suite_probe csp,
rhn_service_probe_origins spo,
diff --git a/java/code/src/com/redhat/rhn/common/db/datasource/xml/SystemGroup_queries.xml b/java/code/src/com/redhat/rhn/common/db/datasource/xml/SystemGroup_queries.xml
index 8964eec..bbe1f20 100644
--- a/java/code/src/com/redhat/rhn/common/db/datasource/xml/SystemGroup_queries.xml
+++ b/java/code/src/com/redhat/rhn/common/db/datasource/xml/SystemGroup_queries.xml
@@ -101,17 +101,18 @@ ORDER BY UPPER(NAME)
<mode name="visible_to_system">
<query params="sid, org_id, user_id">
- SELECT MAX(DECODE(VSGM.server_id, :sid, 1, 0)) is_system_member,
+ SELECT MAX(CASE VSGM.server_id WHEN :sid THEN 1 ELSE 0 END) is_system_member,
VSGM.GROUP_ID id,
VSGM.GROUP_NAME,
VSGM.GROUP_TYPE,
VSGM.CURRENT_MEMBERS,
VSGM.MAX_MEMBERS,
- DECODE(USGP.server_group_id,VSGM.group_id,1,0) AS USER_PERMITTED_ACCESS
- FROM rhnVisServerGroupMembership VSGM, rhnUserServerGroupPerms USGP
+ (CASE USGP.server_group_id WHEN VSGM.group_id THEN 1 ELSE 0 END) AS USER_PERMITTED_ACCESS
+ FROM rhnVisServerGroupMembership VSGM
+ LEFT JOIN rhnUserServerGroupPerms USGP
+ ON VSGM.group_id = USGP.server_group_id
+ AND :user_id = USGP.user_id
WHERE VSGM.ORG_ID = :org_id
- AND :user_id = USGP.user_id (+)
- AND VSGM.group_id = USGP.server_group_id (+)
GROUP BY VSGM.group_id, VSGM.group_name, VSGM.group_type, VSGM.current_members, VSGM.max_members, USGP.server_group_id
ORDER BY UPPER(VSGM.group_name), VSGM.group_id
</query>
diff --git a/java/code/src/com/redhat/rhn/common/db/datasource/xml/System_queries.xml b/java/code/src/com/redhat/rhn/common/db/datasource/xml/System_queries.xml
index 3ab72a2..0b7bf98 100644
--- a/java/code/src/com/redhat/rhn/common/db/datasource/xml/System_queries.xml
+++ b/java/code/src/com/redhat/rhn/common/db/datasource/xml/System_queries.xml
@@ -501,15 +501,14 @@ ORDER BY UPPER(COALESCE(X.server_name, '(none)')), X.id
select a.server_id id,
s.name server_name,
COALESCE(sg.name,'Org Admin access') group_name
-from rhnServerGroup sg,
- rhnServer s,
+from rhnServer s,
(
select usg.user_id, sgm.server_id, sgm.server_group_id
from rhnServerGroupMembers sgm,
rhnUserServerGroupPerms usg
where usg.server_group_id = sgm.server_group_id
union all
- select ugm.user_id, s.id server_id, TO_NUMBER(null) server_group_id
+ select ugm.user_id, s.id server_id, TO_NUMBER(null,null) server_group_id
from rhnUserGroup ug,
rhnUserGroupMembers ugm,
rhnServer s,
@@ -522,9 +521,10 @@ from rhnServerGroup sg,
where label = 'org_admin')
and s.org_id = u.org_id
) a
+left join rhnServerGroup sg
+on a.server_group_id = sg.id
where a.user_id = :formvar_uid
and a.server_id in (%s)
- and a.server_group_id = sg.id(+)
and a.server_id = s.id
</elaborator>
</mode>
diff --git a/web/modules/rhn/RHN/DB/DataSource/xml/System_queries.xml b/web/modules/rhn/RHN/DB/DataSource/xml/System_queries.xml
index f9715da..5b8cfb0 100644
--- a/web/modules/rhn/RHN/DB/DataSource/xml/System_queries.xml
+++ b/web/modules/rhn/RHN/DB/DataSource/xml/System_queries.xml
@@ -458,15 +458,14 @@ ORDER BY UPPER(NVL(S.name, '(none)')), S.id
select a.server_id id,
s.name server_name,
NVL(sg.name,'Org Admin access') group_name
-from rhnServerGroup sg,
- rhnServer s,
+from rhnServer s,
(
select usg.user_id, sgm.server_id, sgm.server_group_id
from rhnServerGroupMembers sgm,
rhnUserServerGroupPerms usg
where usg.server_group_id = sgm.server_group_id
union all
- select ugm.user_id, s.id server_id, TO_NUMBER(null) server_group_id
+ select ugm.user_id, s.id server_id, TO_NUMBER(null,null) server_group_id
from rhnUserGroup ug,
rhnUserGroupMembers ugm,
rhnServer s,
@@ -479,9 +478,10 @@ from rhnServerGroup sg,
where label = 'org_admin')
and s.org_id = u.org_id
) a
+left join rhnServerGroup sg
+on a.server_group_id = sg.id
where a.user_id = :some_user_id
and a.server_id in (%s)
- and a.server_group_id = sg.id(+)
and a.server_id = s.id
</elaborator>
<elaborator name="system_overview" />
@@ -1060,18 +1060,22 @@ SELECT DISTINCT ST.element AS ID
</mode>
<query name="available_to_user" params="user_id">
+select * from (
SELECT DISTINCT S.id,
S.name,
SI.server_id AS IS_RHN_SATELLITE,
PI.server_id AS IS_RHN_PROXY,
TO_CHAR(Sinfo.checkin, 'YYYY-MM-DD HH24:MI:SS') AS LAST_CHECKIN
- FROM rhnSatelliteInfo SI, rhnServerInfo SInfo, rhnProxyInfo PI, rhnServer S, rhnUserServerPerms USP
+ FROM rhnServer S
+ LEFT JOIN rhnSatelliteInfo SI
+ ON S.id = SI.server_id
+ LEFT JOIN rhnProxyInfo PI
+ ON S.id = PI.server_id,
+ rhnServerInfo SInfo, rhnUserServerPerms USP
WHERE USP.user_id = :user_id
AND S.id = USP.server_id
- AND S.id = SI.server_id (+)
- AND S.id = PI.server_id (+)
- AND Sinfo.server_id = S.id
-ORDER BY UPPER(NVL(S.name, '(none)')), S.id
+ AND Sinfo.server_id = S.id ) X
+ORDER BY UPPER(NVL(X.name, '(none)')), X.id
</query>