From: | "Ben-Nes Michael" <miki(at)canaan(dot)co(dot)il> |
---|---|
To: | <pgsql-general(at)postgresql(dot)org> |
Subject: | Closing Gaps in Celko trees |
Date: | 2002-07-23 11:11:31 |
Message-ID: | 011f01c23239$b31c5ba0$aa0f5ac2@canaan.co.il |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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';
From | Date | Subject | |
---|---|---|---|
Next Message | Michal O | 2002-07-23 11:29:21 | How to covert 'char' to 'inet' |
Previous Message | Stephane Bortzmeyer | 2002-07-23 10:27:03 | Problem between inheritance and references |