-- Perl Weekly Challenge 165 -- Task 1 CREATE SCHEMA IF NOT EXISTS pwc165; TRUNCATE points; INSERT INTO points VALUES (53,10, NULL, NULL) ,(53,10,23,30) ,(23,30, NULL, NULL) ; CREATE OR REPLACE FUNCTION pwc165.task1_plpgsql() RETURNS TEXT AS $CODE$ DECLARE svg text; p points%rowtype; BEGIN SELECT ' ' INTO svg; FOR p IN SELECT * FROM points LOOP IF p.x1 IS NOT NULL AND p.y1 IS NOT NULL AND p.x2 IS NOT NULL AND p.y2 IS NOT NULL THEN -- line SELECT svg || format( '', p.x1, p.y1, p.x2, p.y2 ) INTO SVG; END IF; IF p.x1 IS NOT NULL AND p.y1 IS NOT NULL THEN -- point SELECT svg || format( '', p.x1, p.y1 ) INTO svg; END IF; IF p.x2 IS NOT NULL AND p.y2 IS NOT NULL THEN -- point SELECT svg || format( '', p.x2, p.y2 ) INTO svg; END IF; END LOOP; RETURN svg; END $CODE$ LANGUAGE plpgsql;