pears.DBCleanupOrphanRecentObjects
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
Original SQL
CREATE FUNCTION "pears"."DBCleanupOrphanRecentObjects"( /* Application Maintained Function / Procedure - DO NOT EDIT*/ IN "countordo" CHAR(1) ) RETURNS INTEGER BEGIN DECLARE @RC INTEGER; SET @RC = 0; IF "countordo" = 'C' THEN SELECT "count"() INTO @RC FROM "RecentObjects" WHERE((NOT EXISTS(SELECT * FROM "staff" WHERE "staffid" = "RecentObjects"."staffid")) OR(("objecttype" = 'P') AND NOT EXISTS(SELECT * FROM "person" WHERE "personid" = "RecentObjects"."objectid")) OR(("objecttype" = 'C') AND NOT EXISTS(SELECT * FROM "company" WHERE "companyid" = "RecentObjects"."objectid")) OR(("objecttype" = 'V') AND NOT EXISTS(SELECT * FROM "vacancy" WHERE "vacancyid" = "RecentObjects"."objectid")) OR(("objecttype" = 'L') AND NOT EXISTS(SELECT * FROM "placement" WHERE "placementid" = "RecentObjects"."objectid")) OR(("objecttype" = 'N') AND NOT EXISTS(SELECT * FROM "contactevent" WHERE "contacteventid" = "RecentObjects"."objectid")) OR(("objecttype" = 'R') AND NOT EXISTS(SELECT * FROM "progress" WHERE "progressid" = "RecentObjects"."objectid")) OR(("objecttype" = 'E') AND NOT EXISTS(SELECT * FROM "employment" WHERE "employmentid" = "RecentObjects"."objectid"))); RETURN @RC END IF; DELETE FROM "RecentObjects" WHERE NOT EXISTS(SELECT * FROM "staff" WHERE "staffid" = "RecentObjects"."staffid"); SET @RC = @RC+(SELECT @@rowcount); DELETE FROM "RecentObjects" WHERE("objecttype" = 'P') AND NOT EXISTS(SELECT * FROM "person" WHERE "personid" = "RecentObjects"."objectid"); SET @RC = @RC+(SELECT @@rowcount); DELETE FROM "RecentObjects" WHERE("objecttype" = 'C') AND NOT EXISTS(SELECT * FROM "company" WHERE "companyid" = "RecentObjects"."objectid"); SET @RC = @RC+(SELECT @@rowcount); DELETE FROM "RecentObjects" WHERE("objecttype" = 'V') AND NOT EXISTS(SELECT * FROM "vacancy" WHERE "vacancyid" = "RecentObjects"."objectid"); SET @RC = @RC+(SELECT @@rowcount); DELETE FROM "RecentObjects" WHERE("objecttype" = 'L') AND NOT EXISTS(SELECT * FROM "placement" WHERE "placementid" = "RecentObjects"."objectid"); SET @RC = @RC+(SELECT @@rowcount); DELETE FROM "RecentObjects" WHERE("objecttype" = 'N') AND NOT EXISTS(SELECT * FROM "contactevent" WHERE "contacteventid" = "RecentObjects"."objectid"); SET @RC = @RC+(SELECT @@rowcount); DELETE FROM "RecentObjects" WHERE("objecttype" = 'R') AND NOT EXISTS(SELECT * FROM "progress" WHERE "progressid" = "RecentObjects"."objectid"); SET @RC = @RC+(SELECT @@rowcount); DELETE FROM "RecentObjects" WHERE("objecttype" = 'E') AND NOT EXISTS(SELECT * FROM "employment" WHERE "employmentid" = "RecentObjects"."objectid"); SET @RC = @RC+(SELECT @@rowcount); CALL "AuditLog"('CLEANUP',NULL,"string"(@RC,' Unattached Recent Objects deleted '),NULL,NULL); RETURN @RC /* ignore type T */ END