pears.DBCleanupOrphanRecentObjects

Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.

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
  • database/functions/pears_dbcleanuporphanrecentobjects.txt
  • Last modified: 2026/08/07 19:24
  • by 127.0.0.1