java/code/src/com/redhat/rhn/common/db/datasource/xml/Set_queries.xml | 30 ++++------
1 file changed, 12 insertions(+), 18 deletions(-)
New commits:
commit ab201038dce7ce61b007ca3dc9c11118aafca5a3
Author: Jan Pazdziora <jpazdziora(a)redhat.com>
Date: Tue Dec 21 22:54:37 2010 +0100
Rewrite remove_unowned_errata and remove_nonrhn_unowned_errata not to use rowid.
Addressing
2010-12-21 03:52:33,018 [TP-Processor3] ERROR
com.redhat.rhn.common.db.datasource.CachedStatement - Error while processing cached
statement sql: DELETE
FROM rhnSet S
WHERE rowid IN(SELECT s.rowid
FROM rhnSet S, web_contact WC
WHERE S.user_id = ?
AND S.user_id = WC.id
AND S.label = ?
AND NOT EXISTS(SELECT 1
FROM dual
WHERE EXISTS (SELECT 1
FROM rhnErrata E
WHERE E.id = S.element
AND E.org_id = WC.org_id
)
OR EXISTS (SELECT 1
FROM rhnErrataTmp ET
WHERE ET.id = S.element
AND ET.org_id = WC.org_id
)
)
)
com.redhat.rhn.common.db.WrappedSQLException: ERROR: column s.rowid does not exist
at
com.redhat.rhn.common.translation.SqlExceptionTranslator.postgreSqlException(SqlExceptionTranslator.java:56)
at
com.redhat.rhn.common.translation.SqlExceptionTranslator.sqlException(SqlExceptionTranslator.java:45)
at
com.redhat.rhn.common.db.NamedPreparedStatement.execute(NamedPreparedStatement.java:141)
at
com.redhat.rhn.common.db.datasource.CachedStatement.execute(CachedStatement.java:453)
at
com.redhat.rhn.common.db.datasource.CachedStatement.execute(CachedStatement.java:430)
at
com.redhat.rhn.common.db.datasource.CachedStatement.executeUpdate(CachedStatement.java:270)
at
com.redhat.rhn.common.db.datasource.WriteMode.executeUpdate(WriteMode.java:33)
at com.redhat.rhn.domain.rhnset.SetCleanup.cleanup(SetCleanup.java:124)
at com.redhat.rhn.domain.rhnset.RhnSetFactory.save(RhnSetFactory.java:148)
at com.redhat.rhn.manager.rhnset.RhnSetManager.store(RhnSetManager.java:88)
at
com.redhat.rhn.manager.errata.ErrataManager.deleteErrata(ErrataManager.java:547)
at
com.redhat.rhn.manager.errata.ErrataManager.deleteErratum(ErrataManager.java:604)
diff --git a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Set_queries.xml
b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Set_queries.xml
index 87ae7ff..bba7ba5 100644
--- a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Set_queries.xml
+++ b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Set_queries.xml
@@ -174,11 +174,11 @@ SELECT user_id, label, element, element_two, element_three
<query params="user_id, label">
DELETE
FROM rhnSet S
- WHERE rowid IN(SELECT s.rowid
- FROM rhnSet S, web_contact WC
- WHERE S.user_id = :user_id
- AND S.user_id = WC.id
- AND S.label = :label
+ WHERE S.user_id = :user_id
+ AND S.label = :label
+ and exists (
+ select 1 from web_contact WC
+ where S.user_id = WC.id
AND NOT EXISTS(SELECT 1
FROM rhnErrata E
WHERE E.id = S.element
@@ -197,11 +197,11 @@ DELETE
<query params="user_id, label">
DELETE
FROM rhnSet S
- WHERE rowid IN(SELECT s.rowid
- FROM rhnSet S, web_contact WC
- WHERE S.user_id = :user_id
- AND S.user_id = WC.id
- AND S.label = :label
+ WHERE S.user_id = :user_id
+ AND S.label = :label
+ and exists (
+ select 1 from web_contact WC
+ where S.user_id = WC.id
AND NOT EXISTS(SELECT 1
FROM rhnErrata E
WHERE E.id = S.element
commit 38799a9da797de947e1606b42d82bf7d4a58bb7c
Author: Jan Pazdziora <jpazdziora(a)redhat.com>
Date: Tue Dec 21 22:47:23 2010 +0100
No need to subselect from dual.
diff --git a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Set_queries.xml
b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Set_queries.xml
index 18d46dc..87ae7ff 100644
--- a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Set_queries.xml
+++ b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Set_queries.xml
@@ -180,18 +180,15 @@ DELETE
AND S.user_id = WC.id
AND S.label = :label
AND NOT EXISTS(SELECT 1
- FROM dual
- WHERE EXISTS (SELECT 1
FROM rhnErrata E
WHERE E.id = S.element
AND E.org_id = WC.org_id
)
- OR EXISTS (SELECT 1
+ AND NOT EXISTS(SELECT 1
FROM rhnErrataTmp ET
WHERE ET.id = S.element
AND ET.org_id = WC.org_id
)
- )
)
</query>
</write-mode>
@@ -206,18 +203,15 @@ DELETE
AND S.user_id = WC.id
AND S.label = :label
AND NOT EXISTS(SELECT 1
- FROM dual
- WHERE EXISTS (SELECT 1
FROM rhnErrata E
WHERE E.id = S.element
AND (E.org_id = WC.org_id OR E.org_id
IS NULL)
)
- OR EXISTS (SELECT 1
+ AND NOT EXISTS(SELECT 1
FROM rhnErrataTmp ET
WHERE ET.id = S.element
AND ET.org_id = WC.org_id
)
- )
)
</query>
</write-mode>
Show replies by date