]> granicus.if.org Git - postgresql/commitdiff
PL/pgSQL doc: Add example for RETURN QUERY
authorPeter Eisentraut <peter_e@gmx.net>
Wed, 24 Apr 2013 02:46:36 +0000 (22:46 -0400)
committerPeter Eisentraut <peter_e@gmx.net>
Thu, 25 Apr 2013 01:54:46 +0000 (21:54 -0400)
Erwin Brandstetter and Pavel StÄ›hule

doc/src/sgml/plpgsql.sgml

index 3b2b49d09becdd15833efe9ef8204f8d19b90d9b..dbea3cd2803e7f4f16e81d91ebdb7751ab0e63ff 100644 (file)
@@ -1714,6 +1714,36 @@ SELECT * FROM get_all_foo();
 </programlisting>
      </para>
 
+     <para>
+      Here is an example of a function using <command>RETURN
+      QUERY</command>:
+
+<programlisting>
+CREATE FUNCTION get_available_flightid(date) RETURNS SETOF integer AS
+$BODY$
+BEGIN
+    RETURN QUERY SELECT flightid
+                   FROM flight
+                  WHERE flightdate >= $1
+                    AND flightdate < ($1 + 1);
+
+    -- Since execution is not finished, we can check whether rows were returned
+    -- and raise exception if not.
+    IF NOT FOUND THEN
+        RAISE EXCEPTION 'No flight at %.', $1;
+    END IF;
+
+    RETURN;
+ END
+$BODY$
+LANGUAGE plpgsql;
+
+-- Returns available flights or raises exception if there are no
+-- available flights.
+SELECT * FROM get_available_flightid(CURRENT_DATE);
+</programlisting>
+     </para>
+
      <note>
       <para>
        The current implementation of <command>RETURN NEXT</command>