<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'><div dir='ltr'>
<div>Hello,</div>I've modified 4 queries in order to get this work... But I don't have an oracle set up to test my queries.<div>Moreover, I'm not sure the queries actually returns the legitimate results.</div><div><br></div><div>I insist on the fact that I'm not a DBA. I'm really not sure that the rewritten queries are correct. Please have a look on the diffs</div><div><br></div><div>Here are the diff on the three modifed files, in folder /usr/lib/perl5/vendor_perl/5.8.8/RHN/DB/DataSource/xml:</div><div><div>diff config_queries.xml /root/config_queries.xml.orig</div><div>85,90c85,90</div><div>< FROM rhnConfigFile CF</div><div>< LEFT OUTER JOIN rhnConfigRevision CR ON (CR.config_file_id = CF.id)</div><div>< LEFT OUTER JOIN rhnSnapshotConfigRevision SCR ON (SCR.config_revision_id = CR.id)</div><div>< LEFT OUTER JOIN rhnConfigFileName CFN ON (CFN.id = CF.config_file_name_id)</div><div>< LEFT OUTER JOIN rhnConfigContent CCon ON (CCon.id = CR.config_content_id)</div><div>< LEFT OUTER JOIN rhnChecksumView Csum ON (Csum.id = CCon.checksum_id)</div><div>---</div><div>> FROM rhnConfigContent CCon,</div><div>> rhnConfigFileName CFN,</div><div>> rhnConfigFile CF,</div><div>> rhnConfigRevision CR,</div><div>> rhnSnapshotConfigRevision SCR,</div><div>> rhnChecksumView Csum</div><div>91a92,96</div><div>> AND SCR.config_revision_id = CR.id</div><div>> AND CR.config_content_id = CCon.id (+)</div><div>> AND CR.config_file_id = CF.id</div><div>> AND CF.config_file_name_id = CFN.id</div><div>> AND CCon.checksum_id = Csum.id (+)</div></div><div><br></div><div><div>diff SystemGroup_queries.xml /root/SystemGroup_queries.xml.orig</div><div>16,22c16,25</div><div>< (SELECT 1 FROM rhnUserServerGroupPerms WHERE user_id = :user_id AND server_group_id = SG.id) AS USER_PERMITTED_ACCESS</div><div>< FROM rhnSnapshot SN</div><div>< LEFT OUTER JOIN rhnSnapshotServerGroup SSG ON (SSG.snapshot_id = SN.id)</div><div>< LEFT OUTER JOIN rhnServerGroup SG ON (SG.id = SSG.server_group_id)</div><div>< LEFT OUTER JOIN rhnServerGroupType SGT ON (SGT.id = SG.group_type)</div><div>< WHERE SN.id = :ss_id</div><div>< AND SN.server_id = :sid</div><div>---</div><div>> (SELECT 1 FROM rhnUserServerGroupPerms WHERE user_id = :user_id AND server_group_id = SG.id) AS USER_PERMITTED_ACCESS</div><div>> FROM rhnServerGroupType SGT,</div><div>> rhnServerGroup SG,</div><div>> rhnSnapshotServerGroup SSG,</div><div>> rhnSnapshot SN</div><div>> WHERE SN.id = :ss_id</div><div>> AND SN.server_id = :sid</div><div>> AND SN.id = SSG.snapshot_id</div><div>> AND SSG.server_group_id = SG.id</div><div>> AND SG.group_type = SGT.id (+)</div><div>90,101c93,107</div><div>< SELECT VSGM.group_id AS ID,</div><div>< SG.name AS GROUP_NAME,</div><div>< SGT.label AS GROUP_TYPE_LABEL,</div><div>< (SELECT 1 FROM rhnUserServerGroupPerms WHERE user_id = :user_id AND server_group_id = SG.id) AS USER_PERMITTED_ACCESS</div><div>< FROM rhnServerGroup SG</div><div>< LEFT OUTER JOIN rhnVisServerGroupMembership VSGM ON (VSGM.group_id = SG.id)</div><div>< LEFT OUTER JOIN rhnServerGroupType SGT ON (SGT.id = CAST(VSGM.group_type as numeric) )</div><div>< LEFT OUTER JOIN rhnUserServerGroupPerms USGP ON (USGP.server_group_id = SG.id)</div><div>< WHERE VSGM.org_id = :org_id</div><div>< AND VSGM.server_id = :sid</div><div>< AND USGP.user_id = :user_id</div><div>< ORDER BY UPPER(SG.name)</div><div>---</div><div>> SELECT VSGM.group_id AS ID,</div><div>> SG.name AS GROUP_NAME,</div><div>> SGT.label AS GROUP_TYPE_LABEL,</div><div>> (SELECT 1 FROM rhnUserServerGroupPerms WHERE user_id = :user_id AND server_group_id = SG.id) AS USER_PERMITTED_ACCESS</div><div>> FROM rhnServerGroupType SGT,</div><div>> rhnServerGroup SG,</div><div>> rhnVisServerGroupMembership VSGM,</div><div>> rhnUserServerGroupPerms USGP</div><div>> WHERE VSGM.org_id = :org_id</div><div>> AND VSGM.server_id = :sid</div><div>> AND VSGM.group_id = SG.id</div><div>> AND VSGM.group_type = SGT.id (+)</div><div>> AND USGP.user_id = :user_id</div><div>> AND USGP.server_group_id = SG.id</div><div>> ORDER BY UPPER(SG.name)</div></div><div><br></div><div><div>diff Package_queries.xml /root/Package_queries.xml.orig</div><div>30,52c30,75</div><div>< PE.id AS EVR_ID,</div><div>< PN.name AS NAME,</div><div>< PE.version AS VERSION,</div><div>< PE.release AS RELEASE,</div><div>< PE.epoch AS EPOCH,</div><div>< PN.name || '-' || evr_t_as_vre_simple(PE.evr) AS NVRE,</div><div>< UPPER(PN.name || '-' || evr_t_as_vre_simple(PE.evr)) AS U_NVRE</div><div>< FROM rhnPackageName PN</div><div>< LEFT OUTER JOIN rhnPackageNEVRA PNEVRA ON (PNEVRA.name_id = PN.id)</div><div>< LEFT OUTER JOIN rhnPackageEVR PE ON (PE.id = PNEVRA.evr_id)</div><div>< LEFT OUTER JOIN rhnSnapshotPackage SP ON (SP.nevra_id = PNEVRA.id)</div><div>< LEFT OUTER JOIN rhnSnapshot S ON (S.id = SP.snapshot_id)</div><div>< LEFT OUTER JOIN rhnPackage P ON (P.id = PN.id)</div><div>< LEFT OUTER JOIN rhnChannelPackage CP ON (CP.package_id = P.id)</div><div>< LEFT OUTER JOIN rhnSnapshotChannel SC ON (SC.channel_id = CP.channel_id)</div><div>< WHERE S.id = :ss_id</div><div>< AND S.server_id = :sid</div><div>< AND NOT EXISTS (SELECT 1 FROM rhnPackageSyncBlacklist PSB WHERE</div><div>< PSB.package_name_id = PN.id AND org_id is NULL OR org_id = :org_id)</div><div>< AND SC.snapshot_id = :ss_id</div><div>< AND NOT EXISTS (SELECT 1 FROM rhnServerPackage SEP WHERE</div><div>< SEP.server_id = :sid AND SEP.name_id = PN.id AND SEP.evr_id = PE.id)</div><div>< ORDER BY 8</div><div>---</div><div>> PE.id AS EVR_ID,</div><div>> PN.name AS NAME,</div><div>> PE.version AS VERSION,</div><div>> PE.release AS RELEASE,</div><div>> PE.epoch AS EPOCH,</div><div>> PN.name || '-' || evr_t_as_vre_simple(PE.evr) AS NVRE,</div><div>> UPPER(PN.name || '-' || evr_t_as_vre_simple(PE.evr)) AS U_NVRE</div><div>> FROM rhnPackageName PN,</div><div>> rhnPackageEVR PE,</div><div>> rhnPackageNEVRA PNEVRA,</div><div>> rhnSnapshotPackage SP,</div><div>> rhnSnapshot S</div><div>> WHERE S.id = :ss_id</div><div>> AND S.server_id = :sid</div><div>> AND S.id = SP.snapshot_id</div><div>> AND SP.nevra_id = PNEVRA.id</div><div>> AND PNEVRA.name_id = PN.id</div><div>> AND NOT EXISTS (SELECT 1 FROM rhnPackageSyncBlacklist PSB WHERE</div><div>> PSB.package_name_id = PN.id AND org_id is NULL OR org_id = :org_id)</div><div>> AND PNEVRA.evr_id = PE.id</div><div>> AND NOT EXISTS (</div><div>> SELECT 1 FROM rhnServerPackage SP</div><div>> WHERE SP.server_id = :sid</div><div>> AND SP.name_id = PN.id</div><div>> AND SP.evr_id = PE.id</div><div>> )</div><div>> MINUS</div><div>> SELECT PN.id AS NAME_ID,</div><div>> PE.id AS EVR_ID,</div><div>> PN.name AS NAME,</div><div>> PE.version AS VERSION,</div><div>> PE.release AS RELEASE,</div><div>> PE.epoch AS EPOCH,</div><div>> PN.name || '-' || evr_t_as_vre_simple(PE.evr) AS NVRE,</div><div>> UPPER(PN.name || '-' || evr_t_as_vre_simple(PE.evr)) AS U_NVRE</div><div>> FROM rhnPackageName PN,</div><div>> rhnPackageEVR PE,</div><div>> rhnPackage P,</div><div>> rhnChannelPackage CP,</div><div>> rhnSnapshotChannel SC</div><div>> WHERE SC.snapshot_id = :ss_id</div><div>> AND SC.channel_id = CP.channel_id</div><div>> AND CP.package_id = P.id</div><div>> AND P.name_id = PN.id</div><div>> AND P.evr_id = PE.id</div><div>> ORDER BY 8</div><div><br></div><div><br><br><div>> Date: Fri, 22 Jul 2011 19:44:02 +0200<br>> From: msuchy@redhat.com<br>> To: spacewalk-list@redhat.com<br>> Subject: Re: [Spacewalk-list] Error 500 on snapshots pages<br>> <br>> On 07/22/2011 08:15 AM, Pierre Casenove wrote:<br>> > Here is the SQL statement executed:<br>> > ERROR: syntax error at or near "MINUS" at character 869<br>> <br>> https://fedorahosted.org/spacewalk/wiki/PostgreSQLPortingGuide#MINUSkeyword<br>> <br>> Patches are welcome.<br>> <br>> -- <br>> Miroslav Suchý<br>> Red Hat Satellite Engineering<br>> <br>> _______________________________________________<br>> Spacewalk-list mailing list<br>> Spacewalk-list@redhat.com<br>> https://www.redhat.com/mailman/listinfo/spacewalk-list<br></div></div></div> </div></body>
</html>