Search Postgresql Archives

Does continue in a loop not commit any changes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Greetings all,

Having an issue with the pl/pgsql function below. I may or may not
make an update to a table in the first IF statement. However, whenever
an update is made, if the loop is continued then the update is not
committed.
Is it that whenever a loop is not completed rows aren't written?
Didn't see anything in the docs that would suggest that so I think
that I am missing something very obvious.


Thanks,

Rhys

CREATE OR REPLACE FUNCTION netone.flow_(origin integer)
  RETURNS void AS
$BODY$

DECLARE
	lr record;
	nextid integer;
	nextgeom geometry;
	l2 record;

BEGIN
	create temporary table if not exists pointhold(id integer) on commit drop;
	create temporary table if not exists linehold(id integer) on commit drop;
	RAISE NOTICE 'STARTING AT %', origin;
	for lr in SELECT gnid, id,a.geom as ag, b.geom as bg from
netone.points a, netone.lines b where gnid = origin AND
st_intersects(a.geom,b.geom) /*AND id NOT IN (select id from
linehold)*/ LOOP
		RAISE NOTICE 'LINE # %', lr.id;
		IF st_intersects(st_startpoint(lr.bg),lr.ag) THEN /**** statement
where table may or may no be updated****/
			raise notice 'reversed';
			update netone.lines set geom = st_reverse(geom) where id = lr.id;
		END IF;
		insert into pointhold (id) values (origin);
		insert into linehold (id) values (lr.id);
		select into l2 gnid, status from netone.points where
st_intersects(lr.bg, geom) AND gnid not in (select id from pointhold);
		CONTINUE WHEN  l2.status = 'OPENED'  /*** once this is true the
previous update is not committed ***/

		PERFORM netone.flow_(l2.gnid);
	END LOOP;
END;

$BODY$
  LANGUAGE plpgsql


-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux