====== pears.DBCleanupOrphanBlobstore ======
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
===== Original SQL =====
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."DBCleanupOrphanBlobstore" IS
{create function DBCleanupOrphanBlobstore
/* 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 Blobstore where
(
(((class = 'V') or(class = 'J')) and not exists(select * from person where personid = Blobstore.id)) or
((class = 'O') and not exists(select * from OLEDocument where OLEDocumentid = Blobstore.id)) or
((class = 'L') and not exists(select * from Contactevent where Contacteventid = Blobstore.id)) or
((class = 'M') and not exists(select * from MailMerge where MailMergeid = Blobstore.id)) or
((class = 'T') and not exists(select * from TemplateStore where Templateid = Blobstore.id))
);
return @RC
end if;
delete from Blobstore where((class = 'V') or(class = 'J')) and
not exists(select * from person where personid = Blobstore.id);
set @RC = @RC + (select @@rowcount);
delete from Blobstore where(class = 'O') and
not exists(select * from OLEDocument where OLEDocumentid = Blobstore.id);
set @RC = @RC + (select @@rowcount);
delete from Blobstore where(class = 'L') and
not exists(select * from ContactEvent where Contacteventid = Blobstore.id);
set @RC = @RC + (select @@rowcount);
delete from Blobstore where(class = 'M') and
not exists(select * from MailMerge where MailMergeid = Blobstore.id);
set @RC = @RC + (select @@rowcount);
delete from Blobstore where(class = 'T') and
not exists(select * from TemplateStore where Templateid = Blobstore.id);
set @RC = @RC + (select @@rowcount);
call AuditLog('CLEANUP',null,string(@RC,' Unattached Blobstore Records deleted '),null,null);
return @RC;
end
}