| |
310 |
310 |
order by |
| |
311 |
311 |
level desc |
| |
312 |
312 |
LOOP |
| |
313 |
313 |
PERFORM content_revision__copy_attributes(type_rec.object_type, |
| |
314 |
314 |
copy__revision_id, v_copy_id); |
| |
315 |
315 |
end loop; |
| |
316 |
316 |
|
| |
317 |
317 |
return v_copy_id; |
| |
318 |
318 |
|
| |
319 |
319 |
end;' language 'plpgsql'; |
| |
320 |
320 |
|
| |
321 |
321 |
|
| |
322 |
322 |
|
| |
323 |
323 |
create function content_revision__delete (integer) |
| |
324 |
324 |
returns integer as ' |
| |
325 |
325 |
declare |
| |
326 |
326 |
delete__revision_id alias for $1; |
| |
327 |
327 |
v_item_id cr_items.item_id%TYPE; |
| |
328 |
328 |
v_latest_revision cr_revisions.revision_id%TYPE; |
| |
329 |
329 |
v_live_revision cr_revisions.revision_id%TYPE; |
| |
330 |
|
|
| |
|
330 |
v_rec record; |
| |
331 |
331 |
begin |
| |
332 |
332 |
|
| |
333 |
333 |
|
| |
334 |
334 |
select item_id into v_item_id from cr_revisions |
| |
335 |
335 |
where revision_id = delete__revision_id; |
| |
336 |
336 |
|
| |
337 |
337 |
select |
| |
338 |
338 |
latest_revision, live_revision |
| |
339 |
339 |
into |
| |
340 |
340 |
v_latest_revision, v_live_revision |
| |
341 |
341 |
from |
| |
342 |
342 |
cr_items |
| |
343 |
343 |
where |
| |
344 |
344 |
item_id = v_item_id; |
| |
345 |
345 |
|
| |
346 |
346 |
|
| |
347 |
347 |
if v_latest_revision = delete__revision_id then |
| |
348 |
348 |
for v_rec in |
| |
349 |
|
select r.revision_id into v_latest_revision |
| |
|
349 |
select r.revision_id |
| |
350 |
350 |
from cr_revisions r, acs_objects o |
| |
351 |
351 |
where o.object_id = r.revision_id |
| |
352 |
352 |
and r.item_id = v_item_id |
| |
353 |
353 |
and r.revision_id <> delete__revision_id |
| |
354 |
354 |
order by o.creation_date desc |
| |
355 |
355 |
LOOP |
| |
356 |
356 |
|
| |
357 |
357 |
v_latest_revision := v_rec.revision_id; |
| |
358 |
358 |
exit; |
| |
359 |
359 |
end LOOP; |
| |
360 |
360 |
end if; |
| |
361 |
361 |
|
| |
362 |
362 |
if NOT FOUND then |
| |
363 |
363 |
v_latest_revision := null; |
| |
364 |
364 |
end if; |
| |
365 |
365 |
|
| |
366 |
366 |
update cr_items set latest_revision = v_latest_revision |
| |
367 |
367 |
where item_id = v_item_id; |
| |
368 |
368 |
|
| |
369 |
369 |
|