| From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> | 
|---|---|
| To: | Julius Tuskenis <julius(at)nsoft(dot)lt> | 
| Cc: | pgsql-general(at)postgresql(dot)org | 
| Subject: | Re: cycling through custom type fields | 
| Date: | 2011-05-19 07:05:39 | 
| Message-ID: | BANLkTikYF-zedjAQayZrOuvwMVjhRm2zMw@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-general | 
Hello
2011/5/19 Julius Tuskenis <julius(at)nsoft(dot)lt>:
> Hello,
>
> I would like to ask if there is a possibility in postgresql (v9) to cycle
> through the fields of some custom type parameter in plpgsql function.
>
> I have a type defined:
> CREATE TYPE naims.frt_pwd_ed AS
>   (pwd_id integer,
>    pwd_sub_id integer,
>    pwd_login character varying(100));
>
> In pseudocode thats what I'd like to achieve:
>
> function Changes(prm_old_pwd  naims.frt_pwd_ed, prm_new_pwd
> naims.frt_pwd_ed)
> returns set of text
> begin
>  FOR i = 0 to naims.frt_pwd_ed.FieldCount -1 LOOP
>    IF prm_old_pwd.field(i).value <> prm_new_pwd.field(i).value THEN
>      Return Next prm_old_pwd.field(i).fieldname;
>    END IF;
>  END LOOP;
>  Return;
> end;
>
> The functrion should check each field of 2 provided parameters and return
> the fieldnames where the values are different. For this I need some tools to
> extract field value and field name. Can this be done?
>
> Thank You in advance!
>
> --
It isn't possible directly
you can
a) use a PLPerl or a PLPython
b) use some lib like pltoolbox http://www.pgsql.cz/index.php/PL_toolbox_%28en%29
c) use a EXECUTE USING trick
http://okbob.blogspot.com/2008/06/execute-using-feature-in-postgresql-84.html
d) use a hstore contrib module
http://okbob.blogspot.com/2009/10/dynamic-access-to-record-fields-in.html
Regards
Pavel Stehule
> Julius Tuskenis
> Programavimo skyriaus vadovas
> UAB nSoft
> mob. +37068233050
>
>
> --
> Sent via pgsql-general mailing list (pgsql-general(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Szymon Guz | 2011-05-19 07:17:12 | Re: question about readonly instances | 
| Previous Message | Andreas Kretschmer | 2011-05-19 07:05:18 | Re: What's eating my space ? |