CVS User Account cvsuser
Thu Nov 11 19:24:48 PST 2004
Log Message:
-----------
Add in debugging code, comment out actual execution of 
RebuildListenEntries();

Modified Files:
--------------
    slony1-engine/src/backend:
        slony1_funcs.sql (r1.38 -> r1.39)

-------------- next part --------------
Index: slony1_funcs.sql
===================================================================
RCS file: /usr/local/cvsroot/slony1/slony1-engine/src/backend/slony1_funcs.sql,v
retrieving revision 1.38
retrieving revision 1.39
diff -Lsrc/backend/slony1_funcs.sql -Lsrc/backend/slony1_funcs.sql -u -w -r1.38 -r1.39
--- src/backend/slony1_funcs.sql
+++ src/backend/slony1_funcs.sql
@@ -4519,18 +4519,26 @@
 
 	-- 1.  Add listens pointed out by subscriptions - sl_listen
 	-- @NAMESPACE at .storelisten(origin, provider, receiver)
-	perform @NAMESPACE at .storelisten(sub_provider, sub_provider, sub_receiver)
+	for v_row in select sub_provider, sub_receiver 
 		from @NAMESPACE at .sl_subscribe s
 		where exists (select true from @NAMESPACE at .sl_path p where 
                                  p.pa_server = s.sub_provider and
-                                 p.pa_client = s.sub_receiver);
+                                 p.pa_client = s.sub_receiver)
+	loop
+	--	raise notice ''Listen based on subscription: server % client %'', v_row.sub_provider, v_row.sub_receiver;
+		perform @NAMESPACE at .storelisten(v_row.sub_provider, v_row.sub_provider, v_row.sub_receiver);
+	end loop;
 
 	-- 2.  Add direct listens pointed out in sl_path
-	perform @NAMESPACE at .storelisten(pa_server, pa_server, pa_client)
+	for v_row in select pa_server, pa_client 
 		from @NAMESPACE at .sl_path path
 		where not exists (select true from @NAMESPACE at .sl_listen listen
 					where path.pa_server = listen.li_origin and
-					      path.pa_client = listen.li_receiver);
+					      path.pa_client = listen.li_receiver)
+	loop
+	--	raise notice ''Listen based on path: server % client %'', v_row.pa_server, v_row.pa_client;
+		perform @NAMESPACE at .storelisten(v_row.pa_server, v_row.pa_server, v_row.pa_client);
+	end loop;
 
 	-- 3.  Iterate until we cannot iterate any more...
 	--     Add in indirect listens based on what is in sl_listen and sl_path
@@ -4541,6 +4549,7 @@
 			from @NAMESPACE at .sl_path path, @NAMESPACE at .sl_listen listen
 			where
 				li_receiver = pa_server
+                                and li_origin <> pa_client
 				and not exists (select true from @NAMESPACE at .sl_listen listen2
 					where listen2.li_origin = listen.li_origin and
 					      listen2.li_receiver = path.pa_client)
@@ -4549,6 +4558,7 @@
                                               p.pa_client = path.pa_client )
 
 		loop
+	--		raise notice ''Listen based on listen/path - ORG: % PROV:% REC:%'', v_row.li_origin,v_row.pa_server,v_row.pa_client;
 			perform @NAMESPACE at .storelisten(v_row.li_origin,v_row.pa_server,v_row.pa_client);
 			v_done := ''f'';
 		end loop;		


More information about the Slony1-commit mailing list