functions behaviours - Mailing list pgsql-general

From ycrux@club-internet.fr
Subject functions behaviours
Date
Msg-id mnet1.1144155739.9536.ycrux@club-internet.fr
Whole thread Raw
Responses Re: functions behaviours  ("A. Kretschmer" <andreas.kretschmer@schollglas.com>)
List pgsql-general
Hi All!

I'm wondering if there is an elegant way to add simple behaviours to stored Postgres functions.

1. First, what I want to get here is a function which orders their results columns in ASC at one time and in DESC next
timeit is called. Something like that: 

CREATE FUNCTION sort_swap(integer) RETURNS SETOF atype AS '

   sort_type ALIAS FOR $1;
   row atype;

   IF sort_type = 'ASC' THEN

    FOR row IN SELECT column1 ASC, column2, column3 FROM table
               ORDER BY column1 ASC, column2, column3
      LOOP
         RETURN NEXT row;
      END LOOP;

   ELSE

     FOR row IN SELECT column1 ASC, column2, column3 FROM table
               ORDER BY column1 DESC, column2, column3
      LOOP
         RETURN NEXT row;
      END LOOP;

   END IF;

    RETURN;
' LANGUAGE plpgsql;

What I want here is a function without the sort_type parameter.

2. Second, is it possible to give a function a parameter which correspond to a table name?

CREATE FUNCTION function_with_behaviours(integer) RETURNS SETOF atype AS '

   table_name ALIAS FOR $1;
   row atype;

      SELECT INTO row *  FROM table_name;

    RETURN row;
' LANGUAGE plpgsql;

In that case, how to dynamically adapt  atype  to the be table_name%ROWTYPE ?


Thanks in advance
Youn


pgsql-general by date:

Previous
From: Ottavio Campana
Date:
Subject: Re: database design questions
Next
From: "A. Kretschmer"
Date:
Subject: Re: functions behaviours