DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`unary_update`(v_node INT, v_new_parent INT, v_move bool)
BEGIN
/**
 * Cambia el padre de un nodo. Se puede indicar si se quieren mover los hijos.
 * En este caso los hijos pasan al padre del nodo.
 * Si no tiene padre, los hijos pasaran a ser padres.
 * 
 * @v_node: Nodo que se quiere mover.
 * @v_new_parent: Padre al que se quiere mover el nodo.
 * @v_move: Se indica si se mueven los nodos.
 **/
 
	DECLARE v_parent INT;
    
    SELECT parent
    INTO v_parent
    FROM unary 
    WHERE id = v_node;
    
    IF(v_move = TRUE) THEN
		UPDATE unary
		SET parent = v_parent
		WHERE parent = v_node;
	END IF;
        
    UPDATE unary
    SET parent = v_new_parent
    WHERE id = v_node;
 
END$$
DELIMITER ;
