Procedure: nornix_site.delete_single_document

Information
DeterministicData accessMode
NOMODIFIES SQL DATA

Code

Delete a singe document

CREATE DEFINER=`root`@`localhost` PROCEDURE `delete_single_document`(IN vDocumentNo INTEGER)
    MODIFIES SQL DATA
    COMMENT 'Delete a singe document'
BEGIN /* TODO: does not remove contents, maybe corrupts tree! */
 DECLARE vDocLft, vDocRgt INTEGER;
 SELECT Lft, Rgt INTO vDocLft, vDocRgt
 FROM document
 WHERE `No` = vDocumentNo;
 DELETE FROM document
 WHERE `No` = vDocumentNo;
 UPDATE document
  SET Lft = IF(Lft > vDocRgt, (Lft - 2), (Lft - 1)),
     `Level` = IF(Rgt < vDocRgt, (`Level` - 1), `Level`)
  WHERE Lft > vDocLft
  ORDER BY Lft ASC;
 UPDATE document
  SET Rgt = IF(Rgt > vDocRgt, (Rgt - 2), (Rgt - 1))
  WHERE Rgt > vDocLft
  ORDER BY Rgt ASC;
 SET @tempdocpath='';
END