Christopher B. Browne's Home Page
cbbrowne@acm.org

8.117. storenode_int(integer, text)

Function Properties

PLPGSQLinteger
no_id - Node ID # no_comment - Human-oriented comment Internal function to process the STORE_NODE event for node no_id
    declare
    	p_no_id			alias for $1;
    	p_no_comment	alias for $2;
    	v_old_row		record;
    begin
    	-- ----
    	-- Grab the central configuration lock
    	-- ----
    	lock table sl_config_lock;
    
    	-- ----
    	-- Check if the node exists
    	-- ----
    	select * into v_old_row
    			from sl_node
    			where no_id = p_no_id
    			for update;
    	if found then 
    		-- ----
    		-- Node exists, update the existing row.
    		-- ----
    		update sl_node
    				set no_comment = p_no_comment
    				where no_id = p_no_id;
    	else
    		-- ----
    		-- New node, insert the sl_node row
    		-- ----
    		insert into sl_node
    				(no_id, no_active, no_comment) values
    				(p_no_id, 'f', p_no_comment);
    	end if;
    
    	return p_no_id;
    end;

Google

If this was useful, let others know by an Affero rating

Contact me at cbbrowne@acm.org