====== pears.BlobstoreRead ======
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
===== Original SQL =====
create function "pears"."BlobstoreRead"(
/* Application Maintained Function / Procedure - DO NOT EDIT*/
in "blobclass" char(1),in "blobid" char(20),in "requestedby" char(15) )
returns integer
not deterministic
begin
declare "z" integer;
declare "xpath" char(250);
declare "dat" long binary;
select "isnull"("zipped",0),"trim"("externalfilepath"),"blob" into "z","xpath","dat" from "blobstore" where "class" = "blobclass" and "id" = "blobid";
if "z" is null then
return null // No row
end if;
if "dat" is null and "isnull"("xpath",'') <> '' then
set "dat" = "xp_read_file"("BlobstoreFullPath"("xpath"))
end if;
if "dat" is null then
return null // No blob
end if;
if "varexists"('iqblobtemp') = 0 then
create variable "iqblobtemp" long binary
end if;
set "iqblobtemp" = "dat";
if "requestedby" is not null then
update "blobstore" set "accessedby" = "requestedby","accessedat" = current timestamp where "class" = "blobclass" and "id" = "blobid"
end if;
return "z"
end