Closing Gaps in Celko trees
От | Ben-Nes Michael |
---|---|
Тема | Closing Gaps in Celko trees |
Дата | |
Msg-id | 011f01c23239$b31c5ba0$aa0f5ac2@canaan.co.il обсуждение исходный текст |
Ответы |
Re: Closing Gaps in Celko trees
|
Список | pgsql-general |
Hi All Im trying to convert one of the functions the Celko wrote for closing gaps in lft,rgt tree type. The function return me: ERROR: parser: parse error at or near "while" Any ideas ? # This is Celko sample from book BEGIN WHILE EXISTS ( SELECT * FROM gaps ) LOOP UPDATE frammis SET rgt = CASE WHEN rgt > ( SELECT MIN(start) FROM gaps ) THEN rgt - 1 ELSE rgt END, lft = CASE WHEN lft > ( SELECT MIN(start) FROM gaps ) THEN lft - 1 ELSE lft END; END WHILE; # This is me trying to covert it to PG CREATE FUNCTION close_gaps() RETURNS TEXT AS ' DECLARE right_most_sibling INTEGER; BEGIN WHILE EXISTS ( SELECT * FROM gaps ) LOOP UPDATE tree SET rgt = CASE WHEN rgt > ( SELECT MIN(start) FROM gaps ) THEN rgt - 1 ELSE rgt END, lft = CASE WHEN lft > ( SELECT MIN(start) FROM gaps ) THEN lft - 1 ELSE lft END; END WHILE; RETURN NEW; END;' LANGUAGE 'plpgsql';
В списке pgsql-general по дате отправления: