Re: composite type and assignment in plpgsql - Mailing list pgsql-general

From Ron St-Pierre
Subject Re: composite type and assignment in plpgsql
Date
Msg-id 408E9600.9080903@syscor.com
Whole thread Raw
In response to Re: composite type and assignment in plpgsql  (Ron St-Pierre <rstpierre@syscor.com>)
List pgsql-general
Ron St-Pierre wrote:

> Ivan Sergio Borgonovo wrote:
>
>> what's wrong with this?
>>
>> create type tSession
>>     as ( ty_found boolean, ty_Session char(32) );
>>
>> create or replace function GetSessionID( integer )
>>     returns tSession as '
>> declare
>>     thisSession tSession;
>> begin
>>     --HERE!!!
>>     thisSession := ( ''t'', md5( now( ) || rand( ) ) );
>>
> - md5 takes TEXT as an argument, not a numeric type
> - assign each variable of type tSession to its corresponding value:
>      thisSession.ty_found := ''t'';
>      thisSession.ty_session := md5(CAST((now( )) AS TEXT));
> I haven't looked up the rand() function, but you can see from this how
> you would cast it and now() to text.
>
>>     return thisSession;
>> end;
>> ' language plpgsql;
>>
>>
>> thx
>>
>>
>> ---------------------------(end of broadcast)---------------------------
>> TIP 7: don't forget to increase your free space map settings
>>
>>
>>
>>
> And then you can get the results:
>   select * from getsessionid(1);
> imperial=#  select * from getsessionid(1);
> ty_found |            ty_session
> ----------+----------------------------------
> t        | cf76cca2b562a0ead48d3eb3810f51cc
> (1 row)
>
>
> hth
>
> Ron
>
>
In the above reply, I forgot to mention that you are not using the
integer you are passing in as an argument. If you need it (rand()?)
you'll have to declare it:
  myInt ALIAS FOR $1;
or use it explicitly with just the name:  $1

Ron


pgsql-general by date:

Previous
From: Ron St-Pierre
Date:
Subject: Re: composite type and assignment in plpgsql
Next
From: "Taber, Mark"
Date:
Subject: BLOB help needed...